Skip to content

Release Steps

Joel Fischer edited this page Sep 22, 2020 · 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 number in the podspec.

  4. Ensure that the RPC and protocol versions in the SDLGlobals file are up to date.

  5. Update to the newest BSON submodule.

  6. Add the exhaustive changes to the CHANGELOG file.

  7. Ensure that you have Jazzy installed on your system (sudo gem install jazzy). Generate Jazzy Documentation using (from the script directory) bash generate-documentation.sh. The changes will be committed.

  8. Ensure that the RPC_SPEC has released to the master branch and update the submodule to point to the new release tag (or to the HEAD of master, if no release of the RPC_SPEC is occurring).

  9. Commit the release to develop, merge it to master (or for Beta / RC a release/x.x.x branch) 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