-
Notifications
You must be signed in to change notification settings - Fork 105
Release Steps
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.
-
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 number in the podspec.
-
Ensure that the RPC and protocol versions in the SDLGlobals file are up to date.
-
Update to the newest BSON submodule. Update Package.swift and CocoaPods dependency files to point to latest if necessary.
-
Add the exhaustive changes to the CHANGELOG file.
-
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. -
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 ofmaster
, if no release of the RPC_SPEC is occurring). -
Commit the release to
develop
, merge it tomaster
(or for Beta / RC arelease/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:
-
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.
-
Push the new release to the primary cocoapod using command line:
pod trunk push SmartDeviceLink.podspec --allow-warnings
. -
Push the new release to the secondary cocoapod using command line:
pod trunk push SmartDeviceLink-iOS.podspec --allow-warnings
. -
Add a binary archive to the release for Carthage (fat framework) using this guide. Specifically, build a new version using
carthage build --no-skip-current --platform ios
, then run:carthage archive --project-directory ./
- Temp: `carthage update --new-resolver --no-build # Or use bootstrap for a CI with a Cartfile.resolved
- bash carthage-build.sh --cache-builds --platform iOS # Add --configuration Release-static if you choose static builds.`
-
Add a binary xcframework archive for manual installation with the following commands:
xcodebuild archive -project 'SmartDeviceLink-iOS.xcodeproj/' -scheme 'SmartDeviceLink' -configuration Release -destination 'generic/platform=iOS' -archivePath './SmartDeviceLink-Device.xcarchive' SKIP_INSTALL=NO
xcodebuild archive -project 'SmartDeviceLink-iOS.xcodeproj/' -scheme 'SmartDeviceLink' -configuration Release -destination 'generic/platform=iOS Simulator' -archivePath './SmartDeviceLink-Simulator.xcarchive' SKIP_INSTALL=NO
xcodebuild -create-xcframework -framework './SmartDeviceLink-Device.xcarchive/Products/Library/Frameworks/SmartDeviceLink.framework/' -framework './SmartDeviceLink-Simulator.xcarchive/Products/Library/Frameworks/SmartDeviceLink.framework/' -output './SmartDeviceLink.xcframework'
- Compress the
.xcframework
and add the it to the release.
-
Add the docset to the release found in
docs/docsets/
.
Copyright 2021 SmartDeviceLink Consortium