gecko-dev/python/mach
Mitchell Hentges c5ec5f3ef8 Bug 1755516: Simplify "site.py" handling of command site package source r=ahal
Now that we are gleaning a site packages source in a process-global way
(that is *not* conditional on the site that's being managed), we've
removed an edge case from occurring: the case where Mach would use
`SitePackagesSource.NONE`, but the command site would use
`SitePackagesSource.SYSTEM`. This would've occurred if none of Mach's
dependencies were found in the system Python, but instead once the
command site was initialized, one of *its* dependencies were located.

Since that can no longer happen:
* Command sites that don't populate their VENV will *always* use the
  same site packages source as Mach
* `pthfile` generation is simplified (the priority of the system paths
  is no longer variable)
* We no longer need to track `site_packages_source` in metadata, since
  we can use `mach_site_packages_source` instead.

While here, I moved the "`PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS`
sites shouldn't have `pypi_requirements`" check to a test, since there's
no need for it to happen at runtime.

Differential Revision: https://phabricator.services.mozilla.com/D140668
2022-04-04 15:27:08 +00:00
..
docs Bug 1760054: Add `Set-ExecutionPolicy` item to Windows Mach docs r=ahochheiden 2022-03-22 16:43:59 +00:00
mach Bug 1755516: Simplify "site.py" handling of command site package source r=ahal 2022-04-04 15:27:08 +00:00
README.rst
bash-completion.sh
metrics.yaml Bug 1689162 - Update to Glean metrics schema v2. r=Dexter,firefox-build-system-reviewers,nalexander DONTBUILD 2022-02-14 08:57:27 +00:00
pings.yaml Bug 1689162 - Update to Glean metrics schema v2. r=Dexter,firefox-build-system-reviewers,nalexander DONTBUILD 2022-02-14 08:57:27 +00:00
setup.cfg
setup.py Bug 1654103: Standardize on Black for Python code in `mozilla-central`. 2020-10-26 18:34:53 +00:00

README.rst

====
mach
====

Mach (German for *do*) is a generic command dispatcher for the command
line.

To use mach, you install the mach core (a Python package), create an
executable *driver* script (named whatever you want), and write mach
commands. When the *driver* is executed, mach dispatches to the
requested command handler automatically.

To learn more, read the docs in ``docs/``.