mirror of
https://github.com/HeyPuter/firefox.git
synced 2026-11-13 20:14:57 -10:00
Adds support and documentation for the `MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE` environment variable. The "fallback" behaviour here should be backwards-compatible, which will enable us to piece-by-piece explicitly use the `"system"` where needed, then remove the backwards-compatibility shim afterwards. A restriction added by this change is that it's no longer possible to have the combination of: * Have Mach use the system Python, and * Have the active command site do `pip install`. This is because this case shouldn't be necessary (if `pip install` is allowed, why use the system?) and will allow us to enforce that all non-build command sites always use their lockfiles, when they're set up. When referring to behaviour in CI, I've opted to only refer to the upcoming behaviour (of `MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"`) because the current heuristic behaviour feels complex enough that it should be understood by checking the code, rather than docs. Besides, the heuristic will be removed pretty soon (right? ;) Differential Revision: https://phabricator.services.mozilla.com/D138932
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