On Tue, 2008-08-05 at 13:20 -0400, Will Coleda wrote:
> On Tue, Aug 5, 2008 at 1:10 PM, chromatic <[EMAIL PROTECTED]> wrote:
> > Gah, no maintenance releases please!  See "Mommy, why did it take over five
> > years to release a new stable version of Perl 5 with a bugfix I made in
> > 2002?"
>
> Perhaps I used an official term when I didn't mean to here.
> 
> Let's simplify: I can easily see us needing at least "dev" and
> "production" branches (one of which can be trunk), which is one more
> than we have now.

We will definitely need multiple long-lived branches.  Just to make
explicit the reasoning: data loss, security, or otherwise critical
bugfixes that should be backported to one or more already released
versions and re-released immediately.  That's a lot harder if you don't
have release branches.  Of course, you can branch lazily, since releases
are tagged.  But we have to assume that there *will* be multiple
long-lived branches that won't merge and go away.

However, I'm against the practice of branching before release to
"stabilize" an assumed-crazy trunk.  I prefer the (general) way we do
things now: releases are made from the trunk code, which is kept as
high-quality as possible; small changes are made directly to trunk;
large changes are made in a branch and merged to trunk when ready.

The details may be ripe for improvement, however.  There seems to be an
implicit assumption from at least some of us that a "merge back to
trunk" should be (or even 'needs' to be) an all or nothing affair.
Several SCMs make it easier to cherry-pick changes from the branch,
merge them back to trunk, and keep the diff in even a long-lived feature
development branch as small as possible.  git for example (combined with
Stacked GIT or a similar tool) has decent support for altering existing
commits in a branch to make them easier to merge piecemeal.  I don't
have enough SVK fu to know how well this development model is supported
there.


-'f


Reply via email to