Skip to content
mplorentz edited this page Sep 23, 2023 · 41 revisions

If you are a Planetary employee who wants to know how to release Planetary's iOS app you have come to the right place. If you want to release a fork of Planetary this might be helpful too.

First Time Setup

  • Check out planetary-ios and follow the Developer Installation instructions in the CONTRIBUTING.md.
  • Check out planetary-social/planetary-config-ios repository.
  • brew install mono0926/license-plist/license-plist to install the tool that generates our acknowledgements.
  • Install fastlane: brew install fastlane
  • Get added to the Verse Communications Apple Developer team with Manager permissions or higher.
  • Ask an existing team members for the build secrets file and copy it to Resources/Secrets.release.plist.
  • Ask an existing team member for the auth key .p8 file put it at ~/.fastlane/AuthKey_4L8Z9W89TJ.p8
  • Tell git to never commit changes to the secrets
git update-index --skip-worktree Resources/Secrets.release.plist
  • Get credentials for Radaar.
  • Get credentials for Zendesk.
  • Get credentials for the Planetary SSB account at https://planetary.rocks
  • Join our Discord or Matrix server (they are bridged together).

Build & Upload

  • Checkout the latest commit of the main branch.
  • Create a release branch including the version number like release/1.0.16.
  • Update the preloaded feed using the instructions at https://github.com/planetary-social/feed_seralizer/blob/main/README.md
  • Increment the version number if necessary, following Semantic Versioning guidelines. You can do this by running fastlane bump_{major, minor, or patch}. Fastlane will automatically bump the build number later on.
  • Update the Unreleased section of the CHANGELOG.md in the Github repository (it will be properly labeled with the version and release number by fastlane).
  • Run fastlane beta to build and upload the app to TestFlight.
  • Commit changes and push.

Deploy to Planetary Employees

  • Wait for the build to finish processing in the TestFlight dashboard.
  • Click on the build in the TestFlight Dashboard and past the CHANGELOG into the Test Details box.

Deploy to Beta Testers

  • Deploy the app to Planetary employees (see above)
  • Translate CHANGELOG into release notes.
  • Enter release notes into the Test Details box.
  • Click the + button in the Groups section and add the "Beta Public" group to distribute the build to our public beta testers.

Submit for review

  • Ask Sebastian to translate release notes into Spanish.
  • Ask Filip to translate release notes into Polish.
  • Open App Store Connect and click the blue plus button in the top left.
  • Enter the version number, like "1.3.4" and click ok.
  • Put the release notes in the What's New In This Version section for each language. You can change the language at the top.
  • Select the correct build in the Build section.
  • Select "Manually release this version" in the Version Release Section unless you have already completed testing and want the build to go out automatically.
  • Click "Save" in the top right.
  • Click "Add for Review".
  • Click "Submit for Review" on the next page.
  • Perform final QA testing.

After QA & App Store Review Approval

  • Do a final check of TestFlight feedback and Github issues for any blocking bugs.
  • Create a new page in the Release Notes section in Zendesk.
  • Tag the deployed commit with the semantic version number i.e. "1.0.7".
  • Create a Github Release, copying in the tag name and a link to the CHANGELOG.
  • Click "Release this Version" in App Store Connect
  • Merge the release branch into main and delete it.
  • Post release notes to Planetary account at https://planetary.rocks. (Connect to replicate with sbot gossip.connect "net:planetary.rocks:8008~shs:l1sGqWeCZRA99gN+t9sI6+UOzGcHq3KhLQUYEwb4DCo=")
  • Post release notes on Radaar
  • Post release notes on Discord
  • Update this wiki page with any procedural changes.

Clone this wiki locally