Skip to content

Instantly share code, notes, and snippets.

@cvasilak
Forked from matzew/iOS.md
Created July 8, 2014 07:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cvasilak/e0560a585956771e7d21 to your computer and use it in GitHub Desktop.
Save cvasilak/e0560a585956771e7d21 to your computer and use it in GitHub Desktop.

Requirements

  • Have gpg-agent installed, configured and running. One way to be sure to check if your gpg agent is running correctly is to encrypt and decrypt a file, using the gpg tool, don't forget to pass the --use-agent option, you should be prompted with a dialog (depending on your OS asking for your pass phrase). Now try to decrypt again, you hsould not be asked again for your pass phrase : your agent is working.

Release process

Preparation

Once the code is ready to be released, create a branch that indicates the version, e.g. 0.5.0-release and send a heads-up (or vote) email to the mailing list asking to test the bits before we do release.

The email should contain a list of the fixes that went in (e.g. git changelog or JIRAs solved in the release)

After 72 hours, if no feedback is provided (lazy consensus), we can perform the actual release

Perform

After a successful vote, it's time to get the bits out

  1. git tag -s x.y.z <commit_SHA_of_the_last_relevant_commit_to_be_in_the_release> -m "signed MY ARTIFACT x.y.z tag"
  • Verify that you really singed the tag, by executing git tag -v x.y.z. The output should be similar to:

      object ac05cd2a4ed8b6ef354acdf17fff321f33548997
      type commit
      tag 0.2.1
      tagger Matthias Wessendorf <matzew@apache.org> 1375864277 +0200
    
      signed unified push java client 0.2.1 tag
      gpg: Signature made Wed Aug  7 10:31:17 2013 CEST using DSA key ID 1CE17EDC
      gpg: Good signature from "Matthias Wessendorf <matzew@apache.org>"
    
  1. git push origin x.y.z
  • If all went OK, push the tag and delete the "release branch" that was used for testing
  1. Send PR to CocoaPods of the spec file, that is used on the newly created TAG
  2. Once that PR was merged, do the announcement email that there is a new release available
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment