Hi Laurence,

+1 to everything here.

Other big things for me:

 - I think we want Deco GUI + Blocks rendering as an optional add-on
for Plone 4.x at some point, to get this tested properly.

 - I think we want WSGI as a supported deployment option in 4.x, 5.0
at the latest, via the Zope 2.13 WSGI work

Martin

On 3 September 2010 04:39, Laurence Rowe <l...@lrowe.co.uk> wrote:
> With the release of Plone 4.0, I thought it would be useful to set out
> my understanding of where we are headed with future releases. This
> draws heavily on conversations with Hanno and focuses on
> infrastructure rather than user visible changes.
>
> The intention is to spark a discussion from which I'll write up a roadmap on
> plone.org or dev.plone.org. All plans are of course subject to change - but
> it is useful to set out a direction.
>
> Over the years, Plone has accrued much code and added many concepts.
> In part this is a reflection of the vibrancy of the project, but it
> has come at a high cost in complexity.
>
> Hanno has been doing heroic work with Zope 2 and the ZTK recently, and
> we will soon be able to completely avoid the large chunks of old Zope
> 2 code we do not use at all.
>
> Acquisition
> -----------
>
> Acquisition was introduced because the ZODB did not support reference
> cycles. As a programming paradigm though – at least in the implicit
> form used within Zope 2 – it has been a failure. It is strange and
> unfamiliar to new developers.
>
> It also prevents us from using some natural patterns: the catalogue
> indexes content by path rather than directly; references between
> content must be indirected through a path.
>
> Phillip and Hanno's work to enable Acquisition over __parent__
> pointers (included in Zope 2.12 / Plone 4) has given us a path out of
> our current dependency on it. This has already simplified
> BrowserViews. The next step is to make sure all content has __parent__
> pointers all the way to the application root. We should do this for
> Plone 5 and drop Acquisition entirely in a future version.
> http://wiki.zope.org/zope2/SetParentAndNameInOFS
>
> Catalogue and References
> ------------------------
>
> Once all content has __parent__ pointers to the root, we will be able
> to use standard ZTK catalog components. Using zope.intid for the
> catalogue keys allows result sets to be merged across catalogues.
>
> We'll also be able to store relations as simple references on content
> - related items can be stored as a simple list of objects on a piece
> of content. These can then be indexed in zc.relation directly.
>
> Archetypes
> ----------
>
> Plone 5 should be the last major release with Archetypes
> compatibility. For form based content types, Dexterity is the future.
>
> The Publisher
> -------------
>
> The Zope2 publisher has become incredibly complex, with numerous
> different hooks. In the long run (Plone 6?) we should replace it with
> our own simplified publisher which runs only in a WSGI pipeline. There
> will be a lot to learn from BFG here, though that is probably too
> simplistic for Plone.
>
> OFS and CMF
> -----------
>
> Currently, all Zope2 content inherits OFS.SimpleItem. All Plone
> content also inherits from CMF. In the long run, content items should
> have simple classes with code in views. These are significant changes
> and are likely to be the most difficult.
>
> Restricted Python
> -----------------
>
> This is another confusing hurdle for new developers and should be abandoned.
>
> Form Controller
> ---------------
>
> Other than the Archetypes edit forms, it would be best to remove all other 
> uses.
>
> Tools
> -----
>
> The various tools should become utilities and views. Most of them need
> not be persistent as settings can be stored with plone.registry.
>
> Skins
> -----
>
> Old style templates should be replaced with views. CSS/JS/Images
> should all migrate to resource directories.
>
> Python 3
> --------
>
> In three to five years time we will have to have moved to Python 3. It
> seems likely that there will be others to help the ZTK porting effort,
> but little interest in porting Zope2. For the time being then, our
> focus should be on progressively removing our Zope2 baggage.
>
> WSGI
> ----
>
> Various components should be move out of Plone and into the WSGI
> pipeline. This should allow us to share code with other projects.
> Prime contenders would be:
>
>  * Authentication
>
>  * Resource registries
>
>
> Laurence
> _______________________________________________
> Framework-Team mailing list
> Framework-Team@lists.plone.org
> http://lists.plone.org/mailman/listinfo/framework-team
>
_______________________________________________
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team

Reply via email to