-
Notifications
You must be signed in to change notification settings - Fork 116
How to Release
The purpose of this page is to document JOSESwift's release automation. It should give maintainers an overview on how to release a new version of JOSESwift.
We heavily rely on Fastlane for automating our release process. The purpose of automating this process is to get rid of repetitive, error-prone tasks while promoting short release cycles.
- π€
bundle exec fastlane prepare type:<major|minor|patch>
- β³ Wait for approval on release pull request
- π
bundle exec fastlane release
Releasing a new version of JOSESwift consists of two mostly automated parts:
- Release preparation
- Release
This will bump the version number of the project, format Swift code, and run the tests.
All changes will be committed and pushed to a release branch release/<x-x-x>
.
- Checkout master and run
bundle exec fastlane prepare type:<major|minor|patch>
depending on the version increment you want to make. See Semantic Versioning for details. - The lane will halt before it finishes and ask for your confirmation to continue. If you want to include any changes in the release, you can make them before you continue the lane. MAzbe double check the automatically updated
CHANGELOG.md
? Fastlane will automatically commit your changes to the release branch it created.
If you have GitHub's CLI installed the prepare step outlined above will automatically create a pull request with the version number bump. Once the pull request has been approved, merge it and continue with the last step.
If you don't have GitHub's CLI installed, go to GitHub and create a pull request to merge the prepared release branch to master
.
- Checkout
master
and make sure it is up-to-date with the remote. - Run
bundle exec fastlane release
. This will tag the release and push the tag to GitHub. It will also push the updated podspec to the CocoaPods trunk.