gecko-dev/python/mach
Mitchell Hentges 183c94cd54 Bug 1730712: Abstract site behaviour from requirements.py r=ahal
There are two sites that are allowed to define their dependencies
in a flexible way: the `mach` and `build` sites.

This is because these are the only two sites that _may_ have
to operate without `pip install`-ing any packages, and instead having
to be compatible with the packages installed to the system.

Due to this required compatibility, allowing flexibility to these sites
allows flexibility downstream.

Anyways, this patch isn't about that - that behaviour has already
landed. This patch is about tweaking `requirements.py` so that
*it* doesn't care about specific sites, but rather only cares about
if it should assert `only_strict_requirements` or not. Accordingly,
the helpful "not all packages are pinned" error message is moved
to `site.py`, where it belongs.

Differential Revision: https://phabricator.services.mozilla.com/D132082
2021-12-22 00:46:25 +00:00
..
docs Bug 1696251: Allow mach commands as stand-alone functions and adapt existing commands. r=mhentges,webdriver-reviewers,perftest-reviewers,sparky,whimboo 2021-09-27 18:12:51 +00:00
mach Bug 1730712: Abstract site behaviour from requirements.py r=ahal 2021-12-22 00:46:25 +00:00
README.rst
bash-completion.sh
metrics.yaml Bug 1741674 - Advise in each metrics.yaml that we have docs for adding metrics r=TravisLong,nalexander 2021-11-22 20:07:38 +00:00
pings.yaml Bug 1654074: Publish glean handle to mach commands r=firefox-build-system-reviewers,rstewart 2020-09-15 21:15:20 +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/``.