gecko-dev/python/mach
Ricky Stewart e1e9ea0e63 Bug 1645423 - Sentry ignores errors caused by local changes r=mhentges
Here, "errors caused by local changes" means "errors whose stack traces contain a reference to a file that is in the set of files changed locally". This implementation is a trade-off:

1. This check will not catch issues caused transitively by changes to local files. For example, consider a function that has been updated and its return type changed in a backwards-incompatible way, whereas callers were not updated appropriately. This would likely manifest as a type error in the calling function after the callee has returned.

2. This check WILL catch issues that come from locally changed files where the cause of the error doesn't originate from those local changes. For example, consider a function that's been locally updated but is never called in the failing codepath; if an exception is thrown, it's not due to this local change, and we shouldn't filter it out.

There are conceivable improvements that we could apply to fix deficiency (1); for example, we could track imports recursively starting from the oldest frame in the stack trace and match on that set of imported files. Note this would not handle dynamic imports properly, and that this could exacerbate issue (2).

Issue (2) could conceivably be addressed by attempting to filter the actual local diffs down to changes that actually may be causing the error. This is difficult to do generally especially in light of Python's dynamism, but there mayb be conservative improvements that we could make in this space.

Overall, neither of the above caveats are deemed to be sufficiently concerning that this patch should be blocked as-is, and the current situation with our Sentry logs is unusable due to all the noise. This patch will probably have a substantial impact on that noise without incidentally filtering out too much signal.

Differential Revision: https://phabricator.services.mozilla.com/D95607
2020-11-03 19:22:51 +00:00
..
docs Bug 1670977 - Remove errant spaces from expression `fpath+=~/.zfunc` in `zsh` `mach` autocompletion docs r=ahal DONTBUILD 2020-10-13 20:33:17 +00:00
mach Bug 1645423 - Sentry ignores errors caused by local changes r=mhentges 2020-11-03 19:22:51 +00:00
README.rst
bash-completion.sh
metrics.yaml Bug 1655845 - Collect OS version information in `mach` telemetry r=firefox-build-system-reviewers,dmajor 2020-10-27 20:35:17 +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 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/``.