Directory structure

Peter Krautzberger edited this page Jul 2, 2014 · 3 revisions
Clone this wiki locally

This page is obsolete and kept for historical reference only

Distribution origin at Rackspace Cloud Files

Note: Rackspace Cloud Files is a storage system and does not formally have a directory structure -- but it simulates one (see here for more information). Tools such as Cyberduck or FireUploader efficiently deal with the files hosted on Cloud Files.

The content that is delivered through is located in the container mathjax on our CloudFiles account. Versioning will be accomplished via the following logical directory structure.


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, 2.0-latest will initially point to the v2.0 tag, but over time may be updated with patches that would correspond to releases that might be numbers 2.0a, 2.0b, 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 temporary, and will be removed after the official release.

Requirements / Constraints

  • Must be able to switch hosting and CDN providers.
  • 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. 2.0-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 (due to the PNG folder), and is currently duplicated in every MathJax release / snapshot. Are there options to reduce this overhead? -> None at this stage but our storage costs are insignificant compared to the delivery costs.
  • What Expires (or cache-control) settings are appropriate? None, since only branches - rather than specific releases - are being provided.
  • Rackspace currently does not offer compression for eot, otf and woff files (even if browsers could accept them). By log analysis, woff fonts are the dominant form of fonts we deliver (by two orders of magnitude) and they are already compressed. We could manually compress and set content-headers, but there are some problems with older IE version.

Development server:

This could host development versions of MathJax, lowering the barrier to community testing and feedback. The branches hosted here are temporary and may change without warning. The following is an example only.

mathjax/ # project-name
mathjax/ # main repository
master/ # trunk
dpvc/ # user-name
reflow/ # branch-name

For archival purposes:

This was the origin server for delivery via Amazon CloudFront and followed the same logical directory structure.

mathjax/              # project-name
   latest/            # duplicate of 2.0-latest