In CI, we sometimes don't have permissions to create a scoped state dir.
Additionally, the current behaviour for resolving the path to a scoped
state dir will also attempt to create it if it doesn't exist.
There's likely a more eloquent solution, but the short-term fix is to
have sites defer the resolution of the state dir until they _know_ they
need it.
Differential Revision: https://phabricator.services.mozilla.com/D134066
The former is broken because of a lack of a app.mozbuild file and has
been broken for years.
The latter doesn't do anything useful outside --enable-project=extensions
because all the subdirectories of extensions/ are already covered by
other flags (or always used):
- auth, via --enable-negotiateauth (default on)
- permissions, always
- pref, via --enable-pref-extensions (default on)
- spellcheck, always
- universalchardet, via --enable-universalchardet (default on)
Also, nothing sets MOZ_EXTENSIONS_DEFAULT anymore.
Differential Revision: https://phabricator.services.mozilla.com/D133970
Pip is able to detect unpacked sdists because they have a `.egg-info`
directory, *not* because they have a top-level `PKG-INFO` file.
This is confirmed by the `MarkupSafe` case, where pip can see the
package in `third_party/python/MarkupSafe/src`, even though there's no
`PKG-INFO` at that depth.
Differential Revision: https://phabricator.services.mozilla.com/D126924
The former is broken because of a lack of a app.mozbuild file and has
been broken for years.
The latter doesn't do anything useful outside --enable-project=extensions
because all the subdirectories of extensions/ are already covered by
other flags (or always used):
- auth, via --enable-negotiateauth (default on)
- permissions, always
- pref, via --enable-pref-extensions (default on)
- spellcheck, always
- universalchardet, via --enable-universalchardet (default on)
Also, nothing sets MOZ_EXTENSIONS_DEFAULT anymore.
Differential Revision: https://phabricator.services.mozilla.com/D133970
Also update the table of Firefox requirements. It's worth noting that I
actually upgraded to 1.57 earlier than I should have (too close to
freeze), but what is done is done.
Differential Revision: https://phabricator.services.mozilla.com/D134124
The regressing bug 1739067 forgot to update this reference to the
Mach venv. As part of this, the logic for resolving the
"checkout-specific state_dir" was updated to be smarter with
Windows case-insensitive paths.
Differential Revision: https://phabricator.services.mozilla.com/D133547
Though _most_ of the old paths that used to be defined in
`mozperftest/runner.py` exist in `common_virtualenv_packages.txt`,
"xpcshell" was not because it's put in a different location depending on
whether the source directory is sourced from the "target.xpcshell.tests"
artifact or from VCS directly.
As part of this change, I've verified that all of the other
path changes in D132503 are fulfilled by the "mach" site.
Differential Revision: https://phabricator.services.mozilla.com/D133215
I originally thought that the result of `all_site_packages_dirs()` would
be reused while building the new `sys.path` list, but some local
debugging on Windows was affected by brutally slow start-times - which
was caused by these lines.
Looking back, it makes sense now: Python doesn't know that the value can
be reused, so it's recalculating the entire
predicate (`path not in $dirs_fn()`) every time.
Differential Revision: https://phabricator.services.mozilla.com/D133214
This is required to replace the existing MOZ_FORCE_ENABLE_FISSION environment
variables in environments which use that. In the future we'll want to stop
passing any environment variable when not passing a flag to `./mach run`
however that will require changes to the default test behaviour in bug 1744091.
Differential Revision: https://phabricator.services.mozilla.com/D133006
mach/mach/virtualenv.py was not updated because Mitch is in the process of a
major refactor on it. It will get a Pathlib migration pass at a later time
Differential Revision: https://phabricator.services.mozilla.com/D131811
mach/mach/virtualenv.py was not updated because Mitch is in the process of a
major refactor on it. It will get a Pathlib migration pass at a later time
Differential Revision: https://phabricator.services.mozilla.com/D131811
None of this is used now that `funsize` generates update MARs. It
might have even been possible to remove this in Bug 1173459, years
ago.
Differential Revision: https://phabricator.services.mozilla.com/D132836
If watchman is invoked (as part of hg's fsmonitor) with a path whose case does
not match the on-disk case (e.g., for case-insensitive file systems like NTFS),
it will get angry and throw a RootResolveError (although it will still work).
When doing `./mach try`, we end up invoking watchman several times which leads
to it getting very angry and throwing lots of errors.
This is all due to how we compute virtualenv paths -- by normcase()-ing them in
`mach.pth` -- which results in `push.py` having a lowercase path *even if* your
mozilla-central checkout has a non-lowercase on-disk path.
Calling Path.resolve() on the resulting path returns it to its on-disk
representation and no longer angers watchman.
Differential Revision: https://phabricator.services.mozilla.com/D133397
Without this change, on systems that use `dnf` (such as Fedora),
`mach bootstrap` will prompt for the sudo password to install packages and
groups that have already been installed. Making this change will help get
`mach bootstrap` to a point where it can be run without prompting for user
input when we can avoid doing that.
Differential Revision: https://phabricator.services.mozilla.com/D132816
The custom logging formatting functions that override the defaults were not
adding stack traces to the output. The logic for formatting the stack trace
output is pulled directly from the default, as noted by the function doc. The
only difference is prefixing the elapsed time to each line.
Test case in TestStructuredHumanFormatter::test_non_ascii_logging
was updated to exclude newly added elapsed time from the comparison.
Differential Revision: https://phabricator.services.mozilla.com/D130236
Fedora 33 is now EOL. Fedora 34 and 35 now both use the package name
'python3-devel', not 'python-devel'. Although 'python-devel' is aliased to
'python3-devel' for `dnf install`, it is not aliased for other commands such as
`dnf info`. That defeats the purpose of fixing bug 1744277 unless we also fix
this issue.
Differential Revision: https://phabricator.services.mozilla.com/D132815
We only need a workdir-scoped state_dir when an on-disk virtualenv will
be created for the Mach site.
This change defers the resolution of the state_dir until we know that a
VENV will be created.
Also modify "telemetry.py" so that it isn't creating a
scoped state-dir to compare "sys.executable" against.
Differential Revision: https://phabricator.services.mozilla.com/D132706
There's an intermittent assertion failure, but there isn't enough
information to diagnose. By having the "requirements_path" printed, we
will have additional information to resolve the underlying intermittent.
Differential Revision: https://phabricator.services.mozilla.com/D132502
Since those strings can be consumed by the PausedDebuggerOverlay, on the server,
we need to put them in devtools/shared.
As this will create some work for the l10n team, we migrate them to Fluent so we're
feeding 2 birds with 1 scone.
The `<LocalizationProvider>` is added directly in `<WhyPaused>` (and not in `<App>`,
as it's messing up with the React context (See Bug 1743155).
Some snapshots are updated. It's unfortunate that we don't see the translated
strings there anymore, but we can't have nice things in Jest.
Differential Revision: https://phabricator.services.mozilla.com/D132260
Since those strings can be consumed by the PausedDebuggerOverlay, on the server,
we need to put them in devtools/shared.
As this will create some work for the l10n team, we migrate them to Fluent so we're
feeding 2 birds with 1 scone.
The `<LocalizationProvider>` is added directly in `<WhyPaused>` (and not in `<App>`,
as it's messing up with the React context (See Bug 1743155).
Some snapshots are updated. It's unfortunate that we don't see the translated
strings there anymore, but we can't have nice things in Jest.
Differential Revision: https://phabricator.services.mozilla.com/D132260
When activating a command virtualenv, it rightfully complains if it
isn't already running within an active Mach site - the abstraction has
restrictions to act as guardrails around the risky business that is
`sys.path` patching.
Replace `mozperftest/runner.py`'s ad-hoc `sys.path` initializing with
`MachSiteManager`'s `activate()` instead.
Removes the calls to `_setup_path()` where the `sys.path` should
already be set-up.
Differential Revision: https://phabricator.services.mozilla.com/D132503