Table of Contents |
---|
Prerequisites
...
List existing branches:
Code Block |
---|
git branch -al
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/v0.2.0
remotes/origin/v0.3.0
remotes/origin/v{X.Y.Z-1}
|
Check out the previous (release) branch:
Code Block |
---|
git checkout -t origin/v{X.Y.Z-1}
|
...
This step tags the point in time of when the branching starts within the remote repo.
Code Block |
---|
git tag --annotate v{X.Y.Z}-branch --message "Branch point for v{X.Y.Z}"
git push origin --tags
|
...
Check out the branch that is intended for this release:
Code Block |
---|
git checkout -b v{X.Y.Z}
git push --set-upstream origin v{X.Y.Z}
|
...
- it ensures that the branch is actually there and available
- it ensures that our local repository to work from is clean
Code Block |
---|
git clone -b v{X.Y.Z} https://git-wip-us.apache.org/repos/asf/incubator-knox.git knox-{X.Y.Z} cd knox-{X.Y.Z} git checkout -t origin/v{X.Y.Z} git pull |
Cherry pick previous commits from master
...
To pull the changeset for the commit at the tip of the master branch:
Code Block |
---|
git cherry-pick origin/master
|
...
All build artifacts that contain the previous branch's version need to be updated with the new version to reflect this new branch.
Code Block |
---|
grep -r "0\.3\.0" .
|
Change all occurrences as appropriate.
...
Build, Test and Push Changes
Code Block |
---|
git pull
git commit --all --message "Updating branch."
ant verify
git push
|
...
Download the release candidate
Code Block |
---|
ant download-candidate
|
Sanity Test
Do some basic manual testing to see if release looks ok. For example do and install and run through a few of the samples.
Sign
Code Block |
---|
ant sign-candidate
|
This will prompt you for your passphrase for each signed archive.
...
Verify the hashes and signatures. First change into the distribution directory.
Code Block |
---|
cd candidate
|
Verify the signatures for both the source and binary distribution. Note: This assumes that gpg is installed.
Code Block |
---|
gpg --verify knox-{X.Y.Z}-src.zip.asc knox-{X.Y.Z}-src.zip
gpg --verify knox-{X.Y.Z}.zip.asc knox-{X.Y.Z}.zip
|
Verify the SHA-1 hashes for both the source and binary distribution. Note: This assumes a Linux or MacOS environment with openssl installed.
Code Block |
---|
cat knox-{X.Y.Z}-src.zip.sha && openssl sha1 knox-{X.Y.Z}-src.zip
cat knox-{X.Y.Z}.zip.sha && openssl sha1 knox-{X.Y.Z}.zip
|
Verify the MD5 digest for both the source and binary distribution. Note: This assumes a Linux or MacOS environment with openssl installed.
Code Block |
---|
cat knox-{X.Y.Z}-src.zip.md5 && openssl md5 knox-{X.Y.Z}-src.zip
cat knox-{X.Y.Z}.zip.md5 && openssl md5 knox-{X.Y.Z}.zip
|
Tag Release Candidate
Code Block |
---|
git tag --annotate vX.Y.Z-rcN --message "vX.Y.Z release candidate N"
git push origin --tags
|
...
Follow the instructions output by the sign step above. Basically execute this command.
Code Block |
---|
cd ..
ant stage-candidate
|
...
Send a [VOTE] email to the dev@knox list. A template was output by the sign step above as target/vote.eml
.
Code Block |
---|
From: {release-manager}
To: dev@knox.incubator.apache.org
Subject: [VOTE] Release Apache Knox (Incubator) {X.Y.Z}
A candidate for the Apache Knox (Incubator) {X.Y.Z} release is available at:
http://people.apache.org/~{release-manager}/knox/{X.Y.Z}/
The release candidate is a zip archive of the sources in:
https://git-wip-us.apache.org/repos/asf/incubator-knox.git
Branch {X.Y.Z}
The SHA1 checksum of the archive is {checksum}.
Please vote on releasing this package as Apache Knox (Incubator) {X.Y.Z}.
The vote is open for the next 72 hours and passes if a majority of at
least three +1 Apache Knox (Incubator) PMC votes are cast.
[ ] +1 Release this package as Apache Knox (Incubator) {X.Y.Z}
[ ] -1 Do not release this package because...
|
...
Once vote passes, tag the release:
Code Block |
---|
git tag --annotate v{X.Y.Z}-release --message "Release of v{X.Y.Z}"
git push origin --tags
|
Promote
Code Block |
---|
ant promote-release
|
Verify that the results are accessible.
...
Update CHANGES with header for new changes
Include Page | ||||
---|---|---|---|---|
|