...
This depends on how active the tree is at the time.
Code Block |
---|
svngit cpcheckout -mb "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-5-release |
Then check out this branch, to do any release work needed.
...
Ensure that all new source files have the Apache License attached, and any dependencies licenses are correctly noted in NOTICE.
Run the license audit tool and inspect the output:
Code Block |
---|
ant audit-licenses |
Check export status of any cryptographic dependencies. (Unknown currently whether we need an ECCN or not)
Set version number in file
...
Build the release artefacts
The preferred way
Simply running
Code Block |
---|
ant release |
...
- '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
|
...
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! ))
Code Block |
---|
git log --pretty=medium
|
Put this the 'Full log' section.
I suggest hand-writing the 'Summary since X' at the start of the file.
...
- Description of the project
- Any major changes (otherwise see CHANGES) Is this really needed given the summary in CHANGES?
- Any compatibility issues (and mention if none)
- Any upgrading procedures needed
- Make another note of the required Java version
Tag the RC
...
Make the RC
There are two ways to create the artefacts. The preferred way is to use the artefacts created by Jenkins.
Download zip with all artefacts from https://
...
...
...
...
...
...
job/wave-artifacts/lastSuccessfulBuild/artifact/*zip*/archive.zip
Code Block |
---|
wget 0.3-release \ https://svnbuilds.apache.org/reposview/asfS-Z/incubatorview/waveWave/tagsjob/wave-0.3-rc1 |
Make the RC
artifacts/lastSuccessfulBuild/artifact/*zip*/archive.zip
unzip archive.zip |
Or, create the artefacts manually. Make sure to run the unit tests first. Run
Code Block |
---|
ant release |
.
Check that the produced code still works! Check that source packages don't include any binaries.
Sign the release using your GPG key, and record SHA512 checksums for the files. (See my script at https://people.apache.org/~al/artefact-sign.sh).
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 |
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.
Either put in your space at
Code Block | ||||
---|---|---|---|---|
| ||||
svn checkout https:// |
...
dist.apache.org/repos/dist/dev/incubator/wave/ |
Create a new folder under ~name/, or make a folder and host in https://dist.apache.org/repos/dist/dev/incubator/wave for the new release candidate and copy there the signed artefacts and then commit.
Vote for release
Send a vote mail for RC
...
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
TODOTo 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.