Thunderbird variant of "mach l10n-cross-channel". tb-l10n-x-channel generates
a single "comm-strings" repository containing all strings from the currently
active code repositories (comm-central, comm-beta, etc).
This mach command is mostly meant to run as a Taskcluster "cron" job and
will push changes to a "quarantine" repository for further review.
The URL for the quarantine repository is not final.
Differential Revision: https://phabricator.services.mozilla.com/D131977
--HG--
extra : moz-landing-system : lando
Debug .sym files contained incorrect VCS references due to MOZ_SOURCE_REPO
and MOZ_SOURCE_CHANGESET being set in the environment reffering to the
Thunderbird repository.
mozconfigure will handle setting these values in the buildconfig.
See D135299.
Differential Revision: https://phabricator.services.mozilla.com/D135392
Creating mach commands in comm-central. The initialize function
calls the mozilla-central mach initialize first, then modifies
the returned mach.driver.
This implementation allows for new command categories and new mach
command modules. Mach settings providers can also be added in the
mach_commands files.
"mach commlint" is implemented, it just calls "mach lint", but with the
Thunderbird lint configurations in comm/tools/lint.
Requires bug 1731158 in mozilla-central.
Differential Revision: https://phabricator.services.mozilla.com/D125984
--HG--
extra : amend_source : 2699448d31d7e5ec062f6daddb12394301417fb7
This change isn't necessarily the problem, bug it's much easier to reverse than bug 1731158 on mozilla-central.
--HG--
extra : amend_source : 93c8fe228eb06f214a31837204d953f30dee19ed
extra : histedit_source : 0d6ab90e92afd47c0baad03606fc3894b54d16ed%2C73b086c097ca95e626c03f35726ce3546ef48706
Creating mach commands in comm-central. The initialize function
calls the mozilla-central mach initialize first, then modifies
the returned mach.driver.
This implementation allows for new command categories and new mach
command modules. Mach settings providers can also be added in the
mach_commands files.
"mach commlint" is implemented, it just calls "mach lint", but with the
Thunderbird lint configurations in comm/tools/lint.
Requires bug 1731158 in mozilla-central.
Differential Revision: https://phabricator.services.mozilla.com/D125984
--HG--
extra : moz-landing-system : lando
Specifying a filename for `sys.path` modifications is
no longer necessary - if a path needs to be on the
Python `sys.path`, then just mark it with `pth:` for
it to go into a `.pth` file in the virtualenv.
Differential Revision: https://phabricator.services.mozilla.com/D117934
--HG--
extra : moz-landing-system : lando
Some Taskcluster jobs such as the decision task and toolchain builds
do not need the entire source tree checked out. Those jobs use mercurial
sparse profiles to only check out what is needed. Thunderbird builds
mostly use the same profiles as Firefox; these are the new ones that
are required with one-repo.
Note that currently, there are no sparse checkout profiles on any
Thunderbird repository. Adding these files will not affect current
operations.
Differential Revision: https://phabricator.services.mozilla.com/D110432
Treeherder is getting an update later this week that affects the "Built from" links that
appear in the Job Details panel. Rather than parsing log files, a build artifact will be
used to display these links.
The artifact is a JSON file in the suggested format.
--HG--
extra : histedit_source : 2baf9841620fdaed198efa23431a04060ab3c1c7
Modifications are documented in README.rnp and update-rnp.sh
Differential Revision: https://phabricator.services.mozilla.com/D70738
--HG--
rename : third_party/README.libotr => third_party/README.rnp
extra : moz-landing-system : lando
This goes with a change to Firefox's build/mozconfig.cache to use a prefix
variable when setting up Sccache buckets on AWS. This will eliminate code
duplication which has caused broken builds in the past.
Thunderbird builds only run on AWS currently so GCP configuration is not
needed.
--HG--
extra : rebase_source : 0b5c334763d196ff3ede0e8edbe1b9b9e3dbcaf4
The comm_taskgraph.register function will get called early in the Decision
task. The Fenix project uses this to add functionality in key places via
hooks that aid in customizing the taskgraph.
This is just initial support, extension modules will be added as needed.
--HG--
extra : rebase_source : 5e87d819b40350c1549fdee0a680a5917c91ec84
Thunderbird has been using Firefox's entitlements files since the Apple's
hardened runtime became a necessity with notarization.
However, Thunderbird cannot access macOS's addressbook for contacts when
running macOS Mojave or Catalina, necessitating this change.
The version of sed on macOS does not support the '-i' (edit in-place) option,
causing builds fail. Replacing use of sed with Python.
Fix an off-by-one bug in source_repos.py.
- Change the "hg" command used to identify a revision to the one used by
Firefox in build/variables.py.
- If "hg" still fails, don't abort the entire configure process.
- Only terminate configure in automation when source repository information
cannot be determined.
Build correct sourcestamp.txt in source code tar files.
This builds upon previous commits in this bug using the same urls and revision
hashes that were calculated in the configure process rather than trying to
figure it out again, incorrectly.
This does run as a separate task in Taskcluster, but "mach configure" is one of
the steps that runs before "make source-package" so we can use
"import buildconfig" for this.
source-repo.h is the file where Thunderbird gets source repository information.
It gets used in the build process, and it used in the app most notably on
about:buildconfig.
In order to accomodate code in the Mozilla tree which is going to look for
MOZ_SOURCE_REPO and MOZ_SOURCE_CHANGESET and assume they are for the app being
built, continue to #define those and also #define values specific to each
repository. This will keep the Thunderbird code that needs to use source-repo.h
easier to read.
This works because comm/mail/app.mozbuild is "included" from the toplevel
moz.build file and therefore is part of the same context. Just overwrite
GENERATED_FILES['source-repo.h'].script with our new script. The EXPORTS
and GENERATED_FILES pieces carry over and do not need to be part of app.mozbuild.
Note that the path to our script is relative to $topsrcdir not app.mozbuild
because it's included, not addded with DIR.
--HG--
extra : rebase_source : 81f667a2ee3ed4ad6a08ec8de39e754845c20d06
PACKAGERS: if you update application.ini, platform.ini, or source-repo.h
in some way during your process, you might need to change something.
Make sure that the source repositories for both Mozilla and Comm can be found
during mach configure and abort if they cannot.
For Taskcluster builds, there are various environment variables that can be
relied upon.
Local builds present a challenge. Chances are those variables are not set.
I came up with a set of checks and keep trying until something works.
For comm-* code:
- Look for MOZ_SOURCE_REPO and MOZ_SOURCE_CHANGESET environment vars. This
is counter-intuitive, but it's the current status-quo for Taskcluster
builds. Those variables are set to the comm values.
- Next, try use the Mercurial source checkout itself. Uses the same technique
as Mozilla code does in build/variables.py.
- Last, try to use a file named "sourcestamp.txt". That file is part of
our source tar files that get built for releases.
- Finally, if those MOZ_SOURCE environment variables were not set, set them.
This is needed because old-configure will look for them and set buildconfig
variables with them when it runs later during the configure process.
- Additionally, set MOZ_COMM_SOURCE_REPO and MOZ_COMM_SOURCE_CHANGESET in
buildconfig. Code in the comm- tree should prefer those values over the
generic MOZ_SOURCE_* values that the Mozilla code will look at.
For the Gecko/Mozilla source repository information, it's almost the same
process.
- Check for GECKO_SOURCE_REPO and GECKO_SOURCE_REV environment variables first.
Taskcluster sets these based on comm/.gecko_rev.yml.
- Next, try comm/.gecko_rev.yml itself. PyYAML is not required as the file is
pretty simple to parse. Release builds are pinned to a specific revision hash,
so we can use that. Builds from comm-central pin to "default" though, so
next try running "hg id" in $topsrcdir to get the revision hash.
- If for some reason there's no .gecko_rev.yml and it's not a Mercurial checkout,
try the sourcestamp.txt file.
- Set MOZ_GECKO_SOURCE_REPO and MOZ_GECKO_SOURCE_CHANGESET in buildconfig.
mach configure should fail if any one of those values cannot be determined.
The error message will suggest setting the environment variables; ideally
that is not necessary.
--HG--
extra : rebase_source : 0f17f25956c679f63b775b15d5a0f0726bb659cb
This is the remaining pieces for enabling marionette tests with macOS disabled for now.
--HG--
extra : amend_source : 64f0811234f60ec986791c83deb114e8040a347e