THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
- Make a code signing key if you don't have one yet
- Publish your key if you haven't done so yet
- If you haven't done so yet, add yourself to the Apache Web-of-Trust by meeting face-to-face with a person so they can sign your key
- Publish your signed key
- If you haven't done so before, add your key to the KEYS file in the release staging area and the release distribution area
- The staging area is https://dist.apache.org/repos/dist/dev/incubator/impala/. Once graduated, it will presumably be https://dist.apache.org/repos/dist/dev/impala/
- The release area is https://dist.apache.org/repos/dist/release/incubator/impala/, and will presumably be https://dist.apache.org/repos/dist/release/impala/ after graduation.
- Pick a commit in the "master" branch you want to release from and test it.
- Propose a release on the dev@ list. It should start with the string "[DISCUSS]". Propose a Explain that this is not a "[VOTE]", and that anyone may participate.
- Make a new branch off of your commit called "branch-x.y.z", where x.y.z is the version you want to release
- In this branch (but not in master) update the version number in bin/save-version.sh to x.y.z
- Continue testing. If you find bugs, file them. When they are fixed, cherry-pick the fixes from master to your branch that you want to include in the release:
Code Block language bash git fetch apache # to make sure you have the latest master git log apache/master # to find the commits you want to cherry-pick git checkout apache/branch-x.y.z git checkout -b x.y.z-patch-foo 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
- At that time, tag the tree at the release candidate
- Make a release tarball:
- Make the tarball using git archive. Name it apache-impala-incubating-x.y.z.tar.gz, or apache-impala-x.y.z.tar.gz if Impala has graduated from the incubator.
Make signature, as well as md5 and sha1 checksums:
Code Block language bash # Make the signature: gpg --armor --output apache-impala-incubating-x.y.z.tar.gz.asc --detach-sig apache-impala-incubating-x.y.z.tar.gz # Make sure it worked: gpg --verify apache-impala-incubating-x.y.z.tar.gz.asc apache-impala-incubating-x.y.z.tar.gz # Make checksums: md5sum apache-impala-incubating-x.y.z.tar.gz > apache-impala-incubating-x.y.z.tar.gz.md5 sha1sum apache-impala-incubating-x.y.z.tar.gz > apache-impala-incubating-x.y.z.tar.gz.sha
- 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.
- While incubating, the location is https://dist.apache.org/repos/dist/dev/incubator/impala/. Once graduated, it will presumably be https://dist.apache.org/repos/dist/dev/impala/. Upload all four artifacts.
- Get informal feedback on your release candidate from the dev@ list.
- If you need to make changes, you can cherry-pick commits from master.
- If you have made changes, upload new release candidates - don't overwrite old ones.
- Take a vote on dev@. Your vote email should:
- Have a subject that starts with "[VOTE]"
- Explain what the vote is about
- Explain how to find the artifacts for testing, and what each type of vote means
- Explain the conditions for the vote passing, including how long the vote will remain open for.
- Include a link to this wiki page so voters can read the instructions in it on how to test, verify, and vote.
- Be consistent with the Impala bylaws. For instance, at the moment I am writing this wiki page, votes stay open for 72 hours.
- If the vote passes, and Impala has yet to graduate, take a vote in the incubator PMC, following current incubator policy.
- Publish the release.
- Send a patch review to the master branch to update its version number to "p.q.r-snapshot" (where p.q.r is greater than x.y.z)
...