Commit Graph

48 Commits

Author SHA1 Message Date
Edwin Takahashi
8eb4f8e716 Bug 1581224 - convert mach uuid to be compatible with both python2/3 r=Callek
Changes:
- remove `uuid` from the python3 blacklist in `mach`
- enable `test_telemetry.py` for python3
- adjust test outcome expectation for Windows + python3, suspect `mozpack.path` is not filtering Windows path correctly in python3 environment
- switch file read mode between `r` and `rb` depending on version of python

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

--HG--
extra : moz-landing-system : lando
2019-10-21 16:33:00 +00:00
Edwin Takahashi
3d4f9b4d8c Bug 1581015 - convert vcs-setup to run with python3 r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D45817

--HG--
extra : moz-landing-system : lando
2019-09-19 15:11:20 +00:00
Axel Hecht
a335900e65 Bug 1578348, drop compare-locales from the mach python2 list, r=Callek,ahal
Also enable running mach from the obj dir in a py3 world.

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

--HG--
extra : moz-landing-system : lando
2019-10-08 13:58:33 +00:00
Andrew Halberstadt
8336574b61 Bug 1584567 - Merge desktop + android commands (run and install) back together, r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D47626

--HG--
extra : moz-landing-system : lando
2019-09-30 16:59:27 +00:00
Andrew Halberstadt
d3eae4b83c Bug 1580280 - [mozlint] Run |mach lint| with Python 3 and drop support for Python 2 r=mars
Differential Revision: https://phabricator.services.mozilla.com/D45441

--HG--
extra : moz-landing-system : lando
2019-09-30 15:09:41 +00:00
Oana Pop Rus
4b9792db7c Backed out changeset 371641b1010b (bug 1580280) for lints failure on a CLOSED TREE 2019-09-26 00:18:33 +03:00
Andrew Halberstadt
fdc7d0afac Bug 1580280 - [mozlint] Run |mach lint| with Python 3 and drop support for Python 2 r=mars
Differential Revision: https://phabricator.services.mozilla.com/D45441

--HG--
extra : moz-landing-system : lando
2019-09-25 20:03:14 +00:00
championshuttler
a19f899a6f Bug 1580492 - Run mach 'core' commands with Python 3. r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D45694

--HG--
extra : moz-landing-system : lando
2019-09-12 20:26:45 +00:00
Andrew Halberstadt
23aca97aa6 Bug 1577501 - [mach] Make sure ./mach help <command> uses the correct Python, r=glandium
Some commands use external argument parsers, so invoking |mach help <command>| will import
external modules (which may only be Python 2 compatible).

This makes sure that we detect the actual subcommand we're generating help for
and use the proper Python.

A much simpler solution would have been to run |mach help| with Python 2 all
the time. However, as we convert things to Python 3 this would have meant that
Python 3 only code would blow up. This would have forced us to continue
supporting Python 2, even for Python 3-only commands.

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

--HG--
extra : moz-landing-system : lando
2019-09-03 00:39:22 +00:00
Edwin Gao
a0497df342 Bug 1577603 - convert mach clobber to run with python 3.5 r=nalexander
Changes:
- remove binary encoding when the subdirectories are being collected
- do not open file in binary mode when reading from `telemetry_client_id.json`

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

--HG--
extra : moz-landing-system : lando
2019-08-30 17:25:47 +00:00
Andrew Halberstadt
77e2553e92 Bug 1555762 - [mach] Get SearchProvider commands to run with Python 3 r=Callek
This includes the following commands:
* dxr
* google
* mdn
* search
* searchfox

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

--HG--
extra : moz-landing-system : lando
2019-08-26 14:01:32 +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
Chris Manchester
2d2292267f Bug 1316140 - Allow use of multiprocessing from config.status on windows. r=mshal
This generalizes the monkey-patching of the main module added
in bug 914563 to allow multiprocessing to be used from config.status
(which triggers the same bug as when it's used with `mach` as main).

MozReview-Commit-ID: AdOdpKzmbsp
2016-12-21 16:28:28 -08:00
Andrew Halberstadt
21bb6ea0b7 Bug 1279020 - [mach] Follow symlinked mach binary when searching for a srcdir, r=gps
The mach binary needs to find a srcdir (or test zip) to operator on. As a last resort,
it checks the directory containing the binary itself. If the binary has been symlinked
to say, $HOME/bin, it won't follow the symlink to the proper location, and the check
will fail.

Fixing this means developers can run `mach` from outside of the srcdir, as the symlink
will be followed to the actual srcdir. The motivation for this is actually to improve
the UX of debugging failures on interactive workers. With this fix, we can provide
developers with a mach environment directly from $HOME without them needing to go
find it.

MozReview-Commit-ID: ZEH8MuyKv

--HG--
extra : rebase_source : 2b5adbad1b5261f2268f6a30e7dd884d7820da5e
2016-06-09 17:20:02 -04:00
Andrew Halberstadt
b5b5de46a4 Bug 1278900 - [mach] Also look for config.status when detecting an objdir, r=gps
Currently the mach binary will look for 'mozinfo.json' and if it finds it assume
we are in an objdir. But now, 'mozinfo.json' can also be found in an extracted
tests.zip (depending which zips were used). This trips up the tests.zip mach
environment and causes some problems.

This works around the issue by looking for both 'mozinfo.json' and 'config.status'

MozReview-Commit-ID: BIXcCm4LzE2

--HG--
extra : rebase_source : 6e2dc0502de1cddec8eccdfe30524864be81536c
2016-06-08 10:33:54 -04:00
Andrew Halberstadt
6a55c03d43 Bug 1058923 - Package mach in tests.zip; create bootstrap script for test package, r=gps
--HG--
extra : rebase_source : 9f988171182a0abd54724e0cc2906fe678da318f
extra : source : 7923a0c837b56efcd1376b95318fe4cdce03d5e8
2015-05-01 12:20:55 -04:00
Ehsan Akhgari
3e88d83106 Bug 892973 - Add support for the YouCompleteMe vim plugin; r=gps 2015-04-27 13:08:43 -04:00
Gregory Szorc
2949694ec0 Bug 1043144 - Don't write machc bytecode file; r=mshal
When writing bytecode, Python will append "c" to the loaded filename to
produce a bytecode file. Since "mach" was being imported, this resulted
in the creation of a "machc" file.

The implementation of imp.load_module() in CPython's import.c checks
sys.dont_write_bytecode. So, we wrap imp.load_module to set this flag
when importing mach.

--HG--
extra : rebase_source : 248a2349663affee3920a0726e10818d57c6ff17
extra : amend_source : 221280da9963cf91975658144ff3011353852fee
2014-08-05 10:39:24 -07:00
Mike Shal
74972b4fdc Bug 914563 - re-enable build resource recording on Windows; r=gps 2014-07-15 13:59:10 -04:00
Mike Hommey
fbc231db84 Bug 1031180 - Fallback to checking whether the directory mach lives in contains mach_bootstrap.py. r=gps 2014-07-03 07:15:31 +09:00
Mike Shal
53079c9bd9 Bug 914563 - Hack up mach to work with multiprocessing on Windows; r=glandium 2014-06-20 11:35:25 -04:00
Mike Hommey
922606fe6a Bug 957721 - Transform mach into a shell script that reexecutes itself with python. r=mshal 2014-05-21 11:27:30 +09:00
Ed Morley
e96cc937d9 Backed out changeset 3c72c5ea486c (bug 957721) for breaking mach on non-Mozilla-Build python installs 2014-05-14 12:42:45 +01:00
Gregory Szorc
e57a015850 Bug 957721 - Switch mach's shebang to look for python2.7. r=glandium
OpenBSD doesn't have "python" on $PATH by default. "python" may also
come from a non-2.7 Python. Switching the shebang will help ensure the
user invokes mach with Python 2.7.
2014-01-08 11:19:21 -08:00
Ryan VanderMeulen
c3d5a38360 Backed out changeset faafb9526e32 (bug 957721) for breaking mach on Windows. 2014-01-16 08:21:07 -05:00
Gregory Szorc
30f5849302 Bug 957721 - Switch mach's shebang to look for python2.7; r=glandium
OpenBSD doesn't have "python" on $PATH by default. "python" may also
come from a non-2.7 Python. Switching the shebang will help ensure the
user invokes mach with Python 2.7.

There is a risk this may break mach for some people. If the masses
complain, we may roll back.

--HG--
extra : rebase_source : e05b707779bc80e9f9c9f30ba8cd70aa6aa9847f
extra : amend_source : 418ecc9e4c289e7dd8c4423e701ebc9574ecae45
2014-01-08 11:19:21 -08:00
Gregory Szorc
4d80a8348f Bug 924977 - More proper current working directory handling in mach; r=ahal 2013-10-11 12:44:15 -07:00
Matt Brubeck
ac0a131eac Bug 899695 - Fix exception in "mach python" on Windows [r=gps]
DONTBUILD (not part of the build)
2013-08-08 08:06:02 -07:00
Till Schneidereit
cb5ab2ffaf Re-add executable flag to mach (removed in bug 846906). r=me
--HG--
extra : amend_source : b05295269087f60e985a2815d130a58cddfa1ffa
2013-04-04 16:52:27 +02:00
Ryan VanderMeulen
82d09e215d Backed out changeset 061b9318815b (bug 846906) for accidentally removing mach. 2013-04-04 10:42:28 -04:00
Eddy Bruel
7ea3424daa Bug 846906 - Implement nsAppShellService::CreateWindowlessBrowser; r=bz; sr=benjamin 2013-04-04 15:24:32 +02:00
Daniel Holbert
f7bd024423 Bug 829557. followup to part 1: revert the almost-certainly-accidental removal of mach's executable bit. 2013-03-03 23:28:15 -08:00
Robert O'Callahan
03283f8b15 Bug 829557. Part 1: When calling into plugin code, identify situations where it is safe (or unsafe) to reenter Gecko from plugin code. r=bsmedberg
When Gecko is reentered from unsafe call sites, we allow the reentry, but we
suppress execution of the refresh driver to minimize the danger.
In this patch, we treat all sites as unsafe.

--HG--
rename : toolkit/modules/Timer.jsm => browser/devtools/shared/Browser.jsm
rename : toolkit/modules/tests/xpcshell/test_timer.js => browser/devtools/shared/test/browser_browser_basic.js
rename : build/mach_bootstrap.py => mach
extra : rebase_source : b83c1d09313bff62357eaa931eced0f72f838493
2013-02-28 00:50:27 +13:00
Matt Brubeck
f31f48dc7a Bug 840588 - Create a mach wrapper that searches up from $CWD for a topsrcdir [r=gps]
--HG--
rename : mach => build/mach_bootstrap.py
extra : rebase_source : df914d42e46aac1326e50735a5d8e66cb4243a25
2013-03-01 15:51:11 -08:00
Ehsan Akhgari
6e1c0719df Merge mozilla-central into mozilla-inbound 2013-02-02 13:53:46 -05:00
Gregory Szorc
0a62341cc8 Bug 836877 - mach now errors if executed with Python 3; r=ted
DONTBUILD (NPOTB)
2013-02-01 10:36:28 -08:00
Dave Townsend
cf9be7d864 Bug 793928: Ship the Add-on SDK APIs as part of the platform. r=gps 2013-02-01 11:20:17 -08:00
Gregory Szorc
ec7a8780bf Bug 784841 - Part 2: Implement sandboxing for Python build files; r=ted,glandium
This is the beginning of Mozilla's new build system.

In this patch, we have a Python sandbox tailored for execution
of Python scripts which will define the build system. We also have a
build reader that traverses a linked set of scripts.

More details are available in the thorough README.rst files as part of
this patch.
* * *
Bug 784841 - Part 2b: Option to not descend into child moz.build files; r=ted
2013-01-15 22:21:21 -08:00
Gregory Szorc
f718bace7a Bug 803400 - Add clobber mach command; r=glandium
DONTBUILD (NPOTB)
2012-12-05 22:46:01 -08:00
Gregory Szorc
57be670bf6 Bug 808346 - Don't scan sys.path to discover mach commands; r=jhammel
All mach modules are now explicitly listed in the mach driver.

--HG--
rename : python/mozbuild/mach/commands/build.py => python/mozbuild/mozbuild/mach_commands.py
2012-11-06 17:00:19 -08:00
Gregory Szorc
fff0f2c942 Bug 808336 - Part 2: Discover mach settings providers via decorators; r=jhammel
With this patch, mach is now decoupled from the build system and is
truly a generic command dispatching framework.
2012-11-06 16:58:13 -08:00
Gregory Szorc
eb32b8572e Bug 795769 - Add "bootstrap" command to mach; r=ted
The command is currently just a proxy into mozboot.

DONTBUILD (NPOTB)
2012-10-10 17:17:00 -07:00
Gregory Szorc
03f6510b34 Bug 799291 - Part 3: Move mozbuild.testing into testing/; r=jhammel
--HG--
rename : python/mozbuild/mozbuild/testing/test.py => testing/moztesting/util.py
2012-10-10 11:08:09 -07:00
Gregory Szorc
3dd8150678 Bug 799291 - Part 1: Move mach commands for test running into test runners; r=jhammel
The code interacting with the test runners now resides in closer
proximity to the code it is invoking. We also purge testing
functionality from mozbuild, which is where it never really belonged.

--HG--
rename : python/mozbuild/mozbuild/testing/reftest.py => layout/tools/reftest/mach_commands.py
rename : python/mozbuild/mozbuild/testing/mochitest.py => testing/mochitest/mach_commands.py
rename : python/mozbuild/mozbuild/testing/xpcshell.py => testing/xpcshell/mach_commands.py
2012-10-10 11:08:09 -07:00
Gregory Szorc
875a861646 Bug 799262 - Formal API for loading mach command modules; r=jhammel 2012-10-10 11:08:09 -07:00
Gregory Szorc
0fdac85994 Bug 794509 - Part 2: Move mach command modules into a mach.commands sub-module; r=jhammel
This patch on its own will break mach. Part 3 will refactor mach's
loader to discover and load modules using a modified module finding
method.

--HG--
rename : python/mach/mach/settings.py => python/mach/mach/commands/settings.py
rename : python/mach/mach/build.py => python/mozbuild/mach/commands/build.py
rename : python/mach/mach/testing.py => python/mozbuild/mach/commands/testing.py
rename : python/mach/mach/warnings.py => python/mozbuild/mach/commands/warnings.py
2012-10-05 12:13:18 -07:00
Gregory Szorc
66a56c8a6b Bug 795427 - Part 1: Proper exit codes from mach; r=jhammel 2012-10-04 17:43:54 -07:00
Gregory Szorc
60111d5545 Bug 751795 - Part 1: mach, the new frontend to mozilla-central; r=jhammel 2012-09-26 09:43:54 -07:00