Versions Compared

Key

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

...

http://accumulo.apache.org/releasing.html
http://accumulo.apache.org/verifying_releases.html

http://nifiyetus.apache.org/contribute/releases/release-guide.html

How to Release Sqoop2

 

The purpose of this page is to document the mechanics of a release.  I took this phrase from the NiFi Release Guide (http://yetusnifi.apache.org/contribute/releases/

How to Release Sqoop2

 

Basic Outline:

Dependencies

release-guide.html) because I really like their outline and guide.  Eventually, we should incorporate other aspects into this guide including:

Background Material

What to validate and how to Validate a release

The flow of a release (an outline)

 

(Feel free to toss in any additional sections here)


The mechanics of the release  

Release Manager Dependencies

Before a Release Manager begins cutting a release of Apache Rya, there are a handful of Dependencies and Prerequisites they need to satisfy:

  1. 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.

  2. Checkout and Build Rya

    The Release Manager should verify that they can checkout, build, and test Apache Rya on their machine.

    1. Checkout code from Git

      Code Block
      git clone https://git-wip-us.apache.org/repos/asf/incubator-rya.git incubator-rya-apache
    2. Build and Test Apache Rya

      Code Block
      mvn clean install
  3. Setting up a PGP Key

    The Release manager needs a PGP Key and this key needs to be public.
  4. You need to be a commiter
  5. Basic Rya
    1. Checkout, build, test Rya
  6. Setting up PGP
    1. Getting software
    2. creating a key
    3. publishing a key
    4. adding your key to id.apache.org
    5. Adding your key to project key list (we currently don't have this)
  7. Setting up Maven to push to apache repo
    1. Username/pass in maven settings
  8. Testing settings
    1. Testing locally: 
      1. mvn clean install -Papache-release
    2. Testing by pushing to apache snapshot repo

      1. mvn clean deploy -Papache-release

  9. Use 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. If you do not have a GPG key, reference the very thorough ASF release signing documentation. (make sure you reset gpg-agent:

    echo RELOADAGENT | gpg-connect-agent

    )

...

note: I followed these instructions: http://www.apache.org/dev/publishing-maven-artifacts.html#prepare-poms

  1. Checkout Rya
    1. git clone https://git-wip-us.apache.org/repos/asf/incubator-rya.git incubator-rya-apache

  2. Create a Release Branch
    1. git checkout -b 3.2.10-RC1 develop

    Update Rya
  3. Build a push a signed snapshot
    1. mvn clean deploy -Papache-release

  4. Do some manual checks (note I think that the mvn release plugin does all of this)

    1. Make sure there are no dependencies on snapshots in the POMs to be released

    2. Check that your POMs will not lose content when they are rewritten during the release process

      1. mvn release:prepare -Papache-release -DdryRun=true -Darguments="-DskipTests"

      2. Diff the original file pom.xml with the one called pom.xml.tag to see if the license or any other info has been removed

      3. What is the release version for "Apache Rya Project"? (org.apache.rya:rya-project) 3.2.10: : 

        What is SCM release tag or label for "Apache Rya Project"? (org.apache.rya:rya-project) rya-project-3.2.10: : 3.2.10

        What is the new development version for "Apache Rya Project"? (org.apache.rya:rya-project) 3.2.11-SNAPSHOT: : 


  5. Prepare release

    1. mvn release:clean

    2. mvn release:prepare

  6. Stage release for a vote
    1. mvn release:perform

       

 

super short edition:

1.Checkout out code
2. Create release candidate branch
git checkout -b 3.2.10-RC1 develop
git push -u origin 3.2.10-RC1
3. Build Rya, prepare and perform release
mvn clean package -Papache-release -DskipTests
mvn release:prepare  -Darguments="-DskipTests"
mvn release:perform -Darguments="-DskipTests" -Dgoals=deploy


References:

http://www.apache.org/dev/publishing-maven-artifacts.html

...