[Admin] Release Process - AliSoftware/OHHTTPStubs GitHub Wiki
Here are a memo to steps needed to release a new version:
Ensure tests pass / CI is OK
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)
Update the CHANGELOG
Edit the CHANGELOG.md file to list all the changes.
Bump the lib version
-
Bump the
s.versionfield of theOHHTTPStubs.podspecfile.
Note: You may usepod lib lintto check that the podspec is still valid at that point. -
Don't forget to also change the
CURRENT_PROJECT_VERSIONproject build setting inOHHTTPStubs/OHHTTPStubs.xcodeproj
Ensure Example projects still work
For each Example project (Examples/ObjC and Examples/Swift):
- Go in the example project's directory and run
pod installto ensure the example include the latest version - Run the example and ensure they still work properly
Add a tag
git tag the latest commit then push the tag to GitHub.
Release the new version to CocoaPods
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…)
Add Release to GitHub
In the Release tab of GitHub, add the corresponding release and copy/paste the CHANGELOG.md entries to the Release description
Ensure it still works for Carthage
Run carthage build --no-skip-current to build the framework using Carthage
Publish the zipped carthage Archive to GitHub Release
[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