Hi,
We've been discussing during the last Desktop meeting about the release
process and the idea to move from a Feature Driven Release to a Schedule
Driven Release (see the meeting notes:
http://chandlerproject.org/Journal/AppsMeeting20070918#Move%20to%20scheduled%20releases).
The main motivation is to get to a situation where we release Chandler
more frequently so we don't delay getting bug fixes and new features in
the hands of users for months. This point at least is one with a general
consensus (echoed by Andi's "no more 9 months releases" quip and others
folks similar comments here on that list).
There were some points made during the meeting so no clear consensus
achieved. We agreed to bring the issue to the list (which I'm doing
right now).
Proposal and points of contention:
- Release once a month: some proposed 6 weeks (4 weeks dev time, 2 weeks
debug stabilization) but the idea is that we work under an evergreen
trunk policy so we don't destabilize trunk, also a monthly release makes
it easier to punt something to the next release (users won't have to
wait too long) than a 6 weeks cycle.
- Choice of what makes it in releases: we need a process to decide what
makes it into a release, the risk is to take too much and slip so making
the process moot. The point of rapid cycles though is that punting is
not a huge penalty to users so getting a feature punted is not a big
deal, we can consider the release cycle like a pick up system, the
release being whatever made it to the pick up time. We need a system
though so that devs know what to work on first (see below for a proposal).
Process (draft, lots of details to be worked out but that's the basic):
- All bugs fair game for 0.7.x releases marked targetted "0.7.future"
- Bug Council and PPD to set the priority and put a set of those bugs in
current targetted release (e.g. "0.7.1")
- Devs to work on those (in branches if necessary): Commit small fixes
(after code review) on the trunk, keep big fixes and feature development
(e.g. month view, big refactoring projects) on dev branches (this is
basically Grant's s3 proposal for SVN). Heikki pointed that this
certainly means we need a policy for accepting big dev branch merges
only at the beginning of cycles (in the first 2 weeks for instance).
- 1 week before branch time, check where unfinished stuff are and punt
the ones that are too risky to take that late (they'll be picked up next
time)
- on T0 branch and start QA acceptance procedure
- on (T0 + 1 week) release (possibility of small bug fixes on the branch
if blockers found but we expect them to be few considering the dev process)
Notes:
- QA needs a week to qualify Chandler Desktop on the 3 platforms (run
the acceptance tests) so a super frequent release cycle would be impractical
- The first iteration will be longer than the others due to the 1 week
QA process but note that the dev cycle of the next version start at T0
(as soon as we branch)
- Cosmo is currently using a similar process (so it's not like we're
jumping in total unknown...) and it worked apparently pretty well for
them. We have some extra process challenges though for Desktop but I'd
like to see a consensus on the general idea before splitting hair on the
minutiae of the process.
Comments very welcome.
Cheers,
- Philippe
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Open Source Applications Foundation "chandler-dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/chandler-dev