-
Notifications
You must be signed in to change notification settings - Fork 55
Releasing Turf swift
The following guide will include version names to illustrate releasing version v0.4.0
.
Takes 10–15 minutes
- Decide on a semver-compliant version number according to these guidelines. The version number should be of the form 9.8.7-alpha.1, 9.8.7-beta.1, 9.8.7-rc.1 (for a release candidate), or 9.8.7 (for a final release).
- Create a new branch, such as
myname-v9.8.7
. - Run
./scripts/update-version.sh v9.8.7
, where 9.8.7 is the semver-compliant version you chose in step - Commit the resulting changes with a commit message like
v9.8.7
and open a PR to get it reviewed and merged. - Once the PR is merged, switch back to
main
and pull the latest changes from origin/main. - Create a tag using
git tag v9.8.7
, where 9.8.7 is the semver-compliant version you chose in step - Push the tag by running
git push origin v9.8.7
.
Takes 10–15 minutes
You can carry out some of these steps parallel to the previous section while you wait for a PR approval:
- Draft a new release.
- Title the release
v9.8.7
(where 9.8.7 is the new version). - In the tag version dropdown, select the tag you pushed in the previous section.
- If this is a prerelease, add release notes based on changes since the previous prerelease. Otherwise, list the changes compared to the previous final release. Start each breaking change with
⚠️ , and end each change with a link to the PR. (Unlike the changelog, release notes accept#123
syntax for linking to PRs.) - Prepend the prologue (substituting the old, new, old, and old release, respectively):
[Changes](https://github.com/mapbox/turf-swift/compare/v9.8.7...v9.9.0) since [v9.8.7](https://github.com/mapbox/turf-swift/releases/tag/v9.8.7):
- Append the epilogue:
Documentation is [available online](https://mapbox.github.io/turf-swift/) or within Xcode.
- Check “This is a pre-release” if applicable, then click “Publish release”.
Takes less than 5 minutes
Publish the new release’s docset by running the following commands (substituting #.#.#
for the version number):
SEMVER_VERSION=#.#.#
git checkout v${SEMVER_VERSION}
OUTPUT=${SEMVER_VERSION} ./scripts/document.sh && git add ${SEMVER_VERSION}
git checkout gh-pages && git pull
echo "<meta http-equiv='refresh' content='0; url=${SEMVER_VERSION}' />" > index.html && git add index.html
git commit -m v${SEMVER_VERSION} && git push
git checkout -
Takes less than 5 minutes
If you aren’t personally listed as an owner of the Turf pod, you can log in using the shared Mapbox account.
CocoaPods trunk release should be triggered automatically in the cocoapods-release
workflow as soon as you push tag with a v
prefix. Double-check that it passed successfully.
If the pod trunk push
command fails due to warnings, open an issue about the warnings. If the warnings are benign, then rerun the rest of the commands passing --allow-warnings
.
- (Final releases only.) Move unfinished tickets and open PRs off of the milestone corresponding to this release and onto an upcoming milestone, and close the current milestone.
- (Final releases only.) Upgrade MapboxMaps to require the new version in its Package.swift and podspec.
- (Final releases only.) Upgrade MapboxDirections to require the new version in its Package.swift, podspec, and Cartfile.