Граф коммитов

3146 Коммитов

Автор SHA1 Сообщение Дата
Gregory Szorc 069ee9c5d6 Bug 1397406 - Add a helper function to retrieve a BuildReader; r=dustin
The code for obtaining a BuildReader for evaluating moz.build files
is generic and non-trivial. We already had a custom implementation
for `mach file-info` that implemented support for Mercurial
integration. Bug 1383880 will introduce a second consumer.

So this commit factors out the "obtain a BuildReader" logic into
a reusable function on our base MozbuildObject class. This makes
it easily available to various parts of the build system and mach
commands.

As part of the change, we detect when ``.`` is being used as the
revision and verify the working directory is clean. This behavior
can be disabled via argument if unwanted. But it's useful by default
to ensure consumers aren't expecting to read uncommitted changes.

MozReview-Commit-ID: LeYFqAb3HAe

--HG--
extra : rebase_source : d5ed4e4f5570a58a68853188de2225cd4e64ab3a
2017-09-06 12:18:51 -07:00
Gregory Szorc 2cf6305161 Bug 1397406 - Add Repository method to determine if working directory clean; r=dustin
This is generally useful functionality to have. A consume will be
introduced in an upcoming commit.

MozReview-Commit-ID: 4arTMfJSiEC

--HG--
extra : rebase_source : 4bcf70f58b57b79b8dcb7a6eed633e1c7e42aca3
2017-09-06 12:15:12 -07:00
Gregory Szorc 4241161848 Bug 1397406 - Don't mark finder as a protected attribute; r=dustin
It seems reasonable to expose this outside of the BuildReader.

MozReview-Commit-ID: 4paDbYl9dEd

--HG--
extra : rebase_source : 86bb559500952a40fc9afbf958be5706dd9f858e
2017-09-06 12:13:38 -07:00
Mike Conley c2e06b25fc Bug 1397279 - Have mach bootstrap install rustup 1.6.0. r=froydnj
MozReview-Commit-ID: LeabPgl8TTZ

--HG--
extra : rebase_source : e800ea1263bf371431a64eccf1b60b90cbdfe1d8
2017-09-06 09:59:45 -04:00
Nick Fitzgerald 0144e10df3 Bug 1277338 - Part 12: Make js/rust a top level crate instead of js/src; r=froydnj
The `js` crate at `js/rust` depends on the `mozjs_sys` crate at `js/src`, so it
makes sense to make it the top level crate.
2017-09-05 09:26:22 -07:00
Zibi Braniecki 956980a762 Bug 1396334 - Add sources list to manifest.json. r=kmag
MozReview-Commit-ID: 4kIowQG2HxR

--HG--
extra : rebase_source : 9a4205c533daf8703755b3bfa4d0930d0cfb2a50
2017-09-02 18:18:17 -07:00
Zibi Braniecki 55a7b70e19 Bug 1395456 - Use MOZ_APP_MAXVERSION for strict_max_version in langpack manifest. r=Pike
MozReview-Commit-ID: 63BQQt4U8if

--HG--
extra : rebase_source : faf796d214298fa50e0d73a82a7b1a4d0e91de30
2017-08-31 11:54:26 -07:00
Jim Chen c3c2bfc408 Bug 1378410 - 2a. Expose `set` to moz.build sandbox; r=gps
To construct an empty set, we need to use the `set()` notation. In order
to do that, we need to expose `set` to the moz.build sandbox.

MozReview-Commit-ID: DMyKnF0FEx2

--HG--
extra : rebase_source : 5cfe8080ec333a1eca70cd3edba2aaaff6406820
2017-09-01 14:02:30 -04:00
Gregory Szorc 0b25d43eaf Bug 1393242 - Use hglib for get_files_in_working_directory(); r=mshal
And convert consumers to context managers because hglib requires that.

MozReview-Commit-ID: Ckf1yBYeUlm

--HG--
extra : rebase_source : 985220032bced1a7077fd9b04ca8ad6de822c887
2017-08-23 15:21:16 -07:00
Gregory Szorc 8634ccb29c Bug 1393242 - Hook up hglib to HgRepository; r=mshal
Because hglib spawns a persistent process, we introduce a context
manager for Repository. It no-ops by default. On HgRepository it
controls the lifetime of the persistent hg process.

A helper method for running an hg command via hglib has been added.
We can't transition existing methods to hglib because hglib
requires a context manager, which no consumer is using yet.

MozReview-Commit-ID: 8z0fcGFeAm5

--HG--
extra : rebase_source : 1cbfe44a5aafe838c25bcde91cc1deaf5e7367de
2017-08-23 15:09:27 -07:00
Gregory Szorc b2e9cd1780 Bug 1393242 - Normalize paths in MercurialRevisionFinder; r=mshal
This ensures we use forward slashes, even if Mercurial emits
backslashes (which it can do on Windows).

MozReview-Commit-ID: 2dnWAEvytwn

--HG--
extra : rebase_source : 9ebb454bc9ad11b3eba334e412685e529573a0a1
2017-08-31 10:39:28 -07:00
Gregory Szorc 8a82cba53d Bug 1393242 - Make hglib tests more resilient; r=mshal
These tests weren't running in automation because hglib wasn't
available. An upcoming commit will vendor hglib. This exposed that the
tests can fail if ui.username isn't set.

In this commit, we introduce a helper function to obtain an hglib
client with ui.username set. We also convert tests to use the context
manager form of the client so resources are cleaned up immediately
without relying on refcounting or garbage collection.

MozReview-Commit-ID: HRSBDlYgqpC

--HG--
extra : rebase_source : 83deb56a0c2efefa883d6df104cd67194a811907
2017-08-30 10:42:35 -07:00
Gregory Szorc 7b34d836e2 Bug 1393242 - Return a Repository using configure preferences; r=mshal
If configure has defined VCS binaries, we should use those.

MozReview-Commit-ID: DVnsSaJC8eN

--HG--
extra : rebase_source : 6a940b6b4f7986eece350ab692242701dfbf41dd
2017-08-23 15:04:46 -07:00
Gregory Szorc 0b2782154b Bug 1393242 - Helper function to obtain a repository from a build config; r=mshal
Some callers already have a build config object. Let's not
make them call a function that imports buildconfig.

MozReview-Commit-ID: J22HhyVma9y

--HG--
extra : rebase_source : fe5151925aee76508d26a9368e7a2ebec7e23ddb
2017-08-23 15:03:36 -07:00
Ryan VanderMeulen 1a86da24ad Backed out 9 changesets (bug 1383880) for decision task bustage.
Backed out changeset 53f5d47a7cb0 (bug 1383880)
Backed out changeset a0abda41172a (bug 1383880)
Backed out changeset 729a7e2091e8 (bug 1383880)
Backed out changeset a33f5a14a471 (bug 1383880)
Backed out changeset 5b10d321cfee (bug 1383880)
Backed out changeset 8056488d8aed (bug 1383880)
Backed out changeset e62c90e3c1e8 (bug 1383880)
Backed out changeset 91f116ce6c2a (bug 1383880)
Backed out changeset 045498bc36c4 (bug 1383880)
2017-09-01 15:37:08 -04:00
Dustin J. Mitchell f8047e8cfa Bug 1383880: add support for SCHEDULES in moz.build; r=gps
MozReview-Commit-ID: 2pfLr0VTy2J

--HG--
extra : rebase_source : 58613f9b929a736034389b27a49d353deebb4bb3
2017-07-31 20:44:56 +00:00
Sebastian Hengst 43bc951ac7 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: ES9rKhiQo10
2017-09-01 10:38:51 +02:00
Henri Kemppainen 9edda378b4 Bug 1395768 - Use absolute path to mach. r=gps 2017-09-01 03:15:45 +03:00
Andrew Halberstadt 2255a9eed7 Bug 1395126 - Support cascading configuration for flake8, r=bc
This allows .flake8 files to override one another, and fixes a pretty bad known
bug with our flake8 implementation. For example, say we have a .flake8 file at:
/foo/.flake8

Before this patch, if we ran |mach lint foo/bar|, the configuration defined in
that .flake8 file wouldn't get picked up. It would only work if running the
specific directory that contains it, e.g |mach lint foo|.

This change additionally allows multiple .flake8 files to be used. So if
there's one defined at both:
/.flake8
/foo/.flake8

Then running |mach lint foo/bar| will first apply the root .flake8, then the
one under /foo (overriding earlier configuration).

This bug still doesn't make flake8 configuration perfect though. Any directory
containing a .flake8 file still needs to be explicitly listed in the "include"
section of /tools/lint/flake8.yml. Otherwise in the example above, if running
|mach lint /|, it wouldn't be able to find /foo/.flake8. This is a hard problem
and is likely best solved by fixing flake8's upstream configuration handling.

Unfortunately this means we still can't switch from a whitelist to a blacklist.

MozReview-Commit-ID: 3DZAi1QHYYo

--HG--
extra : rebase_source : 51298c5847f6c2792581d9b312c87b70fa716ee1
2017-08-29 17:32:31 -04:00
Zibi Braniecki c59ba12105 Bug 1393147 - Update the new langpack-webext manifest scheme. r=kmag
MozReview-Commit-ID: 80g61YvsiSk

--HG--
extra : rebase_source : f4ca6f61d31db8eb442b586c7e511dff4b616eae
2017-08-28 10:42:31 -07:00
Mike Shal f1348beac8 Bug 1394576 - Fix install manifests tracking with broken symlinks; r=gps
The install manifest with the .track files uses os.path.exists() to
determine if a previously tracked file is no longer installed and needs
to be removed from the system. However, exists() returns False for
broken symlinks, so as far as the manifest is concerned, there is no
file in the filesystem that needs to be removed. We should use lexists()
so we know that the broken symlink still exists in the system so
that it can be removed when the install manifest is processed.

MozReview-Commit-ID: 6v7CYOKzjGs

--HG--
extra : rebase_source : 8aeeef59e644613f34c8458bd30a83d8299585ea
2017-08-28 22:12:04 -04:00
Sebastian Hengst ca3d97b658 merge mozilla-central to autoland. r=merge a=merge 2017-08-29 20:31:58 +02:00
Sebastian Hengst 2a9cc8e3be merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: BQuBmVtsdki
2017-08-29 20:30:41 +02:00
hmk 31b4badfcf Bug 1394371 - Make it clear that the script proposes to clone mozilla-unified. r=gps 2017-08-28 18:02:45 +03:00
Johan Lorenzo a716c447c0 Bug 1384482 - Rename android-api-15 into android-api-16 r=mtabara
MozReview-Commit-ID: 4j66pTZEJzq

--HG--
rename : mobile/android/config/mozconfigs/android-api-15-frontend/nightly => mobile/android/config/mozconfigs/android-api-16-frontend/nightly
rename : mobile/android/config/mozconfigs/android-api-15-gradle-dependencies/nightly => mobile/android/config/mozconfigs/android-api-16-gradle-dependencies/nightly
rename : mobile/android/config/mozconfigs/android-api-15-gradle/nightly => mobile/android/config/mozconfigs/android-api-16-gradle/nightly
rename : mobile/android/config/mozconfigs/android-api-15-gradle/nightly-artifact => mobile/android/config/mozconfigs/android-api-16-gradle/nightly-artifact
rename : mobile/android/config/mozconfigs/android-api-15/debug => mobile/android/config/mozconfigs/android-api-16/debug
rename : mobile/android/config/mozconfigs/android-api-15/debug-artifact => mobile/android/config/mozconfigs/android-api-16/debug-artifact
rename : mobile/android/config/mozconfigs/android-api-15/l10n-nightly => mobile/android/config/mozconfigs/android-api-16/l10n-nightly
rename : mobile/android/config/mozconfigs/android-api-15/nightly => mobile/android/config/mozconfigs/android-api-16/nightly
rename : mobile/android/config/mozconfigs/android-api-15/nightly-artifact => mobile/android/config/mozconfigs/android-api-16/nightly-artifact
rename : mobile/android/config/mozconfigs/android-api-15/nightly-old-id => mobile/android/config/mozconfigs/android-api-16/nightly-old-id
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_artifact.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_artifact.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_debug.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_debug.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_debug_artifact.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_debug_artifact.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_gradle.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_gradle.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_gradle_artifact.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_gradle_artifact.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_gradle_dependencies.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_gradle_dependencies.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_old_id.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_old_id.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_partner_sample1.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_partner_sample1.py
rename : testing/mozharness/configs/single_locale/ash_android-api-15.py => testing/mozharness/configs/single_locale/ash_android-api-16.py
rename : testing/mozharness/configs/single_locale/date_android-api-15.py => testing/mozharness/configs/single_locale/date_android-api-16.py
rename : testing/mozharness/configs/single_locale/jamun_android-api-15.py => testing/mozharness/configs/single_locale/jamun_android-api-16.py
rename : testing/mozharness/configs/single_locale/mozilla-aurora_android-api-15.py => testing/mozharness/configs/single_locale/mozilla-aurora_android-api-16.py
rename : testing/mozharness/configs/single_locale/mozilla-beta_android-api-15.py => testing/mozharness/configs/single_locale/mozilla-beta_android-api-16.py
rename : testing/mozharness/configs/single_locale/mozilla-central_android-api-15.py => testing/mozharness/configs/single_locale/mozilla-central_android-api-16.py
rename : testing/mozharness/configs/single_locale/mozilla-release_android-api-15.py => testing/mozharness/configs/single_locale/mozilla-release_android-api-16.py
rename : testing/mozharness/configs/single_locale/staging_release_mozilla-beta_android_api_15.py => testing/mozharness/configs/single_locale/staging_release_mozilla-beta_android_api_16.py
rename : testing/mozharness/configs/single_locale/staging_release_mozilla-release_android_api_15.py => testing/mozharness/configs/single_locale/staging_release_mozilla-release_android_api_16.py
rename : testing/mozharness/configs/single_locale/tc_android-api-15.py => testing/mozharness/configs/single_locale/tc_android-api-16.py
rename : testing/mozharness/configs/single_locale/try_android-api-15.py => testing/mozharness/configs/single_locale/try_android-api-16.py
extra : rebase_source : d24bd3b0298e4fc21e9e8029e5f69a65fd1012f9
2017-08-09 16:18:15 +02:00
Ted Mielczarek afbf75cb40 bug 1371992 - make mozlint's LintRoller use concurrent.futures. r=ahal
There's a persistent test failure in automation that seems to have to do
with shutting down the `multiprocessing.Manager` that's used to get a
`Queue` to submit jobs to worker processes. After toying around with fixing
that I decided it would be simpler to just use concurrent.futures here,
since we already have it in-tree and it fits the use case here better
than using raw multiprocessing.

MozReview-Commit-ID: 8DdSvs2qp0q

--HG--
extra : rebase_source : 0b1cbb96bd3016778e4974a311722a8882f87216
2017-08-29 10:30:12 -04:00
Gregory Szorc 39eefe01b3 Bug 1394071 - Ignore moz.build files that should be ignored; r=mshal
Before, the "relevant" moz.build files were based strictly on filename.
In reality, there are some moz.build files that we wish to ignore.

The previous commit introduced a Finder that knows how to ignore
moz.build files that should be ignored. In this commit, we hook
it up to our low-level function for determining the set of relevant
moz.build files for a path.

The main benefit of this change is that paths in the moz.build
test directory no longer say test moz.build files are relevant.
Previously, we would return these test moz.build files. Some of
these are invalid and would cause execution to fail. So, commands
like `mach file-info` will no longer attempt to evaluate moz.build
files they weren't supposed to and will stop erroring.

Another benefit is that the function returns faster. When passing
in every file in the repo (>230,000 files), execution time dropped
from ~8.03s to ~6.16s. This is probably due to fewer path operations.

MozReview-Commit-ID: J2d25ZtxjFt

--HG--
extra : rebase_source : 26105de85c49e061a720b54019b4f16b6425748e
2017-08-25 19:17:35 -07:00
Gregory Szorc b36a5bbd84 Bug 1394071 - Create a Finder for relevant moz.build files; r=mshal
Not every moz.build file in the repo is a normal moz.build file.
Some moz.build files are used for testing moz.build files. Others
may exist in directories that should be ignored.

all_mozbuild_path() already knew how to filter out moz.build files
that should be ignored. Let's extract the Finder for doing this
into an instance attribute so it can be used elsewhere.


MozReview-Commit-ID: 9PaZQAbjIZO

--HG--
extra : rebase_source : 5bfd27b5a9ab6b24b9e3aa3c8cc286d64c3ebd3c
2017-08-25 19:08:24 -07:00
Dustin J. Mitchell 53df6a181b Bug 1390968: python-3 compatibility for python/**/*.py; r=Alex_Gaynor,gps
This passes `python3 -mcompileall`.  Changes:

 * use `0o` prefix for octal literals
 * print as a function
 * except .. as
 * use six.reraise to replace a multi-argument raise statement
 * use six.string_types and six.moves.configparser
 * remove uses of `L` suffix for long integers

MozReview-Commit-ID: KLaYRNHGpay

--HG--
extra : rebase_source : 6ca1b5447cd28eff8d9f2805add6a0f07e8b4c63
2017-08-28 21:31:30 +00:00
Mike Hommey 45680ab0c7 Bug 1352595 - Add basic support for brotli compression to the packager. r=gps
Bug 1355661 added support for brotli streams in "jar" files handled by
Gecko, and bug 1355671 made us build the `bro` command line utility that
allows to compress and decompress brotli streams.

This change uses the `bro` command line utility in the packager so that
it can create and handle "jar" files using brotli streams.

However, the `bro` command line utility is not available to l10n
repacks. As, at the moment, we're only hoping that the outcome of using
brotli will be good, we avoid doing all the work to make those work and
just hook things enough to enable brotli, while ensuring l10n repacks
don't break. This involves forcing some files to be deflated, and to
disable some optimizations from the packager.

Things will need to be figured out more properly if the experiment
proves brotli to be worthwhile.

--HG--
extra : rebase_source : a2e0cff67dcaed465fd441ed5d2a7de94b6351c5
2017-08-18 05:37:18 +09:00
Chung-Sheng Fu e5b80e9a8f Bug 863246 - Move resources that need to be exposed to web content to locations that are marked as contentaccessible r=billm
MozReview-Commit-ID: ArhSHKPYOr8

--HG--
extra : rebase_source : 888f7ce8f9db809ad5abbe6340af74e9dfb1d73b
2017-06-08 17:52:46 +08:00
Andrew Swan 1e8af6f7ac Bug 1393156 Legacy extension test loose ends r=kmag
Change webextensions experiments test to use the shimmed certficiate DB
instead of the extensions.legacy.enabled pref.
In builds that don't honor the extensions.legacy.enabled pref, disable
test_legacy.js since that tests that flipping that preference works properly.
Finally, remove a now doubly-obsolete test of plugins embedded in xpis.

MozReview-Commit-ID: JiRdgCXyjKR

--HG--
extra : rebase_source : f0c7672b0755993bd20f9fc84e242eb76cb949ef
2017-08-26 08:55:20 -07:00
Andrew Halberstadt 508e9aad6b Bug 1393590 - [mach] Use description field for settings instead of gettext locales, r=gps
This preserves ./mach settings' --list option. If --list is passed in, we call splitlines()
on the description and print only the first line. The full multi-line description will be
printed otherwise.

This also displays the type and/or choices of the option as appropriate.

MozReview-Commit-ID: 7UMsN9qslWt

--HG--
extra : rebase_source : 4bc9554d8652e02e290c6a190634f1a72cdbadc3
2017-08-24 16:17:40 -04:00
Ralph Giles 1b86417339 Bug 1380118 - aom: Record the upstream repo we vendored from. r=froydnj
We've been recording the commit id from the last vendor in
README_MOZILLA inside the various media directories. Since
we now support a --repo switch to pull from forks, record
this info as well, to make it easier to find contiguous
upstream source.

MozReview-Commit-ID: 1RanpkWfAeC

--HG--
extra : rebase_source : b6bd16b56626a871802822385be6f3a24db6cd50
2017-08-14 14:33:55 -07:00
Ralph Giles 46a952175a Bug 1380118 - aom: Support vendoring from github. r=froydnj,kinetik
Add a --repo switch to `mach vendor aom` to allow specifying
an alternate repository url.

Update our vendor script to support commit query and
snapshot download from github as well as upstream's
gitiles instance.

This lets us work with experimental branches for testing.

Also cleans up some naming and checks the passed url for
one of the two supported sites. We could fall back to
doing a complete clone and query the local repository,
but this covers most use cases.

--HG--
extra : rebase_source : 4ecc095db4539b86de4e82a853d5b28ac66c7f1d
2017-07-10 16:17:49 -07:00
Andrew Halberstadt eca136fd91 Bug 1393826 - [python-test] Make sure pytest errors get flagged by treeherder, r=davehunt
This is a quick and dirty hack to get treeherder to show pytest failures. Long term, we might
want to investigate using something like pytest-mozlog. But the benefit of this approach is
we get to keep pytest's fantastic default log format.

MozReview-Commit-ID: Gcsz6z8MeOi

--HG--
extra : rebase_source : 00ee7973eadf86c081b548d5e79c48ca951e25a6
2017-08-25 12:03:23 -04:00
Gregory Szorc 276defc2a7 Bug 1393503 - Proper error handling for failure to find VCS tool; r=glandium,nalexander
``print()`` has no business being in library code like this. It was
a holdover from this code being copied from bootstrap. So remove it.

While we're here, replace the generic exception with a specific one.
We don't want to be swallowing bugs via ``except Exception``.

MozReview-Commit-ID: 49goUstfPBz

--HG--
extra : rebase_source : a821159bd12a449ed1a0edf21a1f9eb29711ad95
2017-08-24 17:09:09 -07:00
Zibi Braniecki 6a8bee55cc Bug 1377911 - Do not strip localized override entries when repackaging. r=glandium,Pike
MozReview-Commit-ID: vKPJcxzh4T

--HG--
extra : rebase_source : 8c062673bdb20f2886aee40d08d184917d025086
2017-08-24 18:08:26 -07:00
Sebastian Hengst 2e163c99b1 Backed out changeset 1bfbae351dd7 (bug 863246) 2017-08-25 16:43:44 +02:00
Chung-Sheng Fu bb279d6d5e Bug 863246 - Move resources that need to be exposed to web content to locations that are marked as contentaccessible r=billm
MozReview-Commit-ID: ArhSHKPYOr8

--HG--
extra : rebase_source : b0cf8d159ba6bfa6e7bcd9528ae2f9851185ac30
2017-06-08 17:52:46 +08:00
Tom Prince c29574c405 Bug 1390699 - Follow-up: Use find_executable() to locate echo. r=ahal
MozReview-Commit-ID: QY8dajeXs0
2017-08-17 00:19:12 -06:00
Jeff Gilbert 6d60656908 Bug 1392862 - Remove duplicate browser packages from mozboot/archlinux.py. - r=gps
--HG--
extra : rebase_source : 86d470ce1368610a3334950333b79b1b0c6ebc7d
2017-08-22 18:21:59 -07:00
Jeff Gilbert 1c9d9dd2fb Bug 1392862 - Update mozboot/archlinux.py: jdk7->8. - r=gps
--HG--
extra : rebase_source : 0c48c63be6f8e507c9d402fbb3308e91826a3913
2017-08-22 18:21:19 -07:00
Rok Garbas f3a3affcf2 Bug 1284475 - migrate ToolTool blueprint to new codebase of relengapi r=KWierso
UPGRADE_NSS_RELEASE a=kaie
MozReview-Commit-ID: 7CB1VYb8OJP

--HG--
extra : rebase_source : 04751620add813cd1780898d109d9f7fa89d7b2d
2017-08-08 10:55:52 +02:00
Andrew Halberstadt b8511feb50 Bug 1391675 - [mach] Allow commands to have both a parser and subcommands, r=gps
We currently raise if we detect a command has both the `parser` attribute and a subcommand
at the same time, but as far as I can tell, there's no good reason to do this. Handling a
parser + subcommands seems to work exactly how you would expect. Furthermore, it isn't an
error to have subcommands + @CommandArgument, so it doesn't make sense that we're allowing
one but not the other.

This change solves an (admittedly unique) use case I'm trying to build into |mach try|. There
are N subcommands that all support a --save and --load style argument. So, e.g, we might have:

./mach try syntax --save foo
./mach try fuzzy --save bar

The main command will have the ability to detect which subcommand a saved value was generated
from and automatically dispatch to it. So this will work:

./mach try --load foo  # dispatches to the syntax subcommand
./mach try --load bar  # dispatches to the fuzzy subcommand

In order to share the --save/--load arguments across the main command + subcommands, we need
to set the parser attribute.



MozReview-Commit-ID: KmXRj8TBvYK

--HG--
extra : rebase_source : cbf1e402a080913709a34430274ae3191821dd72
2017-08-17 11:10:48 -04:00
Gregory Szorc 3088419b32 Bug 1392886 - Explicit error type when a mach command file doesn't exist; r=mshal
This will facilitate handling this error condition specially.

Some unused imports were also removed.

MozReview-Commit-ID: 4zxVDgE7NxU

--HG--
extra : rebase_source : c4d0dd96629e028ce8a83215564a8d865e4b4b3d
2017-08-22 20:29:01 -07:00
Gregory Szorc 5ce1624c85 Bug 1392886 - Determine if sparse checkout is being used; r=mshal
The Repository interface gains a new method to determine if a sparse
checkout is present. Mercurial's implementation is somewhat crude,
but it should work (Mercurial's sparse support is still experimental
and I only intend to support sparse checkout in Firefox CI until it
is less experimental). Git's always returns False (for now).

To prove it works and to expose the information more widely, we hook
it up to moz.configure. We do this by first implementing a function
that returns a Repository instance. Then we simply call a function on
it to resolve the sparse checkout flag.

MozReview-Commit-ID: AlsT5LdSPdZ

--HG--
extra : rebase_source : f1e9aaa7d15f11c7c5e8d268d4ad82468732103b
2017-08-22 20:26:46 -07:00
Gregory Szorc ad141eef1b Bug 1392886 - Expose repository type as an instance property; r=mshal
This will remove the need to sniff class types. The 1 in-tree
consumer doing this has been converted.

MozReview-Commit-ID: I8cUa8J54VE

--HG--
extra : rebase_source : 4c24adaf7eb9d62678ac78604e819a7376d4073b
2017-08-22 20:04:55 -07:00
Gregory Szorc f9bdc9486a Bug 1392886 - Use abstract base class for Repository; r=mshal
This makes the interface more formalized.

MozReview-Commit-ID: JOjgJjR5MZk

--HG--
extra : rebase_source : 20d015dbd6861ea0738828cf6da89723e2afb4e8
2017-08-23 08:33:56 -07:00
Mike Shal 5b41b430f9 Bug 1390916 - Always use --track instead of --no-remove for install manifests; r=gps
The --track flag provides a more accurate accounting of what files were
installed by the manifest, so they can be appropriately removed. For
example, test files are now removed from _tests if an entry in a test
file is deleted.

The --no-remove flag is removed as an alternative, and the --track flag
is now mandatory.

MozReview-Commit-ID: Wiup4Gzwkb

--HG--
extra : rebase_source : 4a44c7fe066ba9b5f1e37ec682464f7f4f6cb2cf
2017-08-08 17:07:07 -04:00