Skip to content

Releasing new versions

Minh Nguyễn edited this page Jul 13, 2018 · 2 revisions

Before you begin

Inspect the difference between the last release and the current master branch to determine the numerical version change as specified within the semantic versioning guidelines - such as v1.2.3, v0.9.0, and so on. This will be the specified $VERSION_NUMBER referenced in the instructions below.

Once you've determined the version being released, you can begin with the release process:

Bump up the version

  1. Create a new branch, named release-$VERSION_NUMBER.
  2. Update the internal and marketing version within the project:
    $ agvtool next-version -all && agvtool new-marketing-version `$VERSION_NUMBER`
    
  3. Update MapboxGeocoder.swift.podspec with the new $VERSION_NUMBER.
  4. Update README.md with the new $VERSION_NUMBER.
  5. Create a new pull request, targeting the master branch. Tag one of the project contributors to review.

Draft the release

  1. Create a new draft release with the $VERSION_NUMBER as the title. Leave the target tag empty for now.
  2. In the body of the release, include a link to the difference between the previous release and your $RELEASE_VERSION as follows:
    [Changes](https://github.com/mapbox/MapboxGeocoder.swift/compare/$LAST_RELEASE_VERSION...$RELEASE_VERSION) since [$LAST_RELEASE_VERSION](https://github.com/mapbox/MapboxGeocoder.swift/releases/tag/$LAST_RELEASE_VERSION):
    
  3. Write a changelog summarizing the differences between the last release and the newest release.
  4. After getting the release PR approved, merge the changes into master.
  5. Back in your local project, check out the master branch and pull in the latest changes coming from your recently merged release PR.
  6. Create a new tag with your release version:
    $ git tag $RELEASE_VERSION && git push origin && $RELEASE_VERSION
    
  7. Go back to the draft release and include the new $RELEASE_VERSION tag
  8. Publish the release!

Publish to dependency managers

Carthage

No additional work is needed to release a new version of MapboxGeocoder.swift to Carthage.

CocoaPods

If this is your first time contributing to this project, you will need to get approval to publish new versions of this Pod. Follow registration instructions here, and then contact the maintainers to receive access.

Once you have permissions to publish the Pod, push your released version:

pod trunk push

Please ensure that the version number gets updated within internal documentation sites. If you aren’t a member of the Mapbox organization, contact Mapbox to get it updated.

Once the above steps have been completed, a new version of MapboxGeocoder.swift release is born 🐣 🎉