Skip to content

iOS lib release checklist

Sam Green edited this page May 2, 2016 · 22 revisions
  1. Evaluate all pull requests (internal or external) and figure out which ones can piggyback on your release. Releases shouldn't be HUGE, but they also have a cost and should bundle new code efficiently.

  2. Make sure iOS8 SDK is installed (linked under /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/)

  3. Make sure your branch is up to date with master.

  4. Run HelloMixpanelTests in a combination of these scenarios.

    • Base SDKs: 8, 9
    • Deployment Targets: 8, 9
    • Simulators: iPhone4inch, iPhone6, iPhone 6+, iPad
    • Devices: iPhone4S, iPhone5, iPhone6, iPhone 5S
    • Simulator OS: 8, 9
  5. As well as unit tests, do a basic sanity test on a phone where you look at the output log and make sure events are getting queued/flushed, check backgrounding / killing the app, make sure events and properties don't get lost.

  6. Once you are satisfied the code is good, merge into master.

  7. Update the #define VERSION in Mixpanel.m, and change the version number in Mixpanel.podspec. Make sure to commit the changes so a new SHA is created, before creating the tag.

  8. Use the following commands in the mixpanel-ios directory to update the header documentation, and commit the result in both mixpanel-iphone and analytics repos

    #!/bin/bash
    rm -rf ./Docs/HeaderDoc
    headerdoc2html -q -o ./Docs ./Mixpanel/Mixpanel.h
    mv ./Docs/Mixpanel_h ./Docs/HeaderDoc
    cp -r ./Docs/HeaderDoc/* ../analytics/media/doctyl/uploads/iPhone-spec/
  9. Create a tag for the new version. Format is "v1.2.3" (using semantic versioning http://semver.org/ ) and push it.

  10. Run the pod spec lint Mixpanel.podspec in the mixpanel-iphone folder and verify that the file is validated -- otherwise it will not be accepted by Cocoapods. The lint tool will grab the code from the tag you specify in the Mixpanel.podspec, so you can only run this once you have pushed the new tag.

  11. Go to github releases page and create a new release, with the best, most user-friendly explanation you can muster.

  12. Release it.

  13. Register for pod trunk http://guides.cocoapods.org/making/getting-setup-with-trunk.html and use pod trunk push Mixpanel.podspec to add the new release to CocoaPods. Check https://github.com/CocoaPods/Specs/tree/master/Specs/Mixpanel to make sure you were successful.

  14. Archive the Carthage frame work by executing
    carthage build --no-skip-current
    carthage archive Mixpanel

  15. Attach Mixpanel.framework.zip to the release on GitHub

  16. Update any GitHub issues that have been waiting for this release.

  17. Update this page with any information you found missing.

Clone this wiki locally