This section describes release management configuration steps, if you have previously configured these steps, jump directly to Release Process.
Performing a release will require:
- Generate, sign and upload gpg key, you can follow these gpg instructions.
- Configure Maven and get access to Nexus Repo, more maven & nexus instructions.
Generate GPG key
The releases have to be signed by public key cryptography signatures. Detailed instructions on why releases have to be signed are provided on Release Signing page. The popular software used Open Pretty Good Privacy (OpenPGP) is the GPG. The GPG instructions list out detailed steps on managing your keps.
The steps can be summerized as:
- Generate 4096 bits RSA key pair using gpg:
gpg --gen-key
. - Export the public key:
gpg --list-sigs <Real Name> && gpg --armor -- export <Real Name>
- Upload the public key to SURFNET PGP or MIT PGP servers.
- Have your key signed by atleast three apache commiters, key signing and Henk Penning websites provide instructions.
- Add the signed public key to the KEYS file on Airavata Dist SVN.
For reference, the steps to sign a key:
- The person whom you know in person provides you his key, usually this happens at key signing party where you can verify each others ID's.
- Fetch the key
gpg --keyserver <keyserver> --recv-keys <Key_ID>
an example key server is pgp.mit.edu - Sign the key
gpg --sign-key <Key_ID>
- Upload the key back to the server
gpg --keyserver <keyserver> --send-key <Key_ID>
Maven Configuration & Nexus Setup
- Airavata requires Maven 3 or later to build and release
- It is encouraged to use maven's password encryption capabilities and set the gpg password in ~/.m2/settings.xml. Detailed instructions are at Publishing Maven Artifacts
- Make sure both the apache.snapshots.https and apache.releases.https are configured coreectly.
- Performing release will require maven to run series of commands, the heapsize has to be increased to avoid out of memory exceptions.
- Bash Shell:
export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=256m"
. - C Shell:
setenv MAVEN_OPTS "-Xmx1024m -XX:MaxPermSize=256m"
.
...
Progress Bar Container |
---|
|
Progress Bar - Hyperlink Step |
---|
title | Step1Overview |
---|
url | Making ReleasesRelease Management |
---|
|
Progress Bar - Hyperlink Step |
---|
title | Step2Release Setup |
---|
url | One-Time Release Setup |
---|
|
Progress Bar - Hyperlink Step |
---|
title | Step3Pre-Release Steps |
---|
url | Pre-Release Check List |
---|
|
Progress Bar - Hyperlink Step |
---|
title | Step4Release Preparation |
---|
url | Release Prepration |
---|
|
Progress Bar - Hyperlink Step |
---|
title | Step5Make the Release |
---|
url | Making a Make the Release |
---|
|
Progress Bar - Hyperlink Step |
---|
title | Step6Fallback -- if needed |
---|
url | Recovering from a vetoed release |
---|
|
Progress Bar - Hyperlink Step |
---|
title | Step7Verify Release |
---|
url | Verifying Release Signatures |
---|
|
Progress Bar - Hyperlink Step |
---|
title | Step8Post Release Steps |
---|
url | Post Release Finishes |
---|
|
|