-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Releasing the Mapbox iOS SDK
(Consider releasing the Mapbox macOS SDK at the same time.)
- 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 by running
./platform/ios/scripts/update-version.sh vX.Y.Z-pre.P
, wherevX.Y.Z-pre.P
is the full semantic version. - 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
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. 💚
In times of dire need, you can still deploy manually by following the instructions in this old revision, which relies on this script.
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
.
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.
Workflow: Code, Makefile, CMake, Xcode, ccache, Debugging, CI, JS/Native, Code Generation, Versions & Tagging, Contributing, Troubleshooting
Architecture: Threads, Immutability, Expressions, Text Rendering, Collision Detection, CJK Text
Rendering: OpenGL, Coordinate Systems
Android: checkstyle, APK Size, 4→5, 5→6, 6→7, Symbolication
iOS/macOS: 3→4
Releasing: iOS, macOS, Merging back
Misc: Terminology