gecko-dev/python
Mike Shal e28f6db31f Bug 1537574 - Use mozbuild's backend-out-of-date logic for RecursiveMake; r=firefox-build-system-reviewers,chmanchester
If mozbuild parsing fails due to a missing file (eg: a file not existing
in UNIFIED_SOURCES), then no Makefiles are written out, but
config.status exists. This would cause mozbuild to think that configure
doesn't need to run, and rely on make to perform the backend-out-of-date
check in rebuild-backend.mk. Unfortunately since no Makefiles were
written, the make command fails immediately and no attempt is made to
re-create the backend. Note that this is only a problem if the first
mozbuild parsing from a clobber build fails, otherwise there is
typically a top-level Makefile from a previous build to call into (at
which point make can determine it is out-of-date, and re-invoke itself).

The fix is to have the RecursiveMake backend re-use the same logic that
was introduced into mozbuild for alternate backends, and remove
rebuild-backend.mk. This way, mozbuild can always determine if the
backend needs to be regenerated, even if the initial parsing failed.

Test code was also relying on rebuild-backend.mk to generate the
TestBackend, but moving backend_out_of_date() into MozbuildObject allows
this code to be shared.

Differential Revision: https://phabricator.services.mozilla.com/D26262

--HG--
rename : build/gen_test_backend.py => python/mozbuild/mozbuild/gen_test_backend.py
extra : moz-landing-system : lando
2019-04-10 22:14:27 +00:00
..
devtools/migrate-l10n
docs Bug 1490253 - Update documentation on vendoring Python packages based on switch to pip-tools; r=ahal 2018-10-15 13:36:30 +00:00
l10n Bug 1523747 - Move customize mode strings over to fluent, r=Gijs,jaws,flod 2019-04-10 15:46:31 +00:00
mach Bug 1543246 - Suggest |./mach busted| when something breaks. r=froydnj 2019-04-10 16:40:14 +00:00
mozboot Bug 1542376 - Avoid exception during Android bootstrap. r=glandium 2019-04-05 22:07:30 +00:00
mozbuild Bug 1537574 - Use mozbuild's backend-out-of-date logic for RecursiveMake; r=firefox-build-system-reviewers,chmanchester 2019-04-10 22:14:27 +00:00
mozlint Bug 1536836 - Support multiple formatters with file output in ./mach lint, r=ahal 2019-03-25 09:16:14 +00:00
mozrelease Bug 1533589: Add win64-aarch64 update verify configuration; r=aki 2019-04-03 20:43:14 +00:00
mozterm Bug 1471171 - Indicate that mozterm is universal and works on any version of Python; r=emorley 2018-07-02 12:03:10 +01:00
mozversioncontrol Bug 1520309: Set HGPLAIN env var when running hg push-to-try; r=ahal 2019-04-09 21:10:49 +00:00
safety Bug 1476003 Update python virtual environment for |mach python-safety| r=davehunt 2018-07-16 15:36:50 +00:00
README
mach_commands.py Bug 1504308 - [mach] Pass path to Python interpreter to python-tests. r=ahal 2019-04-03 21:02:55 +00:00
moz.build Bug 1508248 - Update in-tree bugzilla metadata to use 'Firefox Build System :: Mach Core' for mach files r=froydnj 2018-11-19 13:35:14 +00:00

README

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