On Wed, Aug 8, 2012 at 6:15 PM, Dave Fisher <dave2w...@comcast.net> wrote:
> I totally agree. Maintaining an unstable version will actually make more 
> work. Just when you think it is stable enough to move into trunk, you have to 
> make it stable again in trunk.
>
> The community should be perfectly capable of deciding when trunk should be 
> made stable for an upcoming release and stop making ill considered changes.

We argued about this for days at $work, then we finally stumbled on a
solution. Flip the model around. Trunk becomes the unstable, do
whatever you want, development branch. Create a separate stable or
release branch where code gets "promoted" to.

The process is still evolving. We haven't quite figured out the best
way to "promote" code in svn. Here's what I *think* we'll move to
pretty soon:

1. Trunk is still the unstable development branch.
2. People create feature branches for work that can't be completed in
short order. Merge often from trunk to your feature branch.
    2a. When feature branch is done, merge --reintegrate back to trunk.
3. Trunk is always pretty close to being ready to release even though
it is considered unstable.
4. When we are close to a release we restrict changes on trunk to
those related to the release.
5. Tag releases.
6. For a patch/bugfix release create a branch from the previous tag.
Make the bugfix in the branch. Be sure to make it in trunk also
(sometimes it's easier to make the change in trunk then merge it to
the branch).
    6a. Tag the patch/bugfix release

Not fully fleshed out, but a basic plan.

Greg

Reply via email to