gecko-dev/python/mach
Mike Hommey 4e228dc5f5 Bug 1627873 - Always unbuffer python output when invoking python commands from mach. r=firefox-build-system-reviewers,rstewart
When the build is stalled for some random reason, and mach executed a
python subcommand (this may or may not be limited to python 3, I'm not
sure, and it doesn't really matter since it's a problem on python 3,
which matters most), the subcommand may not have actually sent its last
bits of output before the stall because its output is a pipe and in that
case python uses buffered outputs.

Now, when your build is completely stalled and you ctrl+C, you end up
without these bits of output, and in some cases, those bits of output
can contain actual information, like... tracebacks.

A real life example of this is bug 1624670 when running mach build or
mach configure with the patches from bug 1627163 applied, and configure
stalls without printing out the ValueError message at all.

Differential Revision: https://phabricator.services.mozilla.com/D69925

--HG--
extra : moz-landing-system : lando
2020-04-07 15:52:00 +00:00
..
docs
mach Bug 1627873 - Always unbuffer python output when invoking python commands from mach. r=firefox-build-system-reviewers,rstewart 2020-04-07 15:52:00 +00:00
README.rst
bash-completion.sh
setup.cfg
setup.py

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/``.