You are ready to release a new version of the Swift toolkit? Great, follow these steps:
- Figure out the next version using the semantic versioning scheme.
- Test a migration from the last released version.
- Create a temporary Git tag for
develop
with the next version tag (e.g.3.0.1
). - Clone the
swift-toolkit
from the previous version (main
branch). - Under
TestApp
, initialize it with the next toolkit version:make spm version=3.0.1 lcp=...
- Try to run the Test App, adjusting the integration if needed.
- Delete the Git tag created previously.
- Create a temporary Git tag for
- Update the migration guide in case of breaking changes.
- Issue the new release.
- Create a branch with the same name as the future tag, from
develop
. - Bump the version numbers in the
Support/CocoaPods/*.podspec
files.⚠️ Don't forget to use:tag
in thePodspec
files instead of:branch
, for example.
- Bump the version numbers in
README.md
. - Bump the version numbers in
TestApp/Sources/Info.plist
. - Close the version in the
CHANGELOG.md
, for example. - Create a PR to merge in
develop
and verify the CI workflows. - Squash and merge the PR.
- Tag the new version from
develop
.git checkout develop git pull git tag -a 3.0.1 -m 3.0.1 git push --tags
- Create a branch with the same name as the future tag, from
- Verify you can fetch the new version from the latest Test App with
make spm|carthage|cocoapods version=3.0.1
- Announce the release.
- Create a new release on GitHub.
- Publish a new TestFlight beta with LCP enabled.
- Click on "External Groups" > "Public Beta", then add the new build so that it's available to everyone.
- Merge
develop
intomain
. ⚠️ Revert to:branch => "develop"
in thePodspec
files indevelop
.