tree: 87d6b1796a94f9faaef574120359d896a475cea9 [path history] [tgz]
  1. metron-rc-check
  2. prepare-release-candidate
  3. README.md
  4. validate-jira-for-release
dev-utilities/release-utils/README.md

Release Tools

This project contains tools to assist Apache Metron project committers.

Prepare Release Candidate

This script automates the process of creating a release candidate from apache/metron or apache/metron-bro-plugin-kafka. The script will prompt for various information necessary. Ensure your signing key is setup per Release Signing and Apache GnuPGP Instructions

When prompted the [value in brackets] is used by default. To accept the default, simply press enter. If you would like to change the default, type it in and hit enter when done.

In the following example, enter the appropriate information

  1. Execute the script.

    The first time the script is run, you will be prompted for additional information including your Apache username and Apache email. These values are persisted in ~/.metron-prepare-release-candidate. Subsequent executions of the script will retrieve these values, rather than prompting you again for them.

    $ ./prepare-release-candidate
      your apache userid []: leet
      your apache email [leet@apache.org]:
    
  2. Select a repository we're creating an RC for.

        [1] metron
        [2] metron-bro-plugin-kafka
      which repo? [1]: 1
    
  3. Enter the current version number. This will be the base for the CHANGES file

      current version: 0.6.0
    
  4. Enter the version being built.

      version being built: 0.6.1
    
  5. Enter the current RC number

      release candidate number: 1
    
  6. Enter the branch we're releasing from. In most cases, this will be master, but for maintenance releases it can be another branch.

      base revision branch or hash for release candidate [master]:
    
  7. Enter the signing key id.

      signing key id in 8-byte format (e.g. BADDCAFEDEADBEEF):
    
  8. Enter if this is a practice run. In a practice run, nothing is pushed to SVN, but everything is setup and built otherwise.

      do a live run (push to remote repositories?) [y/n]
    
  9. Wait for all repos to be checked out to complete. There will be some additional work done, e.g. along with branch and tag creation. In a live run, you may be prompted for Git credentials to push a branch.

      Checking out repo: https://dist.apache.org/repos/dist/dev/metron
      Checking out repo: dev
      Checking out repo:  https://dist.apache.org/repos/dist/release/metron
      Checking out repo: release
      Checking out git repo: https://gitbox.apache.org/repos/asf/metron.git
      Cloning into '/Users/justinleet/tmp/metron-0.6.1/metron'...
      remote: Counting objects: 46146, done.
      remote: Compressing objects: 100% (15568/15568), done.
      remote: Total 46146 (delta 21513), reused 43696 (delta 19489)
      Receiving objects: 100% (46146/46146), 56.00 MiB | 1.04 MiB/s, done.
      Resolving deltas: 100% (21513/21513), done.
      Creating branch: Metron_0.6.1
      Using git rev: master
      Already on 'master'
      Your branch is up to date with 'origin/master'.
      Switched to a new branch 'Metron_0.6.1'
      This is a practice run. Not running <git push --set-upstream origin Metron_0.6.1>
      Creating tentative git tag <0.6.1-rc1>. Do not push this tag until RC is ready for community review.
      Already on 'Metron_0.6.1'
      Creating the RC tarball for tag apache-metron-0.6.1-rc1
      Creating the SHA hash files
    
  10. Provide the passphrase to gpg to sign the artifacts.

      Signing the release tarball
      Copying release artifacts
    
  11. Shortly afterwards the RC will be finalized. In a practice run, this will not be pushed back to SVN.

      Creating CHANGES file
      Extracting LICENSE, NOTICE, and KEYS from tarball
      x LICENSE
      x NOTICE
      This is a practice run. Not running the following commands:
      <svn add 0.6.1-RC1>
      <svn commit -m "Adding artifacts for metron 0.6.1-RC1">
    

At this point, all RC artifacts have been created. In a live run, these will have been pushed to the appropriate repositories and are ready for community review.