Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • M MathJax
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 304
    • Issues 304
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 15
    • Merge requests 15
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • MathJax
  • MathJax
  • Wiki
  • Release process checklist

Release process checklist · Changes

Page history
clean up of hotfix section. authored May 17, 2013 by pkra's avatar pkra
Show whitespace changes
Inline Side-by-side
Release-process-checklist.md
View page @ 0e5671f8
......@@ -72,13 +72,15 @@ This is almost identical, except that we don't do as much.
This is the process for releasing a hotfix to the CDN:
> pkra: perhaps we should revisit this. Creating a separate copy of the CDN (on Rackspace or elswhere) and switching the CNAME might be a better way of doing this.
1. Prepare and test a branch with the fixes as per our regular development process
2. Merge to master and the release branch at GitHub, e.g v1.1-latest
1. Copy the release branch to `mathjax/x.y-beta` on Cloud Files
1. Test
1. Announce it so people can test against it
1. Send warnings to the cdn-notify list 72 hours in advance
1. Just in case, check the max-age on the current point release directory (e.g. 2.0) and set it to 1h if it's higher. (Background: With Amazon, the usual max-age was 72h and for releases we reduced it to 1h to speed up progagation to CDN-endpoints. Since Rackspace doesn't charge for transfer from Cloud Files to CDN-endpoints, this is set to 15min by default.)
1. Lower the TTL of the CDN to 1h.
1. Sync the new release to `mathjax/x.y-latest` and `mathjax/latest` on Cloud Files (e.g., Cyberduck can sync folders). Note: renaming/deleting folders on Cloud Files is much slower than syncing.
1. Send confirmation to the cdn-notify list, and update the download page at mathjax.org
1. Monitor for any issues.
......@@ -91,19 +93,8 @@ Note that our policy is that we don't tag and package the hot fixes separately.
**Note:** The CDN notify announcements should contain this info, as should the download page.
### Changing Max-Age
> This is mostly for completeness. With Rackspace, the need to change max-age has been eliminated since Rackspace doesn't charge for transfers from Cloud Files to CDN-endpoints. In fact, the default max-age that Cloud Files assigns to uploaded files is 15min. If you need more details, check out an older version of this page.
Changing the max-age for a file requires:
1. changing the Cache-Control header, e.g. Header set Cache-Control "max-age=3600"
The easiest way is to use Cyberduck to set the headers for multiple files, including recursively for directories.
### Doing the Update
In order to avoid to minimize the possibility for corrupting the origin server directories during an update, the preferred method of updating the origin server directories as to prepare the new release in a staging area. This gives us a chance to carefully check the staged files, and avoids exposing a mix of old and new files on the origin server during the time the staged content is prepared. The final sync is not as fast as the old symlink technique (now unavailable), but since the only issue are the png-fonts, syncing is actually very fast.
Of course, that doesn't prevent a mix of old an new files on the CDN servers, since they are only refreshed as they are requests. The strategy for minimizing that period of mixing on the CDN servers is the low max-age settings. Additionally, Rackspace offers CDN endpoint-purges via their support (and for individual files via API).
\ No newline at end of file
Of course, that doesn't prevent a mix of old an new files on the CDN servers, since they are only refreshed as they are requests. The strategy for minimizing that period of mixing on the CDN servers is the TTL settings.
\ No newline at end of file
Clone repository

MathJax Wiki

  • Contributing
    • Quick guide to translating mathjax
  • Development
    • Development Process
      • Release Process Checklist
      • Hotfix Release Process
      • Documentation Update Process
      • Source Control Policies
    • Design Documents
      • MathJax Roadmap
      • CDN Hosting
        • Managing Rackspace Cloud Files & CDN
        • Directory Structure
        • .htaccess settings
        • Managing Amazon Cloudfront
      • Performance Discussion
      • Profiling and Diagnostics Tools
      • Configuration Options
      • Documentation generation guide
      • Testing
        • Platforms supported
        • Test Machines
  • MathJax web presence
  • Drafts