Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Development Process

This document serves as the touchstone for the development process that is used by the Maven project to manage branches and the trunk during the development leading up to releases.
In particular the following will be addressed:

  • Where new features are developed
  • Releases
    • Creating a release branch
    • Working on a release branch
    • Creating release candidates (RCs) from a release branch
    • Soak period for RCs
    • How to integrate bug fixes into an RC
    • Generating an official release
    • How to integrate bug fixes into a release branch
  • Experimental, complex bug fix, and high-risk change branches

The terminology used here is somewhat SVN specific as that is the tool the Maven project uses. At some point we would like to generalize these strategies for all SCMs and integrate these strategies into general tools where Maven SCM can deal with the operations outlined here in an SCM independent fashion.

Where new features are developed

All new features should be integrated into the latest revision or the trunk. Once a new feature is implemented and integrated into the trunk it can then be decided which branches the new features should be applied to. There may be rare cases where a new feature only applies to a particular branch but in general all new features go to the trunk first and disseminated from there.

Releases

Creating a release branch

  • Make sure that everyone has checked in their local modifications before the branch is created.
  • Copy using URLs as everything will occur on the server and be faster.

To create a branch to prepare for a release us the following command:

No Format

svn copy -m "Create RB-1.0 branch" svn://svn.apache.org/repos/asf/maven/XXX/trunk svn://svn.apache.org/repos/asf/maven/XXX/branches/RB-1.0

Working in Release Branch

To work on a release branch you can either checkout the branch or switch and existing working copy to the branch. It is probably easier to checkout the branch in a different directory so that you can work on the trunk and branch at the same time.

No Format

svn co svn://svn.apache.org/repos/asf/maven/XXX/branches/branch1

Creating release candidates (RCs) from a release branch

Soak period for RCs

How to integrate bug fixes into an RC

Generating an official release

When you are ready to create a release you need to create a tag

No Format

svn copy -m "Tag release 1.0.0" svn://svn.apache.org/repos/asf/maven/XXX/branches/branch1 svn://svn.apache.org/repos/asf/maven/XXX/tags/REL-1.0.0

How to integrate bug fixes into a release branch

/----------/

This page serves as the touchstone for the development process that is used by Maven to manage branches and the trunk during the development leading up to releases.

...