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 => s.version
in thePodspec
files instead of:branch
.
- 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
- Release the updated Podspecs:
cd Support/CocoaPods pod repo add readium [email protected]:readium/podspecs.git pod repo push readium ReadiumInternal.podspec pod repo push readium ReadiumShared.podspec pod repo push readium ReadiumStreamer.podspec pod repo push readium ReadiumNavigator.podspec pod repo push readium ReadiumOPDS.podspec pod repo push readium ReadiumLCP.podspec pod repo push readium ReadiumAdapterGCDWebServer.podspec pod repo push readium ReadiumAdapterLCPSQLite.podspec
- 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
.