Skip to content

[Admin] Release Process

AliSoftware edited this page May 20, 2015 · 8 revisions

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 both iOS 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.version field of the OHHTTPStubs.podspec file.
Note: You may use pod lib lint to check that the podspec is still valid at that point.

Ensure Example projects still work

For each Example project (Examples/ObjC and Examples/Swift):

  • Go in the example project's directory and run pod update to ensure the example include the latest version
  • Run the example and ensure it still works 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 (WIP, not tested yet)

Publish the zipped carthage Archive to GitHub Release

Use carthage archive OHHTTPStubs to create the archive and attache it to the GitHub release (WIP, not tested yet)