gecko-dev/python
Mitchell Hentges af1de54c49 Bug 1758584: Fix virtualenv-path scrubbing from command _pthfile_lines r=ahal
We want `_pthfile_lines()` to consistently and accurately represent a
virtualenv's `sys.path` modifications.

However, this becomes tricky when comparing expected `pthfile_lines`
//before// activating a virtualenv versus //afterwards//, especially
since Python implicitly adds some paths (such as the path to
`site-packages`).

The current solution made this scrubbing only happen if we were
`pip install`-ing into the site. Unfortunately, it //doesn't// work for
the "use system Python for the `build` site", because:
* Pre-activation result: `site-packages` isn't added, because we aren't
  using it
* Post-activation result, implicitly-added `site-packages` isn't
  scrubbed, because **scrubbing only happened for
  `SitePackagesSource.VENV`**

Stepping back, the solution here is:
* `pthfile_lines` only represents Mach modifications //on top// of
  implicit virtualenv behaviour: since `site-packages` is always added
  by default, it shouldn't be in our explicit `pthfile_lines`.
* The only time when implicit `sys.path` additions throws us off is when
  `SitePackagesSource.SYSTEM`: so, move the scrubbing to happen in that
  case instead.

Finally refactor the "conditional deprioritization" comment to be more
useful and more accurate: we've implemented the "nontrivial complexity"
of purging site-packages, and the other piece about nothing being
`pip install`-ed feels self-explanatory enough.

Differential Revision: https://phabricator.services.mozilla.com/D140580
2022-03-09 22:18:34 +00:00
..
devtools/migrate-l10n Bug 1753413 - fx doc: Remove whitespaces, trailing lines & windows CR r=andi,perftest-reviewers,sparky 2022-02-03 18:34:58 +00:00
docs Bug 1755562: Document Mach dependency management r=ahal 2022-03-02 15:51:30 +00:00
gdbpp/gdbpp
l10n Bug 1746509 - Replace More from Mozilla XUL tags with HTML, r=pdahiya,Gijs,preferences-reviewers,flod 2022-01-27 19:11:27 +00:00
lldbutils
mach Bug 1758584: Fix virtualenv-path scrubbing from command _pthfile_lines r=ahal 2022-03-09 22:18:34 +00:00
mozboot Bug 1758189: Don't double-srcdir for mach during stdalone bootstrap r=ahal 2022-03-09 21:51:13 +00:00
mozbuild Bug 1750632: ./mach lint should bootstrap clang-format r=ahal 2022-03-04 19:39:32 +00:00
mozlint Bug 1756224: Update MozlintParser docs about default paths r=ahal 2022-03-09 15:52:48 +00:00
mozperftest Bug 1741971 - Add MozPerfTest Testing Section to WPT Layer r=perftest-reviewers,sparky 2022-03-09 20:53:29 +00:00
mozrelease Bug 1755088: Replace all usages of unittest deprecated aliases r=webdriver-reviewers,ahal,whimboo 2022-02-17 15:21:41 +00:00
mozterm
mozversioncontrol Bug 1732795: Resolve upcoming pytest deprecations r=webdriver-reviewers,ahal,whimboo 2022-02-18 14:27:18 +00:00
mach_commands.py Bug 1753795 - Add progress bar (via tqdm) to running Python Tests r=ahal 2022-02-11 18:51:46 +00:00
moz.build Bug 1709697 - Allow to repackage into MSIX. r=firefox-build-system-reviewers,mhowell,bhearsum,glandium 2021-08-05 02:58: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