[PP-dev] ProjectPier Rewrite Proposal

21 views
Skip to first unread message

Alex Mayhew

unread,
Jul 22, 2008, 3:41:45 PM7/22/08
to projectpier...@lists.sourceforge.net
Hey guys
The current "stable" version of PP is currently 0.8.0.2. Since the
project was initially forked from Activecollab no significant features
have been added to the codebase and we are essentially sitting on
Activecollab 0.7.1 + a few bug fixes / minor enhancements.

What we have at the moment is a very simple project management system
which is very hard to extend without modifying / hacking core files. (I
believe Cesár was working on a way to modularise the current code, but
he doesn't seem to have been around lately)

I propose that we start work on a new branch of the project (A complete
rewrite) which we would aim to release as 1.0.
Some major features I think would be good:

ACL Permissions
Modules / Plugins
Events / Hooks
External API
Routing / Friendly urls

This also gives us the chance to create a framework which "makes sense"
(Currently Base classes can be quite confusing / annoying). I have been
looking at two popular frameworks recently - Codeigniter & Kohana.
Kohana is a PHP 5 fork of CodeIgniter, so they both share similar traits.

The thing I like about them is that the core system classes can be
overridden easily by prefixing the class name with MY_. Kohana also has
an events system and allows for modularised code out of the box.

It may be better for use to code our own framework for projectpier so
that we know what's going on, but they're good examples of light weight
frameworks.

I'd appreciate any feedback / suggestions that you have on this subject

Alex

--
Usually something witty would go here, but as I'm the sort of guy who doesn't have a catch phrase I'm afraid this is nothing but more than ultra boring rubbish - which you've been suckered into reading :P


No virus found in this outgoing message.
Checked by AVG.
Version: 8.0.138 / Virus Database: 270.5.4/1566 - Release Date: 22/07/2008 06:00

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Projectpier-development mailing list
Projectpier...@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/projectpier-development

George McGinley Smith

unread,
Jul 23, 2008, 5:06:10 AM7/23/08
to projectpier...@lists.sourceforge.net
Sounds like a great idea to me. CI has a large community so being able to hook into that would be a wise move IMO.

It's also going to hook more closely into Expression Engine in the future, which could be a really powerful selling point for PP. If you could drop a fully functioning project management add on into Expression Engine that would be a great selling point.

Just my tuppence.

George.
--
Kind regards,

George McGinley Smith

http://gsgd.co.uk

Timothée Boucher

unread,
Jul 24, 2008, 5:34:55 PM7/24/08
to projectpier...@lists.sourceforge.net
If we go ahead and do that, it's important to know what we do for the current version.
If we start from scratch, it won't be ready anytime soon most probably. What do we do with what's out right now? do we still fix and add some features, even though it would be used for just a few months? Should we all work on the new one?

What I mean is that on one hand, working on the future-old version is not necessarily motivating when you know there is a new one coming (there is no notion of legacy system running on the old version for example), on the other hand, it would be bad to stop doing anything...

Tim

Alex Mayhew

unread,
Jul 25, 2008, 7:38:59 AM7/25/08
to projectpier...@lists.sourceforge.net
I suppose it would be better if we concentrated our efforts on creating a new version of PP, however we could still release updates for security holes / major bugs.

I'm a bit confused as to what you mean by:

there is no notion of legacy system running on the old version for example

Alex

Timothée Boucher wrote:
�������wb��b�)ܢh��g��� ���[� FU�슉��]��X���ڵ�ڱ�Ӟ�מ�E�^jǃj׶��;�m4�N���ke===

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/

_______________________________________________ Projectpier-development mailing list Projectpier...@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/projectpier-development

-- 
Usually something witty would go here, but as I'm the sort of guy who doesn't have a catch phrase I'm afraid this is nothing but more than ultra boring rubbish - which you've been suckered into reading :P
No virus found in this outgoing message.
Checked by AVG. 
Version: 8.0.138 / Virus Database: 270.5.6/1572 - Release Date: 25/07/2008 06:51

Timothée Boucher

unread,
Jul 25, 2008, 12:11:32 PM7/25/08
to projectpier...@lists.sourceforge.net
I'm a bit confused as to what you mean by:

there is no notion of legacy system running on the old version for example
Yeah sorry, it wasn't clear.
What I meant is that we're not in a situation where some people would still need to use the old version for this or that reason as soon as the new version exists, hence making all the future enhancements on the old version kind of useless. (except for maybe testing new features or things like that while the new architecture is not ready)
By "legacy system", I meant something like people won't have old installations that they need to keep running because they can't upgrade some components (think for example of developing for IE6 or an old OS because many people still use it and can't upgrade). If one can run PP 0.8.0, they would be able to run 1.0 too.

To sum it up, nevermind that sentence :)

Tim

 

Sergio Lopes

unread,
Jul 25, 2008, 2:02:51 PM7/25/08
to projectpier...@lists.sourceforge.net
First, let me say that I'm in no position to comment on this, as I've
not been involved with the project, somehow I got a bit lost on my
initial collaboration whit PP team. But, nevertheless, I would
express my view on the matter.

> The current "stable" version of PP is currently 0.8.0.2. Since the
> project was initially forked from Activecollab no significant features
> have been added to the codebase and we are essentially sitting on
> Activecollab 0.7.1 + a few bug fixes / minor enhancements.

The fact that this is aC plus the bug fixes and enhancements was what
made me want to use it. It is a simple and effective manager, easy to
use and really gets the job done, I would add a few little extras,
like some already mentioned on the forums and this list, but would
keep the thing that made aC a great software, it's simplicity.
So I look at this proposal with some skepticism.

What would this rewrite bring us? Or better yet, in what way would
this rewrite be done, what are the main focus of the work? Will
compatibility with aC's database be kept or any conversion tool be
added?
My fear is that the software I started to use, and have been
recommending, will be dropped, and no upgrade will be possible.

Like Timothée said, it's important to know where the project's going
and what will happen to the current version and all it's users

That said, and having looked at the current code, bugs count and type,
I'm all for a rewrite.

--
Sem mais e com os melhores cumprimentos,

Sérgio Lopes

Alex Mayhew

unread,
Jul 26, 2008, 2:17:34 PM7/26/08
to projectpier...@lists.sourceforge.net
Ryan's just reminded me of a post he made a while ago about PP's roadmap
http://sourceforge.net/mailarchive/forum.php?thread_name=e4be0af40806120904g31798797g7358dd3a0a60f57b%40mail.gmail.com&forum_name=projectpier-development

He's set a lot of good targets in that email, however I feel that it
might be easier for us to rewrite the core and complete the targets as
we go along instead of hacking the current core.

@George, I think it'd be better if we made our own framework for PP,
instead of marketing it as a 'CodeIgniter based app / EE addon'.
CodeIgniter is a good framework, however it's not really suitable for PP
imo.


> The fact that this is aC plus the bug fixes and enhancements was what
> made me want to use it. It is a simple and effective manager, easy to
> use and really gets the job done, I would add a few little extras,
> like some already mentioned on the forums and this list, but would
> keep the thing that made aC a great software, it's simplicity.
>

I'm sure that everyone who uses PP agrees with you on this point.


> What would this rewrite bring us? Or better yet, in what way would
> this rewrite be done, what are the main focus of the work? Will
> compatibility with aC's database be kept or any conversion tool be
> added?
>

The main aim of the rewrite would be to refactor and improve the
codebase, as well as including some needed / highly requested features


> My fear is that the software I started to use, and have been
> recommending, will be dropped, and no upgrade will be possible.
>

It would be crazy if an upgrade path for the 0.8.* version was not
created :P


> Like Timothée said, it's important to know where the project's going
> and what will happen to the current version and all it's users
>
> That said, and having looked at the current code, bugs count and type,
> I'm all for a rewrite.
>

:)


--
Usually something witty would go here, but as I'm the sort of guy who
doesn't have a catch phrase I'm afraid this is nothing but more than
ultra boring rubbish - which you've been suckered into reading :P

No virus found in this outgoing message.
Checked by AVG.

Version: 8.0.138 / Virus Database: 270.5.6/1574 - Release Date: 25/07/2008 16:27

George McGinley Smith

unread,
Jul 27, 2008, 5:05:46 AM7/27/08
to projectpier...@lists.sourceforge.net
What's wrong with CI for PP? It's a solid actively developed MVC framework. What are your reservations?

Alex Mayhew

unread,
Jul 28, 2008, 10:44:33 AM7/28/08
to projectpier...@lists.sourceforge.net
First off, I understand that CI a very good framework - I'm using it at
the moment for a project.

If we rewrite PP, we will need a framework that offers Modular
separation, an events system and possibly basic ORM. CodeIgniter
doesn't provide any of these features by default (I know that there's
activerecord, but it's not the same as ORM), so we'd have to extend the
framework.

I also don't think we should use CodeIgniter because EE will be using
it. ProjectPier is a standalone app and I don't think it'd be right to
market it as an 'ExpressionEngine addon'.
If we code PP in a structured way then it will be very easy for it to
integrate with a third party system such as EE.

Then again this is just my opinion,

Alex

> <mailto:Projectpier...@lists.sourceforge.net>

> No virus found in this incoming message.
> Checked by AVG.
> Version: 8.0.138 / Virus Database: 270.5.6/1576 - Release Date: 27/07/2008 16:16
>
> ------------------------------------------------------------------------


>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/

> ------------------------------------------------------------------------


>
> _______________________________________________
> Projectpier-development mailing list
> Projectpier...@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/projectpier-development
>

--

Usually something witty would go here, but as I'm the sort of guy who doesn't have a catch phrase I'm afraid this is nothing but more than ultra boring rubbish - which you've been suckered into reading :P


No virus found in this outgoing message.
Checked by AVG.

Version: 8.0.138 / Virus Database: 270.5.6/1576 - Release Date: 27/07/2008 16:16

Alex Mayhew

unread,
Jul 29, 2008, 3:52:14 PM7/29/08
to projectpier...@lists.sourceforge.net
I'd just like to clarify on what I said yesterday - What I meant to say was that I don't think CodeIgniter is suitable for this project without a lot of modifications. 
Also, I realised that this -

I also don't think we should use CodeIgniter because EE will be using 
it. 

may sound ambiguous.  What I meant was, I don't think we should use CodeIgniter "because EE 2.0 uses it", imo we should make PP a standalone app.

Today I've been looking at the CodeIgniter & Kohana source code in more depth, and I've realised it's going to take a heck of a lot of time just to get to where these frameworks are now.  It may be a better idea to use an existing framework after all.


Alex

George McGinley Smith wrote:
No virus found in this incoming message.
Checked by AVG. 
Version: 8.0.138 / Virus Database: 270.5.6/1576 - Release Date: 27/07/2008 16:16
  

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/

_______________________________________________ Projectpier-development mailing list Projectpier...@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/projectpier-development

-- 
Usually something witty would go here, but as I'm the sort of guy who doesn't have a catch phrase I'm afraid this is nothing but more than ultra boring rubbish - which you've been suckered into reading :P
No virus found in this outgoing message.
Checked by AVG. 
Version: 8.0.138 / Virus Database: 270.5.6/1576 - Release Date: 27/07/2008 16:16

Andy Postnikov

unread,
Jul 29, 2008, 5:12:33 PM7/29/08
to projectpier...@lists.sourceforge.net
IMO current PP framework is good but need more flexibility in
themization and event|hook|plugin area

Using of CI ZF or any will gear you 3rd party code and as result work breakdown!

2008/7/29 Alex Mayhew <al...@sigswitch.com>:

Jeremy Clarke

unread,
Jul 29, 2008, 5:18:34 PM7/29/08
to projectpier...@lists.sourceforge.net
The whole problem with PP right now is that its ALL 3rd party code
because the person who wrote it is nowhere around and would not help
or explain anything if we asked.

At least if PP was written in some framework we could ask for help in
the irc rooms/mailing lists/forums of the framework and get advice.
Right now it runs on a particularly complicated and unsuccessfully
documented framework that even Illija the original author isn't using
(he rewrote it all for aC 1.0).

Of course regardless of the framework, PP does run right now, unlike a
rewrite, so i don't have an opinion on whether to rewrite (i'm also
just a spectator ;)

jer

--
Jeremy Clarke
Code and Design | globalvoicesonline.org

Timothée Boucher

unread,
Jul 30, 2008, 1:36:11 PM7/30/08
to projectpier...@lists.sourceforge.net
I figure this article might be of interest in the current discussion:
http://www.1729.com/blog/EconomicsOfTestingUglyCode.html

It won't bring an answer but it's about the ugliness of code source vs. its value, and why it gets harder to refactor.

Is there any way to do an incremental transition to add another framework? I suppose not really. It would for sure add to the ugliness of the code pretty badly :)

Tim

Alex Mayhew

unread,
Aug 1, 2008, 10:55:24 AM8/1/08
to projectpier...@lists.sourceforge.net
That's a *very* interesting read Tim - great find!
What do you mean by an "incremental transition"? Copying code over to
the rewrite or refactoring the current code enough so that it's much
easier to copy to a new "setup".

On a side note, here's an email from Ryan that covers his thoughts about
doing a rewrite / port:

I've been watching the thread but holding back my opinion for now so
that everyone else can express their voice.

I would re-iterate your reference to the email regarding the Road Map
that I wrote awhile back, many of my thoughts about this are expressed
there - albeit interspersed in that discussion and not directly
addressing this question. (Side note, several other archive options have
be added for the mailing lists and will slowly be backfilled)

In general, I agree that there are some fairly major/radical changes
that I would like to make to the underlying framework (mostly
file/folder structure) and have considered rewriting/porting PP to
another framework quite extensively. Many of you know that I also work
with Drupal, so on numerous occasions the idea of porting PP to use the
Drupal framework has been considered (and other frameworks/systems)

Also in general, I am very keen on the idea of not re-inventing the
wheel just "because". Which is why the idea of building on top of other
frameworks is very attractive at first glance - which includes building
on top of the current framework.

At this point, I try to assess the decision using a few questions:
1) What does this gain/provide us with? or what problem does this solve?
2) What does this restrict or lose us? also, What does this cost?
3) Are there any other ways of achieving this? and their related merits.
4) Is this in the best interest of the community/project? and is this
what the community wants?

At this point, I think the my opinions in the roadmap represent the
conclusions I have come to from my own answers to these questions.
However, I think this thread could be really useful if we explored the
answers to at least the first 3 questions. After some more discussion, I
can add my specific take on these answers if it is still useful.

Hope that helps,
Ryan Cross

> <mailto:al...@sigswitch.com>>:

> <mailto:Projectpier...@lists.sourceforge.net>

> <mailto:Projectpier...@lists.sourceforge.net>


> >>
> https://lists.sourceforge.net/lists/listinfo/projectpier-development
> >>
> >>
> >> --
> >> Usually something witty would go here, but as I'm the sort of
> guy who
> >> doesn't have a catch phrase I'm afraid this is nothing but more
> than ultra
> >> boring rubbish - which you've been suckered into reading :P
> >>
> >> No virus found in this outgoing message.
> >> Checked by AVG.
> >> Version: 8.0.138 / Virus Database: 270.5.6/1576 - Release Date:
> 27/07/2008
> >> 16:16
> >>
> >>
> -------------------------------------------------------------------------
> >> This SF.Net email is sponsored by the Moblin Your Move
> Developer's challenge
> >> Build the coolest Linux based applications with Moblin SDK &
> win great
> >> prizes
> >> Grand prize is a trip for two to an Open Source event anywhere
> in the world
> >> http://moblin-contest.org/redirect.php?banner_id=100&url=/

> <http://moblin-contest.org/redirect.php?banner_id=100&url=/>
> >> _______________________________________________
> >> Projectpier-development mailing list
> >> Projectpier...@lists.sourceforge.net

> <mailto:Projectpier...@lists.sourceforge.net>


> >>
> https://lists.sourceforge.net/lists/listinfo/projectpier-development
> >>
> >>
> >
> >
> -------------------------------------------------------------------------
> > This SF.Net email is sponsored by the Moblin Your Move
> Developer's challenge
> > Build the coolest Linux based applications with Moblin SDK & win
> great prizes
> > Grand prize is a trip for two to an Open Source event anywhere
> in the world
> > http://moblin-contest.org/redirect.php?banner_id=100&url=/

> <http://moblin-contest.org/redirect.php?banner_id=100&url=/>
> > _______________________________________________
> > Projectpier-development mailing list
> > Projectpier...@lists.sourceforge.net

> <mailto:Projectpier...@lists.sourceforge.net>

> <http://globalvoicesonline.org>


>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's
> challenge
> Build the coolest Linux based applications with Moblin SDK & win
> great prizes
> Grand prize is a trip for two to an Open Source event anywhere in
> the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> <http://moblin-contest.org/redirect.php?banner_id=100&url=/>
> _______________________________________________
> Projectpier-development mailing list
> Projectpier...@lists.sourceforge.net

> <mailto:Projectpier...@lists.sourceforge.net>


> https://lists.sourceforge.net/lists/listinfo/projectpier-development
>
>
> �������wb��b�)ܢh��g��� ���[� FU�슉��]��X���ڵ�ڱ�Ӟ�מ�E�^jǃj׶��;

> �m4�^���ke===
> ------------------------------------------------------------------------


>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/

> ------------------------------------------------------------------------


>
> _______________________________________________
> Projectpier-development mailing list
> Projectpier...@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/projectpier-development
>

--
Usually something witty would go here, but as I'm the sort of guy who doesn't have a catch phrase I'm afraid this is nothing but more than ultra boring rubbish - which you've been suckered into reading :P


No virus found in this outgoing message.
Checked by AVG.

Version: 8.0.138 / Virus Database: 270.5.10/1585 - Release Date: 01/08/2008 06:39

Timothée Boucher

unread,
Aug 1, 2008, 12:17:29 PM8/1/08
to projectpier...@lists.sourceforge.net
 
What do you mean by an "incremental transition"?  Copying code over to
the rewrite or refactoring the current code enough so that it's much
easier to copy to a new "setup".
What I meant by "incremental transition" would be either one of these.
Actually, I could see three ways:
1. Start on a new framework, rewriting the current code "dumbly" to just work the way it does now and prepare the whole thing for further improvements (think about how Apple transitioned to Intel chips without changing anything else).
2. Rewrite the current code to make it easy to transition (kind of similar)
and for the crazy one: 3. Add the framework first, without changing anything else and then incrementally modify the code to use the new framework.

Well, I'm not sure of the method to do it but what I meant by "incremental transition" is mostly: is there a way to end up with a new framework down the road without having to start from scratch and instead be able to use it all along, the way it works right now.
My main concern, again, is that if we get started with a rewrite, we won't see any improvements for a long time. Additionally, I'm not convinced that a rewrite would seduce many developers since it would probably be a lot of boring tasks at first.

Tim

Andy Postnikov

unread,
Aug 1, 2008, 5:41:24 PM8/1/08
to projectpier...@lists.sourceforge.net
Again and again... A lot of thoughts about ways but what are we talking about?

Proposal to rewrite? What is a target? new features, speed and new bugs...

Suppose better to review a roadmap, maybe better to collect most
popular & demanded tasks|features

> At this point, I try to assess the decision using a few questions:
> 1) What does this gain/provide us with? or what problem does this solve?
> 2) What does this restrict or lose us? also, What does this cost?
> 3) Are there any other ways of achieving this? and their related merits.
> 4) Is this in the best interest of the community/project? and is this
> what the community wants?

First of all...
1) It brings a lot of new bugs. Solve some old problems but ...
2) loose compabillity, restrict in support older versions, brings a
lost of old customers and hard way of invit new. Cost is not cheep but
suppose very high!
3) Many ways...
- but first to document current code some way...
- then draw architecture and bottlenecks
- review code (mostly done)
- and only then make proposals! and costs :)
4) What purpose of Community? Bring bugreports & patches, answer a
support questions, collect opinions of features

My opinion is NOT rewrite but overview current state!

2008/8/1 Timothée Boucher <timothe...@gmail.com>:

-------------------------------------------------------------------------

Alex Mayhew

unread,
Aug 7, 2008, 6:01:34 PM8/7/08
to projectpier...@lists.sourceforge.net
Time to bump this thread a bit ;)


Andy Postnikov wrote:
Again and again... A lot of thoughts about ways but what are we talking about?

Proposal to rewrite? What is a target? new features, speed and new bugs...
Ok, here are some ideas I've been thinking about, most of them are based on what Ryan outlined in the roadmap email
This is a selection of features which pp desperately needs:
  • Events framework
    • To allow developers to interact with PP at specific intervals without having to hack the core / other components
  • Modular separation of code
    • To enable developers to package code as 'modules' so that they can reuse their code / share it with other developers
  • Organised file structure
    • Files should be separated into their respective groups i.e. -
System
  Helpers
  Libs
Application
  Controllers
  Libraries
  Vendors
  ....
Modules
  ....
    ....
    etc.
    • Allows for overloading of core components
  • ACL
    • Move permissions out of the models and into a library / dedicated model, current implementation is too spread out
    • Should allow permissions to be added dynamically
  • Unit tests
    • Allows developers to see if changes they make break the core
  • Project Config
    • Mainly for 'system' use, would allow developers to control config on a per project basis
  • CACHING!!
    • PP is currently terrible at caching - it only caches objects for the duration of a request. 
And here is one that I feel would be beneficial (but not 'necessary' for the project)
  • "Friendly urls"
    • Would allow emulation of basecamp api, which would allow pp to integrate with many products such as beanstalk, freshbooks etc.
    • Tim has made a friendly urls patch which does part of this - it translates {project_id}/{controller}/{action}?{params} to index.php?c={controller....., although parameters are still passed through a query string
At this point, I try to assess the decision using a few questions:
1) What does this gain/provide us with? or what problem does this solve?
2) What does this restrict or lose us? also, What does this cost?
3) Are there any other ways of achieving this? and their related merits.
4) Is this in the best interest of the community/project? and is this
what the community wants?
First of all...
1) It brings a lot of new bugs. Solve some old problems but ...
2) loose compabillity, restrict in support older versions, brings a
lost of old customers and hard way of invit new. Cost is not cheep but
suppose very high!
3) Many ways...
- but first to document current code some way...
- then draw architecture and bottlenecks
- review code (mostly done)
- and only then make proposals! and costs :)
4) What purpose of Community? Bring bugreports & patches, answer a
support questions, collect opinions of features
  1. We write the code, we know what's going on and why.  We will be able to fix a number of current problems (timezone support springs to mind)
  2. We lose backward compatibility with previous versions, then again we can't keep supporting old versions forever else we will never progress.  It would obviously require time to rewrite the entire project, however it's not as if we are currently using that time to develop pp as a team
  3. Yes, there are two:
    1. Refactor the current codebase
      1. We keep our 'identity' as a standalone application and have no dependencies on third party apps (barring vendor libraries)
      2. All the core functionality is present (i.e. tasks, milestones), we just need to make it extensible
      3. However, if we make a change we have no idea what the repercussions will be as we don't know what references it (unless we use a global "find / replace")
    2. Rewrite PP
      1. We can selectively include / exclude features
      2. We "know" the code
  4. The "community" want need to be able to customise and extend pp.  At the moment customising involves modifying core files and making sure you carry over the edits when you upgrade.  If we asked the community "Shall we rewrite PP" I imagine most wouldn't mind too much - They just want something that works, but don't really care how as long as they can upgrade easily. Those who have hired developers / invested time to customise their current installations will be a little peeved at the concept of having to recode all their modifications to work with a rewrite, although I'm sure they will be able to see the possible benefits of upgrading.  Finally, there will be others who think that we should stick with the current codebase.  The main purpose of the community is to test PP, submit feature / bug reports and if they are able to, patches.

Alex

side note - @Ryan, shouldn't the 3rd party libraries be svn:externals so that they can be kept up to date easily?

-- 
Usually something witty would go here, but as I'm the sort of guy who doesn't have a catch phrase I'm afraid this is nothing but more than ultra boring rubbish - which you've been suckered into reading :P
No virus found in this outgoing message.
Checked by AVG. 
Version: 8.0.138 / Virus Database: 270.5.12/1597 - Release Date: 07/08/2008 05:54

Andy Postnikov

unread,
Aug 8, 2008, 12:04:43 PM8/8/08
to projectpier...@lists.sourceforge.net
Thanx Alex! Great review.

IMO good starting point to discussions about parts of PP...

You point directions:
Events framework, Modular separation of code, Organised file
structure, ACL, Project Config, Unit tests, Caching

My next 5c - templating (theme layer)

Overview of this tasks lead my thoughts to different.

PP already got good ORM but it needs little bit changed to be more
modular. From this point we need to change core or ORM. At this moment
suppose it is subject-driven but you talk about event-driven ORM. It's
a thinest place of paradigm - architecture! We need more opinions
about!

For example: posting a task. Task class should notify about it's
creation, latter task obj should notify about editing insertion and so
on. Today we add functions to task class to call other objects and
methods. In Alex's proposal we need parent class which already got
methods to subscribe on object events (is it event subscribing?).
Another way 'drupalish' - hook somelike as events but there's no
subscribers just look whole namespace for patern-functions - this way
is flexible but brings a lot of memory scans for function names
(drupal 7 now have a registry of events).

Next a file structures - depends on Architecture. ACL, Config, Caching
is a superclasses there implementations can store data bypassing to
data-layer in different backends.

Render-theme-template should be a pluggable suppose some kind of view as pp has.

Cons: let's take a closer look at current architecture with all +&-.
Most of classes alredy implement whole functionality so we need review
current MVC model and maybe code some abstract classed and pluggin
gates.

Waiting for opinions!

Andy

2008/8/8 Alex Mayhew <al...@sigswitch.com>:

Reply all
Reply to author
Forward
0 new messages