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:
- https://incubator.apache.org/guides/releasemanagement.html
- https://incubator.apache.org/guides/release-java.html
- https://www.apache.org/dev/release.html
And a good guide (used as the basis for this one) is produced by the Apache Commons project: - https://commons.apache.org/releases/prepare.html
- https://commons.apache.org/releases/release.html
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. (Currently, it is not active enough to warrant a branch).
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:
- 'ant dist' works from the unpacked source archives
- Jar manifests contain LICENSE and NOTICE
- Jar manifests have the following properties:
TODO: Do we need Extension-Name, Implementation-Vendor-Id as well?
Specification-Vendor Specification-Title Specification-Version Implementation-Vendor Implementation-Title Implementation-Version