Versions Compared

Key

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

...

Code Block
languagebash
# ---- Install GPG ----
# For Ubuntu, install through apt-get
$ sudo apt-get install gnupg
# For Mac OSX, install GPG Suite from http://gpgtools.org

# ---- Generate key ----
$ gpg --gen-key                   # Create new key, make sure it is RSA and 4096 bits (see https://www.apache.org/dev/openpgp.html#generate-key)
$ gpg --output <KEY_ID>.asc --export -a <KEY_ID>  # Generate public key file for distribution to Apache infrastructure

# ---- Distribute key ----
$ gpg --send-key <KEY_ID>         # Distribute public key to a key server, <KEY_ID> is the 8 HEX characters in the output of the previous command "pub  4096R/<KEY_ID> "
$ gpg --fingerprint               # Get key digest
# Open http://id.apache.org , login with Apache account and upload the key digest
$ scp <KEY_ID>.asc <USER_NAME>@people.apache.org:~/   # Copy generated <KEY_ID>.asc to Apache web space
# Create an FOAF file and add it via svn (see http://people.apache.org/foaf/ )
#   - should include key fingerprint
# Eventually key will show up on apache people page (e.g. https://people.apache.org/keys/committer/pwendell.asc )

...

  • The process of cutting a release requires a number of tools to be locally installed (maven, jekyll, etc). Ubuntu users can install those tools via apt-get. However, it may be most convenient to use a EC2 instance based on the AMI ami-b897fe88 (available is US-West, has Scala 2.10.3 and SBT 0.13.1 installed). This has all the necessary tools installed. Mac users are especially recommended to use a EC2 instance instead of attempting to install all the necessary tools. If you want to prepare your own EC2 instance (different version of Scala, SBT, etc.), follow the steps given in the Miscellaneous section (see at the end of this document).
  • Consider using CPU-optimized instances, which may provide better bang for the buck.
  • Transfer your GPG keys from your home machine to the EC2 instance.

    Code Block
    languagebash
    # == On home machine ==
    gpg --list-keys  # Identify the KEY_ID of the key you generated
    gpg --output pubkey.gpg --export <KEY_ID>
    gpg --output ---export-secret-key <KEY_ID> | cat pubkey.gpg - | gpg --armor --output keys.asc --symmetric --cipher-algo AES256
    # Copy keys.asc to EC2 instance
     
    # == On EC2 machine ==
    gpg --no-use-agent --output - keys.asc | gpg --import
    rm keys.asc
  • Install your private key that allows you to have password-less access in Apache webspace.

  • Set git user name and email (these are going to appear as the committer in the release commits).

    Code Block
    languagebash
    $ git config --global user.name "Tathagata Das"
    $ git config --global user.email tathagata.das1565@gmail.com
  • Download appropriate version of Spark that has the right scripts related to the releases.

...

  • If a release candidate does not pass, it is necessary to roll back the commits which advanced Spark's versioning.

    Code Block
    languagebash
    $# Checkout gitthe fetchrelease apache
    $branch gitfrom checkout apache/branch-0.9Apache repo
     
    # Delete earlier tag. If you are using RC-based tags (v0.9.1-rc1) then skip this.
    $ git tag -d v0.9.1
    $ git push origin :v0.9.1
    
    # Revert changes made by the Maven release plugin 
    $ git revert HEAD --no-edit    # revert dev version commit
    $ git revert HEAD~2 --no-edit  # revert release commit
    $ git push apache HEAD:branch-0.9

...