[Framework-Team] Re: PLIP lifecycle

2008-12-27 Thread Ross Patterson
Hanno Schlichting hanno...@hannosch.eu
writes:

 The exact way to involve the UI and documentation team needs to be
 defined. I think we should write up the process first and then sent it
 for comments to the two others team. We can incorporate their feedback
 in terms of when and how they like to be involved.

It seems like it's important that this part be both structural and
lightweight.  By structural I mean there should be more than just a we
should think about docs when discussing the PLIP gesture.  We could
define this either through procedure alone or through the tools.  Could
we include reviews by the other teams in the Trac workflow for PLIPs?
That would remove any requirement that someone on the FwT *remember* to
check for the external team reviews.  :)

One way to keep these cross-checks lightweight might be to start with a
statement of impact.  There are code changes, for example, that have no
UI impact.  In such cases, it would be fast and more painless if a PLIP
champion noted this.  Someone from the UI team could then corroborate
that the PLIP entails no UI impact and that would be the end of it.  If
there is an impact, then the PLIP champion would need to include full UI
consideration for the impact in the PLIP.  The UI team could then review
both the statement of impact for accuracy and the UI consideration for
sufficiency and completeness.  The same would largely be true for the
doc team with the exception that, IMO, all changes have a documentation
impact even if it's only for developers and so there should be no option
to declare no impact.

Ross


___
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team


[Framework-Team] Re: [plone4] Release process

2008-12-27 Thread Ross Patterson
Hanno Schlichting hanno...@hannosch.eu
writes:

 - Plone 4 will be primarily a feature based release, not time-based
...
 - Plone 4 will be released based on an agile approach

+1  I like this approach a lot.  I've been worrying about how to be
ambitious while still ensuring that Plone 4.0 is something more than
perpetual pie-in-the-sky.  The proposed approach seems to strike an
ideal balance.

 We need to address various major problems with Plone of which some
 will block a new release from my point of view. For example noticeably
 increased performance, unifying similar concepts (portal skins vs.
 Zope3, viewlets vs. macros vs. portlets), a better page composition
 story (no more folder_listings, display menu) and a leap in our
 technical base (Python 2.6 and WSGI).

+1 There are a lot of issues I think need urgent improvement in Plone,
but I also agree it's important to be as conservative as we can in terms
of what issues we allow to block Plone 4.  This list is pretty much
exactly what I'd restrict myself to were it left to me.

 The possibility to easily use a non-Archetypes based content type
 story is blocking a new release for me as well. Switching to a new
 default story is something I don't consider possible in the next year
 right now, but might be convinced otherwise.

+1

I think it would be a mistake to switch to a non-AT based story as
the default story before 4.5.  My reasons are largely psychological and
anthropological.  I think many in the integrator community and the
accidental-technologist-turned-developer community are dealing in part
with a sense that Plone is too much of a moving target.

OTOH, many in the developer community, such as myself are having less
fun coding with Plone because of all the history represented in the code
base.  Many in the consultant community are also having more pain from
projects that find the learning curve and rabbit holes that stem from
keeping history alongside new technology.

It seems that we have fairly widespread agreement that getting this
balance right is one of the most important things we need to fix with
Plone 4.  So I would like to see something of a slight-of-hand here.
I'd like to get us to the point where there is a new content type/schema
definition story that will make developers happy again.  I'd also like
to ensure, however, that small Plone deployments with a few custom AT
content types don't have a psychological assault when they *read* that
AT is no longer the The Way in Plone 4.  I'd prefer a carrot to a
stick.  Your AT content types should be fairly easily portable to Plone
4!  BTW, if you want your content types to perform better, take a look
at dexterity (or whatever)!

I think it's also important, however, that there be a *flavor* of Plone
that uses *only* the next generation of content type/schema definition
for those developers like myself that are eager to just move on.
Fortunately, this seems easily doable in a setuptools world.

Of course this raises the concern of yet again running two different
technologies side-by-side.  To mitigate this, I'd be in favor of moving
very quickly to a 4.5 that completely removes AT as a part of
Plone-the-product at the very least.

Ross


___
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team


[Framework-Team] Re: [plone4] Release process

2008-12-27 Thread Ross Patterson
Tres Seaver tsea...@palladion.com writes:

 Ross Patterson wrote:
 Tres Seaver tsea...@palladion.com writes:
 
 Hanno Schlichting wrote:

 - Plone 4 will have a documented upgrade story

 A migration from Plone 3 to 4 does not need to be possible in an
 almost fully automated fashion. We need to ensure we have an easy
 to follow and understandable documented upgrade story. If we for
 example change API's or rearrange code, we can document the new
 places in writing and with error references for the most commonly
 used parts. If you need to change your buildout configuration, a
 document explaining the changes is fine, we don't need to build an
 upgrade machinery for configuration files.
 Can I persuade you and the FWT to forego an upgrade-in-place
 strategy for moving from P3 to P4, and instead to have a well-tested
 ad documented dump-and-reload story?
 
 I've never actually understood how a dump-and-reload approach would
 be inherently more maintainable or otherwise more trouble-free.  I
 know this has been discussed before, but I missed those discussions.
 Can anyone shortcut the research for me and give me some links or
 pointers to previous discussions?

 The short answer is that in-place migrations lead to
 ordering-dependent arrangements of crufty bits in the site: it gets
 particularly bad when the representation format of the data changes.
 If the programmer is both careful and lucky, she can often mitigate
 the problem with clever defaults, properties, etc., but the downside
 is that the BBB-driven code has to stay around *forever*.

Thanks, that's exactly what I wanted to hear.  So it's not so much about
being inherently easier to implement as it is about enabling the removal
of code.

In that case, I'm +1 on this but I have other concerns.

 Dumping the content out to a neutral format and loading it into a
 clean site loses the crufty bits, and leaves the code in the new
 software free of nasty BBB stuff.  It also gives people a migration
 target (for moving content into Plone, or even out of it), as well as
 a non-ZODB-specific backup representation of the site (e.g., to
 populate a staging / testing server).

It seems like this this dump format will likely become a point of
hackability in our software ecosystem.  People out there will find
interesting things to do with it aside from dump-and-reload.  This would
be a good thing except we're *expecting* the format to be unstable and
change rapidly.  It seems possible that there would be some ruffled
feathers out there amongst those who come to depend on such hacks and
then find that their favorite hack is quickly broken by the next
release.  As such, it seems like it would be a good idea to dress up the
dump format in flashing red lights and loud alarms to discourage at
least the adoption of such hacks if not their creation.

It also seems like the complexity of this dump format is easily
underestimated.  I'm a little concerned that we'll adopt a solution that
is more accidental in nature, such as an extension to the current GS
handlers.  I suspect that later we'd find some structural inadequacies
in such an approach but having already build our upgrade machinery
around it we'll have yet another painful change to make as we change to
something better designed.  OTOH, perfect is the enemy of good enough.
I suggest we start with a *minimal* design discussion about how to
architect a dump-and-reload strategy with the future in mind.

Ross


___
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team


[Framework-Team] Re: [plone4] Release process

2008-12-27 Thread Tres Seaver
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Ross Patterson wrote:
 Tres Seaver tsea...@palladion.com writes:
 
 Ross Patterson wrote:
 Tres Seaver tsea...@palladion.com writes:

 Hanno Schlichting wrote:

 - Plone 4 will have a documented upgrade story

 A migration from Plone 3 to 4 does not need to be possible in an
 almost fully automated fashion. We need to ensure we have an easy
 to follow and understandable documented upgrade story. If we for
 example change API's or rearrange code, we can document the new
 places in writing and with error references for the most commonly
 used parts. If you need to change your buildout configuration, a
 document explaining the changes is fine, we don't need to build an
 upgrade machinery for configuration files.
 Can I persuade you and the FWT to forego an upgrade-in-place
 strategy for moving from P3 to P4, and instead to have a well-tested
 ad documented dump-and-reload story?
 I've never actually understood how a dump-and-reload approach would
 be inherently more maintainable or otherwise more trouble-free.  I
 know this has been discussed before, but I missed those discussions.
 Can anyone shortcut the research for me and give me some links or
 pointers to previous discussions?
 The short answer is that in-place migrations lead to
 ordering-dependent arrangements of crufty bits in the site: it gets
 particularly bad when the representation format of the data changes.
 If the programmer is both careful and lucky, she can often mitigate
 the problem with clever defaults, properties, etc., but the downside
 is that the BBB-driven code has to stay around *forever*.
 
 Thanks, that's exactly what I wanted to hear.  So it's not so much about
 being inherently easier to implement as it is about enabling the removal
 of code.
 
 In that case, I'm +1 on this but I have other concerns.
 
 Dumping the content out to a neutral format and loading it into a
 clean site loses the crufty bits, and leaves the code in the new
 software free of nasty BBB stuff.  It also gives people a migration
 target (for moving content into Plone, or even out of it), as well as
 a non-ZODB-specific backup representation of the site (e.g., to
 populate a staging / testing server).
 
 It seems like this this dump format will likely become a point of
 hackability in our software ecosystem.  People out there will find
 interesting things to do with it aside from dump-and-reload.  This would
 be a good thing except we're *expecting* the format to be unstable and
 change rapidly.  It seems possible that there would be some ruffled
 feathers out there amongst those who come to depend on such hacks and
 then find that their favorite hack is quickly broken by the next
 release.  As such, it seems like it would be a good idea to dress up the
 dump format in flashing red lights and loud alarms to discourage at
 least the adoption of such hacks if not their creation.
 
 It also seems like the complexity of this dump format is easily
 underestimated.  I'm a little concerned that we'll adopt a solution that
 is more accidental in nature, such as an extension to the current GS
 handlers.  I suspect that later we'd find some structural inadequacies
 in such an approach but having already build our upgrade machinery
 around it we'll have yet another painful change to make as we change to
 something better designed.  OTOH, perfect is the enemy of good enough.
 I suggest we start with a *minimal* design discussion about how to
 architect a dump-and-reload strategy with the future in mind.

I have code in hand which I have used successfully for two different
customer projects:  one was using mostly stock Plone content types,
while the other used entirely custom versions;  both were based o AT.
This format has allowed:

 - Exporting content from a large production site (50k content items),
   without taking the site down.

 - Merging content from multiple Plone sites into a single site, by
   running automated transforms of the exported formats.

The basic assumption of the design is that *every* content object maps
onto a directory:

 - Each directory contains a file which exports the item's properties
   in an INI format

 - BLOBish property values are mapped as separate files.

 - References are mapped as sequeces of UIDs in the properties file.

 - Containers have a file enumerating their subobjects.

 - Security settings are caputred in a separate INI file.

 - Workflow history would map onto a separate file (but neither project
   wanted to preserve the history, so it remains unimplemented).

The format is built around GenericSetup's adapters, which makes it
possible to extend the framework (e.g., to capture unforeseen values),
or to replace implementations (e.g., to accomodate non-AT content
schemas).  It does not use XML at all, which means it will run even in
environments where building lxml is problematic.


Tres.
- --
===
Tres Seaver 

[Framework-Team] Re: [plone4] Release process

2008-12-27 Thread Alexander Limi
On Sat, 27 Dec 2008 10:16:15 -0800, Ross Patterson  
m...@rpatterson.net wrote:



So I would like to see something of a slight-of-hand here.


Sleight. Just because I used to make the same mistake myself. ;)

Speaking of Dexterity:


Sleight, meaning dexterity or deceptiveness, comes from the Old Norse  
slœgð.[3] Sleight of hand is often mistakenly written as slight of hand.  
Slight descends from the Old Norse slettr, meaning plain, flat, even,  
smooth, level.




Sorry for the aside, I found it amusing and somewhat relevant, with the  
Old Norse (Martin ;) behind Dexterity, etc. :)



I think it's also important, however, that there be a *flavor* of Plone
that uses *only* the next generation of content type/schema definition
for those developers like myself that are eager to just move on.


Yup, the idea is to make AT *optional* (but still default), and to be able  
to supply a Dexterity-based alternative. Then we can work on the migration  
story from AT-Dexterity without that being a blocker for 4.0.


In other words, if you start a new project, you'll probably want to look  
into Dexterity-based types — if you have an existing site running  
Archetypes, you'll probably want to keep that for the time being. This  
means that developers that know what they are doing and/or new users could  
go with Dexterity immediately, whereas the people that mostly care about  
keeping their existing site running could stick with AT.


We might also choose to only support the new layout model with the new  
types, if this makes it easier to manage. We'll cross that bridge when we  
get there.



Of course this raises the concern of yet again running two different
technologies side-by-side.  To mitigate this, I'd be in favor of moving
very quickly to a 4.5 that completely removes AT as a part of
Plone-the-product at the very least.


This would have to be named Plone 5.0. Replacing the default types  
approach is a huge undertaking, especially from the upgrade side. If Plone  
5.0 was a release that only did this change, I'd still be happy with it. :)


--
Alexander Limi · http://limi.net


___
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team


[Framework-Team] Re: search function for plone.org and for Trac

2008-12-27 Thread Alexander Limi
On Sat, 27 Dec 2008 07:58:58 -0800, Graham Perrin  
g.j.per...@bton.ac.uk wrote:


Might PloneTrac http://plone.org/products/plonetrac/ provide a useful  
foundation to any of this? From its January 2007 (alpha) description:


No. ;)

--
Alexander Limi · http://limi.net


___
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team


[Framework-Team] Re: PLIP lifecycle

2008-12-27 Thread Alexander Limi
On Sat, 27 Dec 2008 09:56:23 -0800, Ross Patterson  
m...@rpatterson.net wrote:



One way to keep these cross-checks lightweight might be to start with a
statement of impact.  There are code changes, for example, that have no
UI impact.  In such cases, it would be fast and more painless if a PLIP
champion noted this.  Someone from the UI team could then corroborate
that the PLIP entails no UI impact and that would be the end of it.  If
there is an impact, then the PLIP champion would need to include full UI
consideration for the impact in the PLIP.  The UI team could then review
both the statement of impact for accuracy and the UI consideration for
sufficiency and completeness.  The same would largely be true for the
doc team with the exception that, IMO, all changes have a documentation
impact even if it's only for developers and so there should be no option
to declare no impact.


This sounds like a good starting point. +1.

--
Alexander Limi · http://limi.net


___
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team