Apache OFBiz Release Plan
NOTE DEJ20060909: This document is still being created and is not a final draft, but should contain most of the operations needed to create a release. We may want to add more sections on preparing for a release such as more on testing, and stuff on the NOTICE, LICENSE, KEYS, etc files.
General Goals, Policies and Process
Info | ||
---|---|---|
| ||
After the svn tag "beforeSvnRestructuring" the repository strcture has changed please refer to history for information before this tag |
The What, Why and How of Apache OFBiz
...
- Release branches will be created approximately once per year; these will represent a new minor version number, and in cases of major and/or non-backward compatible changes a major version number. We have decided recently (February 2009) to use the same release numbering scheme than Ubuntu (for instance, 9.4 means released in 2009 in April). This information is used in backend footer to know wich Release.revision is used...
- The trunk will never go into a feature-freeze state but rather development will continue and contributions will be accepted both immediately before and after the cutoff revision for a release branch
- An initial pre-built package will be created and made available to help get people started with the branch
- Once a release branch stabilizes an initial a "stable" release tag and pre-built release package will be issued
- Patches on the release branch can be created and applied whenever users desire
- Follow on release tags and pre-built release packages will be issued when major problems are discovered and fixed, and periodically to represent a significant number of fixes and updates
- Each new release tag and pre-built release package with will be represented by a third position version number change
How to do OFBiz Release-Related Tasks
Steps for testing a revision or branch before a release:
- For revision: svn export -r ${revision-number} http://svn.apache.org/repos/asf/incubator/ofbiz/trunk ofbiz
- For branch: svn export http://svn.apache.org/repos/asf/incubator/ofbiz/branches/$\{branch-name} ofbiz
- cd ofbiz
- ant run-tests
Wiki Markup Check results... (search for \[JUNIT\])
- cd ..
- rm -Rf ofbiz/
Steps for a test snapshot type "release":
- Example file-base-name: apache-ofbiz-incubating-4.0.0.RC1
- svn export http://svn.apache.org/repos/asf/incubator/ofbiz/trunk ${file-base-name}
- cd ${file-base-name}
- echo ${revision-number} > REVISION
- ant run-install
- cd ..
- zip -r ${file-base-name}.zip ${file-base-name}/
- tar -czvf ${file-base-name}.tgz ${file-base-name}/*
- gpg --output ${file-base-name}.zip.asc --detach-sig --armor ${file-base-name}.zip
- gpg --output ${file-base-name}.tgz.asc --detach-sig --armor ${file-base-name}.tgz
- openssl md5 ${file-base-name}.zip > ${file-base-name}.zip.md5
- openssl md5 ${file-base-name}.tgz > ${file-base-name}.tgz.md5
Steps for creating a branch in preparation for a real release:
NOTE: these steps all start with an svn co command though it is not intended that this would be done each time such an operation is done, rather it is to show context with an expectation that those doing these operations would already have a checkout somewhere to start from.
- Exaple branch-name: release4.0 (for a series of releases using 4.0.0, 4.0.1, 4.0.2, etc)
- svn co https://svn.apache.org/repos/asf/incubator/ofbiz ofbizroot
- cd ofbizroot
- svn copy trunk branches/${branch-name}
- svn commit -m "Created new branch: ${branch-name}"
...
- (since February 2009 seems that we will prefer to use the revision number for that)
- Because it needs too much work, at some point older releases will not be supported by the community (trunk patches not backported)
Steps for back-porting a fix from the trunk to a release branch
...
:
- cd into the checked out release branch folder
- $
- svn co https://svn.apache.org/repos/asf/incubator/ofbiz/branches/$\{branch-name} ofbiz
- cd ofbiz
- svn merge -r ${revision-1}:${revison} http://svn.apache.org/repos/asf/incubatorofbiz/ofbiz-framework/trunk
- $ svn commit -m "Applied fix from trunk for revision: ${revision}"
Steps for creating a release from a branch:
...
Alternatively you can use the ./tools/mergefromtrunk.sh (or .\tools\mergefromtrunk.bat) tool.