-
Notifications
You must be signed in to change notification settings - Fork 0
Release process checklist
Table of Contents
- 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. - 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. - The release is tagged in GitHub. This causes a labeled distribution to be created (with the tag name) in the GitHub download manager.
- Complete the Documentation update process.
- The download distribution should then be downloaded and smoke tested.
- Upload the new version to the CDN as
N.m-latest
and updatelatest
. - Set the custom headers for the fonts (see Managing Rackspace Cloud Files & CDN; should only be necessary for new fonts)
- Check the custom headers of fonts via curl.
- File a ticket with Rackspace to clear the CDN for the
mathjax
container. (Our TTL is 1year so we need to push changes to the CDN manually; this will take 24-48h).
- The download page should be updated to point to the new release.
- Update the documentation page at http://www.mathjax.org/resources/docsindex/
- 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
- 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 MathJax-web-presence.
This is almost identical, except that we don't do as much.
- 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. - 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. - The download distribution should then be downloaded and smoke tested.
- Upload the new version to the CDN by updating the copy in the
mathjax-beta
container. - Set the custom headers for the fonts (see Managing Rackspace Cloud Files & CDN).
- Check the custom headers via curl.
- 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
- 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.
This is the process for releasing a hotfix to the CDN:
- Prepare and test a branch with the fixes as per our regular development process
- Merge to master and the release branch at GitHub, e.g v1.1-latest
- Copy the release branch to
mathjax/x.y-beta
on Cloud Files - Test
- Announce it so people can test against it
- Send warnings to the cdn-notify list 72 hours in advance
- Sync the new release to
mathjax/x.y-latest
andmathjax/latest
on Cloud Files (e.g., Cyberduck can sync folders). Note: renaming/deleting folders on Cloud Files is much slower than syncing. - File ticket with Rackspace to purge the container; this will take 24h-48h.
- Send confirmation to the cdn-notify list, and update the download page at mathjax.org
- Monitor for any issues.
Note that our policy is that we don't tag and package the hot fixes separately. Thus, for example, the v1.1 archive is always the initial v1.1 release, and access to updates for your own server would be through git (by checking out the v1.1-latest branch, which already exists, and will contain the hot fixes), or through the GitHub interface by selecting the v1.1-latest branch in the branch list and then using the Download button there to get the automatically packaged copy. 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.