Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

 

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
Footer
Footer