Releasing

(Note: This document is a reference for people with push access to Moya and to CocoaPods.)

Before release

Releasing a new version of Moya has been automated as much as possible. There are a few prerequisite steps:

  1. Generate a GitHub personal access token
  2. Run the following command: ruby echo "machine api.github.com login {GITHUB_LOGIN} password {GITHUB_TOKEN}" > ~/.netrc Where {GITHUB_LOGIN} is your GitHub login and {GITHUB_TOKEN} is your personal access token generated in step 1 (or if you had one before). Example: ruby echo "machine api.github.com login ashfurrow password dc14e6ac2b871e7630f56df3d57d2694b576316a" > ~/.netrc This lets the automated release script access the GitHub API authorized as you.
  3. Then run chmod 600 ~/.netrc.
  4. Make sure you have a registered CocoaPods session. To do that you can run command: ruby pod trunk me If you see an error command that you do not have registered session, run command below: ruby pod trunk register you@youremailaddress.com
  5. Install jazzy [sudo] gem install jazzy

Release

(Note: To make a release, you need at least one entry in the Next section of the changelog.)

To make a release:

  1. Pull latest from master and make sure your git is clean (the script will fail if it’s not).
  2. Run bundle install.
  3. Run swift run X.Y.Z.
  4. Grab a :tea: or :coffee:.
  5. Make sure everything went smoothly.

After release

What you might need to do manually afterwards:

  1. Update the instructions for our supported package managers in the Readme to use the release you just made public (e.g. update version numbers if it was a major release).
  2. Update Swift/Moya version table if needed.
  3. Update the release description in GitHub releases tab.

If anything goes wrong, don’t panic! Get in touch with someone else who has released, or Ash.