gecko-dev/python/mach
Mitchell Hentges 648ccad85b Bug 1654074: Publish glean handle to mach commands r=firefox-build-system-reviewers,rstewart
Allows mach commands to define their own glean metrics with the `metrics_path` @CommandProvider parameter.
When `metrics_path` is defined:
* A `metrics` kwarg is provided to the decorated class. This `metrics` handle is a Glean instance, so Glean documentation should be consulted for usage information.
* When `mach doc telemetry` is run, metrics docs will be generated from all the registered metrics files.

Note: there was some consideration between making `metrics_path` a @CommandProvider or @Command parameter.
In the end, @CommandProvider seemed like a better fit because:
* Metrics seem to be more associated with the entire class than a specific command/method. This is because a class represents a "domain", and that domain may have different commands that have overlapping metrics.  Accordingly, all the metrics should be defined once as available to the entire class.
* Currently, @Command methods only take parameters that map one-to-one with CLI arguments. It could seem inconsistent to have one exception: the metrics handle

Differential Revision: https://phabricator.services.mozilla.com/D85953
2020-09-15 21:15:20 +00:00
..
docs Bug 1654074: Publish glean handle to mach commands r=firefox-build-system-reviewers,rstewart 2020-09-15 21:15:20 +00:00
mach Bug 1654074: Publish glean handle to mach commands r=firefox-build-system-reviewers,rstewart 2020-09-15 21:15:20 +00:00
README.rst
bash-completion.sh
metrics.yaml Bug 1654074: Publish glean handle to mach commands r=firefox-build-system-reviewers,rstewart 2020-09-15 21:15:20 +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 Bug 1585146 - [mach] Bump to 1.0.0 and add Python classifiers, r=firefox-build-system-reviewers,mshal 2019-10-01 18:32:07 +00:00
setup.py Bug 1585146 - [mach] Bump to 1.0.0 and add Python classifiers, r=firefox-build-system-reviewers,mshal 2019-10-01 18:32:07 +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/``.