Versions Compared

Key

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

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
titleRepositoy structure

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:

  1. For revision: svn export -r ${revision-number} http://svn.apache.org/repos/asf/incubator/ofbiz/trunk ofbiz
  2. For branch: svn export http://svn.apache.org/repos/asf/incubator/ofbiz/branches/$\Image Removed{branch-name} ofbiz
  3. cd ofbiz
  4. ant run-tests
  5. Wiki Markup
    Check results... (search for \[JUNIT\])
  6. cd ..
  7. rm -Rf ofbiz/

Steps for a test snapshot type "release":

  1. Example file-base-name: apache-ofbiz-incubating-4.0.0.RC1
  2. svn export http://svn.apache.org/repos/asf/incubator/ofbiz/trunk ${file-base-name}
  3. cd ${file-base-name}
  4. echo ${revision-number} > REVISION
  5. ant run-install
  6. cd ..
  7. zip -r ${file-base-name}.zip ${file-base-name}/
  8. tar -czvf ${file-base-name}.tgz ${file-base-name}/*
  9. gpg --output ${file-base-name}.zip.asc --detach-sig --armor ${file-base-name}.zip
  10. gpg --output ${file-base-name}.tgz.asc --detach-sig --armor ${file-base-name}.tgz
  11. openssl md5 ${file-base-name}.zip > ${file-base-name}.zip.md5
  12. 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.

  1. Exaple branch-name: release4.0 (for a series of releases using 4.0.0, 4.0.1, 4.0.2, etc)
  2. svn co https://svn.apache.org/repos/asf/incubator/ofbiz ofbizroot
  3. cd ofbizroot
  4. svn copy trunk branches/${branch-name}
  5. 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

...

:

  1. cd into the checked out release branch folder
  2. $
  3. svn co https://svn.apache.org/repos/asf/incubator/ofbiz/branches/$\Image Removed{branch-name} ofbiz
  4. cd ofbiz
  5. svn merge -r ${revision-1}:${revison} http://svn.apache.org/repos/asf/incubatorofbiz/ofbiz-framework/trunk
  6. $ 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.