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:
- New development
- Where new development starts
- 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 SCM 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.
New development
How new development starts
...
If issues closed on the trunk should go into the branch, the release manager or other developers may choose to reopen them with the new fix for, merge and commit then close on the new target version.
Releases
Current release process
- Declare your intention to do a release through the mailing list
- Show reports on issues fixed and new features added
- Identify issues that needs to be fixed prior to the release and those that should be rescheduled
- All unit and integration tests should pass
- Use maven-docck-plugin to check for documentation standards compliance
- Deploy a snapshot for voting reference
- Call for a vote
Creating a release branch
...
No Format |
---|
svn copy -m "Create Maven 2.0.x branch" \ svn://svn.apache.org/repos/asf/maven/components/trunk \ svn://svn.apache.org/repos/asf/maven/components/branches/maven-2.0.x |
...
- TODO we need to set up multiple CI processes
...
No Format |
---|
svn co svn://svn.apache.org/repos/asf/maven/components/branches/maven-2.0.x |
Calling a vote for a release
...
No Format |
---|
cd <the-branch> svn propedit svnmerge-integrated <start-edit> /maven/components/trunk:1-368287,368989,369304,<your-revision> <end-edit> svn commit |
...
Keep in mind the revisions are revisions on the trunk. So if you started in the branch and merged to the trunk then make sure it's the id of the revision on the trunk!
...