-
Notifications
You must be signed in to change notification settings - Fork 601
[Admin] Release Process
Here are a memo to steps needed to release a new version:
Ensure that Travis-CI is all-green and that all Unit Tests pass for iOS, tvOS and OSX.
One can even run Unit Tests locally especially test them against older iOS SDKs (Travis-CI don't support older SDKs and older versions of Xcode so we can't make it run the tests on iOS7 Simulators for example)
Edit the CHANGELOG.md
file to list all the changes.
-
Bump the
s.version
field of theOHHTTPStubs.podspec
file.
Note: You may usepod lib lint
to check that the podspec is still valid at that point. -
Don't forget to also change the
CURRENT_PROJECT_VERSION
project build setting inOHHTTPStubs/OHHTTPStubs.xcodeproj
For each Example project (Examples/ObjC
and Examples/Swift
):
- Go in the example project's directory and run
pod install
to ensure the example include the latest version - Run the example and ensure they still work properly
git tag
the latest commit then push the tag to GitHub.
Run pod trunk push OHHTTPStubs.podspec
.
This will validate the podspec, ensure it still works and compile, then push it to CocoaPods Trunk (which will in turn automatically trigger the generation of the new documentation on CocoaDocs.org, etc…)
In the Release tab of GitHub, add the corresponding release and copy/paste the CHANGELOG.md
entries to the Release description
Run carthage build --no-skip-current
to build the framework using Carthage
[EDIT] We generally don't do this step for now until Swift reaches ABI stability, because we can only expose a framework built with one given Swift compiler and can't content everybody, so for now with so many ABI-incompatible Swift versions in the wild, publishing a pre-compiled framework using one Swift version always upset half of users anyway, so better let everyone's Carthage built OHHTTPStubs from source.
Hopefully with Swift 5 and ABI stability we'll start publishing pre-compiled frameworks for Carthage again.
Use carthage archive OHHTTPStubs
to create the archive, then attach it to the GitHub release