... | ... | @@ -16,16 +16,17 @@ |
|
|
|
|
|
### At CDN
|
|
|
|
|
|
1. Check the TTL of the CDN. Set it to 8h ahead of time.
|
|
|
1. Upload the new version to the CDN
|
|
|
1. Set the custom headers for the fonts (see [[Managing Rackspace Cloud Files & CDN]])
|
|
|
2. Update all older releases of the version (i.e., update beta with release, update beta, release with latest etc).
|
|
|
1. Upload the new version to the CDN as `N.m-latest` and update `latest`.
|
|
|
1. Set the custom headers for the fonts (see [[Managing Rackspace Cloud Files & CDN]]; should only be necessary for new fonts)
|
|
|
1. Check the custom headers of fonts via curl.
|
|
|
1. 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).
|
|
|
|
|
|
|
|
|
### At mathjax.org
|
|
|
|
|
|
1. The download page should be updated to point to the new release.
|
|
|
1. Update the documentation page at http://www.mathjax.org/resources/docsindex/
|
|
|
2. A news announcement for the release is posted. The post should
|
|
|
2. 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
|
... | ... | @@ -38,9 +39,6 @@ |
|
|
* Advise regarding the CDN propagation (clear browser cache etc)
|
|
|
* The new post should be announced on social media channels [[MathJax-web-presence]].
|
|
|
|
|
|
### After the release
|
|
|
|
|
|
* After 2 days (assuming no critical bugs show up), set the TTL again to its previous setting (currently: 7 days)
|
|
|
|
|
|
## For beta releases
|
|
|
|
... | ... | @@ -54,13 +52,13 @@ This is almost identical, except that we don't do as much. |
|
|
|
|
|
### At CDN
|
|
|
|
|
|
1. Check the TTL of the CDN. Set it to 8h ahead of time.
|
|
|
1. Upload the new version to the CDN as `vN.M-beta` (and while you're at it, create `vN.M-latest`).
|
|
|
1. Set the custom headers for the fonts (see [[Managing Rackspace Cloud Files & CDN]])
|
|
|
1. Upload the new version to the CDN by updating the copy in the `mathjax-beta` container.
|
|
|
1. Set the custom headers for the fonts (see [[Managing Rackspace Cloud Files & CDN]]).
|
|
|
1. Check the custom headers via curl.
|
|
|
|
|
|
### At mathjax.org
|
|
|
|
|
|
2. A news announcement for the release is posted. The post should
|
|
|
2. 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
|
... | ... | @@ -76,29 +74,19 @@ 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. 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. File ticket with Rackspace to purge the container; this will take 24h-48h.
|
|
|
1. Send confirmation to the cdn-notify list, and update the download page at mathjax.org
|
|
|
1. Monitor for any issues.
|
|
|
|
|
|
We will not attempt to purge the CDN cache for hotfixes, but rather let them propagate normally.
|
|
|
|
|
|
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](http://www.mathjax.org/docs/1.1/installation.html#obtaining-mathjax-via-an-archive):
|
|
|
|
|
|
> 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. |
|
|
|
|
|
### 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 TTL settings. |
|
|
\ No newline at end of file |