Commit Graph

206 Commits

Author SHA1 Message Date
Ricky Stewart
d7122f80af Bug 1659836 - Don't log to telemetry for mach create-mach-environment r=mhentges,froydnj
`mach create-mach-environment` is what installs `glean_sdk` to the `mach` `virtualenv`. `create-mach-environment` runs on the system Python and we can't assume the system Python has `glean_sdk` installed.

Differential Revision: https://phabricator.services.mozilla.com/D87507
2020-08-19 14:03:46 +00:00
Ricky Stewart
1218762d08 Bug 1659575 - Delete mach python-safety r=ahal
There are zero uses of this `mach` command over the past 90 days according to our telemetry. There are no external references to `mach python-safety` in-tree, and indeed if you track the history of the originating bug 1468394, it appears that once the `mach` command was created, none of the follow-up work that was discussed (i.e. running this in CI and triaging failures to appropriate owners) was done over the following 2 years.

If this ever does appear to be useful in the future, we can just resurrect this code from source control.

Differential Revision: https://phabricator.services.mozilla.com/D87351
2020-08-18 14:18:24 +00:00
Ricky Stewart
bbfa258584 Bug 1656993: Create and require by default global virtualenvs in ~/.mozbuild for mach r=mhentges,ahal
In two different places we've been encountering issues regarding 1) how we configure the system Python environment and 2) how the system Python environment relates to the `virtualenv`s that we use for building, testing, and other dev tasks. Specifically:

1. With the push to use `glean` for telemetry in `mach`, we are requiring (or rather, strongly encouraging) the `glean_sdk` Python package to be installed with bug 1651424. `mach bootstrap` upgrades the library using your system Python 3 in bug 1654607. We can't vendor it due to the package containing native code. Since we generally vendor all code required for `mach` to function, requiring that the system Python be configured with a certain version of `glean` is an unfortunate change.

2. The build uses the vendored `glean_parser` for a number of build tasks. Since the vendored `glean_parser` conflicts with the globally-installed `glean_sdk` package, we had to add special ad-hoc handling to allow us to circumvent this conflict in bug 1655781.

3. We begin to rely more and more on the `zstandard` package during build tasks, this package again being one that we can't vendor due to containing native code. Bug 1654994 contained more ad-hoc code which subprocesses out from the build system's `virtualenv` to the SYSTEM `python3` binary, assuming that the system `python3` has `zstandard` installed.

As we rely more on `glean_sdk`, `zstandard`, and other packages that are not vendorable, we need to settle on a standard model for how `mach`, the build process, and other `mach` commands that may make their own `virtualenv`s work in the presence of unvendorable packages.

With that in mind, this patch does all the following:

1. Separate out the `mach` `virtualenv_packages` from the in-build `virtualenv_packages`. Refactor the common stuff into `common_virtualenv_packages.txt`. Add functionality to the `virtualenv_packages` manifest parsing to allow the build `virtualenv` to "inherit" from the parent by pointing to the parent's `site-packages`. The `in-virtualenv` feature from bug 1655781 is no longer necessary, so delete it.

2. Add code to `bootstrap`, as well as a new `mach` command `create-mach-environment` to create `virtualenv`s in `~/.mozbuild`.

3. Add code to `mach` to dispatch either to the in-`~/.mozbuild` `virtualenv`s (or to the system Python 3 for commands which cannot run in the `virtualenv`s, namely `bootstrap` and `create-mach-environment`).

4. Remove the "add global argument" feature from `mach`. It isn't used and conflicts with (3).

5. Remove the `--print-command` feature from `mach` which is obsoleted by these changes.

This has the effect of allowing us to install packages that cannot be vendored into a "common" place (namely the global `~/.mozbuild` `virtualenv`s) and use those from the build without requiring us to hit the network. Miscellaneous implementation notes:

1. We allow users to force running `mach` with the system Python if they like. For now it doesn't make any sense to require 100% of people to create these `virtualenv`s when they're allowed to continue on with the old behavior if they like. We also skip this in CI.

2. We needed to duplicate the global-argument logic into the `mach` script to allow for the dispatch behavior. This is something we avoided with the Python 2 -> Python 3 migration with the `--print-command` feature, justifying its use by saying it was only temporarily required until all `mach` commands were running with Python 3. With this change, we'll need to be able to determine the `mach` command from the shell script for the forseeable future, and committing to this forever with the cost that `--print-command` incurs (namely `mach` startup time, an additional .4s on my machine) didn't seem worth it to me. It's not a ton of duplicated code.

Differential Revision: https://phabricator.services.mozilla.com/D85916
2020-08-17 17:21:02 +00:00
Andi-Bogdan Postelnicu
1ead43f591 Bug 1657299 - First step of refactor static-analysis integration, making it more modular. r=marco
Add a modular approach for the integration of `static-analysis` module in order
to be able to share components of it with other modules, like the integration of
`clangd` in `vscode` where we need to have access to the configuration of `clang-tidy`
in order to have `in-ide` `static-analysis` messages.
In this initial step we make a separate module for the clang-tidy configuration.

Differential Revision: https://phabricator.services.mozilla.com/D85979
2020-08-06 06:51:16 +00:00
Ricky Stewart
da3fe81bea Bug 1655781- Allow specifying that certain packages should only be included in a virtualenv when parsing virtualenv_packages.txt r=chutten,nalexander
This solves the same problem we attempted to solve in bug 1654663. That was a low-cost, sensible solution when there was only one in-build reference to `glean_parser`, but with project FOG we're about to drastically increase the in-build reliance on the library, so the ad-hoc `sys.path` manipulation is an increasingly insensible solution. Here we address this in a first-class way by specifying that `glean_parser` should be imported in `virtualenv`s, but NOT by top-level `mach` commands that run outside of an in-`objdir` `virtualenv`.

Differential Revision: https://phabricator.services.mozilla.com/D85182
2020-07-28 18:29:55 +00:00
Mitchell Hentges
301f146dc4 Bug 1652615: Share is_telemetry_enabled() logic between Sentry and telemetry r=firefox-build-system-reviewers,rstewart
Note that this moves settings-loading earlier in the bootstrap procedure,
from "_run()" to "run()".

Differential Revision: https://phabricator.services.mozilla.com/D83425
2020-07-15 23:08:17 +00:00
Mitchell Hentges
1f5b9307c3 Bug 1636251: Patch Sentry events to ensure a raw username isn't sent to Sentry r=rstewart
To avoid sending identifying information, common absolute paths are patched with placeholder values. For example, devs
may place their Firefox repository within their home dir, so absolute paths are doctored to be prefixed with
"<topsrcdir"> instead.

Additionally, any paths including the user's home directory are patched to instead be a relate path from "~".

Differential Revision: https://phabricator.services.mozilla.com/D78962
2020-06-11 21:35:05 +00:00
Dorel Luca
27321e1f00 Backed out 3 changesets (bug 1636251) for phyton failures in python/mach/mach/test/test_conditions.py. CLOSED TREE
Backed out changeset a033282e742d (bug 1636251)
Backed out changeset ce8cb6373f88 (bug 1636251)
Backed out changeset ae78c0a50575 (bug 1636251)
2020-06-11 19:49:44 +03:00
Mitchell Hentges
2b514aa148 Bug 1636251: Patch Sentry events to ensure a raw username isn't sent to Sentry r=rstewart
To avoid sending identifying information, common absolute paths are patched with placeholder values. For example, devs
may place their Firefox repository within their home dir, so absolute paths are doctored to be prefixed with
"<topsrcdir"> instead.

Additionally, any paths including the user's home directory are patched to instead be a relate path from "~".

Differential Revision: https://phabricator.services.mozilla.com/D78962
2020-06-10 19:50:57 +00:00
Tom Ritter
47fe961b00 Bug 1637845 - Move all mach vendor files to a subdirectory r=glob
Differential Revision: https://phabricator.services.mozilla.com/D75693
2020-06-10 14:38:57 +00:00
Nathan Froyd
63ad6129d4 Bug 1619339 - explicitly set the soft ulimit for open files from mach; r=glandium
We do this to avoid unnecessarily penalizing subprocess invocations from
within mach (and all child processes) on some Linux setups.

Differential Revision: https://phabricator.services.mozilla.com/D66786
2020-05-07 15:08:43 +00:00
Dorel Luca
44ff2c403c Backed out changeset 76c9b2477a52 (bug 1619339) for Gecko Decision task failure. CLOSED TREE 2020-05-07 15:48:52 +03:00
Nathan Froyd
28bfcacda0 Bug 1619339 - explicitly set the soft ulimit for open files from mach; r=glandium
We do this to avoid unnecessarily penalizing subprocess invocations from
within mach (and all child processes) on some Linux setups.

Differential Revision: https://phabricator.services.mozilla.com/D66786
2020-05-07 00:41:18 +00:00
Tarek Ziadé
5c0481ca70 Bug 1623321 - Add perftest r=sparky,perftest-reviewers,marionette-reviewers,whimboo,ahal
mach perftest

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

--HG--
extra : moz-landing-system : lando
2020-04-02 13:04:41 +00:00
Tarek Ziadé
0165728187 Bug 1619198 - add mach commands for condprofs r=Bebe
Refactored condprof so we can drive it with mach

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

--HG--
extra : moz-landing-system : lando
2020-03-05 10:27:05 +00:00
Steve Fink
6c335b53f8 Bug 1614518 - Implement mach hazards command set for running the GC rooting hazard analysis. r=ahal,jonco,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D62384

--HG--
extra : moz-landing-system : lando
2020-02-20 18:27:50 +00:00
byron jones
095ba09dda Bug 1495394 - add mach install-moz-phab command; r=firefox-build-system-reviewers,chmanchester
Install moz-phab using the correct command for the current operating system as
per moz-phab's documentation.

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

--HG--
extra : moz-landing-system : lando
2020-02-19 05:28:32 +00:00
Ethan Glasser-Camp
0549c56796 Bug 1606026: move tools/docs code to tools/moztreedocs r=sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D58337

--HG--
rename : tools/docs/Pipfile => tools/moztreedocs/Pipfile
rename : tools/docs/Pipfile.lock => tools/moztreedocs/Pipfile.lock
rename : tools/docs/moztreedocs/__init__.py => tools/moztreedocs/__init__.py
rename : tools/docs/_static/custom_theme.css => tools/moztreedocs/_static/custom_theme.css
rename : tools/docs/mach_commands.py => tools/moztreedocs/mach_commands.py
rename : tools/docs/moztreedocs/package.py => tools/moztreedocs/package.py
rename : tools/docs/moztreedocs/upload.py => tools/moztreedocs/upload.py
extra : moz-landing-system : lando
2020-01-06 16:29:21 +00:00
Ed Lee
b34af2b581 Bug 1585672 - [mach] Skip modules whose __file__ attribute is None in the global ImportHook r=ahal
This also gets around a flake8 lint exception.

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

--HG--
extra : moz-landing-system : lando
2019-10-02 17:54:11 +00:00
Andrew Halberstadt
07d6b341a6 Bug 1585146 - [mach] Move '--disable-tests' check to a pre_dispatch_handler, r=firefox-build-system-reviewers,mshal
This logic is very 'mozill-central' specific and should live outside of mach
core if possible. Luckily we already have a concept of a 'pre_dispatch_handler'
that is meant for exactly this type of use case.

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

--HG--
extra : moz-landing-system : lando
2019-10-01 22:31:23 +00:00
Andrew Halberstadt
333ffc4bcf Bug 1473498 - [mach] Support running mach commands with python 3 r=glandium,mars
Credit: mars for making the shell POSIX compliant

This embeds a blacklist of every mach command that needs to run with Python 2
directly in the mach driver itself. Initially this is every mach command. We
then use a bit of shell to determine whether the command being run needs Python
2 or 3.

While this approach may seem a bit hacky, it has several benefits:

1. No need to add complex machinery in mach's registration code.
2. No need to spawn two separate Python interpreters in the event a different
   Python from the original interpreter is needed.
3. Perf impact is negligible.
4. New commands are Python 3 by default.

It is also only a temporary hack. Once all commands are running with Python 3,
we can revert back to the original mach driver.

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

--HG--
extra : moz-landing-system : lando
2019-08-27 03:08:08 +00:00
Andreas Tolfsen
8350dc3134 bug 1540655: build, remote: add mach command for vendoring Puppeteer; r=firefox-build-system-reviewers,chmanchester
Introduces "./mach remote vendor-puppeteer" for vendoring the
Puppeteer client without dependencies into remote/test/puppeteer/.

The particular checkout of Puppeteer is
https://github.com/andreastt/puppeteer/tree/firefox, which contains a
couple of hotfixes we need for the client to work with the Firefox
implementation of CDP.

The remote agent targets a specific version of Puppeteer, so it is
not suitable for this to be vendored under third_party/.  We also
wouldn't want other code in central to accidentally use a patched fork.

The vendoring process is not part of "./mach vendor" because it does
not yet have Node.js support, and implementing that for mach is outside
the scope of getting the Puppeteer tests running with the remote agent.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 12:58:06 +00:00
Andreas Tolfsen
1c7db08de2 bug 1540655: build: sort MACH_MODULES; r=firefox-build-system-reviewers,mshal
Differential Revision: https://phabricator.services.mozilla.com/D37006

--HG--
extra : moz-landing-system : lando
2019-08-16 12:58:05 +00:00
Ciure Andrei
8a1785a6cc Backed out 11 changesets (bug 1540655) for test_resolve.py perma failures CLOSED TREE
Backed out changeset 1a23d770d8a1 (bug 1540655)
Backed out changeset 641a7cb25298 (bug 1540655)
Backed out changeset 73236f81da44 (bug 1540655)
Backed out changeset 8d7bad30be46 (bug 1540655)
Backed out changeset bb012df3018b (bug 1540655)
Backed out changeset 8c67b494e207 (bug 1540655)
Backed out changeset c0a80d37576d (bug 1540655)
Backed out changeset 939ce2afcf0b (bug 1540655)
Backed out changeset 3b3a2a9fbc8b (bug 1540655)
Backed out changeset b96dede008ad (bug 1540655)
Backed out changeset 997d1568d944 (bug 1540655)
2019-08-14 18:53:36 +03:00
Andreas Tolfsen
1c16637ab1 bug 1540655: build, remote: add mach command for vendoring Puppeteer; r=firefox-build-system-reviewers,chmanchester
Introduces "./mach remote vendor-puppeteer" for vendoring the
Puppeteer client without dependencies into remote/test/puppeteer/.

The particular checkout of Puppeteer is
https://github.com/andreastt/puppeteer/tree/firefox, which contains a
couple of hotfixes we need for the client to work with the Firefox
implementation of CDP.

The remote agent targets a specific version of Puppeteer, so it is
not suitable for this to be vendored under third_party/.  We also
wouldn't want other code in central to accidentally use a patched fork.

The vendoring process is not part of "./mach vendor" because it does
not yet have Node.js support, and implementing that for mach is outside
the scope of getting the Puppeteer tests running with the remote agent.

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

--HG--
extra : moz-landing-system : lando
2019-08-14 14:57:51 +00:00
Andreas Tolfsen
e24280acf0 bug 1540655: build: sort MACH_MODULES; r=firefox-build-system-reviewers,mshal
Differential Revision: https://phabricator.services.mozilla.com/D37006

--HG--
extra : moz-landing-system : lando
2019-08-14 14:57:49 +00:00
Andrew Halberstadt
d3ccaac56c Bug 1473498 - Fix Python 3 environment variables with subprocess r=glandium
On Windows in Python 2, the subprocess module requires the use of bytes with
the 'env' argument. For that reason, we would sometimes use byte strings with
'os.environ' like so:

    os.environ[b"FOO"] = b"bar"

However, this is a failure with Python 3 as 'os.environ' must only be used with
the text type. This patch creates a new 'setenv' helper that ensures we create
new environment with 'bytes' on Python 2, and 'text' on Python 3.

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

--HG--
extra : moz-landing-system : lando
2019-07-30 21:35:53 +00:00
David Walsh
5b1625c2cb Bug 1561723 - Add debugger to whitelist for import-pr usage r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D36082

--HG--
rename : gfx/thebes/mach_commands.py => tools/vcs/mach_commands.py
extra : moz-landing-system : lando
2019-07-19 14:18:56 +00:00
Andi-Bogdan Postelnicu
247d96a5f4 Bug 1559740 - add separate modules for build, static-analysis and artifacts. r=sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D36479

--HG--
extra : moz-landing-system : lando
2019-07-01 14:02:20 +00:00
Sylvestre Ledru
da21266863 Bug 1559740 - Move the clang-{format,tidy} and infer declarations into a separate directory r=andi
Differential Revision: https://phabricator.services.mozilla.com/D35187

--HG--
extra : moz-landing-system : lando
2019-07-01 13:57:18 +00:00
Cosmin Sabou
20f7fd4c63 Backed out 3 changesets (bug 1559740) for linting errors and android bustages. CLOSED TREE
Backed out changeset 39db36060b8a (bug 1559740)
Backed out changeset df14ac0c2421 (bug 1559740)
Backed out changeset 089e04f53971 (bug 1559740)
2019-06-28 19:40:13 +03:00
Sylvestre Ledru
85ae7943fc Bug 1559740 - Move the clang-{format,tidy} and infer declarations into a separate directory r=andi
Differential Revision: https://phabricator.services.mozilla.com/D35187

--HG--
extra : moz-landing-system : lando
2019-06-28 07:39:48 +00:00
Kartikaya Gupta
870cc36ca1 Bug 1519598 - Add a mach command to import PRs from github. r=kvark,ahal
This is a simple mach command that imports a PR from a whitelisted set
of github repositories into the local m-c clone. It works by downloading
the .patch file from github, splitting the different commits, and
applying those commits to the local repo via the `patch` tool and git/hg
commit. It optionally allows filing a bug or providing a bug number, and
specifying a reviewer.

This is one part of a larger workflow that facilitates landing
contributor patches into m-c when those patches are submitted as PRs.
Other components of the workflow (to be added in the future) will make
it easier to actually test and land the patch.

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

--HG--
extra : moz-landing-system : lando
2019-06-24 20:30:32 +00:00
Kagami Sascha Rosylight
4d696c5df3 Bug 1554186: Fix Python 3 negative import level error r=glandium
Negative value for import level is obsolete in Python 3, which was used on Py2 for implicit relative import. This change ensures the level value to be >=0 on Py3 to fix test failures.

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

--HG--
extra : moz-landing-system : lando
2019-05-29 07:58:19 +00:00
Kagami Sascha Rosylight
bead355959 Bug 1550956: Import builtins in Python 3 compatible way r=firefox-build-system-reviewers,chmanchester
Differential Revision: https://phabricator.services.mozilla.com/D30790

--HG--
extra : moz-landing-system : lando
2019-05-23 03:57:17 +00:00
Brindusan Cristian
952521e616 Backed out changeset fa4c37c31dfd (bug 1550956) as requested by mikedeboer on IRC for causing mach to stop working on Python 2. a=backout 2019-05-22 12:33:23 +03:00
Kagami Sascha Rosylight
2dd546dac6 Bug 1550956: Import builtins in Python 3 compatible way r=firefox-build-system-reviewers,chmanchester
Differential Revision: https://phabricator.services.mozilla.com/D30790

--HG--
extra : moz-landing-system : lando
2019-05-21 18:38:46 +00:00
Nick Alexander
a7e3d82701 Bug 1543247 - Part 1: Add mach browsertime command that installs and invokes browsertime. r=Standard8,ahal
[browsertime](https://github.com/sitespeedio/browsertime) is a harness
for running performance tests, similar to Mozilla's Raptor testing
framework.  The Performance Team is using it locally with some
success, but we're running a heavily modified toolchain that is
challenging to install.  This mach command is intended to be leverage
for getting more folks able to use browsertime easily.

In particular, the version of browsertime that this installs has
nalexander's changes to support testing GeckoView-based vehicles.  If
this approach meets with approval, I'll continue to follow-up with
additional configuration and tooling layers to make it even easier to
drive GeckoView-based vehicles.

I elected to piggy-back install on the eslint installation process,
since this is very similar.  To that end, I generalized what was there
very slightly.  I elected not to try to move the existing code into a
more obvious shared location, although it might be possible, because
it wasn't clear what contexts the existing code would be invoked
from.  In particular I wasn't certain the code could rely on a
complete mozbuild checkout.

I did need to ensure the local Node.js binary is early on the PATH;
this was an issue I ran into with my initial Node/Yarn prototyping
many months ago.  At heart the issue is that package scripts in the
wild invoke a bare `node` or `npm` command; if there was a culture of
invoking $NODE or $NPM, this wouldn't be necessary.  There's no harm
doing it for ESlint, and it will help the next person who wants to
install an NPM package for tooling in this manner.

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

--HG--
extra : moz-landing-system : lando
2019-05-06 23:56:49 +00:00
Razvan Maries
12bcfbb334 Backed out 2 changesets (bug 1543247) for build bustages. CLOSED TREE
Backed out changeset feb726e4f15d (bug 1543247)
Backed out changeset 4b3619d89abd (bug 1543247)
2019-05-04 03:10:55 +03:00
Nick Alexander
6df6c7ee39 Bug 1543247 - Part 1: Add mach browsertime command that installs and invokes browsertime. r=Standard8,ahal
[browsertime](https://github.com/sitespeedio/browsertime) is a harness
for running performance tests, similar to Mozilla's Raptor testing
framework.  The Performance Team is using it locally with some
success, but we're running a heavily modified toolchain that is
challenging to install.  This mach command is intended to be leverage
for getting more folks able to use browsertime easily.

In particular, the version of browsertime that this installs has
nalexander's changes to support testing GeckoView-based vehicles.  If
this approach meets with approval, I'll continue to follow-up with
additional configuration and tooling layers to make it even easier to
drive GeckoView-based vehicles.

I elected to piggy-back install on the eslint installation process,
since this is very similar.  To that end, I generalized what was there
very slightly.  I elected not to try to move the existing code into a
more obvious shared location, although it might be possible, because
it wasn't clear what contexts the existing code would be invoked
from.  In particular I wasn't certain the code could rely on a
complete mozbuild checkout.

I did need to ensure the local Node.js binary is early on the PATH;
this was an issue I ran into with my initial Node/Yarn prototyping
many months ago.  At heart the issue is that package scripts in the
wild invoke a bare `node` or `npm` command; if there was a culture of
invoking $NODE or $NPM, this wouldn't be necessary.  There's no harm
doing it for ESlint, and it will help the next person who wants to
install an NPM package for tooling in this manner.

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

--HG--
extra : moz-landing-system : lando
2019-05-03 22:44:23 +00:00
Chris Manchester
5c005e476e Bug 1526072 - Record cpu utilization and clobber/full builds in build telemetry. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D22630

--HG--
extra : moz-landing-system : lando
2019-03-27 22:42:48 +00:00
Noemi Erli
6269026d4e Backed out 4 changesets (bug 1526072) for causing build bustages in test_clobber.py CLOSED TREE
Backed out changeset d3d56eca307f (bug 1526072)
Backed out changeset 37942b0f911b (bug 1526072)
Backed out changeset a0eb0f43c928 (bug 1526072)
Backed out changeset c1d1576431d7 (bug 1526072)
2019-03-27 22:51:22 +02:00
Chris Manchester
68be120a7f Bug 1526072 - Record cpu utilization and clobber/full builds in build telemetry. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D22630

--HG--
extra : moz-landing-system : lando
2019-03-18 20:36:54 +00:00
Chris Hartjes
6c7e3654d7 Bug 1507235 - Add capability to run telemetry-tests-client locally; r=raphael
Differential Revision: https://phabricator.services.mozilla.com/D20535

--HG--
extra : moz-landing-system : lando
2019-02-20 19:18:06 +00:00
Andrew Halberstadt
83e75a8676 Bug 1483228 - [mozboot] Add ability to get a srcdir specific state dir r=nalexander
Sometimes we want to store state that only applies to a particular srcdir, but
there isn't a standard directory where this lives. Let's add an argument to
'get_state_dir()' to provide an "official" place.

The new API to get the local state dir is 'get_state_dir(srcdir=True)'. Like
the global state dir, this directory is not guaranteed to exist. A reference to
this value can also be obtained via 'self._mach_context.local_state_dir' from
within a mach command (in this case it will be created automatically if it
doesn't exist).

Note: we should probably just make sure both exist at mach startup, but it felt
outside the scope of this change.

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

--HG--
extra : moz-landing-system : lando
2019-02-04 21:07:25 +00:00
Andrew Halberstadt
8bc7850637 Bug 1483228 - [mozboot] Simplify get_state_dir()'s return value r=nalexander
mozboot.util.get_state_dir() returns a tuple of (<path>, <bool). The bool
denotes whether or not the state dir came from an environment variable.

But this value is only used in a single place, and is very easy to test for
anyway. It's not worth the added complexity it imposes on all other consumers
of this function. Let's just make this function return the path.

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

--HG--
extra : moz-landing-system : lando
2019-02-04 20:52:31 +00:00
Andi-Bogdan Postelnicu
8286177e5a Bug 1513216 - Don't collect build telemetry when 'mach' is ran from hg format-source. r=sheehan
Differential Revision: https://phabricator.services.mozilla.com/D14146

--HG--
extra : moz-landing-system : lando
2018-12-13 18:09:03 +00:00
Tom Prince
dd59ad1f35 Bug 1482395: Allow python3 specific entries in virtualenv_packages.txt; r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D12706

--HG--
extra : moz-landing-system : lando
2018-11-22 21:44:09 +00:00
Ted Mielczarek
cb08d3a69f bug 1506729 - fix telemetry submission on Windows. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D11752

--HG--
extra : moz-landing-system : lando
2018-11-13 13:34:17 +00:00
Connor Sheehan
d8e73dd962 Bug 1505086: remove build telemetry submission logic r=ted
Currently, build telemetry submits at random, approximately
every 10 `mach` invocations. This choice was made arbitrarily,
with no real reason in mind for that level of frequency.
After speaking with some of the data engineers in #telemetry,
it seems we should be able to send pings to the telemetry
pipeline far more frequently than we realized. This commit
removes the telemetry submission logic and causes clients
to attempt to send pings for every mach invocation. Pings
are still saved to the outgoing directory, in case of a
failure or in the case of offline `mach` runs.

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

--HG--
extra : moz-landing-system : lando
2018-11-12 14:57:59 +00:00