You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

This page describes the steps that a release manager needs to take to perform a release of Apache CloudStack (Incubating).

(Thanks to the couchdb project for a great template to use for this procedural document!)

Checklist

  1. Ensure that you are working on the correct branch.  The CloudStack community has adopted a branch-before-release strategy for release branches.
  2. Confirm that the information in README.md is current
  3. Confirm that the information in INSTALL.md is current
  4. Update the CHANGES file with the critical changes introduced in the release (Be sure to highlight any changes the break backward compatibility)
  5. Remove "version has not been released" warnings from the CHANGES file
  6. 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)
  7. Confirm that there is a jenkins build process for the release branch, and that all associated jobs are succeeding.

Getting Community Concensus

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.

Once it appears that any outstanding blockers have been addressed, you can proceed to the next step.

Preparing a Release

Update your local git repo from the ASF repository:

git fetch origin

Check out the release branch:

git checkout X.X.X

( or if you haven't already checked it out locally with remote tracking enabled: git checkout -b X.X.X origin/X.X.X )

Make sure your local copy exactly matches the remote repo:

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

Grab the current tree-sh:

git show HEAD | head -n 1 | cut -d " " -f 2

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 cert ID to sign both the artifacts and the git tag with):

tools/build/build_asf.sh -v X.X.X -b B.B -t -u CCCC -k CCCC

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

You can now upload the source release artifacts to your people.apache.org public_html folder.  Ex:

scp ~/cs-asf-build/* username@people.apache.org:public_html/cloudstack/X.X.X/.

Test the Build

Follow the instructions documented here:  CloudStack 4.0 test procedure (TODO: this test procedure document should be release number agnostic)

If your personal tests pass, you are ready to propose the release to the community.

Calling a Vote

Email the cloudstack-dev mailing list, using the following template:

SUBJECT: [VOTE] Apache Cloudstack X.X.X-incubating

MESSAGE:

Hi All,

I've created a X.X.X-incubating release, with the following artifacts up for a vote:

Git Branch and Commit SH:
https://git-wip-us.apache.org/repos/asf?p=incubator-cloudstack.git;a=shortlog;h=refs/heads/X.X.X
Commit: XXXXXXXXXXXXXXXXX

List of changes:
https://git-wip-us.apache.org/repos/asf?p=incubator-cloudstack.git;a=blob_plain;f=CHANGES;hb=refs/heads/X.X.X

Source release (checksums and signatures are available at the same
location):
http://people.apache.org/~YOU/cloudstack/dist/releases/X.X.X/

PGP release keys (signed using XXXXXXXX):
https://git-wip-us.apache.org/repos/asf?p=incubator-cloudstack.git;a=blob_plain;f=KEYS;hb=refs/heads/X.X.X

Vote will be open for 72 hours.


For sanity in tallying the vote, can PPMC and IPMC members please be sure to indicate "(binding)" with their vote?

[ ] +1  approve
[ ] +0  no opinion
[ ] -1  disapprove (and reason why)

After 72 hours, the vote can be closed.  

If (after tallying the vote) the binding +1 votes are not in the majority, the issues noted need to be addressed and process starts again.

If the vote passes, then send a [RESULTS] vote to the dev list.  Template below:

SUBJECT: [RESULT][VOTE] Apache Cloudstack X.X.X-incubating

MESSAGE:

Hi all,

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

+1 (PPMC / binding)
* person

+1 (non binding)
* person

0
none

-1
none

Thanks to everyone participating.

I will now submit the release for voting on the general@incubator.apache.org

[1] URL TO CLOUDSTACK-DEV VOTE THREAD

Initiate the vote thread on general@incubator.apache.org.  It's useful for the incubator folks to see a list of the IPMC members that voted on the initial vote thread.  Template below:

SUBJECT: [VOTE] Apache Cloudstack X.X.X-incubating

MESSAGE:

Hi All,
I've created a X.X.X-incubating release, with the following artifacts up for a vote:

Git Branch and Commit SH:
https://git-wip-us.apache.org/repos/asf?p=incubator-cloudstack.git;a=shortlog;h=refs/heads/X.X.X
Commit: XXXXXXXXXXXXXXXXX

List of changes:
https://git-wip-us.apache.org/repos/asf?p=incubator-cloudstack.git;a=blob_plain;f=CHANGES;hb=refs/heads/X.X.X

Source release (checksums and signatures are available at the same
location):
http://people.apache.org/~YOU/cloudstack/dist/releases/X.X.X/

PGP release keys (signed using XXXXXXXX):
https://git-wip-us.apache.org/repos/asf?p=incubator-cloudstack.git;a=blob_plain;f=KEYS;hb=refs/heads/X.X.X

This has been voted through on the cloudstack-dev@incubator.apache.org
mailing list [1], and now requires a vote on general@incubator.apache.org

Votes already cast (on cloudstack-dev):

+1 (PPMC / binding)
* name of PPMC member
* name of PPMC member that is also an (IPMC member)

+1 (non binding)
* committer or other community member

Vote will be open for 72 hours.

[ ] +1  approve
[ ] +0  no opinion
[ ] -1  disapprove (and reason why)

Best regards.

[1] URL TO CLOUDSTACK-DEV VOTE THREAD
  • No labels