Skip to content

Release process checklist

Peter Krautzberger edited this page Apr 29, 2015 · 30 revisions

Table of Contents

For regular releases

At GitHub

  1. All code changes are internally tested according to the MathJax Development Process, and merged into the mathjax/master branch at GitHub. Repack and recombine the files to make sure they are consistent with the unpacked versions.
  2. If this is a numbered release, the vN.M-latest branch is created, and a README-branch.txt file is made for the version number, and committed to the branch. This makes the branch appear as a separate line in the network viewer. Check that MathJax's internal version is updated as well.
  3. The release is tagged in GitHub. This causes a labeled distribution to be created (with the tag name) in the GitHub download manager.
  4. Complete the Documentation update process.
  5. The download distribution should then be downloaded and smoke tested.

At CDN

Reference: https://github.com/mathjax/MathJax/wiki/CDN-Hosting-at-Google-Cloud-Storage

  1. Upload the new version to the CDN as N.m-latest and update latest.
  2. If fonts were updated, fix mime-type headers. If there were no updates, it's faster to copy the fonts from latest to N.m-latest in the cloud.
  3. If updated, check the custom headers of fonts via curl.
  4. Purge the cache: it seems CloudFlare picks up changes to GCS immediately. But to be sure, purge MathJax.js via the CloudFlare Web Interface.

At mathjax.org

  1. A news announcement for the release is posted. The post should follow the announcement for previous versions, in particular
    • Describe what is new
    • Advise regarding the CDN propagation (clear browser cache etc)
    • Point to the release
    • Give instructions for reporting bugs, and refer questions to MathJax Users
  2. Extract from this a press release and push it via MailChimp.

For the community

  • Send word to the MathJax sponsors
  • Announcement should be posted to the User Groups at mathjax-dev and mathjax-users
    • Advise regarding the CDN propagation (clear browser cache etc)
  • The new post should be announced on social media channels, see MathJax-web-presence.

For beta releases

This is almost identical, except that we don't do as much.

At GitHub

  1. All code changes are internally tested according to the MathJax Development Process and merged into the mathjax/vN.M-beta branch at GitHub. Repack and recombine the files to make sure they are consistent with the unpacked versions.
  2. The vN.M-beta branch is created. This makes the branch appear as a separate line in the network viewer. Check that MathJax's internal version is updated as well.
  3. The download distribution should then be downloaded and smoke tested.

At CDN

  1. Upload the new version to the CDN by updating the copy in the mathjax-beta buckets.
  2. Set the custom headers for the fonts.
  3. Check the custom headers via curl.

At mathjax.org

  1. A news announcement for the beta release is posted. The post should follow the announcement for previous versions, in particular
    • Describe what is new
    • Point to the beta branch and download at github.
    • Give instructions for reporting bugs, and refer questions to MathJax User Groups

For the community

  • Send word to the MathJax sponsors
  • Announcement should be posted to the User Groups at mathjax-dev and mathjax-users
  • The new post should be announced on social media channels MathJax-web-presence.

For patch release

This is the process for releasing a patch release to the CDN:

  1. Prepare and test a vN.m.x branch with the fixes as per our regular development process
  2. Merge to vN.m-latest (and master when patching the current release).
  3. Tag / make a GitHub release pointing to milestone.
  4. Copy the changed files to mathjax/x.y-latest (and mathjax/latest if that's the latest) on the CDN
  5. Purge the CDN
  6. Send email update to sponsors, mailing lists, cdn-notify list
  7. Monitor for any issues.

Note that our policy is that we don't create tracking branches or documentation branches for patch releases.

From the documentation:

If a packaged release receives any important updates, then those updates will be part of the branch for that version. The link to the .zip file in the download list will be the original release version, not the patched version. To obtain the patched version, use the Branches drop down menu (at the far left of the menus within the page) to select the release branch that you want (for example v1.1-latest), and then use the download button and the Download .tar.gz or Download .zip button to get the latest patched version of that release.

Note: The CDN notify announcements should contain this info, as should the download page.

Clone this wiki locally