...
- They need to be a Rya Commiter
As a Rya Commiter, the Release Manager will have access to several really important tools used throughout the release process. This includes write access to the official Apache Rya Git Repo, the Apache Jenkins Server, and the Apache Nexus Server. - Checkout and Build Rya
The Release Manager should verify that they can checkout, build, and test Apache Rya on their machine.Checkout code from Git
Code Block git clone https://git-wip-us.apache.org/repos/asf/incubator-rya.git incubator-rya-apache
Build and Test Apache Rya
Code Block mvn clean install
- Setting up a PGP Key
The Release manager needs a PGP Key and this key needs to be public. The first two items listed here need to be done (i.e. get some software to create a key, and create a key). I'm not sure about the last three.- Getting software
- Get GPG. (PGP should work as well, but this guide uses GPG). It is probably already available in your linux distro.
Get gpg-agent, and be sure to increase the gpg-agent cache timeout (via .gnupg/gpg-agent.conf) to ensure that the agent doesn’t require re-authentication mid-build, as it will cause things to fail. For example, you can add default-cache-ttl 6000 to increase the timeout from the default of 10 minutes to over an hour.
- Here is a working example of ~/.gnupg/gpg-agent.conf
default-cache-ttl 28800
# 8 hours
pinentry-program /usr/bin/pinentry-curses
allow-loopback-pinentry
make sure you reset gpg-agent:
echo RELOADAGENT | gpg-connect-agent
Using Fedora, might need to use gpg2. These two must match:
gpg --version
- gpg-agent --version
If they don't, check for version 2:
- gpg2 --version
- I was able to copy/link the commands in /usr/bin/: mv gpg gpg1 and ln -s gpg2 gpg
- Creating a key If you do not have a GPG key, reference the very thorough ASF release signing documentation.
- Publishing a key to a public server
- Adding your key to id.apache.org
- Getting software
- Setting up Maven to push to apache repo
- Username/pass in maven settings
- Add Key to KEYS file
See it here:
https://dist.apache.org/repos/dist/release/incubator/rya/KEYS
Do this with your name where it says "David":
svn checkout https://dist.apache.org/repos/dist/release/incubator/rya
(gpg --list-sigs "David" && gpg --armor --export "David") >> rya/KEYS
cd rya
svn commit -m "Adding David to KEYS"
- Testing settings
- Testing locally:
- mvn clean install -Papache-release
Testing by pushing to apache snapshot repo
mvn clean deploy -Papache-release
- Testing private key use and gpg-agent prompting. This is a way to preload the key before the release build below. Do this with your name (Unique initial characters of the full name are accepted) where it says "David":
eval $(gpg-agent --daemon) ### Start the gpg-agent if not already.
echo "hello" >> text.txt
gpg -e -u "Aaron" -r "David" text.txt ### These names are actually in the Rya keys file.
gpg -d text.txt.gpg ### this will prompt for David's key decrypt password and cache it.
- Testing locally:
Staging a
...
Release
- Communicate: Give notice of the intent and timing of the release to the developer's list: dev@rya.incubator.apache.org
Later, request descriptions for the release notes. A day before cutting a release candidate, do a last call for Pull requests. - Checkout out code
git clone https://git-wip-us.apache.org/repos/asf/incubator-rya.git incubator-rya-apache
- Create release candidate branch from master. Name the branch <releaseVersion>-RC<N>
...
...