Skip to content

Release Steps

Joel Fischer edited this page Dec 12, 2018 · 34 revisions

When working on a new release, there are a few steps that need to be taken. This should eventually be wrapped up in a script, but for now it's manual. See this example commit.

  1. Run clang-format using the style file in the github repository. In terminal, run the script like this: clang-format -i -style=file ./SmartDeviceLink/*.

  2. The project file's version should be bumped to the new version number according to semantic versioning 2.0.0. The example project should also be bumped. Change the version in the xcode project version field

  3. Change the version in SDLProxy.m.

  4. Change the version number in the podspec.

  5. Change the SyncMsgVersion to match the implemented RPC spec.

  6. Change the README to reference the most current version.

  7. Add the exhaustive changes to the CHANGELOG file.

  8. Generate Jazzy Documentation using (from the script directory) bash generate-documentation.sh. The changes will be committed.

  9. Commit the release to develop, merge it to master and tag it there (e.g. 4.3.0, 4.3.0-alpha.1, 4.3.0-rc.2), then merge master back to develop.


After committing the new release and tagging it:

  1. Create a new release for the tag and add the highlights of the changes. For example, if there are breaking changes, any new features, or major changes / bugfixes.

  2. Push the new release to the primary cocoapod using command line: pod trunk push SmartDeviceLink.podspec --allow-warnings.

  3. Push the new release to the secondary cocoapod using command line: pod trunk push SmartDeviceLink-iOS.podspec --allow-warnings.

  4. Add a binary archive to the release for Carthage using this guide. Specifically, build a new version using carthage build --no-skip-current --platform ios, then run: carthage archive --project-directory ./

  5. Add the docset to the release found in docs/docsets/.

Clone this wiki locally