...
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
For example
Build the release artefacts
The preferred way
Simply running
Code Block |
---|
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:
Code Block |
---|
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.
: 0.4.0-rc.6-incubating
Every release should usually increase the MINOR version and reset the PATCH Consider http://semver.org/ as the guide for deciding on the release version.
Create CHANGES
I suggest using the following git log, to produce a one-line-per-change list of all commits.
(An alternative, would be to use the JIRA id's - but not everything goes through Jira (notably most of my stuff doesn't! ))
...
Sign the release using your GPG key, and record SHA512 checksums for the files.
Look for instructions in the KEYS file on how to append your key.
Code Block | ||||
---|---|---|---|---|
| ||||
#!/bin/zsh #Assumes it is being run in the folder with artefacts. PRE="apache-wave-" for f in $PRE*; do gpg --armor --output $f.asc --detach-sig $f gpg --print-md SHA512 $f > $f.sha done |
You need to append you signature/public key to the KEYS file, look there for instructions.
Upload the Artefacts.
Upload the src+bin tar+zip somewhere so that it can be found.
The release candidate should be uploaded to the "dev" folder first to allow inspection and voting.
...
Whilst Wave is still an incubating project, send a VOTE email to general@incubator.apache.org to get PMC votes. Handle in the same way as the internal vote.
Publish accepted RC
To publish copy the artefacts into dist/incubator/wave from the dist/dev/incubator/wave/ (delete old artefacts if needed, they were automatically archived already) and commit.