Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

  1. Ensure that you are working on the correct branch
  2. Set the release version # for the branch in cloudmonkey/config.py
  3. Confirm that the information in README.md is current
  4. Confirm that the information in LICENSE and NOTICE are current
  5. Update the CHANGES file with the critical changes introduced in the release (Be sure to highlight any changes the break backward compatibility)
  6. Remove "version has not been released" warnings from the CHANGES file
  7. Ensure that the CHANGES file in your release branch is synced with the version in the master branch (which may have a future release already in it)

Getting Community

...

Consensus

Prior to an official vote, start a thread on the cloudstack-dev mailing list, specifically asking for comments on the project's readiness to cut a release.

...

Update your local git repo's master branch from the ASF repository:

No Format
git fetch origin

Check out the release branch:

No Format
git checkout X.X.X

...

Make sure your local copy exactly matches the remote repo:

No Format
git reset --hard HEAD
git clean -qfxd
git rebase origin/X.X.Xmaster

Then run the source build script (Replacing the parameters: X.X.X=your official version number for the release; B.B=the branch (can be master) that the release is coming from; CCCC=the GPG Key to sign both the artifacts and the git tag with):

No Format
./performrelease.sh -v X.X.X -b B.B -c -t

( optionally specifying your local directory layout - see performrelease.sh -h for details )

...

SUBJECT: [RESULT][VOTE] Apache CloudStack X.X.X

MESSAGE:

No Format

Hi all,

After 72 hours, the vote for CloudStack CloudMonkey X.X.X [1] *passes* with
Z PMC + Z non-PMC votes.

+1 (PMC / binding)
* person

+1 (non binding)
* person

0
none

-1
none

Thanks to everyone participating.

I will now prepare the release announcement to go out after 24 hours to give the mirrors time to catch up.

...

The release should have already been tagged in your local repo when you used the build_asf.sh script (the -t option).  However, you need to push that tag once the VOTE passes:

No Format

$ git push origin tags/X.X.X

Move the release from "dev" to "release"

Move the release artifacts into place (replace X.X.X with the release number, and replace Y.Y.Y with the previous release number):

No Format

# svn mv -m "Publishing X.X.X release" https://dist.apache.org/repos/dist/dev/cloudstack/cloudmonkey-X.X.X/ https://dist.apache.org/repos/dist/release/cloudstack/releases/

Wait 24 hours for the mirrors to catch up. Note that only a PMC member can move the artifact to the release location.

Update http://cloudstack.apache.org/downloads.html to point to the new release, and add the older release to the archive list.

Remove the prior release from the release dist area (it's still archived):

No Format

# cd /tmp/cs-release/releases
# svn rm Y.Y.Y
# svn commit -m "Removing Y.Y.Y release"

...

Build from the tag:

No Format

# cd ~/cloudstack-cloudmonkey
# git checkout X.X.X
# python setup.py sdist
# gpg -v --armor --output dist/cloudmonkey-X.X.X.tar.gz.asc --detach-sig dist/cloudmonkey-X.X.X.tar.gz

...

Set the new release number (assume minor increment)

No Format

# cd ~/cloudstack-cloudmonkey
# git checkout master
# vi cloudmonkey/config.py

...