Skip to content

Release Process

Chris Araman edited this page Nov 4, 2021 · 24 revisions

GitHub

  1. Decide on the new version using Semantic Versioning
  2. Edit the "Draft" release
    • Set the tag name using the format: v<version> (e.g. v1.2.3)
      • This is harder now since GitHub will automatically generate a tag like "untagged-4cd67b0c4b7042a7bd7d"
    • Set the release title using the format: v<version>: <emoji?> <subject> (e.g. v1.8.1: 📼 Fix outdated & upgrade commands)
  3. Click the "Publish release" button

Homebrew (core)

  1. After creating the tagged release in GitHub, brew bump-formula-pr mas --tag=v1.8.1.

Homebrew (custom tap)

  1. Tap the custom tap: brew tap mas-cli/tap
  2. Edit the custom tap formula at $HOMEBREW_PREFIX/Library/Taps/mas-cli/homebrew-tap/Formula/mas.rb.
    1. Update the tag field with the same tag name you created above.
      Example: tag: "v1.8.1",
    2. Update the revision field with the hash that the tag points to. Use command: git rev-list -n 1 v1.8.1
      Example: revision: "23a36b4555f5625fe29915b31b8b101064452dca"
    3. Update the root_url field with the new tag.
      Example: root_url "https://github.com/mas-cli/mas/releases/download/v1.8.1"
  3. Run the script/bottle script. This generates bottles for the custom tap.
  4. Update the hashes in the formula with the output of shasum -a 256 .build/bottles/mas-*.bottle.tar.gz.
  5. Edit the release on GitHub and upload the .build/bottles/mas-*.bottle.tar.gz assets for the custom Homebrew tap.
  6. Commit your changes in $HOMEBREW_PREFIX/Library/Taps/mas-cli/homebrew-tap and push to GitHub.
  7. Optionally, untap the custom tap and reinstall the core mas bottle: brew untap mas-cli/tap && brew install mas

MacPorts

Installer Package

  1. Fetch the new release tag from GitHub: git fetch --tags
  2. Verify that script/version shows the new version.
    • This will update the generated Sources/MasKit/Package.swift file (not tracked in git).
  3. Run the script/build_artifacts script.
    • This generates the .build/mas.pkg installer package
  4. Edit the release on GitHub and upload the .build/mas.pkg asset.