Commit Graph

42 Commits

Author SHA1 Message Date
Gregory Szorc
52b7f4901f Bug 1390693 - Use thread pool for S3 uploads; r=dustin
This reduces the time taken to upload the Firefox docs from ~30s to
~5s (per invocation).

MozReview-Commit-ID: DxOrvxvVn42
2017-08-24 12:38:01 -07:00
Gregory Szorc
42620b1f15 Bug 1390693 - Upload docs to project and version specific locations; r=dustin
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
2017-08-24 11:12:21 -07:00
Gregory Szorc
5d9da31a1f Bug 1390693 - Fold mach doc-upload into mach doc; r=dustin
We now have an --upload flag to control whether upload is performed.

We don't inline it because we want to maintain a "firewall" between
regular docs and all the extra packages and imports needed for S3.

MozReview-Commit-ID: DVKhsS545gp
2017-08-24 11:31:54 -07:00
Gregory Szorc
9441405713 Bug 1390693 - Use distribution_files() for finding files to upload; r=dustin
Instead of doing the file finding inside s3_upload(), the function now
takes the output of distribution_files().

The new code is much simpler.

MozReview-Commit-ID: 43i2Alvyu5i
2017-08-24 11:07:10 -07:00
Gregory Szorc
aa4cabec87 Bug 1390693 - Move S3 upload logic to standalone module; r=dustin
We try to keep mach_commands.py files as minimal as possible.

MozReview-Commit-ID: I4kvZtDjqGd
2017-08-24 10:49:28 -07:00
Gregory Szorc
f0bff41c54 Bug 1390693 - Generate docs archive within mach command; r=dustin
By using mozpack, we get deterministic archives. This also makes the
task command simpler.

MozReview-Commit-ID: EPI7tuGQuso
2017-08-24 10:37:53 -07:00
Gregory Szorc
473e00f97d Bug 1390693 - Use separate variable for the base output directory; r=dustin
An upcoming commit will want to put something outside the
format-specific output directory.

MozReview-Commit-ID: 2kYDREddpN
2017-08-24 10:31:41 -07:00
Gregory Szorc
9ce5d46cfd Bug 1390693 - Indent code to make linter happy; r=dustin
I didn't fix all violations in this file. Something is better than
nothing.

MozReview-Commit-ID: BDdWhJfkPVk
2017-08-24 10:11:55 -07:00
Dustin J. Mitchell
34258f751c Bug 1382729: allow uploading docs at all levels; r=gps
The upload now uses MOZ_SCM_LEVEL to determine which secret and bucket to
upload to, so it can potentially run at any level.

This also modifies task descriptions to allow {level} in scopes, and updates
try syntax to allow `-j doc-upload` even though run-on-tasks says it doesn't
run on try by default.

MozReview-Commit-ID: Dm27TGPa7IM
2017-08-08 19:13:05 +00:00
Dustin J. Mitchell
228f6911be Bug 1382729: Upload documentation to S3 automatically; r=gps
This uses credentials stored in the Taskcluster secret service. The task should
only run on mozilla-central to avoid confusion between branches.

MozReview-Commit-ID: 31XfTg0sCht
2017-07-28 18:32:04 +00:00
Dustin J. Mitchell
5e51991c2c Backed out changeset 19f92c04608c for breaking try pushes a=bustage
MozReview-Commit-ID: FowbO5T9aUl
2017-07-31 16:04:01 +00:00
Dustin J. Mitchell
69cd6fca06 Bug 1382729: Upload documentation to S3 automatically; r=gps
This uses credentials stored in the Taskcluster secret service. The task should
only run on mozilla-central to avoid confusion between branches.

MozReview-Commit-ID: 31XfTg0sCht
2017-07-28 18:32:04 +00:00
Alex Gaynor
816eb46859 Bug 1384224 - Add support for hardlinks to InstallManifest; r=gps
Also removes InstallManifestNoSymlinks which can be more simply expressed by
passing link_policy='copy' to InstallManifest.populate_registry.

MozReview-Commit-ID: Bkjc2hIub4A
2017-07-25 14:06:15 -04:00
Gregory Szorc
f8f2dfe0c9 NO BUG - Unbust Sphinx docs outside of mach
Trivial update to Python package paths to reflect their new location.

MozReview-Commit-ID: EWaIHrLFWgD
2017-06-23 13:22:52 -07:00
Mike Hommey
ac9b21f74d Bug 1335309 - Change the default for find_executables to False. r=mshal
Back when the class was written, for the packaging code, it made sense
that the default was True. But now that it's used all over the place,
and that the vast majority of uses are with find_executables=False, it
makes more sense for that to be the default.
2017-01-31 14:06:15 +09:00
Ted Mielczarek
06563ba30d Fixup readthedocs generation from bug 1294565. r=me
MozReview-Commit-ID: 8digQSVG2hF
2016-10-12 14:31:14 -04:00
Gregory Szorc
7e964b71ae Bug 1259514 - Add manifestparser and reftest to Python search path; r=chmanchester
mozbuild Python changes to test manifest processing introduced these
dependencies.

DONTBUILD (NPOTB)

MozReview-Commit-ID: 9nT3G7qt988
2016-03-24 11:19:44 -07:00
Gregory Szorc
5679b859d6 Bug 1252294 - Add python/futures to sys.path when building Sphinx docs; r=chmanchester
RTD is complaining that it can't find concurrent.futures. We solve this
problem on RTD by adjusting sys.path in the Sphinx config file to add
paths to the vendored packages.

Sadly, there isn't really an easy way to test this before landing. But
it should work.

MozReview-Commit-ID: FrsLrbbOQWt
2016-02-29 16:08:34 -08:00
Carsten "Tomcat" Book
5ba717bd52 Backed out changeset 200da85932e9 (bug 1230862) for valgrind perma failures 2016-02-10 11:04:50 +01:00
Julien Pagès
8c54a35567 Bug 1230862 - Remove mozhttpd. r=wlach 2016-02-09 03:26:43 +01:00
Alessio Placitelli
7a2d2ec538 Bug 1231965 - Change references to ./mach build-docs to ./mach doc. r=gps 2015-12-11 17:33:11 +01:00
Andreas Tolfsen
ecf92f380d Bug 1223459: Serve documentation over HTTP in mach doc
Introduces new flag --http [ADDRESS] that spins up an HTTPD serving
`outdir'.  By default it will spin up a server on 0.0.0.0:6666.

r=ahal
2015-11-10 20:37:38 +00:00
Andrew Halberstadt
3db94658ce Bug 1220789 - Generalize |mach build-doc| for any arbitrary sphinx projects; rename to |mach doc|, r=gps
Now, running |mach doc <path/to/project>| will generate the sphinx based docs of the project and open them
in the default browser. Mulitple doc paths can be supplied at a time. E.g:
./mach doc testing/mozbase
2015-11-03 15:39:50 -05:00
Gregory Szorc
ba99103e69 Bug 1213959 - Set SHELL in Read the Docs environment; r=ted
The Read the Docs environment doesn't have SHELL defined. This causes
mach.mixin.process's import to fail, as it insists on finding an active
shell. While we could fix mach.mixin.process to not raise if the
variable is not set, this is a bit more work and has wider build system
and mach implications. So we employ a quick hack instead.

DONTBUILD (NPOTB)
2015-11-04 08:26:26 -08:00
Gregory Szorc
2c98bf6ca3 Bug 1212427 - Reference extra Python paths in Sphinx config; r=mshal
f6d18678498b / bug 1212427 introduced a few more dependencies. Add them
to sys.path in the Sphinx config so Sphinx works on Read the Docs.
2015-10-09 13:03:52 -07:00
Gregory Szorc
d993a444fa Bug 1176642 - Use absolute_import in mach_commands.py files; r=glandium
This removes ambiguity as to which modules are being imported, making
import slightly faster as Python doesn't need to test so many
directories for file presence.

All files should already be using absolute imports because mach command
modules aren't imported to the package they belong to: they instead
belong to the "mach" package. So relative imports shouldn't have been
used.
2015-06-21 17:39:09 -07:00
Gregory Szorc
0222a3a19c Bug 1176642 - Remove unused imports; r=glandium 2015-06-25 12:16:38 -07:00
Gregory Szorc
6802f0c912 Bug 1115278 - Add virtualenv to Sphinx environment; r=glandium
Python API documentation requires the ability to import modules. So, we
set up a virtualenv in our Sphinx environment so module loading works.

This solution isn't perfect: a number of modules fail to import when run
under sphinx-build.
2014-12-24 10:17:02 -08:00
Gregory Szorc
b4eda56fb0 Bug 1115278 - Move Sphinx documentation staging into Sphinx extension; r=glandium
Previously, code for staging the Sphinx documentation from moz.build
metadata lived in a mach command and in the moztreedocs module. This
patch moves the invocation to the Sphinx extension.

When the code is part of the Sphinx extension, it will run when executed
with sphinx-build. This is a prerequisite to getting RTD working, since
sphinx-build is the only supported entrypoint for generating
documentation there.

With this patch, we can now invoke sphinx-build to build the
documentation. The `mach build-docs` command is no longer needed.
2014-12-24 09:46:41 -08:00
Gregory Szorc
ba7658ea18 Bug 1115278 - Store docs directory in a variable; r=glandium 2014-12-23 23:18:48 -08:00
Gregory Szorc
b0f977d4ef Bug 1115278 - Move Sphinx build scanning into moztreedocs; r=glandium
In order for Sphinx documentation to work with Read The Docs, we need
the code for scanning the build config for Sphinx documentation to live
in an importable module. This patch moves some code from the
|build-docs| mach command into an importable module.
2014-12-23 22:53:50 -08:00
Gregory Szorc
c531a71019 Bug 1091722 - Don't require configure before generating docs; r=glandium
Ever since Sphinx variable reading operates at the AST level (bug
1071012), we don't technically need a fully configured environment in
order to generate the documentation!

This patch stubs out the config environment object with a fake one that
provides the only needed context to generate the Sphinx docs. This
allows us to build the Sphinx docs on a fresh clone of the tree with no
configure and with no object directory.
2014-10-30 10:37:00 -07:00
Gregory Szorc
7737017be8 Bug 1091722 - Use Read The Docs theme for Sphinx; r=glandium
Read the Docs has a lovely Sphinx theme that beats the pants off the
built-in and default theme. And since it looks like MDN's Sphinx theme
is dead in the water, this gets us a nice UI win until the MDN theme
comes back from the dead.
2014-10-30 10:09:29 -07:00
Gregory Szorc
e80261e47a Bug 1091722 - Remove requirements.txt; r=glandium
requirements.txt isn't being used by the documentation infrastructure.
We nuke it.
2014-10-30 10:51:17 -07:00
Gregory Szorc
92a507f3f6 Bug 1071012 - Extract Sphinx variables via AST reading; r=glandium
The in-tree Sphinx docs have been broken since bug 1041941 because
processing moz.build files outside their context doesn't work.
Specifically, templates aren't loaded (because this information usually
comes from a parent moz.build file). A new execution mode is needed.

I tried to implement a proper execution mode. However, I kept running
into walls. While we should strive for a proper execution mode, this can
be a follow-up, tracked in bug 1058359.

This patch implements extraction of Sphinx variables from ast walking.
It is extremely low-level and definitely a one-off. But it solves the
problem at hand: |mach build-docs| will work after this patch is
applied.
2014-10-07 10:36:27 -07:00
Mike Hommey
5d1665ee5e Bug 1053140 part 3 - Separate out sandbox infrastructure from moz.build variables storage. r=gps 2014-08-15 13:52:18 +09:00
Gregory Szorc
b0e61ecbd0 Bug 1040416 - Remove javasphinx extension from Sphinx config; r=nalexander
The extension was added by accident in bug 1033686.

DONTBUILD (NPOTB)
2014-07-23 09:22:48 -07:00
Eric Edens
d41886d0ba Bug 1033686 - Make sure pre-search and post-search replace each other. r=nalexander 2014-07-11 11:42:37 -07:00
Gregory Szorc
01fdbeb787 Bug 987332 - Disable MDN theme until it works; r=nalexander
The MDN theme is currently busted. This patch reverts to the default
Sphinx theme so we have docs that are more usable.

DONTBUILD (NPOTB)
2014-06-16 14:53:49 -07:00
Gregory Szorc
b74f148f41 Bug 949906 - Add a callback to modify evaluated moz.build sandboxes, fix Sphinx docs; r=glandium 2013-12-13 16:06:53 +09:00
Gregory Szorc
7542179095 Bug 939367 - Part 2: Move requirements.txt into tools/docs
Trivial change. No review.

DONTBUILD (NPOTB)
2013-12-12 18:10:04 +09:00
Gregory Szorc
71001b1f06 Bug 939367 - Allow Sphinx docs to come from all over the tree; r=glandium 2013-11-20 12:37:22 -08:00