(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 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 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
  5. Install jazzy [sudo] gem install jazzy


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