[Zope3-dev] RFC: Release cycles
Philipp von Weitershausen
philipp at weitershausen.de
Thu Sep 30 05:27:05 EDT 2004
Hi all,
the recent discussion about future Zope3 releases worries me. Here's an
informal proposal for settling this:
Goals
As Zope3 developers we want
- to take our time developing the software (speed kills!)
- provide good quality software
As consultants with customer projects, we also want
- good release management with a reliable release cycle
- code that is contributed showing up in releases a.s.a.p.
Proposal
I think these two sets of interest don't have to be exclusive. Statements on
this list predict a year until X3.1 is released. I don't think it has to take
that long (though I'm not saying we should rush this release). I really think
that X3.1 could and should be delivered quite soon -- it's just a matter of
defining what X3.1 is.
Many things have been planned for X3.1. Stephan has already tackled one of the
big tasks, ImplementViewsAsAdapters; other minor improvements that didn't make
it into X3.0 are also already sitting in trunk or about to be committed.
However, other things that were originally planned for X3.1 have not even been
thought through properly (correct me if I'm wrong), like local configuration
through ZCML. I see no reason whatsoever holding off X3.1 for them; why
couldn't they go into X3.2, X3.3, etc., when they're ready?
I suggest to adopt a release management similar to Debian's (except that they
take ages for new releases which we don't want). A short period of time after a
certain version is released (e.g. X3.0), the next version (e.g. X3.1) should be
branched off from the trunk. At that time the branch is under a feature freeze
like the X3.0 branch was when it was branched off. The trunk will be open for
new features as usual.
What this proposal is not
This is purely a proposal regarding when to branch, when to release and what to
put in which branch. I'm NOT proposing to change any of the quality assurance
measurements we've been taking, including the actual speed of development on
certain features. Taking time to find use-cases, write proposals, implement and
test features is still important! My concern is just that features needing this
much time would hold off releases of otherwise releasable features.
I'm also not proposing to set a specific time period that a release cycle
should take. Quality code takes time and that's ok. It is all about getting
already implemented features out. However, I imagine that X3 releases could
happen every 6 months or so, but that's just an estimate.
Advantages
- shorter release cycles
- new features appear in releases quicker
- contributors get to use features that they implemented earlier
- changesets from one version to another are smaller, making transitions
smoother; that would also be a lot easier on 3rd party developers who
need to adjust their software when new versions are released.
- legacy code for backward compatability can be removed sooner
Disadvantages
- more overhead for the developers (though I think this is marginal if at all
existant; I expect not more than two branches [trunk and to-be-released
branch] to be active at a time, so it'd be just like now.)
- probably need a release manager
Those who are involved into Plone I'd like to remind about the 2.0 release.
Initially a 1.1 release was planned after 2.0. It provided a relatively small
set of improvements. Before someone could put his foot down, lots of stuff was
checked in and 1.1 started to blow up. Initially a 1.1 release was planned for
September 2003; 6 months later, in March 2004, it was released, but as 2.0
because of the many additions. Many people who based their business on Plone
and needed something like 1.1 in late 2003 (including me) critized the release
management. Everyone learned their lesson and Plone now has an official release
manager.
Another good example from Zope's own history is be the release of 2.7, though I
think this one took so long for several different reasons (I frankly don't
remember). Fact is that now with Andreas being the release manager, 2.7 bugfix
releases are popping out regularly...
Looking forward to your comments,
Philipp
More information about the Zope3-dev
mailing list