This is fairly straightforward to represent as a GENERATED_FILES, though
we have to take some care to construct the outputs tuple correctly. This
script needs to run during export, and unfortunately none of the STL
headers have proper file extensions, so the 'new' header is
special-cased in the recursive make backend to serve as a marker for
running it in the correct tier.
We can't remove the stl-headers file yet because it is still used for
the system header generation.
MozReview-Commit-ID: 3tQTOY0LAsQ
--HG--
extra : source : 828d43ec1b16edaac69c42f15561f26e209051f1
Before, I/O errors writing to stdout/stderr (e.g. due to broken pipe)
would result in handleError() being called and execution would
keep running. This would potentially result in an error message for
every log/line failure being printed to stderr.
We change the behavior so I/O failures are fatal and abort
execution.
We test the new behavior by changing a test to pipe to `head`
directly. Since `head` exits once it has seen sufficient output,
this results in an EPIPE which now results in immediate program
termination.
MozReview-Commit-ID: 1UecZJ56h4r
--HG--
extra : rebase_source : b35d9c096621d9698260d29a7d0132c4989200a7
This makes `configure --help` work again (it stopped working due to
370a4a2a7898 (bug 1405982).
MozReview-Commit-ID: 2gCmAAsE0qW
--HG--
extra : rebase_source : 5b61b4972c514bb69b239777e0b354ac0357291e
This doesn't need to run when the context manager is active.
MozReview-Commit-ID: DV3SZyUwxlM
--HG--
extra : rebase_source : b32b081cbe9298fb46cbccdf511f9b89b92cf643
We currently print compiler warnings summary then stop the build
output manager, which basically stops resource monitoring.
A future commit will refactor this code a bit and it will be easier
to have the monitor.stop() call directly after the build finishes.
MozReview-Commit-ID: 3uWFWG6ELnH
--HG--
extra : rebase_source : 0d006c99d2ee0ccda49bfa81c31ccb47541a23ce
While we're here, also move the low-level code to invoke configure
to a proper Python module.
MozReview-Commit-ID: 4rlCxOwcVu1
--HG--
extra : rebase_source : ec16ee949743c3a43940d46b44c43a2895bfa250
extra : source : b4f9bef50278db75b1b6229635c877e07dffb1bc
The goal is to move this lower-level code somewhere where it can be
reused.
The only meaningful code change as part of the move was handling
of the mach context. Before, we could access self._mach_context.
After, we need to pass it as an argument. This also uncovered a bug
where "telemetry_handler" could be None but we called it
unconditionally. We now guard this call with an "if."
MozReview-Commit-ID: FWw4l6H1ayS
--HG--
extra : rebase_source : 97fb0db8d6fea32435f8da999e34a8e023f98339
extra : intermediate-source : bf7cfe592722018dd0894002e41f4997b36cd11b
extra : source : 2f62818d80a3e31b47194d8ecb9169bab930ed7e
In general, we shouldn't have so much business logic in mach_commands.py
files.
I'd like to move more of the low-level "perform a build" logic out of
mach_commands.py to facilitate some future work. That code makes use of
this output processing code. So as the first step in moving the build
code, we move its dependencies.
As part of this, I also cleaned up some random unused imports around
lines that were touched.
No meaningful code changes were performed as part of the code move.
MozReview-Commit-ID: 96mGWUJ7oLb
--HG--
extra : rebase_source : 1cfe6e4d12bd84fecf737b9b0cdeeac16f5d51a7
Currently, marking a logger as a structured logger will require a
subsequent function call in order for the logger to be hooked up
to active handlers. This behavior is not intuitive and makes it
easy to not have handlers for newly-registered loggers. This means
messages may not be logged anywhere.
In addition, we have to manually specify which named loggers to
enable structured logging for. This can be annoying.
We change the behavior of register_structured_logger() to
automatically add existing terminal and json handlers to the
logger being marked as structured.
We also introduce an API to enable structured logging for all
loggers. Existing consumers of registered_structured_logger()
in mozbuild have been updated to use this API. A new consumer
has been added for the `mach configure` command because it should
have been there before.
We stop short of making enable_all_structured_loggers() the default.
This is because various commands interact with the log manager in
ways that will result in duplicate logging of messages and
dropping of structured messages. There is a bit of a rabbit hole
here and addressing it can be done as a follow-up.
MozReview-Commit-ID: 1aU6eJvTSMP
--HG--
extra : rebase_source : 2a0a569b378cc3083b55fc7076b291abdfb7453f
We don't use this attribute outside of this function. Besides, you can
easily obtain a handle on the logger by calling
``logging.getLogger('mach')``.
MozReview-Commit-ID: 41vdn6McowW
--HG--
extra : rebase_source : dca383e5f5b770fa3adb09d753897633258302a1
This is fairly straightforward to represent as a GENERATED_FILES, though
we have to take some care to construct the outputs tuple correctly. This
script needs to run during export, and unfortunately none of the STL
headers have proper file extensions, so the 'new' header is
special-cased in the recursive make backend to serve as a marker for
running it in the correct tier.
We can't remove the stl-headers file yet because it is still used for
the system header generation.
MozReview-Commit-ID: 3tQTOY0LAsQ
--HG--
extra : rebase_source : bd9f00e45a7bce4daaa0e1c16e22b28536658e37
The TestMetadata and TestResolver classes aren't technically part of the build
system. The only connection is that they consume some build system output.
The next patch in this series is going to be merging in a bunch of other test
resolving logic from other parts of the tree. Moving this out first allows us
to keep that extra logic out of mozbuild.
MozReview-Commit-ID: 1eq4SjFVCyW
--HG--
rename : python/mozbuild/mozbuild/test/test_testing.py => testing/mozbase/moztest/tests/test_resolve.py
extra : rebase_source : 7ff11f9ec455547533082d20cb5371845f7a4f21
With that fixed, Re-enable MOZ_AUTOMATION_L10N_CHECK for MinGW
MozReview-Commit-ID: BDTtY1J7sBj
--HG--
extra : rebase_source : 162267bf08a6e477af3b8b119a9ef9df65ba8267
The default debug console line limit is far too short, especially when
debugging a debug build or a build with some logging turned on. I've never
had any issues with turning off the limit, so hopefully this is fine for
everyone else too.
MozReview-Commit-ID: Krlo7XPEjE0
By default the build console is limited to 500 lines. This can be far too
short, especially when building using `mach build --verbose`. I've run with
this value set to 1,000,000 before without issue, so 10,000 should be fine.
MozReview-Commit-ID: GxBUjW7nOYJ
Previously, client.mk made the decision of whether to perform a PGO
build. This required passing around MOZ_PGO and invoking a separate
make target if this variable was set.
In this commit, we move this logic to Makefile.in. We employ a special
mechanism in rules.mk to override the default make target so
`make` evaluates "profiledbuild" if MOZ_PGO is set. This also
required using an explicit target for $(MAKE) invocations inside
the "profiledbuild" rule to avoid infinite recursion.
MozReview-Commit-ID: 8sHiVspMisM
--HG--
extra : rebase_source : 76c8a0c592015802f2b9ad52fe2001012a4611f6
extra : source : 24e28b37fbc0ad55ee449699e09c62042af41b55
This fixes the fallout from the mach command not being updated for 69c60c8fc528d8d038e22a2ae62f5ff7b1131231.
MozReview-Commit-ID: 7WZ8wW4gnCY
--HG--
extra : rebase_source : 36caffb4a8631ea478ec6f8d509a82c01016eeb5
This fixes the fallout from the mach command not being updated for 69c60c8fc528d8d038e22a2ae62f5ff7b1131231.
MozReview-Commit-ID: 7WZ8wW4gnCY
--HG--
extra : rebase_source : 887b386480b9cb69c8b7e0196851862fceec2dfe
The webdriver crate's dependencies are accounted for through geckodriver's
Cargo.lock file, because the webdriver dependency is given by path.
This commit reverts 540273e5cf22 made in bug 1412037.
MozReview-Commit-ID: F0q9bDN3pqd
--HG--
extra : rebase_source : 0d152fb510bcded763429769fb35c403552a6017
When repackaging, we want to take all localization resources from the source package,
and add all localization resources from the repackage target locale.
This patch makes packager.l10n scan for `localization` directories in l10n_finder and
add them.
MozReview-Commit-ID: CRLP3bOAyDx
--HG--
extra : rebase_source : 3b1bc098aaed2481a1cc06fc86d0865e654a1b6e
CLOSED TREE
--HG--
extra : amend_source : 3565fdd8a509e11547b0788364ef68e633018bc4
extra : histedit_source : 83c6614b751cedd0af05404d45ef51ad0f58c764%2C1e117ef60548884384a2043a06427788b28c56df
I /think/ the only scenario where we wouldn't be able to evaluate
a config environment after configure was the case where
MOZ_BUILD_PROJECTS was in play. Since we removed support for that
feature, let's drop support for treating the config environment
as optional.
MozReview-Commit-ID: 4sz9dOwaA3y
--HG--
extra : rebase_source : 44c0d5d51238cdcb0b311f205a9faf306bb18b19
While we're here, also move the low-level code to invoke configure
to a proper Python module.
We needed to muck around with the log manager because the underlying
logger for output changed from "mach" (which is registered by default)
to something under the "mozbuild" hierarchy.
MozReview-Commit-ID: 4rlCxOwcVu1
--HG--
extra : rebase_source : e6c824a88fcfdbdeae31a7a94f33571f150e7690
The goal is to move this lower-level code somewhere where it can be
reused.
The only meaningful code change as part of the move was handling
of the mach context. Before, we could access self._mach_context.
After, we need to pass it as an argument. This also uncovered a bug
where "telemetry_handler" could be None but we called it
unconditionally. We now guard this call with an "if."
MozReview-Commit-ID: FWw4l6H1ayS
--HG--
extra : rebase_source : f6bf25eb8c52df2d09e4d5eddd5b85b38502e661
In general, we shouldn't have so much business logic in mach_commands.py
files.
I'd like to move more of the low-level "perform a build" logic out of
mach_commands.py to facilitate some future work. That code makes use of
this output processing code. So as the first step in moving the build
code, we move its dependencies.
As part of this, I also cleaned up some random unused imports around
lines that were touched.
No meaningful code changes were performed as part of the code move.
MozReview-Commit-ID: 96mGWUJ7oLb
--HG--
extra : rebase_source : 04c3865d5bcc44777749f3ab6a65e31bb1d13689
This commit adds two new xpcshell tests, both of them testing whether the
security state in TransportSecurityInfo includes the new
STATE_CERT_DISTRUST_IMMINENT flag under the correct circumstances.
The first test, test_symantec_apple_google.js, tests the four combinations of
certs that chain to an affected Symantec root: with/without a whitelisted
intermediate, and before/after the notBefore cutoff date.
The second test, test_symantec_apple_google_unaffected.js, tests an unrelated
ca->intermediate->ee chain that does not chain to an affected root, and ensures
the flag is not set.
This patch adds SymantecSanctionsServer to the mozbuild and xpcshell test
infrastructure files to ensure it runs properly on TaskCluster, too.
MozReview-Commit-ID: GtUXH2VFFh
--HG--
rename : security/manager/ssl/tests/unit/bad_certs/default-ee.key => security/manager/ssl/tests/unit/test_symantec_apple_google/default-ee.key
rename : security/manager/ssl/tests/unit/bad_certs/default-ee.key.keyspec => security/manager/ssl/tests/unit/test_symantec_apple_google/default-ee.key.keyspec
rename : security/manager/ssl/tests/unit/bad_certs/default-ee.pem => security/manager/ssl/tests/unit/test_symantec_apple_google/default-ee.pem
rename : security/manager/ssl/tests/unit/bad_certs/default-ee.pem.certspec => security/manager/ssl/tests/unit/test_symantec_apple_google/default-ee.pem.certspec
rename : security/manager/ssl/tests/unit/tlsserver/cmd/BadCertServer.cpp => security/manager/ssl/tests/unit/tlsserver/cmd/SymantecSanctionsServer.cpp
extra : rebase_source : f399bca5a13db3efa5bbaa5136c8effc3948ed5e
The new file contains changes that optimize for final file size:
* The components are stored as an integer index/key into a map
instead of strings.
* Paths are stored in hierarchical dicts.
* No indentation is used.
These changes significantly redude redundancy in string data. For every
file in the repo, the raw JSON size is decreased from 27,074,607 to
7,643,529 bytes.
MozReview-Commit-ID: 58FWSct8W39
--HG--
extra : rebase_source : 3ccc17d58fadaaac428b2eb2d3ad357fec9afafd
We want all files in the repo to be annotated with a Bugzilla
component. This change will cause the CI task to fail if files are
missing annotations.
MozReview-Commit-ID: Kn6dheQqEsk
--HG--
extra : rebase_source : f472f78defc0b7aec53863a3c4374f4268c0cc3f
Previously, the CI task invoked 2 mach commands and performed manual
gzip compressed. This was sub-optimal for a few reasons:
* Redundant moz.build evaluation made execution slower
* Potential for shell expansion to interfere with wildcards
* Made it harder to change exit code
By moving all logic into a mach command, we eliminate all the issues
around using shell.
Behavior of the new command and the CI task should be backwards
compatible.
MozReview-Commit-ID: HUFvLteKLOO
--HG--
extra : rebase_source : 85a49fc45eeaaac71dfb97fc22900a81ca9efa4b