gecko-dev/python
Gregory Szorc 069ee9c5d6 Bug 1397406 - Add a helper function to retrieve a BuildReader; r=dustin
The code for obtaining a BuildReader for evaluating moz.build files
is generic and non-trivial. We already had a custom implementation
for `mach file-info` that implemented support for Mercurial
integration. Bug 1383880 will introduce a second consumer.

So this commit factors out the "obtain a BuildReader" logic into
a reusable function on our base MozbuildObject class. This makes
it easily available to various parts of the build system and mach
commands.

As part of the change, we detect when ``.`` is being used as the
revision and verify the working directory is clean. This behavior
can be disabled via argument if unwanted. But it's useful by default
to ensure consumers aren't expecting to read uncommitted changes.

MozReview-Commit-ID: LeYFqAb3HAe

--HG--
extra : rebase_source : d5ed4e4f5570a58a68853188de2225cd4e64ab3a
2017-09-06 12:18:51 -07:00
..
devtools/migrate-l10n Bug 1346025 - Move vendored python modules from /python to /third_party/python, r=ted 2017-05-25 11:48:03 -04:00
mach Bug 1289444 - Forward extra arguments in |mach test| to the underlying test commands, r=chmanchester 2017-08-29 16:20:47 -04:00
mozboot Bug 1397279 - Have mach bootstrap install rustup 1.6.0. r=froydnj 2017-09-06 09:59:45 -04:00
mozbuild Bug 1397406 - Add a helper function to retrieve a BuildReader; r=dustin 2017-09-06 12:18:51 -07:00
mozlint Bug 1395126 - Support cascading configuration for flake8, r=bc 2017-08-29 17:32:31 -04:00
mozversioncontrol/mozversioncontrol Bug 1397406 - Add Repository method to determine if working directory clean; r=dustin 2017-09-06 12:15:12 -07:00
mach_commands.py Bug 1339178 - Use pytest to run python-tests, r=davehunt 2017-08-29 14:50:33 -04:00
moz.build Bug 1346025 - Move vendored python modules from /python to /third_party/python, r=ted 2017-05-25 11:48:03 -04:00
README Bug 1346025 - Move vendored python modules from /python to /third_party/python, r=ted 2017-05-25 11:48:03 -04:00

This directory contains common Python code.

The basic rule is that if Python code is cross-module (that's "module" in the
Mozilla meaning - as in "module ownership") and is MPL-compatible, it should
go here.

What should not go here:

* Vendored python modules (use third_party/python instead)
* Python that is not MPL-compatible (see other-licenses/)
* Python that has good reason to remain close to its "owning" (Mozilla)
  module (e.g. it is only being consumed from there).

Historical information can be found at
https://bugzilla.mozilla.org/show_bug.cgi?id=775243
https://bugzilla.mozilla.org/show_bug.cgi?id=1346025