apache > lenya
 

Release Management

Process Overview

Preparation

  • A vote is necessary to determine if a release shall be done.
  • Send email to dev@lenya.apache.org with Subject: [VOTE] Release $VERSION.
  • Determine the official Cocoon release which the Lenya release will be based on.

Code Freeze Announcement

Announce the freeze 7 days ahead of the actual freeze.
Send email to dev@lenya.apache.org with subject: [FREEZE-ANNOUNCEMENT] Release $VERSION.

Start the Code Freeze

Start the actual freeze:
Send email to dev@lenya.apache.org with subject: [FREEZE-START] Release $VERSION.

During the freeze, the developers watch commits mailing list for commits to freezed branch, and inspect diffs to determine risk level. Risky changes are alerted on the developer list and rolled back, unless a vote passes to keep the risky change.

Create a Tagged Version

There are many ways to create a new tag, we will show the quick one and a more detailed one. The quick way is:

svn copy https://svn.apache.org/repos/asf/lenya/trunk\
       https://svn.apache.org/repos/asf/lenya/tags/RELEASE_2_0_RC_2/\
      -m "Tagging the 2.0 RC2."

Alternatively browse to http://svn.apache.org/repos/asf/lenya/trunk/

svn co -r $REVISION https://svn.apache.org/repos/asf/lenya/branches/BRANCH_1_2_X
cd branches/BRANCH_1_2_X
svn copy branches/BRANCH_1_2_X tags/RELEASE_1_2_5
svn ci -m "Release 1_2_5 added" tags/RELEASE_1_2_5

More info: http://svnbook.red-bean.com/en/1.1/ch04s06.html.

Update the svn:externals properties

Set the svn:externals properties for Cocoon and all other included repositories to the respective release tags.

cd externals
svn propdel cocoon_2_1_x .
svn propset cocoon_2_1_10 https://svn.apache.org/repos/asf/cocoon/tags/cocoon-2.1/RELEASE_2_1_10 .

Update the path to Cocoon in build.properties.

cocoon.src.dir=externals/cocoon_2_1_10

If it has been decided that a development version of Cocoon shall be used, add the revision number to the svn:externals declaration:

svn propset cocoon_2_1_x -r 608663 https://svn.apache.org/repos/asf/cocoon/branches/BRANCH_2_1_X .

Testing

  • Start testing the tagged version (based on the specified Cocoon version, e.g. 2.1.8).
  • Use the test suite: TestCases (Wiki) (FIXME: Move normative set of test cases to official docs?)
  • Maybe do a sprint over IRC (server irc.freenode.org, channel lenya). Try to find a day where lots of devs are present.
  • New bugs must be recorded in the issue tracker.
  • If all tests are successful (i.e., no critical or blocker bugs have been found), proceed with step Create a Tagged Version.
  • If critical or blocker bugs have been found, the release process is canceled.

(If necessary:) Cancelling the Freeze

The freeze can be canceled via a vote on the dev@lenya.apache.org mailing list under certain circumstance (very rare):

  • New blocker bugs that need bigger changes
  • Critical architectural changes

Add the Release Notes

Add the release notes (SVN URL, SVN Revision, What's new, Cocoon version 2.1.8, etc.) to the tagged version:

svn add RELEASE-NOTES.txt
svn ci -m "release notes added" RELEASE-NOTES.txt

Lock the Tagged Version (Optional)

svn lock tags/RELEASE_1_2_5

Release the Tarballs

Create the Binary Packages

  • Compile a pristine Cocoon with the local properties from Lenya.
  • Set the property version in file src/targets/properties-build.xml to the appropriate Lenya version.
  • Re-generate INSTALL-src.txt and INSTALL-bin.txt with the XSLT stylesheet https://svn.apache.org/repos/asf/lenya/docu/tools/document2txt.xsl.
  • Build all distribution archives, except the windows installer .exe, with ./build.sh|build dist in the Lenya source root directory. You will find the distribution archives under dist/. The dist target will also build and package the editors BXE and Kupu.
  • To create a Windows installer, edit lenya.nsi and replace all version numbers appropriately, then compile lenya.nsi with the NSIS compiler (use the LZMA compressor for the smallest binaries)
  • Sign the release archives/installers with your PGP/GPG key (see instructions below).
  • Upload the release to minotaur.apache.org:/x1/www/www.apache.org/dist/lenya.

Publish a Release Announcement

Publish a Project Release Announcement to appropriate places (see section Release Announcement below).

Update the DOAP file

Update the Lenya DOAP file (http://svn.apache.org/repos/asf/lenya/site/doap_Lenya.rdf) with the version and date of this new release.

Signing

PGP/GPG signatures on releases

  • If not yet done add your key to the KEYS file. Follow the instruction at the top of that file.
  • Export you public key with gpg -a -export [[apache account]] > .pgpkey and place the file .pgpkey on minotaur.apache.org in your home directory. You also would sign up at Big Lumber; Key management made easy to easily coordinate and manage signatures for your key.
  • Update the KEYS file at minotaur.apache.org:/x1/www/www.apache.org/dist/lenya/KEYS from Lenya SVN.

ASF signing Resources

Release Announcement

The release announcement can be published at the following places:

  • Lenya website
  • user@lenya.apache.org
  • users@cocoon.apache.org
  • announce@apache.org
  • lwn@lwn.net
  • general@oscom.org
  • http://mailman.skybuilders.com/mailman/listinfo/cms-pr (subcribe if needed)
  • http://www.cmsmatrix.org/matrix?func=editSubmission&sid=new&wid=5
  • http://www.contentmanager.net (via contact form)
  • http://www.javalobby.org/forums/post!default.jspa?forumID=17
  • http://www.theserverside.com/news/post.tss