Commit Graph

103 Commits

Author SHA1 Message Date
Connor Sheehan
7e2347b01a Bug 1681560: install native packages using requirements files with pinned hashes r=firefox-build-system-reviewers,mhentges
At the moment installing Python packages with native code is done by calling
`pip install <package>` and does not enforce any SHA hash for installed
dependencies, nor does it enforce a specific version to be installed.

This commit adds `requirements.in` and `requirements.txt` files for native
packages and changes these packages to be installed by running `pip install`
and passing the requirements file for the package. This allows us to pin the
SHA of the various dependencies. The `.txt` files are generated using
`pip-compile`.

We also add the new requirements files to the sparse profile for `mach`.

Differential Revision: https://phabricator.services.mozilla.com/D99912
2020-12-16 21:02:02 +00:00
Chris H-C
a0efcbcf74 Bug 1673660 - C++ and JS API for Glean Custom Pings r=janerik,webidl,smaug
Covers adding the new JS global `GleanPings` for JS, the new structs for C++ at
mozilla::glean_pings, ping-id and string-table-index codegen, the usual
boilerplate for JS and C++ stuff, and tests.

Unresolved:
* What happens if we call this on a non-parent process?
  (This isn't a supported mode of operation)

Differential Revision: https://phabricator.services.mozilla.com/D98671
2020-12-14 16:50:07 +00:00
Ricky Stewart
119ff36277 Bug 1674498 - Remove references to jarsigner from configure and delete the debug_sign_tool r=geckoview-reviewers,nalexander,snorp
This is no longer used by Android devs.

Differential Revision: https://phabricator.services.mozilla.com/D95417
2020-11-02 16:50:56 +00:00
Jan-Erik Rediger
4b11c48d2a Bug 1646165 - Make the test metrics file known to sphinx. r=janerik CLOSED TREE
Differential Revision: https://phabricator.services.mozilla.com/D94445
2020-10-22 14:02:00 +00:00
Kartikaya Gupta
c95f299299 Bug 1661117 - Follow-up to update standalone WR CI for osmesa-src bump. r=kvark
This extracts an install-meson.sh helper script to install meson in both
the wrench-deps task for Firefox CI and the taskcluster.yml in WebRender CI.

Differential Revision: https://phabricator.services.mozilla.com/D90441
2020-09-16 18:02:45 +00:00
Gregory Mierzwinski
5a1f44cb77 Bug 1664541 - Add package-lock.json to browsertime resources. r=perftest-reviewers,kimberlythegeek
Differential Revision: https://phabricator.services.mozilla.com/D89953
2020-09-15 16:23:18 +00:00
Mike Hommey
aa86bba7ac Bug 1662601 - Remove fileid. r=gsvelto
The last thing that was using fileid was fix-stacks, which, as of bug
1662037, doesn't anymore.

Differential Revision: https://phabricator.services.mozilla.com/D89076
2020-09-05 05:31:28 +00:00
Chris H-C
5493409c18 Bug 1654339 - Add Glean metrics autodocs to moztreedocs r=janerik,ahal
Also define a scheme for storing the index of Glean definitions files in a file
separate from the build system for consumption by
* mach build
* mach doc
* (future) mozilla/probe-scraper

Differential Revision: https://phabricator.services.mozilla.com/D87600
2020-08-21 16:30:45 +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
Tarek Ziadé
883db95e9d Bug 1628278 - added conditioned profile support r=acreskey
Adds conditioned profiles and make the Profile
layer a system layer instead of a test layer

Differential Revision: https://phabricator.services.mozilla.com/D83612
2020-07-16 13:30:11 +00:00
Tarek Ziadé
7dfca9db55 Bug 1644778 - add a mozperftest to measure browser.xhtml DOM size, r=tarek,dhouse,sparky
Differential Revision: https://phabricator.services.mozilla.com/D79152
2020-07-13 15:44:38 +00:00
Tom Prince
388e735d63 Bug 1649168: Add scriptworker-canary action and corresponding task; r=rail
Add an action that will trigger a task that runs
`mach release push-scriptworker-canary`
to test a new scriptworker deployment.

Differential Revision: https://phabricator.services.mozilla.com/D82821
2020-07-10 16:12:05 +00:00
Chris AtLee
676e2f71c7 Bug 1555560: Run black format check in automation; r=ahal,sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D33126
2020-07-08 22:08:06 +00:00
Mihai Alexandru Michis
5f385df474 Backed out 2 changesets (bug 1555560) for causing multiple lint failures.
CLOSED TREE

Backed out changeset bd9460ac6e48 (bug 1555560)
Backed out changeset f2896032ced6 (bug 1555560)
2020-07-09 01:04:18 +03:00
Chris AtLee
92897f1567 Bug 1555560: Run black format check in automation; r=ahal,sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D33126
2020-07-08 20:44:41 +00:00
Sylvestre Ledru
25fd29ad52 Bug 1623024 - mozlint: Add pylint to the CI r=linter-reviewers,ahal
Depends on D79076

Differential Revision: https://phabricator.services.mozilla.com/D79099
2020-06-18 20:05:02 +00:00
Mitchell Hentges
5b5e1ea7b9 Bug 1636251: report |./mach| errors with Sentry r=rstewart
These errors are reported to the "mach" project here:
https://sentry.prod.mozaws.net/operations/mach/

Should only report exceptions caused by a failure in `mach` or its subcommands. Build/test/etc failures
should not be sent to Sentry.

Depends on D74737

Differential Revision: https://phabricator.services.mozilla.com/D74738
2020-06-11 20:38:04 +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
47c53b361d Bug 1636251: report |./mach| errors with Sentry r=rstewart
These errors are reported to the "mach" project here:
https://sentry.prod.mozaws.net/operations/mach/

Should only report exceptions caused by a failure in `mach` or its subcommands. Build/test/etc failures
should not be sent to Sentry.

Depends on D74737

Differential Revision: https://phabricator.services.mozilla.com/D74738
2020-06-10 19:50:55 +00:00
Sylvestre Ledru
be715d2f73 Bug 1644123 - mach doc: Provides the full path to logo and favicon + update of the build sparse config r=firefox-source-docs-reviewers,ahal
Differential Revision: https://phabricator.services.mozilla.com/D78671
2020-06-08 19:06:44 +00:00
Edwin Takahashi
ffa6cb8cbe Bug 1608837 - add necessary files to taskgraph sparse-profile for web-platform-tests chunking r=ahal
Changes:

  - add web-platform-tests files to the sparse-profile to support test chunking.

Differential Revision: https://phabricator.services.mozilla.com/D70752
2020-05-08 21:28:08 +00:00
Tarek Ziadé
080870795e Bug 1635136 - add a --push-to-try option r=aerickson
This patch is adding an option to push a perftest run in the CI.

It's based on :
- sparse profiles
- push_to_try
- options passed through try_task_config.json

Differential Revision: https://phabricator.services.mozilla.com/D74115
2020-05-12 21:19:48 +00:00
Tom Prince
f6ce67ee8a Bug 1635852: Include minidump_stackwalk files in taskgraph sparse-profile; r=glandium
Without this, taskgraph calculates the digest based on just the files in these
directories that are in the sparse profile (I suspect this is just the
moz.build files), and will rebuild it when those files change. This changes
ensures that all files in those directories are used to calculate the digest.

Additionally, this will cause the same digest to be generted by developers
locally, since the files *are* present in the non-sparse checkout that most
developers have.

Differential Revision: https://phabricator.services.mozilla.com/D74113
2020-05-07 22:20:52 +00:00
Mike Hommey
58228b3764 Bug 1617794 - Add a toolchain task to build a LD_PRELOAD helper for Windows cross builds. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D64295

--HG--
extra : moz-landing-system : lando
2020-02-27 21:40:50 +00:00
Razvan Maries
2e07e8ca83 Backed out 2 changesets (bug 1617794) for Gecko Decision Task bustage. CLOSED TREE
Backed out changeset e6cdc99bb877 (bug 1617794)
Backed out changeset 71cfd922f86a (bug 1617794)
2020-02-27 23:35:10 +02:00
Mike Hommey
c2a988f4e0 Bug 1617794 - Add a toolchain task to build a LD_PRELOAD helper for Windows cross builds. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D64295

--HG--
extra : moz-landing-system : lando
2020-02-27 15:55:20 +00:00
Mike Hommey
623de66503 Bug 1525218 - Use minidump_stackwalk toolchain artifacts instead of tooltool packages. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D59936

--HG--
extra : moz-landing-system : lando
2020-02-06 08:39:54 +00:00
Dzmitry Malyshau
82be8c479a Bug 1596127 - wgpu Rust tests CI job r=ahal,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D58414

--HG--
extra : moz-landing-system : lando
2020-01-23 20:42:22 +00:00
Chris Manchester
d30348f637 Bug 1604486 - Update profile generate sparse profile to include talos tests. r=sheehan
Differential Revision: https://phabricator.services.mozilla.com/D60463

--HG--
extra : moz-landing-system : lando
2020-01-20 23:04:39 +00:00
Sebastian Hengst
8f821d77ab Backed out 3 changesets (bug 1525218) for breaking fenix, reference-browser speedometer tasks. a=backout
Backed out changeset 76036ce90611 (bug 1525218)
Backed out changeset 9c66ecb1f66c (bug 1525218)
Backed out changeset eb4b265deb5e (bug 1525218)

--HG--
extra : rebase_source : 5f1b01bd44628efff2a7e0f28a62a7ad673a73c0
2020-01-20 11:19:46 +01:00
Mike Hommey
5378c2e839 Bug 1525218 - Use minidump_stackwalk toolchain artifacts instead of tooltool packages. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D59936

--HG--
extra : moz-landing-system : lando
2020-01-15 14:20:30 +00:00
Dzmitry Malyshau
69b270f2c6 Bug 1605171 - Replace wrupdater with github-sync r=tomprince
this is an evolution of wrupdater

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

--HG--
extra : moz-landing-system : lando
2020-01-14 18:37:28 +00:00
Ethan Glasser-Camp
7cd2a98da0 Bug 1606026: Move existing documentation into new locations r=sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D58338

--HG--
rename : tools/docs/docs/contribute/mozilla_source_code_directory_structure.rst => docs/contributing/directory_structure.rst
rename : tools/docs/docs/contribute/how_to_contribute_firefox.rst => docs/contributing/how_to_contribute_firefox.rst
rename : tools/docs/docs/adding-documentation.rst => tools/moztreedocs/docs/adding-documentation.rst
rename : tools/docs/docs/index.rst => tools/moztreedocs/docs/index.rst
rename : tools/docs/docs/mdn-import.rst => tools/moztreedocs/docs/mdn-import.rst
extra : moz-landing-system : lando
2020-01-06 16:38:34 +00:00
Ethan Glasser-Camp
6f164aa98f Bug 1606026: Move documentation entry point to docs/ r=sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D58552

--HG--
rename : tools/docs/conf.py => docs/conf.py
rename : tools/docs/config.yml => docs/config.yml
rename : tools/docs/index.rst => docs/index.rst
rename : tools/docs/jsdoc.json => docs/jsdoc.json
extra : moz-landing-system : lando
2020-01-06 16:14:11 +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
Dzmitry Malyshau
785a7cfbc2 Bug 1596126 - Github synchronization for gfx/wgpu r=Callek,tomprince
This change introduces a "github-sync" component into tools,
which aims to support synchronizing both wgpu and WebRender with github.
~~It also features a "cargo test" job for standalone wgpu (bug  1596127)~~

The code is ported from "gfx/wr/scripts/wrupdater" folder. Changes are:
  1. remove explicit WR parts and make them configurable by command line params
  2. detect "mozilla-xxx" tags and use them in addition to the commits

As a follow up, wrupdater will be removed in favor of github-sync.

Status:
  - [x] get the CI test job working
  - [x] get @kats to fork "wgpu" github for "moz-gfx" bot
  - [x] remove the wgpu testing CI job (into separate PR)
  - [x] create new secret and reference it

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

--HG--
extra : moz-landing-system : lando
2019-12-28 02:44:59 +00:00
Tom Prince
9e2fc7ebbc Bug 1596775: Import scripts for downloading macOS system symbols; r=marco
Import the code from
https://github.com/marco-c/breakpad-mac-update-symbols/
and
https://github.com/marco-c/breakpad-scrape-system-symbols

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

--HG--
extra : moz-landing-system : lando
2019-12-12 02:05:21 +00:00
Andrew Halberstadt
26e9db86f8 Bug 1583353 - [taskgraph] Implement test chunking in transforms r=gbrown
We've long handled chunks by defining the total number of chunks in our CI
configuration, and then passing that value down into the test harnesses at task
runtime (via the '--this-chunk' and '--total-chunks' parameters).  The test
harness then runs an algorithm to determine which tests should be run in "this"
chunk.

There are several problems with this approach, but by far the biggest is that
we can't use test information in our scheduling algorithms. The information
simply isn't available yet. This patch switches things around such that we
determine which tests go in which tasks during the taskgraph generation. This
means we have perfect information around which tasks are running which tests,
and if e.g a ccov or machine learning algorithm deems a particular test
important, we can make sure to *only* schedule the tasks that contain that
test.

I'm planning to enable this a couple suites at a time so we don't accidentally
stop running tests. This specifically only enables this mode for
'mochitest-media', 'mochitest-browser-chrome' and 'mochitest-devtools-chrome'.
I chose these suites because they are the ones that are already using the
'chunk_by_runtime' algorithm.

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

--HG--
extra : moz-landing-system : lando
2019-12-11 21:10:48 +00:00
Tarek Ziadé
879e6071ec Bug 1599424 - Convert vismet task output to a perfherder artifact r=sparky,rwood
Differential Revision: https://phabricator.services.mozilla.com/D55393

--HG--
extra : moz-landing-system : lando
2019-12-06 07:57:50 +00:00
Nick Alexander
465ee5457d Bug 1580622 - Run geckodriver toolchain tasks in response to source code changes. r=tomprince
Right now toolchain tasks that aren't dependencies of requested tasks
will run in response to source code changes only if the files are in the
sparse profile.  That is, taskgraph calculates the digest based on just
the files in those directories that are in the sparse profile, and will
rebuild it when those files change.  This changes ensures that more
geckodriver files are used to calculate the digest, and thus changes
to them will cause geckodriver to be rebuilt.

As more things depend on the geckodriver toolchain tasks directly this
becomes less valuable and can be removed from the sparse profile.

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

--HG--
extra : moz-landing-system : lando
2019-09-28 00:11:45 +00:00
Mike Hommey
ee928b205d Bug 1572363 - Add a sparse profile for webrender tasks. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D41152

--HG--
extra : moz-landing-system : lando
2019-08-08 13:47:51 +00:00
Nick Alexander
280126dff5 Bug 1564256 - Part 2: Produce browsertime.zip in a toolchain task. r=mshal
In browsertime.zip we should have:

browsertime/
  package.json
  package-lock.json
  node_modules/
    .bin/
      browsertime -> ../browsertime/bin/browsertime.js
    browsertime/
      ...

The idea is that we'll fetch browsertime.zip in a generic-worker
environment and be able to run Node.js from within the top level
browsertime/ directory.

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

--HG--
extra : moz-landing-system : lando
2019-07-24 20:59:55 +00:00
Kartikaya Gupta
2d73759624 Bug 1523321 - Run the wrupdater on m-c pushes that touch gfx/wr. r=tomprince,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D33548

--HG--
extra : moz-landing-system : lando
2019-07-16 15:38:39 +00:00
Narcis Beleuzu
ab956a715f Backed out 2 changesets (bug 1523321) for webrender bustages. CLOSED TREE
Backed out changeset d86e7c8f1e14 (bug 1523321)
Backed out changeset 18414da977c3 (bug 1523321)
2019-07-16 18:23:45 +03:00
Kartikaya Gupta
b3bebb6eca Bug 1523321 - Run the wrupdater on m-c pushes that touch gfx/wr. r=tomprince,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D33548

--HG--
extra : moz-landing-system : lando
2019-07-16 14:09:47 +00:00
Brindusan Cristian
3de8b088e1 Backed out 2 changesets (bug 1523321) for breaking Gecko Decision Task. CLOSED TREE
Backed out changeset c032bed595dc (bug 1523321)
Backed out changeset 0a4f53b896b1 (bug 1523321)
2019-07-16 17:00:24 +03:00
Kartikaya Gupta
c6cc78e85f Bug 1523321 - Run the wrupdater on m-c pushes that touch gfx/wr. r=tomprince,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D33548

--HG--
extra : moz-landing-system : lando
2019-07-16 13:49:54 +00:00
Mike Shal
562accde43 Bug 1561474 - Define and use a sparse profile for the profile-run task; r=sheehan
This was originally from bug 1528374 for Mac PGO, but that isn't able to
land yet and it should help Windows PGO runs in the meantime.

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

--HG--
extra : moz-landing-system : lando
2019-07-15 21:40:09 +00:00
Tom Prince
0cd3337d90 Bug 1458385: Package mar and mbsdiff as a toolchain; r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D24229

--HG--
extra : moz-landing-system : lando
2019-07-11 16:40:13 +00:00
Daniel Varga
6d6f6dadce Backed out 4 changesets (bug 1458385) for nightly updates fail. a=backout
Backed out changeset 09338587b68e (bug 1458385)
Backed out changeset f7791b680d46 (bug 1458385)
Backed out changeset cc06a7beb3d1 (bug 1458385)
Backed out changeset 3b10487587c3 (bug 1458385)
2019-04-10 21:09:46 +03:00