You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Introduction

This is an attempt to document the release procedure used for Wave whilst under incubation. These notes are not complete, so you will probably want to refer to the following documents:

Build Environment

The release procedure documented has been/is being carried out on 64-bit Linux machine using Ant and OpenJDK 1.6

Preparation

Make a release branch (optional)

This depends on how active the tree is at the time.

svn cp  -m "Creating wave-0.3-release branch" \
            https://svn.apache.org/repos/asf/incubator/wave/trunk \
            https://svn.apache.org/repos/asf/incubator/wave/branches/wave-0.3-release

Then check out this branch, to do any release work needed.

Check Licensing

Ensure that all new source files have the Apache License attached, and any dependencies licenses are correctly noted in NOTICE.

Set version number in file

The version number is currently stored in build.properties in the waveinabox.version string.
Whilst the project is still incubating, the word 'incubating' must appear in the version string.

Build the release artefacts

Simply running

 ant release 

should be enough to build, run tests, and package as tar.bz2 and zips in the dist directory.
Manually inspect to ensure the 4 archives were all generated correctly:

  1. 'ant dist' works from the unpacked source archives
  2. Jar manifests contain LICENSE and NOTICE
  3. Jar manifests have the following properties:
Specification-Vendor
Specification-Title
Specification-Version
Implementation-Vendor
Implementation-Title
Implementation-Version

TODO: Do we need Extension-Name, Implementation-Vendor-Id as well?

Make a Release Candidate

Bump version number

Adjust 'waveinabox.version' in build.properties. Do not include RC in the version number here.

Create CHANGES

This could be assembled from either JIRA, or directly from the Subversion logs.
(Currently JIRA is not organized/complete-enough to do this, so subversion logs should be used).
The best way to get a list of all the commits since the previous release is by:

cd {project-base}/tags
svn log --stop-on-copy wave-0.3
#The last reported revision is the revision used for the tag.
#(Theoretically only one listed being a tag directory)
cd ..
svn log -v -rNNNN:HEAD trunk > CHANGES

Using 'svn diff' may be worthwhile if the time between releases shrinks, or for some emergency (security) release, where there may have only been a few commits between releases.
NOTE: Do not use selecting by date in subversion. As this is not fully reliable in the ASF repository.

Create RELEASE-NOTES

TODO: decide on a format
Refer to the notes used in the previous release for the format of how to write them.
Break at 80 chars as is conventional.
Include:

  • Description of the project
  • Any major changes (otherwise see CHANGES)
  • Any compatibility issues (and mention if none)
  • Any upgrading procedures needed
  • Make another note of the required Java version

Tag the RC

svn cp  -m "Creating wave-0.3-rc1 tag" \
            https://svn.apache.org/repos/asf/incubator/wave/branches/wave-0.3-release \
            https://svn.apache.org/repos/asf/incubator/wave/tags/wave-0.3-rc1

Make the RC

Run

 ant release 

.
TODO: sign?
Upload the src+bin tar+zip somewhere so that it can be found.
Either put in your space at https://people.apache.org/~name/, or make a folder and host in https://dist.apache.org/repos/dist/dev/incubator/wave.

Vote for release

Send a vote mail for RC

Send a message with subject 'VOTE Release Wave 0.3 based on RC1' email to wave-dev@incubator.apache.org.

(Incubator only) Vote for RC

Whilst Wave is still an incubating project, send a VOTE email to general@incubator.apache.org to get PMC votes.
TODO: detail vote counting strategy

Publish

TODO

  • No labels