Versions Compared

Key

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

...

These steps are somewhat covered in the script on Marc Spehlmann's gist. The individual steps below explain what happens in the script. Also, the script must be modified to do some of things covered here. It's a rough guide.

i. Select a commit to base the release

You will create a release branch if this is the first release candidate. Otherwise, checkout the current release branch.

...

git push apache branch-x.y.z

ii. Branch and tag the commit

Test the branch and add commits as needed. If you are on a non-supported platform (mac), use a linux box or docker to test your release. A quickstep Dockerfile can be found here. Once you are happy with the candidate, tag the branch and push the update.

 
git fetch apache # to make sure you have the latest master
git checkout apache/branch-x.y.z
git checkout -b x.y.z-patch-foo # the name doesn't matter - it will only be in your local workstation
git cherry-pick b4d1a3... # or whatever git hashes
# then resolve conflicts, if there are any
# cherry-pick some more commits:
git cherry-pick ....
git cherry-pick .....
git push apache HEAD:branch-x.y.z
Do the tag
git fetch apache
git checkout apache/branch-x.y.z
git tag -a x.y.z-rcw -m "x.y.z release candidate w" # when making release candidate w of version x.y.z
git push apache x.y.z-rcw

iii. Create the release artifacts

This step involves several steps. First, you create the tarball. Next you will create hashes, and a signature. Full details are provided in the script.

iii. Publish the release artifacts to the dev SVN repo

svn checkout https://dist.apache.org/repos/dist/dev/incubator/quickstep/cd quickstepcd quickstep/
# The directory layout is x.y.z/RCw, where w is the release candidate number - RC1 is the first candidate, RC2 the second, and so on.
mkdir mkdir -p x.y.z/RCw
cd xcd x.y.z/RCw
cp cp /tmp/apache-quickstep-incubating-x.y.z.tar.gz* ./
svn add .
svn commit --username=YOUR_APACHE_USER_NAME -m "Quickstep-x.y.z RCw"

b. Make a vote on the Release Candidate

    1. Have a subject that starts with "[VOTE]"
    2. Explain what the vote is about
    3. Explain how to find the artifacts for testing, and include the tag and git tree hash (not release hash!) they correspond to. The tree hash can be viewed with git log --pretty="%T %s".
    4. Explain what each type of vote means
    5. Explain the conditions for the vote passing, including how long the vote will remain open for.
    6. Include a link to this wiki page so voters can read the instructions in it on how to test, verify, and vote. 
    7. Explain how you tested it.
    8. At your discretion, discuss what dependencies or tools you used to compile or run it, like gcc, and so on.

...