The previous implementation used days since Jan 1 2000 for the last
16-bit segment. This was not unique enough and caused issues with
Antivirus software if two different channels were built on the same day.
The new approach uses hours since the last milestone bump and uses the
VCS to determine how long ago that was relative to the build time. This
means it will always reset when a new cycle begins, but still be unique
since the digits in the first 3 segments have incremented.
We also now use two of the 16-bits to encode the channel (nightly, beta,
ESR, and release). So two channels built within the same hour will still
be unique.
Using only 14-bits to store the 'hours since version bump', we have
about ~682 days from a version bump before we reach the maximum value we
can store. If a build is done after that point, the segment value will
always be the maximum value for that channel.
Differential Revision: https://phabricator.services.mozilla.com/D200989
We don't want the packaged update frameworks, we only want the
localbuild variants fetched from the `update_framework_artifacts`
extra archive. These don't impact builds, but they clutter the object
directory and are misleading.
Differential Revision: https://phabricator.services.mozilla.com/D208662
Moves the Fluent strings for Select Translations out of
locales preview and into the en-US locale to mark them
to be translated by localizers for release.
Differential Revision: https://phabricator.services.mozilla.com/D208383
This patch:
1. Produces additional frameworks as part of every build. In compile
builds, the frameworks are built; in artifact builds, the frameworks
binaries are taken from fetched artifacts. It's not easy to compile a
single framework with the same name twice in the `moz.build` DSL, so
some file shuffling is done in `Makefile.in` files to arrange the
correct layout.
2. Packages and uploads a new `update_framework_artifacts` extra
archive for artifact builds to consume.
3. Consumes the new extra archive in artifact builds.
Produced frameworks live in
`dist/macos_framework_artifacts/xyz.framework/**`.
Consumed frameworks are made availabe to artifact builds in
`dist/macos_framework_artifacts`.
Bug 1885985 - Part 2:
Differential Revision: https://phabricator.services.mozilla.com/D205936
@file are supported by gcc since gcc 7 and by clang since clang 3.x,
which removes the need for linker script to list input files.
We cannot directly use @file from the compiler driver (it would expand
to a large number of arguments and hit the linker limit) so pass
-Wl,@FILE instead, which is supported since binutils 2.17.
As a side effect this removes the LTO dependency from the check.
Differential Revision: https://phabricator.services.mozilla.com/D207839
This patch:
1. Produces additional frameworks as part of every build. In compile
builds, the frameworks are built; in artifact builds, the frameworks
binaries are taken from fetched artifacts. It's not easy to compile a
single framework with the same name twice in the `moz.build` DSL, so
some file shuffling is done in `Makefile.in` files to arrange the
correct layout.
2. Packages and uploads a new `update_framework_artifacts` extra
archive for artifact builds to consume.
3. Consumes the new extra archive in artifact builds.
Produced frameworks live in
`dist/macos_framework_artifacts/xyz.framework/**`.
Consumed frameworks are made availabe to artifact builds in
`dist/macos_framework_artifacts`.
Bug 1885985 - Part 2:
Differential Revision: https://phabricator.services.mozilla.com/D205936
The hasattr(self, "handler") was added in bug 889963, and back then
self.handler *was* set. That changed in bug 883209, which changed the
setting of self.handler to self._handler, but left out the ones from
this code.
Differential Revision: https://phabricator.services.mozilla.com/D207649
This patch:
1. Produces additional frameworks as part of every build. In compile
builds, the frameworks are built; in artifact builds, the frameworks
binaries are taken from fetched artifacts. It's not easy to compile
the same framework twice in the `moz.build` DSL, so some file
shuffling is done in `Makefile.in` files to arrange the correct
layout.
2. Packages and uploads a new `macos_framework_artifacts` extra
archive for artifact builds to consume.
3. Consumes the new extra archive in artifact builds.
Produced frameworks live in
`$(topobjdir)/macos_framework_artifacts/xyz.framework/**`.
Consumed frameworks are made availabe to artifact builds in
`$(distdir)/macos_framework_artifacts`.
Bug 1885985 - Part 2:
Differential Revision: https://phabricator.services.mozilla.com/D205936
Once the configure step is built, each backend processes it independently,
there was a parallelization opportunity here. Most of the gain comes
from clangd backend and RecursiveMake backend being run concurrently.
Only active when multiprocessing's fork starting method is used due to
incompatibility with pickling fo some of our internal structures.
Differential Revision: https://phabricator.services.mozilla.com/D205992
Some micro-optimization in the mozbuild/shellutil.py quoting function,
and use it at a finer grain to avoid some extra list creation.
This saves time in the configure step.
Differential Revision: https://phabricator.services.mozilla.com/D205861
Webpagetest has modified the way that they accept keys, they used to accept it through a URL parameter, but now they require it to be in the header and with a different name
Differential Revision: https://phabricator.services.mozilla.com/D207159
Update:
- UniFFI to 0.27.1
- Glean to 59.0.0
- App-services to a recent version
This removes the need for the goblin build hack, although we still have
duplicate versions of goblin since UniFFI is ahead of the moz-central
version. I think that should be easy to resolve as a follow-up.
Updating uniffi-bindget-gecko-js based on upstream changes:
- Clone objects before lowering them
(https://github.com/mozilla/uniffi-rs/pull/1880)
- Use u64 for the RustBuffer length and capacity field
(https://github.com/mozilla/uniffi-rs/pull/1978)
I didn't implement the new callback interface VTable code. Instead I
simply disabled the one fixture that tests it. I'd rather implement
https://bugzilla.mozilla.org/show_bug.cgi?id=1888668 first, since that
will simplify the process a bunch. The only real-world use-case for
callbacks that I know of is Mark's logging changes, but that will
require implementing trait interfaces anyways so I'd rather wait than
write a bunch of C++ code that we then throw away.
Differential Revision: https://phabricator.services.mozilla.com/D206130
Update:
- UniFFI to 0.27.1
- Glean to 59.0.0
- App-services to a recent version
This removes the need for the goblin build hack, although we still have
duplicate versions of goblin since UniFFI is ahead of the moz-central
version. I think that should be easy to resolve as a follow-up.
Updating uniffi-bindget-gecko-js based on upstream changes:
- Clone objects before lowering them
(https://github.com/mozilla/uniffi-rs/pull/1880)
- Use u64 for the RustBuffer length and capacity field
(https://github.com/mozilla/uniffi-rs/pull/1978)
I didn't implement the new callback interface VTable code. Instead I
simply disabled the one fixture that tests it. I'd rather implement
https://bugzilla.mozilla.org/show_bug.cgi?id=1888668 first, since that
will simplify the process a bunch. The only real-world use-case for
callbacks that I know of is Mark's logging changes, but that will
require implementing trait interfaces anyways so I'd rather wait than
write a bunch of C++ code that we then throw away.
Differential Revision: https://phabricator.services.mozilla.com/D206130
`HGPLAIN` disables configuration settings that change the default Mercurial
output, whereas `HGRCPATH=!` disables all extensions entirely. Since we are
updating v-c-t to update custom Mercurial extensions, we should disable all
extensions to avoid hitting bugs that would be fixed by updating v-c-t.
Differential Revision: https://phabricator.services.mozilla.com/D206918
Update:
- UniFFI to 0.27.1
- Glean to 59.0.0
- App-services to a recent version
This removes the need for the goblin build hack, although we still have
duplicate versions of goblin since UniFFI is ahead of the moz-central
version. I think that should be easy to resolve as a follow-up.
Updating uniffi-bindget-gecko-js based on upstream changes:
- Clone objects before lowering them
(https://github.com/mozilla/uniffi-rs/pull/1880)
- Use u64 for the RustBuffer length and capacity field
(https://github.com/mozilla/uniffi-rs/pull/1978)
I didn't implement the new callback interface VTable code. Instead I
simply disabled the one fixture that tests it. I'd rather implement
https://bugzilla.mozilla.org/show_bug.cgi?id=1888668 first, since that
will simplify the process a bunch. The only real-world use-case for
callbacks that I know of is Mark's logging changes, but that will
require implementing trait interfaces anyways so I'd rather wait than
write a bunch of C++ code that we then throw away.
Differential Revision: https://phabricator.services.mozilla.com/D206130
This new command will make it easier to work with the JSON source of
truth for our design tokens. Unfortunately the noisy output when
building the tokens is expected. We can fix this issue by upgrading
to Style Dictionary v4 when it is available and changing the logging
level.[1]
[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1889645
Differential Revision: https://phabricator.services.mozilla.com/D206561
Looks like this command didn't get added to the MACH_COMMANDS list which
means 'addstory' will throw an error when you try and use it.
Differential Revision: https://phabricator.services.mozilla.com/D206548