Commit Graph

144 Commits

Author SHA1 Message Date
Gregory Szorc
3a79fc3bfa Bug 1250748 - Remove the 20s countdown timer from mach first run; r=chmanchester
Previously on first `mach` run on a system, we'd display a prompt with a
20s countdown timer after which the default state directory
(~/.mozbuild) was created. Users had to wait 20s or ctrl+c and
make the directory by hand. Either way, they'd have to re-invoke
mach to run whatever command they were trying to run.

This was annoying.

This commit makes the following changes:

1) The countdown timer is replaced with "press RETURN/ENTER to continue"
2) The requirement to re-invoke mach has been removed

On first run, people now see a message telling them to press
RETURN/ENTER. Then the directory is created and whatever mach command
they requested to run is run.

While I was here, I also changed the permissions on the newly created
directory to match what it was a few lines above. Without, we're relying
on umask, which may be permissive. UNIX convention is to use a more
restrictive umask insider user directories. So this feels like the right
behavior.

MozReview-Commit-ID: IodN13xAJ8P
2016-02-23 17:29:38 -08:00
Dan Minor
04db7b82ba Bug 1244160 - Create json-schema for build telemetry data r=gps
This adds a simple schema for build telemetry data. We can make it more
restrictive once we have a better feeling for what kind of data we want
to submit.

This also moves more common data about the system to the telemetry handler.
We leave psutil derivied information in the resource usage data as not every
system will have psutil installed.

MozReview-Commit-ID: CFRq1Ow6AOf
2016-02-02 09:32:49 -05:00
Syd Polk
12735c70ef Bug 1243546 - Add mach command for external-media-tests - r=gps
MozReview-Commit-ID: 5BcunutbebG
2016-02-10 11:48:25 -06:00
Dan Minor
48ec2652af Bug 1239296 - add post_dispatch_handler hook to mach r=gps
This adds a post_dispatch_handler hook that will be called after each
mach invocation and uses it to submit data to telemetry.
2016-02-09 10:09:17 -05:00
Dan Minor
23b9987c48 Bug 1239296 - Add telemetry_handler function to mach context r=gps
This adds a telemetry_handler function to the mach context that can be
used to store telemetry data in the state directory for later reporting.
2016-01-29 13:06:36 -05:00
Carsten "Tomcat" Book
5ba717bd52 Backed out changeset 200da85932e9 (bug 1230862) for valgrind perma failures 2016-02-10 11:04:50 +01:00
Julien Pagès
8c54a35567 Bug 1230862 - Remove mozhttpd. r=wlach 2016-02-09 03:26:43 +01:00
Phil Ringnalda
f75afdb972 Back out 0a0582597885 (bug 1243546) for Mac "global name 'args' is not defined" bustage 2016-02-09 18:44:35 -08:00
Syd Polk
10f5961f47 Bug 1243546 - Add mach command for external-media-tests - r=gps 2016-02-09 18:10:19 -06:00
EKR
fbb7de9161 Bug 1246402 - Environment variable to disable mercurial setup check. r=gps 2016-02-06 08:02:40 -08:00
Andreas Tolfsen
f85d50ebe5 Bug 1239987 - Remove marionette-transport dependency from build environment; r=gps 2016-01-30 08:55:24 +00:00
Henrik Skupin
d8ec087094 Bug 1237179 - Add mach command to run firefox-ui-tests from the source directory. r=gps 2016-01-15 19:38:31 +01:00
James Graham
f4edd8159b Bug 1207377 - Add a |mach mozharness| command for running tests locally in mozharness, r=ahal 2015-12-07 12:32:04 +00:00
Maja Frydrychowicz
32510525af Bug 1150512 - Move Marionette test runner to wptserve; r=automatedtester 2015-12-03 15:48:41 -05:00
Mike Hommey
156895b748 Bug 1229623 - Remove compilation/database.py from mach_bootstrap.py. r=mshal
When I modified ehsan's patch in bug 904572 to switch to a build backend
instead of a mach command, I forgot to remove the line added to
mach_bootstrap.py to pick the mach command, which now doesn't exist.
2015-12-03 13:34:02 +09:00
Mike Hommey
232276cccd Bug 1151124 - Add a simplified version of pymake's clinetoargv to mozbuild and use it. r=gps
Pymake's clinetoargv is very specific to pymake's use case, yet has been abused
as a replacement for shlex because shlex doesn't handle things properly for our
use cases.

Using pymake's clinetoargv, however, has shortcomings, and we're better off
importing its code in mozbuild, simplifying it a little, and using that
instead.

Plus, less dependencies on pymake will help kill it for good some day.
2015-11-24 11:29:14 +09:00
Jonas Sicking
36e03d8617 Bug 1222235: Remove monthly mercurial-update reminder. r=gps 2015-11-05 15:54:55 -08:00
Andrew Halberstadt
95a96d3137 Bug 1212840 - Add mozinstall to mach SEARCH_PATHS, r=armenzg 2015-10-08 09:10:03 -04:00
Ehsan Akhgari
8fa82e7d46 Bug 904572 - Add support for generating clang compilation database; r=glandium,r=gps 2015-09-29 09:23:50 +09:00
Nicholas Nethercote
fd9087b7bc Bug 1204787 - Add |mach power|. r=glandium.
This extracts the most useful browser-related measurements from rapl and
powermetrics.
2015-09-15 16:23:45 +10:00
Peter Moore
85d6816a91 Bug 1194767 - use slugid 1.0.6 in ./mach taskcluster-graph command. r=wcosta
This included adding the slugid 1.0.6 python source code in /python since slugid
is now a dependency of the ./mach taskcluster-graph command, as well us updating
references that used it. Previously the implementation was in-tree.
2015-09-04 17:59:34 +02:00
Gregory Szorc
109cfb79fc Bug 1190525 - Print path to mach; r=smacleod 2015-08-18 17:04:57 -07:00
Mike Hommey
59bddac969 Bug 1188224 - Remove stale .pyc files from the source directory at import time. r=gps 2015-08-05 15:45:45 +09:00
Mike Hommey
22660fa81d Backed out changeset 684252f11061 (bug 1188224) for make check bustage. 2015-08-05 13:50:11 +09:00
Mike Hommey
cb61e1f6e5 Bug 1188224 - Remove stale .pyc files from the source directory at import time. r=gps 2015-08-05 11:17:03 +09:00
Julien Pagès
6e0fa8b546 Bug 1091285 - move dumpScreen in a new mozscreenshot package. r=jgriffin
This also completely remove build/automationutils.py.
2015-07-29 17:50:16 +02:00
Gregory Szorc
c19f8e4934 Bug 1185557 - Clarify that mach mercurial-setup doesn't make changes without prompting; r=smacleod
It's been clear from user feedback that people don't realize that `mach
mercurial-setup` doesn't make any changes unless they tell it to.
Reinforce this message in the prompts printed by mach_boostrap.py.
2015-07-21 10:10:22 -07:00
Gregory Szorc
a8141a16dc Bug 1185612 - Detect closed stdin file descriptor; r=bholley
isatty() raises ValueError if the file descriptor is closed. Detect
closed file descriptors.
2015-07-20 11:17:00 -07:00
Gregory Szorc
bf9cef4bfb Bug 1184598 - Don't perform mercurial-setup check for mach-commands command; r=smacleod
This command is used by tab completion handlers. A user reported that
hitting tab in his shell resulted in the mercurial-setup out of date
check spewing output.
2015-07-16 14:37:14 -07:00
Gregory Szorc
9b5cc023b0 Bug 1182677 - Aggressively prompt to run mach mercurial-setup; r=smacleod
Having not configured or out-of-date tools benefits nobody. It slows
people down.

Version control tools are an integral part of working on Firefox. It is
important for version control tools to be configured optimally and to be
continuously updated so they stay optimal.

The `mach mercurial-setup` command exists to optimally configure
Mercurial for working on Firefox and other Mozilla projects.

This commit adds a pre-dispatch handler to mach that will verify
Mercurial is in a happy state. If `mach mercurial-setup` has never
executed, it will complain. If `mach mercurial-setup` hasn't been
executed in the past 31 days, it will complain.

Yes, aborting command execution and forcing people to context switch to
run `mach mercurial-setup` is annoying. First, we have carved out
several exceptions to this behavior, including detection for running in
automation, on the machines of curmudgeons, when Mercurial isn't being
used, and from non-interactive processes. Second, I argue that people
ignore optional notifications and that having persistently
poorly-configured tools is worse than a single context switch at most
every month. Therefore, the heavyhanded approach is justified.

In addition, if we did support a non-fatal notification, we would
introduce the problem of extra output from commands. If anyone was e.g.
parsing mach output, we could very likely break those systems. These
cases should be caught by the isatty() check or be running in a context
with MOZ_AUTOMATION set. But you never know.
2015-07-14 14:20:03 -07:00
Gregory Szorc
92cb8e9af3 Backed out changeset f06616ee7b2b (bug 1182677)
TaskCluster is not amused.
2015-07-14 13:58:43 -07:00
Gregory Szorc
2b2dc34b46 Bug 1182677 - Aggressively prompt to run mach mercurial-setup; r=smacleod
Having not configured or out-of-date tools benefits nobody. It slows
people down.

Version control tools are an integral part of working on Firefox. It is
important for version control tools to be configured optimally and to be
continuously updated so they stay optimal.

The `mach mercurial-setup` command exists to optimally configure
Mercurial for working on Firefox and other Mozilla projects.

This commit adds a pre-dispatch handler to mach that will verify
Mercurial is in a happy state. If `mach mercurial-setup` has never
executed, it will complain. If `mach mercurial-setup` hasn't been
executed in the past 2 weeks, it will complain.

Yes, aborting command execution and forcing people to context switch to
run `mach mercurial-setup` is annoying. First, we have carved out
several exceptions to this behavior, including detection for running in
automation, on the machines of curmudgeons, when Mercurial isn't being
used, and from non-interactive processes. Second, I argue that people
ignore optional notifications and that having persistently
poorly-configured tools is worse than a single context switch at most
every 2 weeks. Therefore, the heavyhanded approach is justified.

In addition, if we did support a non-fatal notification, we would
introduce the problem of extra output from commands. If anyone was e.g.
parsing mach output, we could very likely break those systems. These
cases should be caught by the isatty() check or be running in a context
with MOZ_AUTOMATION set. But you never know.
2015-07-14 13:53:50 -07:00
Gregory Szorc
3809adb80b Bug 1182677 - Refactor state directory lookup into own function; r=smacleod
A subsequent commit will want to access the state directory path without
possibly creating it. Make that possible by extracting path resolution
to its own function.
2015-07-14 13:44:59 -07:00
Julien Pagès
cea392c6db Bug 1091274 - Move leak log functions out of automationutils and into mozbase. r=jgriffin 2015-07-03 07:04:22 +02:00
Chris Manchester
c83f0e3577 Bug 1149670 - Add a mach command to find tests in specified directories and prepare a commit to push them to try.;r=ahal 2015-05-28 15:57:21 -07:00
Andrew Halberstadt
3384cd73a4 Bug 1169714 - Add requests to mach bootstrap SEARCH_PATH, r=jgriffin 2015-05-29 14:01:25 -04:00
Jonathan Griffin
5212b8d503 Bug 1163833 - Add integration with browsermob-proxy, r=dburns 2015-05-27 10:00:09 -07:00
Andrew Halberstadt
07218d9255 Bug 1058923 - Package mach in tests.zip; create bootstrap script for test package, r=gps 2015-05-01 12:20:55 -04:00
Ehsan Akhgari
a2c22a5e8b Bug 892973 - Add support for the YouCompleteMe vim plugin; r=gps 2015-04-27 13:08:43 -04:00
Alexandre Poirot
352f8c3424 Bug 1147031 - Write mach command for luciddream. r=jgriffin 2015-04-09 11:46:00 -04:00
Ryan VanderMeulen
f08fd7d276 Backed out changeset a209d4d37f8f (bug 1147031) for Luciddream bustage. 2015-04-07 11:48:46 -04:00
Alexandre Poirot
78d40df833 Bug 1147031 - Write mach command for luciddream. r=jgriffin 2015-04-02 10:55:00 -04:00
Axel Hecht
0705f351c1 Bug 940103 - Add a mach command to call compare-locales. r=gps
We're using as many defaults from the configure step as we can. We're also opinionated upon the defaults, but obviously allow most compare-locales options to be specified.

There are two exceptions:
Reference language is specified to be en-US, without optional argument. This is our in-tree command, and the reference language is known.
We always clobber the merge dir, and don't give an option not to. We default to a merge dir in the objdir, so we don't need to be that paranoid as in the standalone version.

Also, compare-locales clobbers merge-dir/browser etc, so you're not going to get / removed.
2015-03-18 18:47:36 +01:00
Chris Manchester
21cbc10ab2 Bug 1109183 - Fix imports of the marionette client and remove spurious entry from sys.path provided by mach. r=ahal 2015-03-03 17:37:19 -08:00
David Burns
e5b9715406 Bug 1107336: update build and test targets to use new marionette driver; r=jgriffin 2015-02-23 14:45:50 +00:00
Chris Manchester
8b2e05e50f Bug 1114474 - Unbreak some mach consumers of marionette.r=ahal 2015-02-10 13:55:33 -08:00
James Lal
084de1df81 Bug 1068653 - Part 2 add taskcluster trygraph commands r=wcosta, garndt, mdas 2014-11-26 10:11:28 -08:00
Carsten "Tomcat" Book
05b64d816c Backed out changeset e6d21c2fa111 (bug 1107336) for breaking Web Platform Reftests on a CLOSED TREE 2015-01-21 16:14:03 +01:00
David Burns
e388e189e3 Bug 1107336: Update mach for newly created MarionetteDriver; r=jgriffin 2014-12-09 20:14:23 +00:00
Nick Alexander
16b3e303b9 Bug 1103121 - Add |mach gradle| command for building Fennec Gradle. r=gps
I went with gradle instead of gradlew because it's more likely to be
what users consider.  And mach helpfully fixes up the uncommon typo.

This is a little hard-coded right now but I don't think it's likely
any other Gradle consumer will arise in the short term.
2014-11-21 12:40:00 -08:00