(Consider releasing the Mapbox macOS SDK at the same time.)
Version the packages
- Choose a version number per Semantic Versioning and our tagging rules. Let's call it
ios-vX.Y.Z
. If this is a pre-release, go withios-vX.Y.Z-pre.P
, whereP
begins at1
and increments for each pre-release. - If necessary, update the screenshot.
- Update the version in the podspec, -snapshot-dynamic podspec, and -stripped podspec.
- Update the
CHANGELOG.md
for the release.- Add today’s date to the header for the release.
- #protip: you can use the compare (
ios-v#.#.#-previous-beta.#...release-N|master
) feature in github to more easily find intra-release changes (i.e. https://github.com/mapbox/mapbox-gl-native-ios/compare/ios-v5.7.0-alpha.1...ios-v5.7.0-beta.1).
- Run
tx pull -a
to add or update translations. - Create a pull request with these changes and have it approved/merged.
- Create a tag
ios-vX.Y.Z
. git push origin ios-vX.Y.Z
Build and release
The release build and deployment process starts on CircleCI once you push the tag. This will automatically:
- Build, package, and upload the different release flavors to s3 and GitHub.
- Create a draft release on GitHub.
Once the ~35 minute deployment process is finished, you should:
- Copy the release notes to the draft GitHub release.
- Check that the attached packages are valid.
- Push the publish button. 💚
The old manual way
In times of dire need, you can still deploy manually by following the instructions in this old revision, which relies on this script.
Stable releases
cocoapods
Note: You should first register a CocoaPods id and be added as a CocoaPods collaborator for the Mapbox-iOS-SDK pod
- Run
pod trunk push platform/ios/Mapbox-iOS-SDK.podspec
.
Documentation
Pre-releases
Documentation
Publish API documentation in the mapbox/ios-sdk repo. After generating the docs, only commit the new api/X.X.X/
folder — this makes them publicly available, but leaves the stable version as the default.