Versions Compared

Key

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

(The release process is still work in progress, please update this page as it gets refined)

When doing a release, please update all references to SVN to the corresponding GIT references

Propose Release

  1. A committer proposes a release and a release manager is chosen by the committers (normally the committer proposing the release would be the release manager).
  2. Agree on the initial scope for the release and update JIRAs accordingly.

...

  1. Send email to dev@oozie.apache.org to notify that
    1. A new branch is about to be created from trunk
    2. Request to hold off any commits from trunk until further email.
  2. Create a branch for the release. For example:

    Code Block
    
    $ svn copy https://svn.apache.org/repos/asf/oozie/trunk \
    https://svn.apache.org/repos/asf/oozie/branches/branch-3.3 -m "Branching for 3.3 releases"
    
  3. Update the versions in the POMs in trunk, and the new branch if necessary. Use Maven versions

    plugion

    plugin. For example:

    Code Block
    
    $ mvn versions:set -DnewVersion=3.4.0-SNAPSHOT
    
  4. Send email to dev@oozie.apache.org to notify that the release branch has been created and that commits can resume both in trunk and in the new branch.

...

Update the POMs in the release branch with the final release version (typically this means removing the -SNAPSHOT) using the Maven versions plugin. For example:

Code Block

$ mvn versions:set -DnewVersion=3.3.0

...

These steps are required for all the releases (such as major, minor, and patches).

  1. Check out the branch with. For example:

    Code Block
    
    $ svn co https://svn.apache.org/repos/asf/oozie/branches/branch-3.3
    
  2. Create a RAT report to verify all files have the corresponding Apache License header. For example:

    Code Block
    
    $ mvn apache-rat:check
    
  3. Tag the release candidate, where R is the iteration number for this release candidate, starting with 0:

    Code Block
    
    $ svn copy https://svn.apache.org/repos/asf/oozie/branches/branch-3.3 \
    https://svn.apache.org/repos/asf/oozie/tags/release-3.3.0-rc0 -m "Oozie 3.3.0-rc0 release"
    

...

  • svn client
  • mvn
  • md5sum (Linux) or md5 (OSX)
  • gpg (you need to have your GPG keys set up as per the following instructions).
    • 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
      
    • Export your fingerprint and public key.

      Code Block
      
      $ gpg --fingerprint "Your Name" ; gpg --armor --export 'Your Name'
      
    • Checkout from SVN https://dist.apache.org/repos/dist/release/oozie and append the output of the previous command to the KEYS file and commit the changes.
    • Export your private key, and keep it in a safe place.

      Code Block
      
      $ gpg --export-secret-key -a "Your Name" > private.key
      
  1. Do a fresh checkout of branch to release. For example: 

    Code Block
    
    $ svn co https://svn.apache.org/repos/asf/oozie/branches/branch-3.3
    
  2. Do a build running all test cases as a verification.

    Code Block
    
    $ bin/mkdistro.sh
    
  3. Run the bin/create-release-artifact script to create the release artifact. For example:

    Code Block
    
    $ bin/create-release-artifact
    
    ...
    Release artifacts avail at /tmp/oozie.13501
    ----------------
    oozie-3.3.0-SNAPSHOT.tar.gz
    oozie-3.3.0-SNAPSHOT.tar.gz.asc
    oozie-3.3.0-SNAPSHOT.tar.gz.md5
    rat_report
    release-log.txt
    ----------------
    
    
    $
    
  4. Copy release files to your Apache HTML directory. For example:

    Code Block
    
    $ ssh people.apache.org mkdir -p public_html/oozie-3.3.0-rc0
    $ scp -p /tmp/oozie.13501/* people.apache.org:public_html/oozie-3.3.0-rc0/
    
  5. Call a release vote for the Oozie PMC members. This vote must receive a minimum of 3 Oozie PMC members +1s, and more +1s than -1s. The email should be sent to dev@oozie.apache.org. The mail should:
    1. Have a subject line "[VOTE] Release Oozie X.Y.Z (candidate #)" where X.Y.Z is the version number and a is the candidate number for this release.
    2. State what are new in this release.
    3. Tell where the keys used to sign the release can be found.
    4. State where the release, md5 signature, gpg signature, and rat report can be found.
    5. Request that users and developers download it, test it, and vote.
    6. State when the vote closes. The vote must remain open for at least 72 hours. It can be longer at your discretion (e.g. around major holidays).
      Here is a sample email:

      No Format
      
      Subject: VOTE Release Oozie 3.3.0 (candidate 0)
      
      
      Hi,
      
      I have created a build for Oozie 3.3.0, candidate 0.
      
      Keys to verify the signature of the release artifact are available at
      
        http://www.apache.org/dist/oozie/KEYS
      
      Please download, test, and try it out:
      
        http://people.apache.org/~<YOU APACHE ID>/oozie-3.3.0-rc0
      
      The release, md5 signature, gpg signature, and rat report can all
      be found at the above address.
      
      Vote closes on <DATE>.
      
      <YOUR NAME>
      

...

Publishing the Release Artifact

  1. Tag the release renaming the release candidate tag. For example:

    Code Block
    
    $ svn move https://svn.apache.org/repos/asf/oozie/tags/release-3.3.0-rc0 \
    https://svn.apache.org/repos/asf/oozie/tags/release-3.3.0 -m "Oozie 3.3.0 release."
    
  2. Commit the release files to the https://dist.apache.org/repos/dist/release/oozie repository under a subdirectory named after the version. For example:

    Code Block
    
    $ svn co https://dist.apache.org/repos/dist/release/oozie oozie-releases
    $ cd oozie-releases
    $ mdkir 3.3.0
    $ cp ~/oozie-3.3.0-rc0/* 3.3.0/
    $ svn add 3.3.0
    
    $ svn commit -m "Adding Oozie 3.3.0 release artifacts"
    
  3. Update the website.
    1. Update the Releases and Documentation links in the Oozie site.xml file in the https://svn.apache.org/repos/asf/oozie/site/trunk the branch.
    2. Copy the Oozie release documentation to the https://svn.apache.org/repos/asf/oozie/site directory of the site/trunk branch.
    3. Generate and verify the new Oozie site.

      Code Block
      
      $ mvn site
      $ cd target/site
      
    4. After verifying the new site is correct, commit the changes (make sure to add the new documentation set to SVN).
    5. Publish Oozie site.
  4. Wait until you see your changes reflected on the Apache Oozie web site, Apache downloads and mirrors downloads.
  5. Send announcements to the Oozie user and developer aliases once the site changes are visible.

...