Skip to content

Release Checklist

Kyle Warren edited this page May 30, 2014 · 4 revisions

Release Checklist

Pre-release

  1. Your changes to the library should be on a branch.

  2. Your changes should have unit tests.

  3. Minify your code using the build script.

    ./build.sh <google closure compiler.jar path>
    
  4. Run the unit tests in tests/tests.html and tests/tests_min.html and make sure they pass.

  5. With the mixpanel-js submodule set to your revision, run the dev and min unit tests on Cross-browser Testing for all browsers with a delay of 60 seconds. http://crossbrowsertesting.com https://mixpanel.com/tests/

  6. Get a full code review from a Mixpanel developer.

Release

  1. Merge your branch into master and push to github.

  2. Tag your branch using Semantic Versioning. http://semver.org/

    git tag v2.2.1
    
  3. Push your tag to github.

  4. Create a release on github that references your tag, and give ot a human-readable explanation for your changes.

  5. Create a branch in the mixpanel webapp repo for your JS release.

  6. cd into the mixpanel-js submodule and checkout the new release.

  7. Run the mixpanel_js_compressor to add the snippet and docs to the repo if they've changed.

  8. git commit the new release to your webapp branch and initiate a full unit test.

  9. Get a full review from a Mixpanel developer.

  10. Deploy the web app.

  11. Check https://mixpanel.com/libs/mixpanel-2.2.js and https://mixpanel.com/libs/mixpanel-2.2.min.js to see if they has your most recent revision. The cdn will not immediately update.

Post-release

  1. Compose an email to the engineering team explaining that you released a new revision to the JS lib and notify everyone in chat that they should run the submodule update command after merging in master.

    git submodule update --init <mixpanel-js-dir>
    
  2. Compose an email to the Solutions team explaining that there is a new release. They will determine the proper way to inform the community.

  3. You're done. Remember that the lib JS files have a 24-hour time to live.

Clone this wiki locally