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.
...