Skip to content

iOS lib release checklist

malectro edited this page Oct 8, 2014 · 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 iOS6 SDK is installed (linked under /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/)

    • Find it on the internet, or ask Alex Hofsteede or Kyle Warren.
  3. Make sure your branch is up to date with master.

  4. Run HelloMixpanelTests in a combination of these scenarios.

    • Base SDKs: 6, 7, 8
    • Deployment Targets: 6, 7, 8
    • Simulators: iPhone 3.5inch, iPhone 4inch, iPhone6, iPhone 6+, iPad
    • Devices: iPhone4S, iPhone5, iPhone6, iPhone 5S
    • Simulator OS: 6, 7, 8
  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

  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
    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" command in the Mixpanel.podspec 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. Talk to Marshall about what you just released. He will send out an email to the dev mailing list.

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

Clone this wiki locally