Previously, we uploaded the main Firefox tree docs to /. In reality, there are multiple Sphinx projects in the repo. In addition, it is sometimes desirable to access docs for an older version of Firefox. In this commit, we add support for specifying the S3 key prefix for uploads. Then we change the upload code to upload to multiple locations: * <project>/latest (always) * <project>/<version> (if a version is defined in the Sphinx config) * / (for the main Sphinx docs project) For the Firefox docs, ``version`` corresponds to a sanitized value from ``milestone.txt``. Currently, it resolves to ``57.0``. While we're here, we add support for declaring an alternate project name in the Sphinx conf.py file. If ``moz_project_name`` is defined, we use that as the project name. For Firefox, we set it to ``main``. This means our paths (local and uploaded) are now ``main`` instead of ``Mozilla_Source_Tree_Docs``. That's much more pleasant. MozReview-Commit-ID: 8Gl6l2m6uU4
86 lines
2.3 KiB
Python
86 lines
2.3 KiB
Python
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
from __future__ import unicode_literals
|
|
|
|
import os
|
|
import re
|
|
import sys
|
|
|
|
from datetime import datetime
|
|
|
|
# Set up Python environment to load build system packages.
|
|
OUR_DIR = os.path.dirname(__file__)
|
|
topsrcdir = os.path.normpath(os.path.join(OUR_DIR, '..', '..'))
|
|
|
|
EXTRA_PATHS = (
|
|
'layout/tools/reftest',
|
|
'python/mach',
|
|
'python/mozbuild',
|
|
'python/mozversioncontrol',
|
|
'testing/mozbase/manifestparser',
|
|
'testing/mozbase/mozfile',
|
|
'testing/mozbase/mozprocess',
|
|
'third_party/python/futures',
|
|
'third_party/python/jsmin',
|
|
'third_party/python/which',
|
|
)
|
|
|
|
sys.path[:0] = [os.path.join(topsrcdir, p) for p in EXTRA_PATHS]
|
|
|
|
sys.path.insert(0, OUR_DIR)
|
|
|
|
extensions = [
|
|
'sphinx.ext.autodoc',
|
|
'sphinx.ext.graphviz',
|
|
'sphinx.ext.todo',
|
|
'mozbuild.sphinx',
|
|
]
|
|
|
|
templates_path = ['_templates']
|
|
source_suffix = '.rst'
|
|
master_doc = 'index'
|
|
project = u'Mozilla Source Tree Docs'
|
|
year = datetime.now().year
|
|
|
|
# Grab the version from the source tree's milestone.
|
|
# FUTURE Use Python API from bug 941299.
|
|
with open(os.path.join(topsrcdir, 'config', 'milestone.txt'), 'rt') as fh:
|
|
for line in fh:
|
|
line = line.strip()
|
|
|
|
if not line or line.startswith('#'):
|
|
continue
|
|
|
|
release = line
|
|
break
|
|
|
|
version = re.sub(r'[ab]\d+$', '', release)
|
|
|
|
exclude_patterns = ['_build', '_staging', '_venv']
|
|
pygments_style = 'sphinx'
|
|
|
|
# We need to perform some adjustment of the settings and environment
|
|
# when running on Read The Docs.
|
|
on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
|
|
|
|
if on_rtd:
|
|
# SHELL isn't set on RTD and mach.mixin.process's import raises if a
|
|
# shell-related environment variable can't be found. Set the variable here
|
|
# to hack us into working on RTD.
|
|
assert 'SHELL' not in os.environ
|
|
os.environ['SHELL'] = '/bin/bash'
|
|
else:
|
|
# We only need to set the RTD theme when not on RTD because the RTD
|
|
# environment handles this otherwise.
|
|
import sphinx_rtd_theme
|
|
html_theme = 'sphinx_rtd_theme'
|
|
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
|
|
|
|
|
|
html_static_path = ['_static']
|
|
htmlhelp_basename = 'MozillaTreeDocs'
|
|
|
|
moz_project_name = 'main'
|