Skip to content

Release process checklist

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

Table of Contents

For regular releases

Note: we follow semantic versioning and the terms major, minor, patch release are used as in that context.

At GitHub

  1. All code changes are internally tested according to the MathJax Development Process. Once the working branch is deemed ready, iti s merged into the mathjax/master (for out-of-line patch releases it is merged into the branch of the minor version). Don't forget to repack and recombine the files before merging.
  2. If it is not a patch release, an vN.M-latest branch is created. Double check that MathJax's internal version is updated as well.
  3. The release is tagged/released on 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 changed files to the CDN: create/update mathjax/N.m-latest/, update mathjax/latest/ (unless a patch release is made to an older version, then just mathjax/N.m-latest).
  2. When fonts change, you'll need to 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 (e.g., via curl).
  4. Purge the cache: it seems CloudFlare picks up changes to GCS immediately. But to be sure, purge the changed files via the CloudFlare Web Interface or purge the entire CDN.

At mathjax.org

  1. For major and minor releases, 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.

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.
  • The press release should be pushed to MailChimp.

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.

Note for patch release

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.

Clone this wiki locally