mozbuild Python changes to test manifest processing introduced these
dependencies.
DONTBUILD (NPOTB)
MozReview-Commit-ID: 9nT3G7qt988
--HG--
extra : rebase_source : d7d560477249a8e20a162d49faea85d4a49fe113
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
--HG--
extra : rebase_source : 4debf9b1902e26babe7e9ddaee8142a14674d393
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
--HG--
extra : commitid : EP5vOiGxJM7
extra : rebase_source : e6a8c4c44ccf45eb3a570d6e0575999c72465fec
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
--HG--
extra : commitid : IOguvvudLzw
extra : rebase_source : c53788d259c7f69be997426227778820ec99dd26
extra : amend_source : 5fa5069d1c7c8d5d93fefb56563af9bd28286b90
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)
--HG--
extra : commitid : 23fRi9TQht4
extra : rebase_source : 4b3d0833f789a73fee67c0cadcf525434f08f78b
f6d18678498b / bug 1212427 introduced a few more dependencies. Add them
to sys.path in the Sphinx config so Sphinx works on Read the Docs.
--HG--
extra : commitid : I2WmZNyGBLu
extra : rebase_source : 61b7a66c558321fc6550453411744c12fdd49f60
extra : amend_source : 8020e34f6c8a809fb1c323180b3a96433bbc2d2f
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.
--HG--
extra : commitid : 6tFME1KKfTD
extra : rebase_source : 78728f82f5487281620e00c2a8004cd5e1968087
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.
--HG--
extra : rebase_source : fce732e0b8aefe0e9a2ee594b8a08ac02e27579a
extra : histedit_source : bef27c947b95c3182fbc6cd656ae8c96acaaa6f4
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.
--HG--
extra : rebase_source : 86e76c7d598ffa23dae858254eecedbdd12706a4
extra : histedit_source : 1826aa5ddfafdff62847cc293d1f0950b236caac
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.
--HG--
extra : rebase_source : 263972d1415419c59c25058ca2cb90b3c31eda89
extra : histedit_source : e120aa117c63d54f6b293ae63d9bd1338ea0e808
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.
--HG--
extra : rebase_source : f44513f01706391a5932a20c1437fcc8697611cd
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.
--HG--
extra : rebase_source : b4f92cf8263843d3118a85a7d9b59b98d5dd0613
requirements.txt isn't being used by the documentation infrastructure.
We nuke it.
--HG--
extra : rebase_source : d53ee5c329790d0ed7d75d6d9f451269dda6c485
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.
--HG--
extra : rebase_source : abd0a91a3efb24d3adfa19f4cd281ce5fd6d0915
extra : amend_source : c1b4f79224bab55e65a8c2b0f3103475281416c1
The MDN theme is currently busted. This patch reverts to the default
Sphinx theme so we have docs that are more usable.
DONTBUILD (NPOTB)
--HG--
extra : rebase_source : 407dedaa2c200560a5e972998489f19a4bcdbe11