Revision control

Copy as Markdown

Other Tools

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
import logging
from taskgraph.transforms.base import TransformSequence
logger = logging.getLogger(__name__)
transforms = TransformSequence()
@transforms.add
def add_langpack_fetches(config, jobs):
"""Adds the fetch configuration for the langpacks. This is done here
because Thunderbird langpacks are not signed and therefore not found as
artifacts of "shippable-l10n-signing" like they are for Firefox. Need to
use "shippable-l10n".
"""
def depends_filter(dep_task):
return (
dep_task.kind == "shippable-l10n"
and dep_task.attributes["build_platform"] == "linux64-shippable"
and dep_task.attributes["build_type"] == "opt"
)
for job in jobs:
dependencies = job.get("dependencies", {})
fetches = job.setdefault("fetches", {})
# The keys are unique, like `shippable-l10n-linux64-shippable-1/opt`, so we
# can't ask for the tasks directly, we must filter for them.
for t in filter(depends_filter, config.kind_dependencies_tasks.values()):
dependencies.update({t.label: t.label})
fetches.update(
{
t.label: [
{
"artifact": f"{loc}/target.langpack.xpi",
"extract": False,
# Otherwise we can't disambiguate locales!
"dest": f"distribution/extensions/{loc}",
}
for loc in t.attributes["chunk_locales"]
]
}
)
yield job