This document describes the process of doing an official release of Myriad.

Some general guidelines

  1. Mark the JIRAs that needs to go into a release.
  2. Choose a "Release Manager". It's highly recommended that the Release Manager should read the docs listed under "Useful Links" section.
  3. Agree upon a potential release date.
  4. Submit PRs. Review PRs submitted by others. 
  5. Maintain a running release notes.

Prerequisites

Apache requires signing the release artificats/archives using a OpenPGP compatible ASCII armored detached signature. Please read this document.

  1. Ensure that the "Release Manager" has a GPG key or generate a new one, e.g., using gpg --gen-key. Make sure to generate a RSA key with at least 4096 bits.

    smarella:~/myriad$ gpg --gen-key

    ....

    Please select what kind of key you want:

    (1) RSA and RSA (default)
    (2) DSA and Elgamal
    (3) DSA (sign only)
    (4) RSA (sign only)
    Your selection? 1
    RSA keys may be between 1024 and 4096 bits long.
    What keysize do you want? (2048) 4096
    Requested keysize is 4096 bits
    ....

  2. Add your GPG public key to the Apache Myriad dist repository in the KEYS file.

    a) Fetch the svn repository: svn co https://dist.apache.org/repos/dist/dev/incubator/myriad/

    b) Append your public key using one of methods described in KEYS: (gpg --list-sigs <your name> && gpg --armor --export <your name>) >> KEYS

    c) Push the commit: svn ci

  3. Submit your GPG public key to a keyserver, e.g. MIT PGP Public Key Server.
  4. Add your GPG fingerprint to your Apache account.

    smarella:~/myriad$ gpg --list-keys --fingerprint
    /home/smarella/.gnupg/pubring.gpg
    ---------------------------------
    pub 4096R/B26811FB 2015-10-20
    Key fingerprint = 5FB7 1C05 A37A 7818 BA60 915E 095F 054C B268 11FB
    uid Santosh Marella <marella@gmail.com>
    sub 4096R/5E42CE0D 2015-10-20

Just before a release

  1. Ensure all the outstanding PRs are merged.
  2. (Re)Read Apache's Release Check List.
  3. It is recommended to download the latest master and run Apache RAT tool on the to-be-released code base to fix any missing Apache License headers.

Running Apache RAT tool

Clone the latest master: git clone https://github.com/apache/incubator-myriad.git

Get Apache RAT jar: wget http://central.maven.org/maven2/org/apache/rat/apache-rat/0.11/apache-rat-0.11.jar

Add any missing Apache License headers: java -jar apache-rat-0.11.jar incubator-myriad/ -a -f

Verify if RAT has added any license headers: cd incubator-myriad ; git status

If any of the sources had missing license headers, submit a PR.

Note:

  • Here are guidelines on which sources should have the license headers.

Preparing a Release Candidate

Run the "prepare_rc.sh" script to tag a release candidate (RC) on github, sign and upload the RC artifacts to dev SVN: https://dist.apache.org/repos/dist/dev/incubator/myriad/

Voting

The Apache Myriad PPMC should approve a release candidate. A call for vote should should be sent to dev@myriad.incubator.apache.org.  Sample Myriad PPMC vote email for 0.1.0 RC3.

Once the Myriad PPMC successfully votes,

  1. A vote result email should be sent to dev@incubator.myriad.apache.org summarizing the vote.  Sample Myriad PPMC vote result email for 0.1.0 RC3.
  2. A call for vote should be sent to general@incubator.apache.org for IPMC's approval. This email should quote the above PPMC vote result. Sample IPMC vote email from 0.1.0 release.
  3. Send a vote result email to general@incubator.apache.org after a successful vote. Sample IPMC vote result email for 0.1.0 release.

Post Voting Actions

Once the Apache IPMC successfully votes,

  1. Run the "release.sh" script to tag the successfully voted RC "as the release". This script 
    1. Creates a new github tag for the release.
    2. Removes the "RC" tags that were added during voting.
    3. Uploads the "release" artifacts to release SVN: https://dist.apache.org/repos/dist/release/incubator/myriad/
    4. Deletes the "RC" artifacts from dev SVN: https://dist.apache.org/repos/dist/dev/incubator/myriad/
  2. Make all the JIRAs marked for this release are resolved. Add the "release date" against the released version
  3. Make sure the release is available for download from http://myriad.incubator.apache.org/downloads/
  4. Do a blog post and party!
  1. Apache Mesos Release Guide



  • No labels