|
|
> This will require an update after switching the CDN to Rackspace
|
|
|
|
|
|
### Distribution origin server: `dist.mathjax.org`
|
|
|
|
|
|
This host is the origin server for cdn.mathjax.org, and will only host release and release candidate code.
|
|
|
|
|
|
Versioning will be accomplished via the following logical directory structure.
|
|
|
|
|
|
```
|
|
|
mathjax/ # project-name
|
|
|
1.0-latest/
|
|
|
1.1-beta/ # temporary
|
|
|
1.1-latest/
|
|
|
latest/ # duplicate of 1.1-latest in this example
|
|
|
...
|
|
|
```
|
|
|
|
|
|
Each directory corresponds to an official MathJax release. However, hotfixes (urgent bug fixes) will be applied in each release branch as necessary, even if new releases are not prepared. In other words, 1.1-latest will initially point to v1.1, but over time may be updated with patches that would correspond to releases that might be numbers 1.1a, 1.1b, etc even if such releases are not actually prepared for distribution (they likely won't be).
|
|
|
|
|
|
We may occasionally introduce directories for betas, as indicated above, but they will be temprorary, and will be removed after the official release.
|
|
|
|
|
|
### Development server: devel.mathjax.org
|
|
|
|
|
|
This could host development versions of MathJax, lowering the barrier to community testing and feedback.
|
|
|
The branches hosted here would probably be temporary. The following is an example only.
|
|
|
|
|
|
```
|
|
|
mathjax/ # project-name
|
|
|
mathjax/ # main repository
|
|
|
master/ # trunk
|
|
|
dpvc/ # user-name
|
|
|
reflow/ # branch-name
|
|
|
parallel/
|
|
|
shogun70/
|
|
|
reflow/
|
|
|
```
|
|
|
|
|
|
### Requirements / Constraints
|
|
|
|
|
|
* Must be able to switch hosting and CDN providers.
|
|
|
* Amazon Cloudfront can only be configured to mirror a whole domain, as opposed to an arbitrary sub-directory which other CDN services (at least Edgecast) can do.
|
|
|
* There may be future projects that would be appropriately hosted here.
|
|
|
* Sites that rely on the MathJax CDN will only be able to stick with a major.minor branch, e.g. 1.1-latest. If a site needs to stick with a specific release, even temporarily, then that will need to be installed rather than relying on the CDN.
|
|
|
|
|
|
### Potential issues
|
|
|
|
|
|
* The fonts directory is relatively large, and is currently duplicated in every MathJax release / snapshot. Are there options to reduce this overhead? None at this stage but there aren't enough branches for this to be a significant issue for now.
|
|
|
* What Expires (or cache-control) settings are appropriate? None, since only branches - rather than specific releases - are being provided.
|
|
|
* Should content be gzip'ed even for requests that don't request it? Yes for now - There is a small proportion of end-users who might find MathJax not working - people with early versions of IE6 who are behind a proxy. Possibly this is less significant than the number of people who turn off javascript or run unsupported browsers. |