Versions Compared

Key

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

...

  1. Build and run unit tests:

    Code Block
    ant clean
    ant jar test
    
  2. Check that contrib and tutorial directories compile and tests pass:

    Code Block
    cd contrib/piggybank/java
    ant
    ant test
    cd ../../../tutorial
    ant
    
    cd ..
  3. Build the source release and save the src.tar.gz artifact:

    Code Block
    ant -Dversion=X.Y.Z src-release
    
  4. Test the source tar file by unpacking the release and
    1. building pig.jar: ant
    2. building and running tutorial

      Code Block
      cd tutorial
      ant
      
      cd ..
    3. build piggybank

      Code Block
      cd contrib/piggybank/java
      ant
      ant test
      
      cd ../../..
    4. running unit tests ant test-commit
  5. Build the convenience artifacts:

    Code Block
    ant clean
    ant test
    ant clean
    ant jar
    cd contrib/piggybank/java
    ant
    cd ../../..
    ant -Dversion=X.Y.Z -Dforrest.home=<Forrest installation dir>  tar-h12
  6. Generate the MD5 checksum of the release artifact and convenience binaries:

    Code Block
    cd build
    md5sum pig-X.Y.Z-src.tar.gz > pig-X.Y.Z-src.tar.gz.md5
    md5sum pig-X.Y.Z.tar.gz > pig-X.Y.Z.tar.gz.md5
    
  7. If you do not have a gpg key pair, do the following steps:
    1. Generating key pair using the following command. You can simply accept all default settings and give your name, email and Passphase.

      Code Block
      gpg --gen-key
      
    2. Export your public key.

      Code Block
      gpg --armor --output pubkey.txt --export 'Your Name'
      
    3. Open pubkey.txt, copy the full text and append it to the following files by pasting, then commit these changes:

      Code Block
      https://svn.apache.org/repos/asf/pig/branches/branch-X.Y.Z/KEYS
      https://svn.apache.org/repos/asf/pig/trunk/KEYS
      
    4. Upload updated KEYS to Apache.

      Code Block
      scp KEYS people.apache.org:/www/www.apache.org/dist/pig/KEYS
      
    5. Export your private key, keep it with you.

      Code Block
      gpg --export-secret-key -a "Your Name" > private.key
      
  8. Sign the release artifact only (see Step-By-Step Guide to Mirroring Releases for more information).

    Code Block
    gpg --armor --output pig-X.Y.Z-src.tar.gz.asc --detach-sig pig-X.Y.Z-src.tar.gz
    
    
  9. Verify gpg signature.

    Code Block
    gpg --import KEYS  (if necessarily)
    gpg --verify pig-X.Y.Z-src.tar.gz.asc pig-X.Y.Z-src.tar.gz
    
  10. Copy release artifact, convenience binaries, release notes and the rat report to a public place (usually into public_html in your home directory):

    Code Block
    ssh people.apache.org mkdir public_html/pig-X.Y.Z-rcR
    scp -p pig-X.Y.Z* people.apache.org:public_html/pig-X.Y.Z-rcR
    cd ..
    scp RELEASE_NOTES.txt people.apache.org:public_html/pig-X.Y.Z-rcR
    scp <rat_report> people.apache.org:public_html/pig-X.Y.Z-rcR
    
  11. Push proposed release to Maven staging area
    1. Create file ~/.m2/settings.xml with following contents (NOTE: It is highly recommended to use Maven's password encryption capabilities for your passwords.):

      Code Block
      <settings>
        <servers>
          <server>
            <id>apache.releases.https</id>
            <username>your apache id</username>
            <password>your apache password</password>
          </server>
          <server>
            <id>apache.snapshots.https</id>
            <username>your apache id</username>
            <password>your apache password</password>
          </server>
          <server>
            <id>apache.staging.https</id>
            <username>your apache id</username>
            <password>your apache password</password>
          </server>
        </servers>
      
        <profiles>
          <profile>
            <id>apache-release</id>
            <properties>
              <gpg.passphrase>your GPG password</gpg.passphrase>
            </properties>
          </profile>
        </profiles>
      </settings>
      
    2. Run ant command ant mvn-deploy to publish Pig artifacts to the apache snapshot repository.
    3. Run ant command ant –Drepo=staging –Dversion=X.Y.Z mvn-deploy to publish Pig artifacts to the apache staging repository.
  12. Call a release vote. The initial email should be sent to dev@pig.apache.org. Here is a sample of email:

    Code Block
    From: Olga Natkovich [mailto:olgan@yahoo-inc.com] 
    Sent: Tuesday, November 25, 2008 3:59 PM
    To: dev@pig.apache.org
    Subject: [VOTE] Release Pig 0.1.1 (candidate 0)
    
    Hi,
    
    I have created a candidate build for Pig 0.1.1. This release is almost identical to Pig 0.1.0 with a couple of exceptions:
    
    (1) It is integrated with hadoop 18
    (2) It has one small bug fix (PIG-253)
    (3) Several UDF were added to piggybank - pig's UDF repository
    
    Keys used to sign the release are available at http://svn.apache.org/viewvc/pig/trunk/KEYS?view=markup.
    
    Please download, test, and try it out:
    
    http://people.apache.org/~olga/pig-0.1.1-rc0
    
    Release notes and the rat report are available from the same location.
    
    Should we release this? Vote closes on Wednesday, December 3rd.
    
    Olga
    

...