Commit graph

76 commits

Author SHA1 Message Date
Butkovits Atila
a07f790e42 Backed out changeset e1921c5112d8 (bug 1696251) for causing bustages complaining about 'CommandContext'. CLOSED TREE 2021-07-16 20:35:55 +03:00
Alex Lopez
190e03aaab Bug 1696251 - Replace self with command_context where possible in existing mach commands. r=mhentges,webdriver-reviewers,perftest-reviewers,whimboo
This step removes all the dependencies of mach commands to
having a MachCommandBase as the `self` by using the `command_context`
argument instead. This also removes any remaining statefulness from those
classes that implement mach commands, ultimately making it easier to move
existing commands out of classes in a follow-up.

Differential Revision: https://phabricator.services.mozilla.com/D118058
2021-07-16 15:51:29 +00:00
championshuttler
1f56db85d5 Bug 1715612 - Attempt to migrate try select to py3.r=mhentges
Differential Revision: https://phabricator.services.mozilla.com/D117276
2021-06-09 20:01:22 +00:00
Alex Lopez
1ee8086c02 Bug 1696251 - Refactor constructors in MachCommandBase subclasses to remove them. r=mhentges,remote-protocol-reviewers
Another step towards avoiding the need for classes in mach commands;
here we are removing constructors either by changing them into helpers
or by simple refactorings.

Differential Revision: https://phabricator.services.mozilla.com/D112434
2021-05-28 18:30:03 +00:00
Butkovits Atila
6bb47ac424 Backed out changeset 4b889750da57 (bug 1696251) for causing lint failures. CLOSED TREE 2021-05-28 01:43:11 +03:00
Alex Lopez
2e8613720d Bug 1696251 - Refactor constructors in MachCommandBase subclasses to remove them. r=mhentges,remote-protocol-reviewers
Another step towards avoiding the need for classes in mach commands;
here we are removing constructors either by changing them into helpers
or by simple refactorings.

Differential Revision: https://phabricator.services.mozilla.com/D112434
2021-05-27 21:03:46 +00:00
Alex Lopez
07cf832a8a Bug 1696251 - Turn all properties in MachCommandBase subclasses into methods. r=mhentges,perftest-reviewers,sparky
As a step towards moving mach commands outside of classes, this converts all
properties into methods so that they can later become top-level helper functions.

Differential Revision: https://phabricator.services.mozilla.com/D112196
2021-05-26 18:08:02 +00:00
Alex Lopez
455d9a088b Bug 1696251 - Pass MachCommandBase object as first argument for Mach Commands. r=mhentges,remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers
As an intermediate step to allow mach commands as standalone functions, the MachCommandBase
subclass instance that currently corresponds to self has to be made available as a separate
argument (named command_context).

Differential Revision: https://phabricator.services.mozilla.com/D109650
2021-05-17 16:15:58 +00:00
Butkovits Atila
2e34e363b9 Backed out 2 changesets (bug 1696251) for causing js-bench-sm failures. CLOSED TREE
Backed out changeset 1c84c9a34575 (bug 1696251)
Backed out changeset e169193b7423 (bug 1696251)
2021-04-23 02:53:36 +03:00
Alex Lopez
41687360e8 Bug 1696251 - Turn all properties in MachCommandBase subclasses into methods. r=mhentges,perftest-reviewers,sparky
As a step towards moving mach commands outside of classes, this converts all
properties into methods so that they can later become top-level helper functions.

Differential Revision: https://phabricator.services.mozilla.com/D112196
2021-04-22 19:44:52 +00:00
Alex Lopez
d1a82b8092 Bug 1696251 - Pass MachCommandBase object as first argument for Mach Commands. r=mhentges,remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers
As an intermediate step to allow mach commands as standalone functions, the MachCommandBase
subclass instance that currently corresponds to self has to be made available as a separate
argument (named command_context).

Differential Revision: https://phabricator.services.mozilla.com/D109650
2021-04-22 18:56:15 +00:00
Cosmin Sabou
785f9b8a87 Backed out changeset d4a5d8567977 (bug 1696251) for non-unified build bustages. CLOSED TREE 2021-04-19 19:43:31 +03:00
Alex Lopez
75dfe35468 Bug 1696251 - Pass MachCommandBase object as first argument for Mach Commands. r=mhentges,remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers
As an intermediate step to allow mach commands as standalone functions, the MachCommandBase
subclass instance that currently corresponds to self has to be made available as a separate
argument (named command_context).

Differential Revision: https://phabricator.services.mozilla.com/D109650
2021-04-19 16:15:11 +00:00
Ricky Stewart
02a7b4ebdf Bug 1654103: Standardize on Black for Python code in mozilla-central.
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.

5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-26 18:34:53 +00:00
Bogdan Tara
da1098d4aa Backed out 10 changesets (bug 1654103, bug 1672023, bug 1518999) for PanZoomControllerTest.touchEventForResult gv-junit failures CLOSED TREE
Backed out changeset ff3fb0b4a512 (bug 1672023)
Backed out changeset e7834b600201 (bug 1654103)
Backed out changeset 807893ca8069 (bug 1518999)
Backed out changeset 13e6b92440e9 (bug 1518999)
Backed out changeset 8b2ac5a6c98a (bug 1518999)
Backed out changeset 575748295752 (bug 1518999)
Backed out changeset 65f07ce7b39b (bug 1518999)
Backed out changeset 4bb80556158d (bug 1518999)
Backed out changeset 8ac8461d7bd7 (bug 1518999)
Backed out changeset e8ba13ee17f5 (bug 1518999)
2020-10-24 03:36:18 +03:00
Ricky Stewart
c0cea3b0fa Bug 1654103: Standardize on Black for Python code in mozilla-central. r=remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers,devtools-backward-compat-reviewers,jgilbert,preferences-reviewers,sylvestre,maja_zf,webcompat-reviewers,denschub,ntim,whimboo,sparky
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.

5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-23 20:40:42 +00:00
Dorel Luca
1ff59cb7a3 Backed out changeset 7558c8821a07 (bug 1654103) for multiple failures. CLOSED TREE 2020-10-22 03:51:06 +03:00
Ricky Stewart
50762dacab Bug 1654103: Standardize on Black for Python code in mozilla-central. r=remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers,devtools-backward-compat-reviewers,jgilbert,preferences-reviewers,sylvestre,maja_zf,webcompat-reviewers,denschub,ntim,whimboo,sparky
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-21 21:27:27 +00:00
Andrew Halberstadt
12c83e7e26 Bug 1655750 - [tryselect] Handle --list/edit-presets even on selectors that don't support presets, r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D88645
2020-09-02 19:44:49 +00:00
Mihai Alexandru Michis
6bf176bfa5 Backed out changeset d634c912adcd (bug 1655750) for causing Bug 1662030.
CLOSED TREE
2020-08-31 16:35:11 +03:00
Andrew Halberstadt
36bafe8efd Bug 1655750 - [tryselect] Handle --list/edit-presets even on selectors that don't support presets, r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D88645
2020-08-30 17:44:20 +00:00
Ricky Stewart
31755b431d Bug 1657650 - Require that Mach command providers subclass MachCommandBase. r=remote-protocol-reviewers,marionette-reviewers,maja_zf,mhentges,froydnj
Today we don't require that `mach` `CommandProvider`s subclass from any particular parent class and we're very lax about the requirements they must meet. While that's convenient in certain circumstances, it has some unfortunate implications for feature development.

Today the only requirements that we have for `CommandProvider`s are that they have an `__init__()` method that takes either 1 or 2 arguments, the second of which must be called `context` and is populated with the `mach` `CommandContext`. Again, while this flexibility is occasionally convenient, it is limiting. As we add features to `mach`, having a better idea what the shape of our `CommandProvider`s are and how we can instantiate them and use them is increasingly important, and this gives us additional control when having `mach` configure `CommandProvider`s based on data that is only available at the `mach` level. In particular, we plan to leverage this in bugs 985141 and 1654074.

Here we add validation to the `CommandProvider` decorator to ensure all classes inherit from `MachCommandBase`, update all `CommandProvider`s in-tree to inherit from `MachCommandBase`, and update source and test code accordingly.

Follow-up work: we now require (de facto) that the `context` be populated with a `topdir` attribute by the `populate_context_handler` function, since instantiating the `MachCommandBase` requires a `topdir` be provided. This is fine for now in the interest of keeping this patch reasonably sized, but some additional refactoring could make this cleaner.

Differential Revision: https://phabricator.services.mozilla.com/D86255
2020-08-07 18:24:59 +00:00
Andrew Halberstadt
d0fbcca0b6 Bug 985141 - [mozbuild] Remove leading underscore from MozbuildObject._activate_virtualenv, r=firefox-build-system-reviewers,perftest-reviewers,andi,AlexandruIonescu,rstewart
This function is used all across the tree and should be considered a public API.

Differential Revision: https://phabricator.services.mozilla.com/D85045
2020-07-28 16:06:10 +00:00
Andrew Halberstadt
3b776aad05 Bug 1654535 - [tryselect] Update |mach try --help| text with corrected default selector, DONTBUILD, r=smacleod
Differential Revision: https://phabricator.services.mozilla.com/D84527
2020-07-22 20:45:57 +00:00
Andrew Halberstadt
85ea78dea5 Bug 1649194 - [try] Make 'mach try auto' the default selector (replaces try syntax), r=marco
Try syntax users wishing to preserve their default selector can modify
~/.mozbuild/machrc (create it if it doesn't exist), and add:

[try]
default = syntax

Depends on D82983

Differential Revision: https://phabricator.services.mozilla.com/D82985
2020-07-14 14:44:05 +00:00
Andrew Halberstadt
b2e6e5eb9d Bug 1641134 - [tryselect] Fix Python 3 compatibility issues with |mach try --pernosco|, r=mhentges
Differential Revision: https://phabricator.services.mozilla.com/D77364
2020-05-29 20:45:36 +00:00
Mitchell Hentges
b8108d6064 Bug 1632429: Migrate |./mach try| to python 3; r=rstewart,ahal
|./mach try| subcommands are now compatible with both python 2 and 3.

Hand-tested with many combinations of subcommand and subcommand flags.

Updates tryselect unit tests to use Python 3.

Differential Revision: https://phabricator.services.mozilla.com/D73398
2020-05-06 22:17:14 +00:00
Andrew Halberstadt
367ad2118d Bug 1627074 - [tryselect] Make it more clear that 'mach try auto' is experimental, DONTBUILD, r=marco,sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D69445

--HG--
extra : moz-landing-system : lando
2020-04-02 20:43:13 +00:00
Andrew Halberstadt
56ba8a9ddf Bug 1603463 - Implement |mach try auto| which selects tasks on try automatically, r=tomprince
The 'auto' in 'mach try auto' stands for two things:

1. It automatically picks tasks for you.
2. It runs the same scheduling algorithms as autoland.

It accomplishes this by creating a new target_tasks method that spoofs the
'project' parameter to autoland.

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

--HG--
extra : moz-landing-system : lando
2020-03-13 20:35:43 +00:00
Andrew Halberstadt
63ccd789be Bug 1617229 - [tryselect] Remove no longer needed preset migration code r=gbrown
Differential Revision: https://phabricator.services.mozilla.com/D63692

--HG--
extra : moz-landing-system : lando
2020-02-21 19:42:19 +00:00
Tom Prince
8a223529d7 Bug 1605275: [tryselect] Add scriptworker task selector; r=Callek
This is a minimal implementation that allows running siging tasks against
a recent release, without doing full builds.

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

--HG--
extra : moz-landing-system : lando
2019-12-31 16:08:25 +00:00
Andrew Halberstadt
415bdaeb0c Bug 1603523 - [tryselect] Don't save fuzzy presets without a query, r=egao
Differential Revision: https://phabricator.services.mozilla.com/D56982

--HG--
extra : moz-landing-system : lando
2019-12-12 22:02:25 +00:00
Andrew Halberstadt
4e049f8e21 Bug 1496768 - [tryselect] Rename 'templates' to 'task_configs', r=tomprince
The name 'templates' originally came from the fact that JSON-e templates were
used to apply the configuration. Now that these no longer exist, the name
doesn't make any sense.

I'm not sure 'task_configs' is much better, but it at least makes sense given
that these are values that populate 'try_task_config.json'.

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

--HG--
rename : tools/tryselect/templates.py => tools/tryselect/task_config.py
rename : tools/tryselect/test/test_templates.py => tools/tryselect/test/test_task_configs.py
extra : moz-landing-system : lando
2019-11-22 17:16:18 +00:00
Andrew Halberstadt
1719cc129d Bug 1576812 - [tryselect] Improve mach try fuzzy documentation r=iain
Differential Revision: https://phabricator.services.mozilla.com/D44911

--HG--
extra : moz-landing-system : lando
2019-09-17 16:32:40 +00:00
Tom Prince
770166e1f5 Bug 1562287: Allow setting other try_task_config settings than templates; r=ahal
Templates invoke the `morph` logic, which is somewhat confusing and inflexible.
Update the machinery to support setting other `try_task_config` values.

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

--HG--
extra : moz-landing-system : lando
2019-07-04 06:25:18 +00:00
Mike Shal
34df9ef9e5 Bug 1548785 - Remove suggestion to pass '--git' to 'mach vcs-setup'; r=froydnj
Bug 1484243 removed the --git argument and made the VCS auto-detected,
so we should no longer suggest passing in that argument in error
messages.

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

--HG--
extra : moz-landing-system : lando
2019-05-07 20:33:43 +00:00
Andrew Halberstadt
165e3bd55b Bug 1546718 - [tryselect] Add ability to post-filter fuzzy presets interactively, r=jgraham
Differential Revision: https://phabricator.services.mozilla.com/D28713

--HG--
extra : moz-landing-system : lando
2019-04-24 19:36:03 +00:00
Andrew Halberstadt
6c4d83431a Bug 1539957 - [fuzzy] Fix |mach try --preset foo -xq bar| when running a preset, r=jgraham
While running presets + intersection queries works with 'mach try fuzzy
--preset <foo>', it is still broken with 'mach try --preset <foo>'.

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

--HG--
extra : moz-landing-system : lando
2019-03-29 13:27:34 +00:00
Andrew Halberstadt
246ff42fac Bug 1533043 - [chooser] Use a requirements file to install |mach try chooser| dependencies, r=davehunt
Not only is it best practice to pin dependencies and check hashes, but this
will allow tests to install these dependencies as well.

Depends on D22784

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

--HG--
extra : moz-landing-system : lando
2019-03-13 14:44:30 +00:00
Andrew Halberstadt
ea09d14bd4 Bug 1533770 - [fuzzy] Fix query intersection when running presets with multiple queries, r=jgraham
Differential Revision: https://phabricator.services.mozilla.com/D22741

--HG--
extra : moz-landing-system : lando
2019-03-12 19:33:36 +00:00
Andrew Halberstadt
6df1fbd570 Bug 1533474 - [fuzzy] Fix paths with |mach try fuzzy|, r=gbrown
This fixes a regression from bug 1531886 and adds a test.

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

--HG--
extra : moz-landing-system : lando
2019-03-08 00:12:41 +00:00
Andrew Halberstadt
029b7b915f Bug 1531886 - [tryselect] Stop allowing **kwargs in subcommand run functions, r=gbrown
This forces us to be more strict with what gets passed into the try selector.
This change means test_preset.py will error if someone makes a typo in an
in-tree preset.

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

--HG--
extra : moz-landing-system : lando
2019-03-06 16:13:01 +00:00
Andrew Halberstadt
db5e67fdae Bug 1531886 - [tryselect] Delete template context from kwargs, r=gbrown
When we parse template arguments, we stuff them all in kwargs['templates'],
however we don't delete the old argument. This results in all kinds of unused
variables lying around in kwargs. E.g we would have both
kwargs['templates']['env'] and kwargs['env'] (the latter being unused). This is
the main reason why all the selector's run functions need to have a **kwargs at
the end of them.

Depends on D22022

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

--HG--
extra : moz-landing-system : lando
2019-03-05 23:49:22 +00:00
Andrew Halberstadt
5e06797460 Bug 1531886 - [tryselect] Handle templates in mach_commands.py, r=gbrown
This was previously only in the cli parser because that was the only shared
place that ran for all selectors. Now that we have the 'self.run' function in
mach_commands.py, we can move it there. This move is also needed to allow us to
remove 'templates' from kwargs (which happens in the next commit).

Depends on D22021

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

--HG--
extra : moz-landing-system : lando
2019-03-05 23:48:31 +00:00
Andrew Halberstadt
fae875eee3 Bug 1531886 - [tryselect] Use consistent 'run' method to kickstart all selectors, r=gbrown
This allows us to refactor mach_commands.py so we can call self.handle_presets
implicitly. This in turn gives us a future place to add shared code and makes
adding new selectors easier.

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

--HG--
extra : moz-landing-system : lando
2019-03-06 17:34:44 +00:00
Andrew Halberstadt
30fa8f8a4c Bug 1513951 - [tryselect] Implement in-tree try_presets.yml file r=gbrown
This creates a global preset file at:
tools/tryselect/try_presets.yml

Any presets defined here will be available for everyone to use.

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

--HG--
extra : moz-landing-system : lando
2019-02-28 21:38:26 +00:00
Andrew Halberstadt
91456de750 Bug 1518572 - [tryselect] Migrate old preset files to the new format r=gbrown
Differential Revision: https://phabricator.services.mozilla.com/D20524

--HG--
extra : moz-landing-system : lando
2019-02-22 23:25:54 +00:00
Andrew Halberstadt
5caae33416 Bug 1518572 - [tryselect] Store all arguments when saving a preset r=gbrown
Differential Revision: https://phabricator.services.mozilla.com/D20523

--HG--
rename : taskcluster/taskgraph/util/templates.py => tools/tryselect/util/dicttools.py
extra : moz-landing-system : lando
2019-02-25 19:47:29 +00:00
Andrew Halberstadt
b9afd5605b Bug 1518572 - [tryselect] Remove unused 'flask-wtf' dependency from |mach try chooser| r=gbrown
I forgot to remove this after re-implementing without this dependency.

Depends on D20521

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

--HG--
extra : moz-landing-system : lando
2019-02-22 19:43:56 +00:00
Andrew Halberstadt
414d48031e Bug 1499822 - [tryselect] Implement |mach try chooser| r=sclements
Usage:

  $ ./mach try chooser

Will start a local flask server and server a "trychooser-like" page
that is dynamically generated from the taskgraph.

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

--HG--
extra : moz-landing-system : lando
2019-01-09 17:04:39 +00:00