gecko_taskgraph.transforms package

Subpackages

Submodules

gecko_taskgraph.transforms.artifact module

Apply different expiration dates to different artifacts based on a manifest file (artifacts.yml)

gecko_taskgraph.transforms.artifact.read_artifact_manifest(manifest_path)

Read the artifacts.yml manifest file and return it.

gecko_taskgraph.transforms.artifact.set_artifact_expiration(config, jobs)

Set the expiration for certain artifacts based on a manifest file.

gecko_taskgraph.transforms.attribution module

gecko_taskgraph.transforms.attribution.attribution_keyed_by(config, jobs)
gecko_taskgraph.transforms.attribution.mac_attribution(config, jobs)

Adds padding to the mac attribution data. Implicitly assumes that the attribution data is the last thing in job.run.command

gecko_taskgraph.transforms.attribution.remove_attributes(config, jobs)

Remove attributes from parent task that aren’t necessary.

gecko_taskgraph.transforms.attribution.set_locale_label(config, jobs)
gecko_taskgraph.transforms.attribution.set_treeherder(config, jobs)
gecko_taskgraph.transforms.attribution.stub_installer(config, jobs)

Not all windows builds come with a stub installer (only win32, and not on esr), so conditionally add it here based on our dependency’s stub-installer attribute.

gecko_taskgraph.transforms.balrog_submit module

Transform the per-locale balrog task into an actual task description.

class gecko_taskgraph.transforms.balrog_submit.BalrogDescriptionSchema(*, label: str, update_no_wnp: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc19ef9690>] | None = None, treeherder: ~gecko_taskgraph.transforms.task.TreeherderSchema | None = None, attributes: dict[str, object] | None = None, dependencies: dict[str, object] | None = None, task_from: str | None = None, shipping_product: str | None = None, shipping_phase: ~typing.Literal['build', 'promote', 'push', 'ship'] | None = None, run_on_repo_type: list[~typing.Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
label: str
run_on_repo_type: list[Literal['git', 'hg']] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
shipping_product: str | None
task_from: str | None
treeherder: TreeherderSchema | None
update_no_wnp: OptionallyKeyedBy object at 0x7fbc19ef9690>] | None
gecko_taskgraph.transforms.balrog_submit.handle_keyed_by(config, jobs)

Resolve fields that can be keyed by platform, etc.

gecko_taskgraph.transforms.balrog_submit.make_task_description(config, jobs)
gecko_taskgraph.transforms.balrog_submit.remove_name(config, jobs)

gecko_taskgraph.transforms.balrog_toplevel module

Transform the beetmover task into an actual task description.

gecko_taskgraph.transforms.balrog_toplevel.generate_update_line(config, jobs)

Resolve fields that can be keyed by platform, etc.

gecko_taskgraph.transforms.beetmover module

Transform the beetmover task into an actual task description.

class gecko_taskgraph.transforms.beetmover.BeetmoverDescriptionSchema(*, label: str, dependencies: dict[str, object] | None, treeherder: TreeherderSchema | None = None, locale: str | None = None, shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None, shipping_product: str | None = None, attributes: dict[str, object] | None = None, task_from: str | None = None, run_on_repo_type: list[Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
label: str
locale: str | None
run_on_repo_type: list[Literal['git', 'hg']] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
shipping_product: str | None
task_from: str | None
treeherder: TreeherderSchema | None
gecko_taskgraph.transforms.beetmover.craft_release_properties(config, job)
gecko_taskgraph.transforms.beetmover.make_task_description(config, jobs)
gecko_taskgraph.transforms.beetmover.make_task_worker(config, jobs)
gecko_taskgraph.transforms.beetmover.remove_name(config, jobs)

gecko_taskgraph.transforms.beetmover_apt module

gecko_taskgraph.transforms.beetmover_apt.beetmover_apt(config, tasks)
gecko_taskgraph.transforms.beetmover_apt.filter_beetmover_apt_dep(task)
gecko_taskgraph.transforms.beetmover_apt.filter_out_extra_langpacks(config, tasks)

Langpacks are architecture-independent so we only upload them from the x86_64 tasks

gecko_taskgraph.transforms.beetmover_apt.is_not_l10n_task(task)
gecko_taskgraph.transforms.beetmover_apt.is_x86_64_l10n_task(task)

gecko_taskgraph.transforms.beetmover_checksums module

Transform the checksums signing task into an actual task description.

class gecko_taskgraph.transforms.beetmover_checksums.BeetmoverChecksumsDescriptionSchema(*, attributes: dict[str, object] | None, dependencies: dict[str, object] | None, label: str | None = None, treeherder: TreeherderSchema | None = None, locale: str | None = None, shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None = None, shipping_product: str | None = None, task_from: str | None = None, run_on_repo_type: list[Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
label: str | None
locale: str | None
run_on_repo_type: list[Literal['git', 'hg']] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
shipping_product: str | None
task_from: str | None
treeherder: TreeherderSchema | None
gecko_taskgraph.transforms.beetmover_checksums.make_beetmover_checksums_description(config, jobs)
gecko_taskgraph.transforms.beetmover_checksums.make_beetmover_checksums_worker(config, jobs)
gecko_taskgraph.transforms.beetmover_checksums.remove_name(config, jobs)

gecko_taskgraph.transforms.beetmover_emefree_checksums module

Transform release-beetmover-source-checksums into an actual task description.

class gecko_taskgraph.transforms.beetmover_emefree_checksums.BeetmoverChecksumsDescriptionSchema(*, label: str | None = None, extra: object | None = None, shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None = None, shipping_product: str | None = None, task_from: str | None = None, attributes: dict[str, object] | None = None, dependencies: dict[str, object] | None = None, run_on_repo_type: list[Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
extra: object | None
label: str | None
run_on_repo_type: list[Literal['git', 'hg']] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
shipping_product: str | None
task_from: str | None
gecko_taskgraph.transforms.beetmover_emefree_checksums.generate_upstream_artifacts(refs, partner_path)
gecko_taskgraph.transforms.beetmover_emefree_checksums.make_beetmover_checksums_description(config, jobs)
gecko_taskgraph.transforms.beetmover_emefree_checksums.make_beetmover_checksums_worker(config, jobs)
gecko_taskgraph.transforms.beetmover_emefree_checksums.remove_name(config, jobs)

gecko_taskgraph.transforms.beetmover_geckoview module

Transform the beetmover task into an actual task description.

class gecko_taskgraph.transforms.beetmover_geckoview.BeetmoverDescriptionSchema(*, label: str, dependencies: dict[str, object] | None, treeherder: ~gecko_taskgraph.transforms.task.TreeherderSchema | None = None, run_on_projects: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None, run_on_hg_branches: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc18fde750>] | None, bucket_scope: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1a59fb10>] | None = None, shipping_phase: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1a049750>] | None = None, shipping_product: str | None = None, attributes: dict[str, object] | None = None, task_from: str | None = None, run_on_repo_type: list[~typing.Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
bucket_scope: OptionallyKeyedBy object at 0x7fbc1a59fb10>] | None
dependencies: dict[str, object] | None
label: str
run_on_hg_branches: OptionallyKeyedBy object at 0x7fbc18fde750>] | None
run_on_projects: OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None
run_on_repo_type: list[Literal['git', 'hg']] | None
shipping_phase: OptionallyKeyedBy object at 0x7fbc1a049750>] | None
shipping_product: str | None
task_from: str | None
treeherder: TreeherderSchema | None
gecko_taskgraph.transforms.beetmover_geckoview.craft_release_properties(config, job)
gecko_taskgraph.transforms.beetmover_geckoview.make_task_description(config, jobs)
gecko_taskgraph.transforms.beetmover_geckoview.make_task_worker(config, jobs)
gecko_taskgraph.transforms.beetmover_geckoview.remove_name(config, jobs)
gecko_taskgraph.transforms.beetmover_geckoview.resolve_keys(config, jobs)
gecko_taskgraph.transforms.beetmover_geckoview.split_maven_packages(config, jobs)

gecko_taskgraph.transforms.beetmover_integration module

Transform the beetmover task into an actual task description.

class gecko_taskgraph.transforms.beetmover_integration.BeetmoverDescriptionSchema(*, label: str, description: str, dependencies: dict[str, object] | None, if_dependencies: list[str] | None, treeherder: ~gecko_taskgraph.transforms.task.TreeherderSchema | None = None, run_on_projects: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None, attributes: dict[str, object] | None = None, task_from: str | None = None, worker_type: str | None, scopes: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1ac5f6d0>], run_on_repo_type: list[~typing.Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
description: str
if_dependencies: list[str] | None
label: str
run_on_projects: OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None
run_on_repo_type: list[Literal['git', 'hg']] | None
scopes: OptionallyKeyedBy object at 0x7fbc1ac5f6d0>]
task_from: str | None
treeherder: TreeherderSchema | None
worker_type: str | None
gecko_taskgraph.transforms.beetmover_integration.make_task_description(config, tasks)
gecko_taskgraph.transforms.beetmover_integration.make_task_worker(config, jobs)
gecko_taskgraph.transforms.beetmover_integration.remove_name(config, tasks)

gecko_taskgraph.transforms.beetmover_langpack_checksums module

Transform release-beetmover-langpack-checksums into an actual task description.

class gecko_taskgraph.transforms.beetmover_langpack_checksums.BeetmoverChecksumsDescriptionSchema(*, attributes: dict[str, object] | None, label: str | None = None, treeherder: TreeherderSchema | None = None, locale: str | None = None, dependencies: dict[str, object] | None = None, task_from: str | None = None, shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None = None, shipping_product: str | None = None, run_on_repo_type: list[Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
label: str | None
locale: str | None
run_on_repo_type: list[Literal['git', 'hg']] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
shipping_product: str | None
task_from: str | None
treeherder: TreeherderSchema | None
gecko_taskgraph.transforms.beetmover_langpack_checksums.make_beetmover_checksums_description(config, jobs)
gecko_taskgraph.transforms.beetmover_langpack_checksums.make_beetmover_checksums_worker(config, jobs)
gecko_taskgraph.transforms.beetmover_langpack_checksums.remove_name(config, jobs)

gecko_taskgraph.transforms.beetmover_push_to_release module

Transform the beetmover-push-to-release task into a task description.

class gecko_taskgraph.transforms.beetmover_push_to_release.BeetmoverPushToReleaseDescriptionSchema(*, name: str, product: str, treeherder_platform: str, attributes: dict[str, object] | None = None, task_from: str | None = None, run: dict[str, object] | None = None, run_on_projects: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None = None, run_on_repo_type: list[~typing.Literal['git', 'hg']] | None = None, dependencies: dict[str, str | ~taskgraph.util.schema.TaskRefTypeSchema] | None = None, index: dict[str, str] | None = None, routes: list[str] | None = None, shipping_phase: ~typing.Literal['build', 'promote', 'push', 'ship'] | None, shipping_product: str | None, extra: dict[str, object] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, str | TaskRefTypeSchema] | None
extra: dict[str, object] | None
index: dict[str, str] | None
name: str
product: str
routes: list[str] | None
run: dict[str, object] | None
run_on_projects: OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None
run_on_repo_type: list[Literal['git', 'hg']] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
shipping_product: str | None
task_from: str | None
treeherder_platform: str
gecko_taskgraph.transforms.beetmover_push_to_release.make_beetmover_push_to_release_description(config, jobs)
gecko_taskgraph.transforms.beetmover_push_to_release.make_beetmover_push_to_release_worker(config, jobs)

gecko_taskgraph.transforms.beetmover_repackage module

Transform the beetmover task into an actual task description.

class gecko_taskgraph.transforms.beetmover_repackage.BeetmoverDescriptionSchema(*, label: str, dependencies: dict[str, object] | None, treeherder: TreeherderSchema | None = None, attributes: dict[str, object] | None = None, locale: str | None = None, shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None, task_from: str | None = None, run_on_repo_type: list[Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
label: str
locale: str | None
run_on_repo_type: list[Literal['git', 'hg']] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
task_from: str | None
treeherder: TreeherderSchema | None
gecko_taskgraph.transforms.beetmover_repackage.convert_deps(config, jobs)
gecko_taskgraph.transforms.beetmover_repackage.gather_required_signoffs(config, jobs)
gecko_taskgraph.transforms.beetmover_repackage.generate_partials_upstream_artifacts(job, artifacts, platform, locale=None)
gecko_taskgraph.transforms.beetmover_repackage.get_label_by_suffix(labels: list, suffix: str)

Given list of labels, returns the label with provided suffix Raises exception if more than one label is found.

Parameters:
  • labels (list) – List of labels

  • suffix (str) – Suffix for the desired label

Returns

str: The desired label

gecko_taskgraph.transforms.beetmover_repackage.make_partials_artifacts(config, jobs)
gecko_taskgraph.transforms.beetmover_repackage.make_task_description(config, jobs)
gecko_taskgraph.transforms.beetmover_repackage.make_task_worker(config, jobs)
gecko_taskgraph.transforms.beetmover_repackage.remove_name(config, jobs)
gecko_taskgraph.transforms.beetmover_repackage.strip_unwanted_langpacks_from_worker(config, jobs)

Strips out langpacks where we didn’t sign them.

This explicitly deletes langpacks from upstream artifacts and from artifact-maps. Due to limitations in declarative artifacts, doing this was our easiest way right now.

gecko_taskgraph.transforms.beetmover_repackage_l10n module

Transform the signing task into an actual task description.

gecko_taskgraph.transforms.beetmover_repackage_l10n.make_beetmover_description(config, jobs)

gecko_taskgraph.transforms.beetmover_repackage_partner module

Transform the beetmover task into an actual task description.

class gecko_taskgraph.transforms.beetmover_repackage_partner.BeetmoverDescriptionSchema(*, label: str | None = None, partner_path: str, extra: object | None = None, attributes: dict[str, object] | None = None, dependencies: dict[str, object] | None = None, shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None, shipping_product: str | None = None, priority: str | None = None, task_from: str | None = None, run_on_repo_type: list[Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
extra: object | None
label: str | None
partner_path: str
priority: str | None
run_on_repo_type: list[Literal['git', 'hg']] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
shipping_product: str | None
task_from: str | None
gecko_taskgraph.transforms.beetmover_repackage_partner.generate_upstream_artifacts(job, build_task_ref, repackage_task_ref, repackage_signing_task_ref, platform, repack_id, partner_path, repack_stub_installer=False)
gecko_taskgraph.transforms.beetmover_repackage_partner.make_task_description(config, jobs)
gecko_taskgraph.transforms.beetmover_repackage_partner.make_task_worker(config, jobs)
gecko_taskgraph.transforms.beetmover_repackage_partner.populate_scopes_and_worker_type(config, jobs)
gecko_taskgraph.transforms.beetmover_repackage_partner.remove_name(config, jobs)

gecko_taskgraph.transforms.beetmover_repackage_rpm module

Transform the beetmover-repackage-rpm task into an actual task description.

class gecko_taskgraph.transforms.beetmover_repackage_rpm.BeetmoverDescriptionSchema(*, attributes: dict[str, object] | None, dependencies: dict[str, object] | None, label: str, name: str, shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None, task_from: str | None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
label: str
name: str
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
task_from: str | None
gecko_taskgraph.transforms.beetmover_repackage_rpm.make_beetmover_rpm_task(config, jobs)

gecko_taskgraph.transforms.beetmover_rpm module

gecko_taskgraph.transforms.beetmover_rpm.beetmover_rpm(config, tasks)

gecko_taskgraph.transforms.beetmover_source module

Transform the beetmover-source task to also append build as dependency

gecko_taskgraph.transforms.beetmover_source.remove_build_dependency_in_beetmover_source(config, jobs)

gecko_taskgraph.transforms.beetmover_source_checksums module

Transform release-beetmover-source-checksums into an actual task description.

class gecko_taskgraph.transforms.beetmover_source_checksums.BeetmoverChecksumsDescriptionSchema(*, label: str | None = None, treeherder: TreeherderSchema | None = None, locale: str | None = None, shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None = None, shipping_product: str | None = None, attributes: dict[str, object] | None = None, dependencies: dict[str, object] | None = None, task_from: str | None = None, run_on_repo_type: list[Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
label: str | None
locale: str | None
run_on_repo_type: list[Literal['git', 'hg']] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
shipping_product: str | None
task_from: str | None
treeherder: TreeherderSchema | None
gecko_taskgraph.transforms.beetmover_source_checksums.make_beetmover_checksums_description(config, jobs)
gecko_taskgraph.transforms.beetmover_source_checksums.make_beetmover_checksums_worker(config, jobs)
gecko_taskgraph.transforms.beetmover_source_checksums.remove_name(config, jobs)

gecko_taskgraph.transforms.bootstrap module

class gecko_taskgraph.transforms.bootstrap.BootstrapSchema(*, name: str, image: str | InTreeImageSchema, pre_commands: list[str], task_from: str | None = None, run_on_repo_type: list[Literal['git', 'hg']] | None = None)

Bases: Schema

image: str | InTreeImageSchema
name: str
pre_commands: list[str]
run_on_repo_type: list[Literal['git', 'hg']] | None
task_from: str | None
class gecko_taskgraph.transforms.bootstrap.InTreeImageSchema(in_tree: str)

Bases: Schema

in_tree: str
gecko_taskgraph.transforms.bootstrap.bootstrap_tasks(config, tasks)

gecko_taskgraph.transforms.bouncer_aliases module

Add from parameters.yml into bouncer submission tasks.

gecko_taskgraph.transforms.bouncer_aliases.craft_bouncer_entries(config, job)
gecko_taskgraph.transforms.bouncer_aliases.make_task_worker(config, jobs)

gecko_taskgraph.transforms.bouncer_check module

gecko_taskgraph.transforms.bouncer_check.add_command(config, jobs)
gecko_taskgraph.transforms.bouncer_check.add_previous_versions(config, jobs)
gecko_taskgraph.transforms.bouncer_check.command_to_string(config, jobs)

Convert command to string to make it work properly with run-task

gecko_taskgraph.transforms.bouncer_check.handle_keyed_by(config, jobs)

Resolve fields that can be keyed by project, etc.

gecko_taskgraph.transforms.bouncer_locations module

gecko_taskgraph.transforms.bouncer_locations.make_task_worker(config, jobs)

gecko_taskgraph.transforms.bouncer_submission module

Add from parameters.yml into bouncer submission tasks.

class gecko_taskgraph.transforms.bouncer_submission.InvalidSubstitution(error: str)

Bases: object

gecko_taskgraph.transforms.bouncer_submission.craft_bouncer_entries(config, job)
gecko_taskgraph.transforms.bouncer_submission.craft_bouncer_product_name(product, bouncer_product, current_version, current_build_number=None, previous_version=None)
gecko_taskgraph.transforms.bouncer_submission.craft_paths_per_bouncer_platform(product, bouncer_product, bouncer_platforms, current_version, current_build_number, previous_version=None)
gecko_taskgraph.transforms.bouncer_submission.craft_ssl_only(bouncer_product, project)
gecko_taskgraph.transforms.bouncer_submission.make_task_worker(config, jobs)
gecko_taskgraph.transforms.bouncer_submission.split_build_data(version)

gecko_taskgraph.transforms.bouncer_submission_partners module

Add from parameters.yml into bouncer submission tasks.

gecko_taskgraph.transforms.bouncer_submission_partners.craft_bouncer_entries(config, job)
gecko_taskgraph.transforms.bouncer_submission_partners.craft_partner_bouncer_product_name(product, bouncer_product, current_version, partner, sub_config)
gecko_taskgraph.transforms.bouncer_submission_partners.craft_paths_per_bouncer_platform(product, bouncer_product, bouncer_platforms, current_version, partner, sub_config)
gecko_taskgraph.transforms.bouncer_submission_partners.craft_ssl_only(bouncer_product)
gecko_taskgraph.transforms.bouncer_submission_partners.make_task_worker(config, jobs)

gecko_taskgraph.transforms.build module

Apply some defaults and minor modifications to the jobs defined in the build kind.

gecko_taskgraph.transforms.build.add_signing_artifacts(config, jobs)

Add signing artifacts to macOS build jobs.

gecko_taskgraph.transforms.build.enable_full_crashsymbols(config, jobs)

Enable full crashsymbols on jobs with ‘enable-full-crashsymbols’ set to True and on release branches, or on try

gecko_taskgraph.transforms.build.mozconfig(config, jobs)
gecko_taskgraph.transforms.build.resolve_keys(config, jobs)
gecko_taskgraph.transforms.build.resolve_shipping_product(config, jobs)
gecko_taskgraph.transforms.build.set_ccov_attribute(config, jobs)
gecko_taskgraph.transforms.build.set_defaults(config, jobs)

Set defaults, including those that differ per worker implementation

gecko_taskgraph.transforms.build.set_expiry(config, jobs)
gecko_taskgraph.transforms.build.stub_installer(config, jobs)
gecko_taskgraph.transforms.build.update_channel(config, jobs)
gecko_taskgraph.transforms.build.use_artifact(config, jobs)
gecko_taskgraph.transforms.build.use_profile_data(config, jobs)

gecko_taskgraph.transforms.build_attrs module

gecko_taskgraph.transforms.build_attrs.set_build_attributes(config, jobs)

Set the build_platform and build_type attributes based on the job name. Although not all jobs using this transform are actual “builds”, the try option syntax treats them as such, and this arranges the attributes appropriately for that purpose.

gecko_taskgraph.transforms.build_lints module

Apply some defaults and minor modifications to the jobs defined in the build kind.

gecko_taskgraph.transforms.build_lints.check_mozharness_perfherder_options(config, jobs)

Verify that multiple jobs don’t use the same perfherder bucket.

Build jobs record perfherder metrics by default. Perfherder metrics go to a bucket derived by the platform by default. The name can further be customized by the presence of “extra options” either defined in mozharness sub-configs or in an environment variable.

This linter tries to verify that no 2 jobs will send Perfherder metrics to the same bucket by looking for jobs not defining extra options when their platform or mozharness config are otherwise similar.

gecko_taskgraph.transforms.build_schedules module

gecko_taskgraph.transforms.build_schedules.set_build_schedules_optimization(config, tasks)

Set the build optimization based on the build platform.

gecko_taskgraph.transforms.build_signing module

Transform the signing task into an actual task description.

gecko_taskgraph.transforms.build_signing.add_signed_routes(config, jobs)

Add routes corresponding to the routes of the build task this corresponds to, with .signed inserted, for all gecko.v2 routes

gecko_taskgraph.transforms.build_signing.define_upstream_artifacts(config, jobs)

gecko_taskgraph.transforms.cached_tasks module

gecko_taskgraph.transforms.cached_tasks.bump_priority(config, tasks)

Bump priority of cached tasks on autoland from low to medium to avoid breakage for developers

gecko_taskgraph.transforms.cached_tasks.cache_task(config, tasks)
gecko_taskgraph.transforms.cached_tasks.format_task_digest(cached_task)
gecko_taskgraph.transforms.cached_tasks.order_tasks(config, tasks)

Iterate image tasks in an order where parent tasks come first.

gecko_taskgraph.transforms.chunk_partners module

Chunk the partner repack tasks by subpartner and locale

gecko_taskgraph.transforms.chunk_partners.chunk_partners(config, jobs)

gecko_taskgraph.transforms.code_review module

Add soft dependencies and configuration to code-review tasks.

gecko_taskgraph.transforms.code_review.add_dependencies(config, jobs)
gecko_taskgraph.transforms.code_review.add_github_config(config, jobs)
gecko_taskgraph.transforms.code_review.add_phabricator_config(config, jobs)

gecko_taskgraph.transforms.condprof module

This transform constructs tasks generate conditioned profiles from the condprof/kind.yml file

class gecko_taskgraph.transforms.condprof.DiffDescriptionSchema(*, scenarios: list[str] | None = None, description: str = None, dependencies: dict[str, object] | None = None, fetches: dict[str, list[str | ~gecko_taskgraph.transforms.job.FetchArtifactSchema]] | None = None, index: ~gecko_taskgraph.transforms.task.IndexSchema | None = None, task_from: str | None = None, name: str | None = None, run: ~gecko_taskgraph.transforms.job.JobRunSchema = None, run_on_projects: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None = None, run_on_repo_type: list[~typing.Literal['git', 'hg']] | None = None, scopes: list[str] | None = None, treeherder: ~gecko_taskgraph.transforms.task.TreeherderSchema | None = None, use_python: ~typing.Literal['system', 'default'] | str | None = None, worker: dict | None = None, worker_type: str | None = None)

Bases: Schema

dependencies: dict[str, object] | None
description: str
fetches: dict[str, list[str | FetchArtifactSchema]] | None
index: IndexSchema | None
name: str | None
run: JobRunSchema
run_on_projects: OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None
run_on_repo_type: list[Literal['git', 'hg']] | None
scenarios: list[str] | None
scopes: list[str] | None
task_from: str | None
treeherder: TreeherderSchema | None
use_python: Literal['system', 'default'] | str | None
worker: dict | None
worker_type: str | None
gecko_taskgraph.transforms.condprof.generate_scenarios(config, tasks)

gecko_taskgraph.transforms.copy_cached_dep module

gecko_taskgraph.transforms.copy_cached_dep.copy_cached_dep(config, tasks)

Ensure this task is replaced anytime the primary dep is.

gecko_taskgraph.transforms.custom_car module

gecko_taskgraph.transforms.custom_car.add_custom_car_optimization(config, tasks)

gecko_taskgraph.transforms.diffoscope module

This transform construct tasks to perform diffs between builds, as defined in kind.yml

class gecko_taskgraph.transforms.diffoscope.DiffDescriptionSchema(*, name: str, tier: int, symbol: str, task_from: str | None = None, original: str | ~gecko_taskgraph.transforms.diffoscope.IndexSearchSchema, new: str | ~gecko_taskgraph.transforms.diffoscope.IndexSearchSchema, args: str | None = None, extra_args: str | None = None, fail_on_diff: bool | None = None, artifact: str | None = None, unpack: bool | None = None, pre_diff_commands: list[str] | None = None, run_on_projects: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None = None, run_on_repo_type: list[~typing.Literal['git', 'hg']] | None = None, optimization: ~gecko_taskgraph.optimize.schema.OptimizationSchema = None)

Bases: Schema

args: str | None
artifact: str | None
extra_args: str | None
fail_on_diff: bool | None
name: str
new: str | IndexSearchSchema
optimization: OptimizationSchema
original: str | IndexSearchSchema
pre_diff_commands: list[str] | None
run_on_projects: OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None
run_on_repo_type: list[Literal['git', 'hg']] | None
symbol: str
task_from: str | None
tier: int
unpack: bool | None
class gecko_taskgraph.transforms.diffoscope.IndexSearchSchema(index_search: str)

Bases: Schema

gecko_taskgraph.transforms.diffoscope.fill_template(config, tasks)

gecko_taskgraph.transforms.docker_image module

class gecko_taskgraph.transforms.docker_image.DockerImageSchema(*, name: str, parent: str | None = None, symbol: str, task_from: str | None = None, args: dict[str, str] | None = None, definition: str | None = None, packages: list[str] | None = None, arch: str | None = None, index: IndexSchema | None = None, cache: bool | None = None, run_on_repo_type: list[Literal['git', 'hg']] | None = None)

Bases: Schema

arch: str | None
args: dict[str, str] | None
cache: bool | None
definition: str | None
index: IndexSchema | None
name: str
packages: list[str] | None
parent: str | None
run_on_repo_type: list[Literal['git', 'hg']] | None
symbol: str
task_from: str | None
gecko_taskgraph.transforms.docker_image.fill_template(config, tasks)

gecko_taskgraph.transforms.fetch module

class gecko_taskgraph.transforms.fetch.FetchBuilder(schema, builder)

Bases: object

class gecko_taskgraph.transforms.fetch.FetchSchema(*, name: str, task_from: str | None = None, description: str, fetch_alias: str | None = None, artifact_prefix: str | None = None, attributes: dict[str, object] | None = None, run_on_repo_type: list[Literal['git', 'hg']] | None = None, fetch: FetchTypeSchema)

Bases: Schema

artifact_prefix: str | None
attributes: dict[str, object] | None
description: str
fetch: FetchTypeSchema
fetch_alias: str | None
name: str
run_on_repo_type: list[Literal['git', 'hg']] | None
task_from: str | None
class gecko_taskgraph.transforms.fetch.FetchTypeSchema(*, type: str)

Bases: Schema

type: str
gecko_taskgraph.transforms.fetch.configure_fetch(config, typ, name, fetch)
gecko_taskgraph.transforms.fetch.create_cft_canary_fetch_task(config, name, fetch)
gecko_taskgraph.transforms.fetch.create_chromium_fetch_task(config, name, fetch)
gecko_taskgraph.transforms.fetch.create_fetch_url_task(config, name, fetch)
gecko_taskgraph.transforms.fetch.create_git_fetch_task(config, name, fetch)
gecko_taskgraph.transforms.fetch.create_onnxruntime_deps_fetch_task(config, name, fetch)
gecko_taskgraph.transforms.fetch.fetch_builder(name, schema)
gecko_taskgraph.transforms.fetch.make_task(config, jobs)
gecko_taskgraph.transforms.fetch.process_fetch_job(config, jobs)

gecko_taskgraph.transforms.final_verify module

Transform the beetmover task into an actual task description.

gecko_taskgraph.transforms.final_verify.add_command(config, tasks)

gecko_taskgraph.transforms.geckodriver_mac_notarization module

Transform the geckodriver notarization task into an actual task description.

class gecko_taskgraph.transforms.geckodriver_mac_notarization.GeckodriverNotarizationDescriptionSchema(*, label: str | None = None, treeherder: TreeherderSchema | None = None, shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None = None, worker: TaskWorkerSchema | None = None, worker_type: str | None = None, task_from: str | None = None, attributes: dict[str, object] | None = None, dependencies: dict[str, object] | None = None, run_on_repo_type: list[Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
label: str | None
run_on_repo_type: list[Literal['git', 'hg']] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
task_from: str | None
treeherder: TreeherderSchema | None
worker: TaskWorkerSchema | None
worker_type: str | None
gecko_taskgraph.transforms.geckodriver_mac_notarization.geckodriver_mac_notarization(config, jobs)
gecko_taskgraph.transforms.geckodriver_mac_notarization.remove_name(config, jobs)

gecko_taskgraph.transforms.geckodriver_signing module

Transform the repackage signing task into an actual task description.

class gecko_taskgraph.transforms.geckodriver_signing.RepackageSigningDescriptionSchema(*, label: str | None = None, attributes: dict[str, object] | None = None, dependencies: dict[str, object] | None = None, treeherder: TreeherderSchema | None = None, shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None = None, task_from: str | None = None, run_on_repo_type: list[Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
label: str | None
run_on_repo_type: list[Literal['git', 'hg']] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
task_from: str | None
treeherder: TreeherderSchema | None
gecko_taskgraph.transforms.geckodriver_signing.make_signing_description(config, jobs)
gecko_taskgraph.transforms.geckodriver_signing.remove_name(config, jobs)

gecko_taskgraph.transforms.hardened_signing module

Transform the signing task into an actual task description.

gecko_taskgraph.transforms.hardened_signing.add_hardened_sign_config(config, jobs)
gecko_taskgraph.transforms.hardened_signing.add_provisioning_profile_config(config, jobs)
gecko_taskgraph.transforms.hardened_signing.add_upstream_signing_resources(config, jobs)

Add the upstream signing resources to the job payload

gecko_taskgraph.transforms.l10n module

Do transforms specific to l10n kind

class gecko_taskgraph.transforms.l10n.InTreeDockerImageSchema(in_tree: str)

Bases: Schema

in_tree: str
class gecko_taskgraph.transforms.l10n.L10nDescriptionSchema(*, name: str, build_platform: str, run_time: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1c6e1910>], ignore_locales: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1c6e1950>], mozharness: ~gecko_taskgraph.transforms.l10n.MozharnessSchema, index: ~gecko_taskgraph.transforms.l10n.L10nIndexSchema | None = None, description: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1c6e1b90>], run_on_projects: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None = None, run_on_repo_type: list[~typing.Literal['git', 'hg']] | None = None, worker_type: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1c6e1e50>], locales_file: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1c6e1fd0>], tooltool: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1bece090>], docker_image: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1becfb10>] | None = None, fetches: dict[str, object] | None = None, secrets: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1becc490>] | None = None, treeherder: ~gecko_taskgraph.transforms.l10n.L10nTreeherderSchema, env: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1becc9d0>] | None = None, locales_per_chunk: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1becd1d0>] | None = None, dependencies: dict[str, str] | None = None, when: ~gecko_taskgraph.transforms.l10n.WhenSchema | None = None, attributes: dict[str, object] | None = None, extra: dict[str, object] | None = None, shipping_product: str | None = None, shipping_phase: ~typing.Literal['build', 'promote', 'push', 'ship'] | None = None, task_from: str | None = None)

Bases: Schema

attributes: dict[str, object] | None
build_platform: str
dependencies: dict[str, str] | None
description: OptionallyKeyedBy object at 0x7fbc1c6e1b90>]
docker_image: OptionallyKeyedBy object at 0x7fbc1becfb10>] | None
env: OptionallyKeyedBy object at 0x7fbc1becc9d0>] | None
extra: dict[str, object] | None
fetches: dict[str, object] | None
ignore_locales: OptionallyKeyedBy object at 0x7fbc1c6e1950>]
index: L10nIndexSchema | None
locales_file: OptionallyKeyedBy object at 0x7fbc1c6e1fd0>]
locales_per_chunk: OptionallyKeyedBy object at 0x7fbc1becd1d0>] | None
mozharness: MozharnessSchema
name: str
run_on_projects: OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None
run_on_repo_type: list[Literal['git', 'hg']] | None
run_time: OptionallyKeyedBy object at 0x7fbc1c6e1910>]
secrets: OptionallyKeyedBy object at 0x7fbc1becc490>] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
shipping_product: str | None
task_from: str | None
tooltool: OptionallyKeyedBy object at 0x7fbc1bece090>]
treeherder: L10nTreeherderSchema
when: WhenSchema | None
worker_type: OptionallyKeyedBy object at 0x7fbc1c6e1e50>]
class gecko_taskgraph.transforms.l10n.L10nIndexSchema(*, product: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1c2f8f90>], job_name: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1c2f9b10>], type: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1c7c6210>] | None = None)

Bases: Schema

job_name: OptionallyKeyedBy object at 0x7fbc1c2f9b10>]
product: OptionallyKeyedBy object at 0x7fbc1c2f8f90>]
type: OptionallyKeyedBy object at 0x7fbc1c7c6210>] | None
class gecko_taskgraph.transforms.l10n.L10nTreeherderSchema(*, platform: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1c2bddd0>], symbol: str, tier: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1bf95c50>])

Bases: Schema

platform: OptionallyKeyedBy object at 0x7fbc1c2bddd0>]
symbol: str
tier: OptionallyKeyedBy object at 0x7fbc1bf95c50>]
class gecko_taskgraph.transforms.l10n.MozharnessSchema(*, script: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1b8740d0>], config: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1b3dea50>], config_paths: list[str] | None = None, options: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1c3d4510>] | None = None, actions: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1c0f9810>], comm_checkout: bool | None = None)

Bases: Schema

actions: OptionallyKeyedBy object at 0x7fbc1c0f9810>]
comm_checkout: bool | None
config: OptionallyKeyedBy object at 0x7fbc1b3dea50>]
config_paths: list[str] | None
options: OptionallyKeyedBy object at 0x7fbc1c3d4510>] | None
script: OptionallyKeyedBy object at 0x7fbc1b8740d0>]
class gecko_taskgraph.transforms.l10n.WhenSchema(*, files_changed: list[str] | None = None)

Bases: Schema

files_changed: list[str] | None
gecko_taskgraph.transforms.l10n.add_macos_signing_artifacts(config, jobs)
gecko_taskgraph.transforms.l10n.all_locales_attribute(config, jobs)
gecko_taskgraph.transforms.l10n.chunk_locales(config, jobs)

Utilizes chunking for l10n stuff

gecko_taskgraph.transforms.l10n.copy_in_useful_magic(config, jobs)
gecko_taskgraph.transforms.l10n.gather_required_signoffs(config, jobs)
gecko_taskgraph.transforms.l10n.handle_artifact_prefix(config, jobs)

Resolve artifact_prefix in env vars

gecko_taskgraph.transforms.l10n.handle_keyed_by(config, jobs)

Resolve fields that can be keyed by platform, etc.

gecko_taskgraph.transforms.l10n.make_job_description(config, jobs)
gecko_taskgraph.transforms.l10n.parse_locales_file(locales_file, platform=None)

Parse the passed locales file for a list of locales.

gecko_taskgraph.transforms.l10n.remove_repackage_dependency(config, jobs)
gecko_taskgraph.transforms.l10n.set_extra_config(config, jobs)
gecko_taskgraph.transforms.l10n.setup_name(config, jobs)
gecko_taskgraph.transforms.l10n.stub_installer(config, jobs)

gecko_taskgraph.transforms.mac_dummy module

Add dependencies to dummy macosx64 tasks.

gecko_taskgraph.transforms.mac_dummy.add_dependencies(config, jobs)

gecko_taskgraph.transforms.mac_notarization module

Transform mac notarization tasks

gecko_taskgraph.transforms.mac_notarization.only_level_3_notarization(config, jobs)

Filter out any notarization jobs that are not level 3

gecko_taskgraph.transforms.mar_signing module

Transform the {partials,mar}-signing task into an actual task description.

gecko_taskgraph.transforms.mar_signing.generate_complete_artifacts(job, kind)
gecko_taskgraph.transforms.mar_signing.generate_partials_artifacts(job, release_history, platform, upstream_kind, locale=None)
gecko_taskgraph.transforms.mar_signing.make_task_description(config, jobs)

gecko_taskgraph.transforms.mark_as_merged module

gecko_taskgraph.transforms.mark_as_merged.make_task_description(config, jobs)

gecko_taskgraph.transforms.maybe_release module

gecko_taskgraph.transforms.maybe_release.make_task_description(config, jobs)

gecko_taskgraph.transforms.merge_automation module

Transform the update generation task into an actual task description.

gecko_taskgraph.transforms.merge_automation.add_payload_config(config, tasks)
gecko_taskgraph.transforms.merge_automation.handle_keyed_by(config, tasks)

Resolve fields that can be keyed by platform, etc.

gecko_taskgraph.transforms.merge_automation.update_labels(config, tasks)

gecko_taskgraph.transforms.name_sanity module

Generate labels for tasks without names, consistently. Uses attributes from primary dependency.

gecko_taskgraph.transforms.name_sanity.make_label(config, jobs)

Generate a sane label for a new task constructed from a dependency Using attributes from the dependent job and the current task kind

gecko_taskgraph.transforms.openh264 module

gecko_taskgraph.transforms.openh264.set_openh264_version(config, jobs)

gecko_taskgraph.transforms.openh264_signing module

Transform the openh264 signing task into an actual task description.

class gecko_taskgraph.transforms.openh264_signing.SigningDescriptionSchema(*, label: str | None = None, extra: object | None = None, shipping_product: str | None = None, shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None = None, attributes: dict[str, object] | None = None, dependencies: dict[str, object] | None = None, task_from: str | None = None, run_on_repo_type: list[Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
extra: object | None
label: str | None
run_on_repo_type: list[Literal['git', 'hg']] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
shipping_product: str | None
task_from: str | None
gecko_taskgraph.transforms.openh264_signing.make_signing_description(config, jobs)
gecko_taskgraph.transforms.openh264_signing.remove_name(config, jobs)

gecko_taskgraph.transforms.openh264_symbol_upload module

Transform the openh264-symbol-upload task into an actual task description.

gecko_taskgraph.transforms.openh264_symbol_upload.make_symbol_upload_description(config, jobs)

gecko_taskgraph.transforms.partials module

Transform the partials task into an actual task description.

gecko_taskgraph.transforms.partials.identify_desired_signing_keys(project, product)
gecko_taskgraph.transforms.partials.make_task_description(config, jobs)

gecko_taskgraph.transforms.partials_zucchini module

Transform the partials task into an actual task description.

gecko_taskgraph.transforms.partials_zucchini.identify_desired_signing_keys(config)

Determine the signing certificate type to use for MAR validation. It identifies the appropriate signing type based on the release product and configuration parameters, handling special logic for devedition releases.

Parameters:

config – The task graph configuration object containing:

Returns:

The signing type (defined in util/scriptworker.py)

Return type:

str

gecko_taskgraph.transforms.partials_zucchini.make_task_description(config, tasks)

gecko_taskgraph.transforms.partner_attribution module

Transform the partner attribution task into an actual task description.

gecko_taskgraph.transforms.partner_attribution.add_command_arguments(config, tasks)

gecko_taskgraph.transforms.partner_attribution_beetmover module

Transform the beetmover task into an actual task description.

class gecko_taskgraph.transforms.partner_attribution_beetmover.BeetmoverDescriptionSchema(*, task_from: str | None = None, name: str | None = None, attributes: dict[str, object] | None = None, dependencies: dict[str, object] | None = None, depname: str = 'build', label: str | None = None, partner_path: str, extra: object | None = None, shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None, shipping_product: str | None = None, priority: str | None = None, run_on_repo_type: list[Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
depname: str
extra: object | None
label: str | None
name: str | None
partner_path: str
priority: str | None
run_on_repo_type: list[Literal['git', 'hg']] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
shipping_product: str | None
task_from: str | None
gecko_taskgraph.transforms.partner_attribution_beetmover.generate_upstream_artifacts(attribution_task_kind, artifacts, partner_path)
gecko_taskgraph.transforms.partner_attribution_beetmover.make_task_description(config, jobs)
gecko_taskgraph.transforms.partner_attribution_beetmover.make_task_worker(config, jobs)
gecko_taskgraph.transforms.partner_attribution_beetmover.populate_scopes_and_upstream_artifacts(config, jobs)

gecko_taskgraph.transforms.partner_repack module

Transform the partner repack task into an actual task description.

gecko_taskgraph.transforms.partner_repack.add_command_arguments(config, tasks)
gecko_taskgraph.transforms.partner_repack.add_macos_signing_artifacts(config, tasks)
gecko_taskgraph.transforms.partner_repack.make_label(config, tasks)
gecko_taskgraph.transforms.partner_repack.populate_repack_manifests_url(config, tasks)
gecko_taskgraph.transforms.partner_repack.remove_mac_dependency(config, tasks)

Remove mac dependency depending on current level to accomodate for mac notarization not running on level 1

gecko_taskgraph.transforms.partner_repack.skip_unnecessary_platforms(config, tasks)

gecko_taskgraph.transforms.partner_signing module

Transform the signing task into an actual task description.

gecko_taskgraph.transforms.partner_signing.define_upstream_artifacts(config, jobs)
gecko_taskgraph.transforms.partner_signing.set_mac_label(config, jobs)

gecko_taskgraph.transforms.per_platform_dummy module

Transform the repackage task into an actual task description.

gecko_taskgraph.transforms.per_platform_dummy.one_task_per_product_and_platform(config, jobs)

gecko_taskgraph.transforms.perftest module

This transform passes options from mach perftest to the corresponding task.

class gecko_taskgraph.transforms.perftest.PerftestDescriptionSchema(*, perftest: list[list[str]] | None = None, perftest_metrics: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc18394290>] | None = None, perftest_perfherder_global: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc18394350>] | None = None, perftest_extra_options: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc183959d0>] | None = None, perftest_btime_variants: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc19d91350>] | None = None)

Bases: Schema

perftest: list[list[str]] | None
perftest_btime_variants: OptionallyKeyedBy object at 0x7fbc19d91350>] | None
perftest_extra_options: OptionallyKeyedBy object at 0x7fbc183959d0>] | None
perftest_metrics: OptionallyKeyedBy object at 0x7fbc18394290>] | None
perftest_perfherder_global: OptionallyKeyedBy object at 0x7fbc18394350>] | None
gecko_taskgraph.transforms.perftest.apply_perftest_tier_optimization(config, jobs)
gecko_taskgraph.transforms.perftest.handle_keyed_by_perftest(config, jobs)
gecko_taskgraph.transforms.perftest.hide_cmd_exe_window_on_windows(config, jobs)
gecko_taskgraph.transforms.perftest.parse_perftest_metrics(config, jobs)

Parse the metrics into a dictionary immediately.

This way we can modify the extraOptions field (and others) entry through the transforms that come later. The metrics aren’t formatted until the end of the transforms.

gecko_taskgraph.transforms.perftest.pass_perftest_options(config, jobs)
gecko_taskgraph.transforms.perftest.set_perftest_attributes(config, jobs)
gecko_taskgraph.transforms.perftest.setup_autoland_retriggers(config, jobs)
gecko_taskgraph.transforms.perftest.setup_gecko_profile_from_try_config(config, jobs)

Apply gecko-profile settings when –gecko-profile is used with ./mach try fuzzy.

This mimics the logic from the gecko_profile action but applies it during task generation instead of as a post-hoc action.

gecko_taskgraph.transforms.perftest.setup_http3_tests(config, jobs)
gecko_taskgraph.transforms.perftest.setup_perftest_browsertime_variants(config, jobs)
gecko_taskgraph.transforms.perftest.setup_perftest_extra_options(config, jobs)
gecko_taskgraph.transforms.perftest.setup_perftest_metrics(config, jobs)
gecko_taskgraph.transforms.perftest.setup_perftest_test_date(config, jobs)
gecko_taskgraph.transforms.perftest.setup_regression_detector(config, jobs)
gecko_taskgraph.transforms.perftest.split_btime_variants(config, jobs)
gecko_taskgraph.transforms.perftest.split_perftest_variants(config, jobs)
gecko_taskgraph.transforms.perftest.split_tests(config, jobs)

gecko_taskgraph.transforms.python_update module

Transform the repo-update task into an actual task description.

gecko_taskgraph.transforms.python_update.resolve_keys(config, tasks)

gecko_taskgraph.transforms.release module

Transforms for release tasks

gecko_taskgraph.transforms.release.run_on_releases(config, jobs)

Filter out jobs with run-on-releases set, and that don’t match the release_type paramater.

gecko_taskgraph.transforms.release_beetmover_signed_addons module

Transform the beetmover task into an actual task description.

class gecko_taskgraph.transforms.release_beetmover_signed_addons.BeetmoverDescriptionSchema(*, attributes: dict[str, object] | None, label: str | None = None, treeherder: ~gecko_taskgraph.transforms.task.TreeherderSchema | None = None, description: str, worker_type: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc18327050>], run_on_projects: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None, locale: str | None = None, shipping_phase: ~typing.Literal['build', 'promote', 'push', 'ship'] | None = None, task_from: str | None = None, dependencies: dict[str, object] | None = None, run_on_repo_type: list[~typing.Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
description: str
label: str | None
locale: str | None
run_on_projects: OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None
run_on_repo_type: list[Literal['git', 'hg']] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
task_from: str | None
treeherder: TreeherderSchema | None
worker_type: OptionallyKeyedBy object at 0x7fbc18327050>]
gecko_taskgraph.transforms.release_beetmover_signed_addons.make_task_description(config, jobs)
gecko_taskgraph.transforms.release_beetmover_signed_addons.make_task_worker(config, jobs)
gecko_taskgraph.transforms.release_beetmover_signed_addons.remove_name(config, jobs)
gecko_taskgraph.transforms.release_beetmover_signed_addons.resolve_keys(config, jobs)
gecko_taskgraph.transforms.release_beetmover_signed_addons.yield_all_platform_jobs(config, jobs)

gecko_taskgraph.transforms.release_deps module

Add dependencies to release tasks.

gecko_taskgraph.transforms.release_deps.add_dependencies(config, jobs)

gecko_taskgraph.transforms.release_flatpak_push module

Transform the release-flatpak-push kind into an actual task description.

class gecko_taskgraph.transforms.release_flatpak_push.PushFlatpakDescriptionSchema(*, name: str, task_from: str | None, dependencies: dict[str, object] | None, description: str, treeherder: ~gecko_taskgraph.transforms.task.TreeherderSchema | None, run_on_projects: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None, worker_type: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1819efd0>], worker: object, scopes: list[str] | None = None, shipping_phase: ~typing.Literal['build', 'promote', 'push', 'ship'] | None, shipping_product: str | None, flathub_scope: str, extra: dict[str, object] | None = None, attributes: dict[str, object] | None = None, run_on_repo_type: list[~typing.Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
description: str
extra: dict[str, object] | None
flathub_scope: str
name: str
run_on_projects: OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None
run_on_repo_type: list[Literal['git', 'hg']] | None
scopes: list[str] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
shipping_product: str | None
task_from: str | None
treeherder: TreeherderSchema | None
worker: object
worker_type: OptionallyKeyedBy object at 0x7fbc1819efd0>]
gecko_taskgraph.transforms.release_flatpak_push.generate_upstream_artifacts(dependencies)
gecko_taskgraph.transforms.release_flatpak_push.make_task_description(config, jobs)

gecko_taskgraph.transforms.release_generate_checksums module

Transform the checksums task into an actual task description.

gecko_taskgraph.transforms.release_generate_checksums.handle_keyed_by(config, jobs)

Resolve fields that can be keyed by project, etc.

gecko_taskgraph.transforms.release_generate_checksums.interpolate(config, jobs)

gecko_taskgraph.transforms.release_generate_checksums_beetmover module

Transform the release-generate-checksums-beetmover task to also append build as dependency

class gecko_taskgraph.transforms.release_generate_checksums_beetmover.ReleaseGenerateChecksumsBeetmoverSchema(*, label: str | None = None, treeherder: TreeherderSchema | None = None, shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None = None, shipping_product: str | None = None, attributes: dict[str, object] | None = None, task_from: str | None = None, dependencies: dict[str, object] | None = None, run_on_repo_type: list[Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
label: str | None
run_on_repo_type: list[Literal['git', 'hg']] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
shipping_product: str | None
task_from: str | None
treeherder: TreeherderSchema | None
gecko_taskgraph.transforms.release_generate_checksums_beetmover.make_task_description(config, jobs)
gecko_taskgraph.transforms.release_generate_checksums_beetmover.make_task_worker(config, jobs)
gecko_taskgraph.transforms.release_generate_checksums_beetmover.remove_name(config, jobs)

gecko_taskgraph.transforms.release_generate_checksums_signing module

Transform the release-generate-checksums-signing task into task description.

class gecko_taskgraph.transforms.release_generate_checksums_signing.ReleaseGenerateChecksumsSigningSchema(*, label: str | None = None, dependencies: dict[str, object] | None = None, attributes: dict[str, object] | None = None, treeherder: TreeherderSchema | None = None, shipping_product: str | None = None, shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None = None, task_from: str | None = None, run_on_repo_type: list[Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
label: str | None
run_on_repo_type: list[Literal['git', 'hg']] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
shipping_product: str | None
task_from: str | None
treeherder: TreeherderSchema | None
gecko_taskgraph.transforms.release_generate_checksums_signing.make_release_generate_checksums_signing_description(config, jobs)
gecko_taskgraph.transforms.release_generate_checksums_signing.remote_name(config, jobs)

gecko_taskgraph.transforms.release_mark_as_shipped module

gecko_taskgraph.transforms.release_mark_as_shipped.make_task_description(config, jobs)

gecko_taskgraph.transforms.release_msix_push module

Transform the release-msix-push kind into an actual task description.

class gecko_taskgraph.transforms.release_msix_push.PushMsixDescriptionSchema(*, name: str, task_from: str | None, dependencies: dict[str, object] | None, description: str, treeherder: ~gecko_taskgraph.transforms.task.TreeherderSchema | None, run_on_projects: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None, worker_type: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1816f990>], worker: object, scopes: list[str] | None = None, shipping_phase: ~typing.Literal['build', 'promote', 'push', 'ship'] | None, shipping_product: str | None, extra: dict[str, object] | None = None, attributes: dict[str, object] | None = None, run_on_repo_type: list[~typing.Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
description: str
extra: dict[str, object] | None
name: str
run_on_projects: OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None
run_on_repo_type: list[Literal['git', 'hg']] | None
scopes: list[str] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
shipping_product: str | None
task_from: str | None
treeherder: TreeherderSchema | None
worker: object
worker_type: OptionallyKeyedBy object at 0x7fbc1816f990>]
gecko_taskgraph.transforms.release_msix_push.generate_upstream_artifacts(dependencies)
gecko_taskgraph.transforms.release_msix_push.make_task_description(config, jobs)

gecko_taskgraph.transforms.release_notifications module

Add notifications via taskcluster-notify for release tasks

class gecko_taskgraph.transforms.release_notifications.TitleCaseFormatter

Bases: Formatter

Support title formatter for strings

convert_field(value, conversion)
gecko_taskgraph.transforms.release_notifications.add_notifications(config, jobs)

gecko_taskgraph.transforms.release_sign_and_push_langpacks module

Transform the release-sign-and-push task into an actual task description.

class gecko_taskgraph.transforms.release_sign_and_push_langpacks.LangpackSignPushDescriptionSchema(*, label: str, description: str, worker_type: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc19207d50>], worker: ~gecko_taskgraph.transforms.release_sign_and_push_langpacks.WorkerSchema, run_on_projects: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None, scopes: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc184b9750>], shipping_phase: ~typing.Literal['build', 'promote', 'push', 'ship'] | None, task_from: str | None = None, attributes: dict[str, object] | None = None, dependencies: dict[str, object] | None = None, run_on_repo_type: list[~typing.Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
description: str
label: str
run_on_projects: OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None
run_on_repo_type: list[Literal['git', 'hg']] | None
scopes: OptionallyKeyedBy object at 0x7fbc184b9750>]
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
task_from: str | None
worker: WorkerSchema
worker_type: OptionallyKeyedBy object at 0x7fbc19207d50>]
class gecko_taskgraph.transforms.release_sign_and_push_langpacks.WorkerSchema(*, channel: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc18209750>], upstream_artifacts: object | None = None)

Bases: Schema

channel: OptionallyKeyedBy object at 0x7fbc18209750>]
upstream_artifacts: object | None
gecko_taskgraph.transforms.release_sign_and_push_langpacks.copy_attributes(config, jobs)
gecko_taskgraph.transforms.release_sign_and_push_langpacks.filter_out_macos_jobs_but_mac_only_locales(config, jobs)
gecko_taskgraph.transforms.release_sign_and_push_langpacks.generate_upstream_artifacts(upstream_task_ref, locales)
gecko_taskgraph.transforms.release_sign_and_push_langpacks.get_upstream_task_ref(job, expected_kinds)
gecko_taskgraph.transforms.release_sign_and_push_langpacks.make_task_description(config, jobs)
gecko_taskgraph.transforms.release_sign_and_push_langpacks.make_task_worker(config, jobs)
gecko_taskgraph.transforms.release_sign_and_push_langpacks.resolve_keys(config, jobs)
gecko_taskgraph.transforms.release_sign_and_push_langpacks.set_label(config, jobs)

gecko_taskgraph.transforms.release_snap_repackage module

gecko_taskgraph.transforms.release_snap_repackage.format(config, tasks)

Apply format substitution to worker.env and worker.command.

gecko_taskgraph.transforms.release_started module

Add notifications via taskcluster-notify for release tasks

gecko_taskgraph.transforms.release_started.add_notifications(config, jobs)

gecko_taskgraph.transforms.release_update_product_channel_version module

gecko_taskgraph.transforms.release_update_product_channel_version.make_task_worker(config, jobs)

gecko_taskgraph.transforms.repackage module

Transform the repackage task into an actual task description.

class gecko_taskgraph.transforms.repackage.FlatpakSchema(*, name: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc17efb210>], branch: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc17ef8290>])

Bases: Schema

branch: OptionallyKeyedBy object at 0x7fbc17ef8290>]
name: OptionallyKeyedBy object at 0x7fbc17efb210>]
class gecko_taskgraph.transforms.repackage.MozharnessSchema(*, config: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc17f025d0>], config_paths: list[str] | None = None, comm_checkout: bool | None = None, run_as_root: bool | None = None, use_caches: bool | list[str] | None = None)

Bases: Schema

comm_checkout: bool | None
config: OptionallyKeyedBy object at 0x7fbc17f025d0>]
config_paths: list[str] | None
run_as_root: bool | None
use_caches: bool | list[str] | None
class gecko_taskgraph.transforms.repackage.MsixSchema(*, channel: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc17efe2d0>] | None = None, identity_name: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc17efe810>] | None = None, publisher: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc17efdbd0>] | None = None, publisher_display_name: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc17eff850>] | None = None, vendor: str | None = None)

Bases: Schema

channel: OptionallyKeyedBy object at 0x7fbc17efe2d0>] | None
identity_name: OptionallyKeyedBy object at 0x7fbc17efe810>] | None
publisher: OptionallyKeyedBy object at 0x7fbc17efdbd0>] | None
publisher_display_name: OptionallyKeyedBy object at 0x7fbc17eff850>] | None
vendor: str | None
class gecko_taskgraph.transforms.repackage.PackagingDescriptionSchema(*, label: str | None = None, worker_type: str | None = None, worker: object | None = None, attributes: dict[str, object] | None = None, dependencies: dict[str, object] | None = None, treeherder: ~gecko_taskgraph.transforms.task.TreeherderSchema | None = None, locale: str | None = None, routes: list[str] | None = None, extra: dict[str, object] | None = None, fetches: dict[str, list[str | ~gecko_taskgraph.transforms.job.FetchArtifactSchema]] | None = None, run_on_projects: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None = None, run_on_repo_type: list[~typing.Literal['git', 'hg']] | None = None, shipping_product: str | None = None, shipping_phase: ~typing.Literal['build', 'promote', 'push', 'ship'] | None = None, package_formats: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc1ab95790>], msix: ~gecko_taskgraph.transforms.repackage.MsixSchema | None = None, flatpak: ~gecko_taskgraph.transforms.repackage.FlatpakSchema | None = None, mozharness: ~gecko_taskgraph.transforms.repackage.MozharnessSchema, task_from: str | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
extra: dict[str, object] | None
fetches: dict[str, list[str | FetchArtifactSchema]] | None
flatpak: FlatpakSchema | None
label: str | None
locale: str | None
mozharness: MozharnessSchema
msix: MsixSchema | None
package_formats: OptionallyKeyedBy object at 0x7fbc1ab95790>]
routes: list[str] | None
run_on_projects: OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None
run_on_repo_type: list[Literal['git', 'hg']] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
shipping_product: str | None
task_from: str | None
treeherder: TreeherderSchema | None
worker: object | None
worker_type: str | None
gecko_taskgraph.transforms.repackage.copy_in_useful_magic(config, jobs)

Copy attributes from upstream task to be used for keyed configuration.

gecko_taskgraph.transforms.repackage.handle_keyed_by(config, jobs)

Resolve fields that can be keyed by platform, etc, but not msix.* fields that can be keyed by package-format. Such fields are handled specially below.

gecko_taskgraph.transforms.repackage.make_job_description(config, jobs)
gecko_taskgraph.transforms.repackage.make_repackage_description(config, jobs)
gecko_taskgraph.transforms.repackage.remove_name(config, jobs)

gecko_taskgraph.transforms.repackage_l10n module

Transform the repackage task into an actual task description.

gecko_taskgraph.transforms.repackage_l10n.split_locales(config, jobs)

gecko_taskgraph.transforms.repackage_partner module

Transform the repackage task into an actual task description.

class gecko_taskgraph.transforms.repackage_partner.MozharnessSchema(*, config: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc17e53cd0>], config_paths: list[str] | None = None, comm_checkout: bool | None = None)

Bases: Schema

comm_checkout: bool | None
config: OptionallyKeyedBy object at 0x7fbc17e53cd0>]
config_paths: list[str] | None
class gecko_taskgraph.transforms.repackage_partner.PackagingDescriptionSchema(*, label: str | None = None, routes: list[str] | None = None, extra: dict[str, object] | None = None, shipping_product: str | None = None, shipping_phase: ~typing.Literal['build', 'promote', 'push', 'ship'] | None = None, package_formats: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc17e54250>], mozharness: ~gecko_taskgraph.transforms.repackage_partner.MozharnessSchema, priority: str | None = None, task_from: str | None = None, attributes: dict[str, object] | None = None, dependencies: dict[str, object] | None = None, run_on_repo_type: list[~typing.Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
extra: dict[str, object] | None
label: str | None
mozharness: MozharnessSchema
package_formats: OptionallyKeyedBy object at 0x7fbc17e54250>]
priority: str | None
routes: list[str] | None
run_on_repo_type: list[Literal['git', 'hg']] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
shipping_product: str | None
task_from: str | None
gecko_taskgraph.transforms.repackage_partner.copy_in_useful_magic(config, jobs)

Copy attributes from upstream task to be used for keyed configuration.

gecko_taskgraph.transforms.repackage_partner.handle_keyed_by(config, jobs)

Resolve fields that can be keyed by platform, etc.

gecko_taskgraph.transforms.repackage_partner.make_job_description(config, jobs)
gecko_taskgraph.transforms.repackage_partner.make_repackage_description(config, jobs)
gecko_taskgraph.transforms.repackage_partner.remove_name(config, jobs)

gecko_taskgraph.transforms.repackage_routes module

Add indexes to repackage kinds

gecko_taskgraph.transforms.repackage_routes.add_indexes(config, jobs)

gecko_taskgraph.transforms.repackage_rpm_signing module

Transform the repackage-rpm-signing task into an actual task description.

gecko_taskgraph.transforms.repackage_rpm_signing.make_task_description(config, jobs)

gecko_taskgraph.transforms.repackage_set_upstream_mac_kind module

Transform mac notarization tasks

gecko_taskgraph.transforms.repackage_set_upstream_mac_kind.repackage_set_upstream_mac_kind(config, tasks)

Notarization only runs on level 3 If level < 3 then repackage the mac-signing task artifact Exception for debug builds, which will use signed build on level 3

gecko_taskgraph.transforms.repackage_signing module

Transform the repackage signing task into an actual task description.

class gecko_taskgraph.transforms.repackage_signing.RepackageSigningDescriptionSchema(*, label: str | None = None, attributes: dict[str, object] | None = None, dependencies: dict[str, object] | None = None, task_from: str | None = None, treeherder: TreeherderSchema | None = None, shipping_product: str | None = None, shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None = None, run_on_repo_type: list[Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
label: str | None
run_on_repo_type: list[Literal['git', 'hg']] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
shipping_product: str | None
task_from: str | None
treeherder: TreeherderSchema | None
gecko_taskgraph.transforms.repackage_signing.make_repackage_signing_description(config, jobs)
gecko_taskgraph.transforms.repackage_signing.remove_name(config, jobs)

gecko_taskgraph.transforms.repackage_signing_partner module

Transform the repackage signing task into an actual task description.

class gecko_taskgraph.transforms.repackage_signing_partner.RepackageSigningDescriptionSchema(*, label: str | None = None, extra: object | None = None, attributes: dict[str, object] | None = None, dependencies: dict[str, object] | None = None, shipping_product: str | None = None, shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None = None, priority: str | None = None, task_from: str | None = None, run_on_repo_type: list[Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
extra: object | None
label: str | None
priority: str | None
run_on_repo_type: list[Literal['git', 'hg']] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
shipping_product: str | None
task_from: str | None
gecko_taskgraph.transforms.repackage_signing_partner.make_repackage_signing_description(config, jobs)
gecko_taskgraph.transforms.repackage_signing_partner.remove_name(config, jobs)

gecko_taskgraph.transforms.repo_update module

Transform the repo-update task into an actual task description.

gecko_taskgraph.transforms.repo_update.resolve_keys(config, tasks)

gecko_taskgraph.transforms.reprocess_symbols module

Transform the reprocess-symbols task description template, taskcluster/kinds/reprocess-symbols/job-template.yml into an actual task description.

gecko_taskgraph.transforms.reprocess_symbols.fill_template(config, tasks)
gecko_taskgraph.transforms.reprocess_symbols.gather_required_signoffs(config, jobs)

gecko_taskgraph.transforms.resolve_landoscript_keyed_by module

Transform the update generation task into an actual task description.

gecko_taskgraph.transforms.resolve_landoscript_keyed_by.handle_keyed_by(config, tasks)

Resolve fields that can be keyed by platform, etc.

gecko_taskgraph.transforms.reverse_chunk_deps module

Adjust dependencies to not exceed MAX_DEPENDENCIES

gecko_taskgraph.transforms.reverse_chunk_deps.add_dependencies(config, jobs)
gecko_taskgraph.transforms.reverse_chunk_deps.yield_job(orig_job, deps, count)

gecko_taskgraph.transforms.run_pgo_profile module

Apply some defaults and minor modifications to the pgo jobs.

gecko_taskgraph.transforms.run_pgo_profile.run_profile_data(config, jobs)

gecko_taskgraph.transforms.scriptworker module

Transforms for adding appropriate scopes to scriptworker tasks.

gecko_taskgraph.transforms.scriptworker.add_balrog_scopes(config, jobs)

gecko_taskgraph.transforms.scriptworker_canary module

Build a command to run mach release push-scriptworker-canaries.

gecko_taskgraph.transforms.scriptworker_canary.build_command(config, jobs)

gecko_taskgraph.transforms.sentry module

gecko_taskgraph.transforms.sentry.sentry(config, tasks)

Do transforms specific to github-sync tasks.

gecko_taskgraph.transforms.shippable_l10n_signing module

Transform the signing task into an actual task description.

gecko_taskgraph.transforms.shippable_l10n_signing.define_upstream_artifacts(config, jobs)
gecko_taskgraph.transforms.shippable_l10n_signing.make_signing_description(config, jobs)

gecko_taskgraph.transforms.signing module

Transform the signing task into an actual task description.

class gecko_taskgraph.transforms.signing.SigningDescriptionSchema(*, upstream_artifacts: list[UpstreamArtifactSchema], attributes: dict[str, object] | None = None, label: str | None = None, treeherder: TreeherderSchema | None = None, routes: list[str] | None = None, shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None = None, shipping_product: str | None = None, dependencies: dict[str, object] | None = None, extra: dict[str, object] | None = None, repacks_per_chunk: int | None = None, priority: str | None = None, task_from: str | None = None, run_on_repo_type: list[Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
extra: dict[str, object] | None
label: str | None
priority: str | None
repacks_per_chunk: int | None
routes: list[str] | None
run_on_repo_type: list[Literal['git', 'hg']] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
shipping_product: str | None
task_from: str | None
treeherder: TreeherderSchema | None
upstream_artifacts: list[UpstreamArtifactSchema]
class gecko_taskgraph.transforms.signing.UpstreamArtifactSchema(*, task_id: str | TaskRefTypeSchema, task_type: str, paths: list[str], formats: list[str])

Bases: Struct

formats: list[str]
paths: list[str]
task_id: str | TaskRefTypeSchema
task_type: str
gecko_taskgraph.transforms.signing.delete_name(config, jobs)

Delete the ‘name’ key if it exists, we don’t use it.

gecko_taskgraph.transforms.signing.get_locales_description(attributes, default)

Returns the [list] of locales for task description usage

gecko_taskgraph.transforms.signing.make_task_description(config, jobs)

gecko_taskgraph.transforms.snap_test module

gecko_taskgraph.transforms.snap_test.fill_template(config, tasks)

gecko_taskgraph.transforms.source_checksums_signing module

Transform the checksums signing task into an actual task description.

class gecko_taskgraph.transforms.source_checksums_signing.ChecksumsSigningDescriptionSchema(*, label: str | None = None, treeherder: TreeherderSchema | None = None, shipping_product: str | None = None, shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None = None, task_from: str | None = None, attributes: dict[str, object] | None = None, dependencies: dict[str, object] | None = None, run_on_repo_type: list[Literal['git', 'hg']] | None = None)

Bases: Schema

attributes: dict[str, object] | None
dependencies: dict[str, object] | None
label: str | None
run_on_repo_type: list[Literal['git', 'hg']] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
shipping_product: str | None
task_from: str | None
treeherder: TreeherderSchema | None
gecko_taskgraph.transforms.source_checksums_signing.make_checksums_signing_description(config, jobs)
gecko_taskgraph.transforms.source_checksums_signing.remove_name(config, jobs)

gecko_taskgraph.transforms.source_test module

Source-test jobs can run on multiple platforms. These transforms allow jobs with either platform or a list of platforms, and set the appropriate treeherder configuration and attributes for that platform.

class gecko_taskgraph.transforms.source_test.SourceTestDescriptionSchema(*, platform: str | list[str], require_build: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc17a47810>] | None = None, worker_type: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc17f59750>], worker: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc17a47550>], dependencies: dict[str, ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc17a45110>]] | None = None, fetches: dict[str, ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc17ce6050>]] | None = None)

Bases: Schema

dependencies: dict[str, ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc17a45110>]] | None
fetches: dict[str, ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc17ce6050>]] | None
platform: str | list[str]
require_build: OptionallyKeyedBy object at 0x7fbc17a47810>] | None
worker: OptionallyKeyedBy object at 0x7fbc17a47550>]
worker_type: OptionallyKeyedBy object at 0x7fbc17f59750>]
gecko_taskgraph.transforms.source_test.add_build_dependency(config, job)

Add build dependency to the job and installer_url to env.

gecko_taskgraph.transforms.source_test.expand_platforms(config, jobs)
gecko_taskgraph.transforms.source_test.handle_platform(config, jobs)

Handle the ‘platform’ property, setting up treeherder context as well as try-related attributes.

gecko_taskgraph.transforms.source_test.handle_shell(config, jobs)

Handle the ‘shell’ property.

gecko_taskgraph.transforms.source_test.remove_optimization_on_central(config, jobs)

For pushes to mozilla-central run all source-test tasks that are enabled for code-review in order to have the code-review bot populate the DB according with the push hash.

gecko_taskgraph.transforms.source_test.set_code_review_env(config, jobs)

Add a CODE_REVIEW environment variable when running in code-review bot mode

gecko_taskgraph.transforms.source_test.set_job_name(config, jobs)
gecko_taskgraph.transforms.source_test.split_jsshell(config, jobs)

gecko_taskgraph.transforms.spidermonkey module

gecko_taskgraph.transforms.spidermonkey.handle_keyed_by(config, jobs)

Resolve fields that can be keyed by platform, etc.

gecko_taskgraph.transforms.split_by_locale module

This transform splits the jobs it receives into per-locale tasks. Locales are provided by the locales-file.

class gecko_taskgraph.transforms.split_by_locale.SplitByLocaleSchema(*, locales_file: str, locale_file_platform: str | None = None, properties_with_locale: list[str] | None = None)

Bases: Schema

locale_file_platform: str | None
locales_file: str
properties_with_locale: list[str] | None
gecko_taskgraph.transforms.split_by_locale.add_command(config, jobs)

gecko_taskgraph.transforms.startup_test module

gecko_taskgraph.transforms.startup_test.add_command(config, jobs)
gecko_taskgraph.transforms.startup_test.job_priority(config, jobs)

Override default job priority if set in the yaml

gecko_taskgraph.transforms.task module

These transformations take a task description and turn it into a TaskCluster task definition (along with attributes, label, etc.). The input to these transformations is generic to any kind of task, but abstracts away some of the complexities of worker implementations, scopes, and treeherder annotations.

class gecko_taskgraph.transforms.task.IndexSchema(*, product: str | None = None, job_name: str, type: Literal['generic', 'l10n', 'shippable', 'shippable-l10n', 'android-shippable', 'android-shippable-with-multi-l10n', 'shippable-with-multi-l10n'] = 'generic', rank: Literal['by-tier', 'build_date'] | int = 'by-tier')

Bases: Schema

job_name: str
product: str | None
rank: Literal['by-tier', 'build_date'] | int
type: Literal['generic', 'l10n', 'shippable', 'shippable-l10n', 'android-shippable', 'android-shippable-with-multi-l10n', 'shippable-with-multi-l10n']
class gecko_taskgraph.transforms.task.TaskDescriptionSchema(*, label: str, description: str, attributes: dict[str, object] | None = None, task_from: str | None = None, dependencies: dict[str, object] | None = None, soft_dependencies: list[str] | None = None, if_dependencies: list[str] | None = None, requires: ~typing.Literal['all-completed', 'all-resolved'] | None = None, expires_after: str | None = None, deadline_after: str | None = None, expiration_policy: str | None = None, routes: list[str] | None = None, scopes: list[str] | None = None, tags: dict[str, str] | None = None, extra: dict[str, object] | None = None, treeherder: ~gecko_taskgraph.transforms.task.TreeherderSchema | None = None, index: ~gecko_taskgraph.transforms.task.IndexSchema | None = None, run_on_repo_type: list[~typing.Literal['git', 'hg']] | None = None, run_on_projects: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None = None, run_on_hg_branches: ~typing.Annotated[~typing.Any, <taskgraph.util.schema.OptionallyKeyedBy object at 0x7fbc18fde750>] | None = None, run_on_git_branches: list[str] | None = None, shipping_phase: ~typing.Literal['build', 'promote', 'push', 'ship'] | None = None, shipping_product: str | None = None, always_target: bool = False, optimization: ~gecko_taskgraph.optimize.schema.OptimizationSchema = None, worker_type: str | None = None, use_sccache: bool = False, worker: ~gecko_taskgraph.transforms.task.TaskWorkerSchema | None = None, priority: str | None = None, retries: int | None = None)

Bases: Schema

always_target: bool
attributes: dict[str, object] | None
deadline_after: str | None
dependencies: dict[str, object] | None
description: str
expiration_policy: str | None
expires_after: str | None
extra: dict[str, object] | None
if_dependencies: list[str] | None
index: IndexSchema | None
label: str
optimization: OptimizationSchema
priority: str | None
requires: Literal['all-completed', 'all-resolved'] | None
retries: int | None
routes: list[str] | None
run_on_git_branches: list[str] | None
run_on_hg_branches: OptionallyKeyedBy object at 0x7fbc18fde750>] | None
run_on_projects: OptionallyKeyedBy object at 0x7fbc19d0ad50>] | None
run_on_repo_type: list[Literal['git', 'hg']] | None
scopes: list[str] | None
shipping_phase: Literal['build', 'promote', 'push', 'ship'] | None
shipping_product: str | None
soft_dependencies: list[str] | None
tags: dict[str, str] | None
task_from: str | None
treeherder: TreeherderSchema | None
use_sccache: bool
worker: TaskWorkerSchema | None
worker_type: str | None
class gecko_taskgraph.transforms.task.TaskWorkerSchema(*, implementation: str)

Bases: Schema

implementation: str
class gecko_taskgraph.transforms.task.TreeherderSchema(*, symbol: str | None = None, kind: Literal['build', 'test', 'other'] | None = None, tier: int | None = None, platform: str | None = None)

Bases: Schema

kind: Literal['build', 'test', 'other'] | None
platform: str | None
symbol: str | None
tier: int | None
gecko_taskgraph.transforms.task.add_android_shippable_index_routes(config, task)
gecko_taskgraph.transforms.task.add_android_shippable_multi_index_routes(config, task)
gecko_taskgraph.transforms.task.add_geckoview_index_routes(config, task)
gecko_taskgraph.transforms.task.add_generic_index_routes(config, task)
gecko_taskgraph.transforms.task.add_github_checks_route(config, tasks)

Add the Github ‘checks’ route to code review tasks.

gecko_taskgraph.transforms.task.add_index_routes(config, tasks)
gecko_taskgraph.transforms.task.add_l10n_index_routes(config, task, force_locale=None)
gecko_taskgraph.transforms.task.add_shippable_index_routes(config, task)
gecko_taskgraph.transforms.task.add_shippable_l10n_index_routes(config, task, force_locale=None)
gecko_taskgraph.transforms.task.add_shippable_multi_index_routes(config, task)
gecko_taskgraph.transforms.task.build_balrog_payload(config, task, task_def)
gecko_taskgraph.transforms.task.build_beetmover_maven_payload(config, task, task_def)
gecko_taskgraph.transforms.task.build_beetmover_payload(config, task, task_def)
gecko_taskgraph.transforms.task.build_beetmover_push_to_release_payload(config, task, task_def)
gecko_taskgraph.transforms.task.build_bouncer_aliases_payload(config, task, task_def)
gecko_taskgraph.transforms.task.build_bouncer_locations_payload(config, task, task_def)
gecko_taskgraph.transforms.task.build_bouncer_submission_payload(config, task, task_def)
gecko_taskgraph.transforms.task.build_docker_worker_payload(config, task, task_def)
gecko_taskgraph.transforms.task.build_generic_worker_payload(config, task, task_def)
gecko_taskgraph.transforms.task.build_import_from_gcs_to_artifact_registry_payload(config, task, task_def)
gecko_taskgraph.transforms.task.build_iscript_payload(config, task, task_def)
gecko_taskgraph.transforms.task.build_landoscript_payload(config, task, task_def)
gecko_taskgraph.transforms.task.build_push_addons_payload(config, task, task_def)
gecko_taskgraph.transforms.task.build_push_flatpak_payload(config, task, task_def)
gecko_taskgraph.transforms.task.build_push_msix_payload(config, task, task_def)
gecko_taskgraph.transforms.task.build_ship_it_maybe_release_payload(config, task, task_def)
gecko_taskgraph.transforms.task.build_ship_it_merged_payload(config, task, task_def)
gecko_taskgraph.transforms.task.build_ship_it_shipped_payload(config, task, task_def)
gecko_taskgraph.transforms.task.build_ship_it_update_product_channel_version_payload(config, task, task_def)
gecko_taskgraph.transforms.task.build_task(config, tasks)
gecko_taskgraph.transforms.task.build_treescript_payload(config, task, task_def)
gecko_taskgraph.transforms.task.chain_of_trust(config, tasks)
gecko_taskgraph.transforms.task.check_caches_are_volumes(task)

Ensures that all cache paths are defined as volumes.

Caches and volumes are the only filesystem locations whose content isn’t defined by the Docker image itself. Some caches are optional depending on the job environment. We want paths that are potentially caches to have as similar behavior regardless of whether a cache is used. To help enforce this, we require that all paths used as caches to be declared as Docker volumes. This check won’t catch all offenders. But it is better than nothing.

gecko_taskgraph.transforms.task.check_perf_task_fission_filtering(config, tasks)
gecko_taskgraph.transforms.task.check_required_volumes(task)

Ensures that all paths that are required to be volumes are defined as volumes.

Performance of writing to files in poor in directories not marked as volumes, in docker. Ensure that paths that are often written to are marked as volumes.

gecko_taskgraph.transforms.task.check_run_task_caches(config, tasks)

Audit for caches requiring run-task.

run-task manages caches in certain ways. If a cache managed by run-task is used by a non run-task task, it could cause problems. So we audit for that and make sure certain cache names are exclusive to run-task.

IF YOU ARE TEMPTED TO MAKE EXCLUSIONS TO THIS POLICY, YOU ARE LIKELY CONTRIBUTING TECHNICAL DEBT AND WILL HAVE TO SOLVE MANY OF THE PROBLEMS THAT RUN-TASK ALREADY SOLVES. THINK LONG AND HARD BEFORE DOING THAT.

gecko_taskgraph.transforms.task.check_task_dependencies(config, tasks)

Ensures that tasks don’t have more than 100 dependencies.

gecko_taskgraph.transforms.task.check_task_identifiers(config, tasks)

Ensures that all tasks have well defined identifiers: ^[a-zA-Z0-9_-]{1,38}$

gecko_taskgraph.transforms.task.get_branch_git_rev(config)
gecko_taskgraph.transforms.task.get_branch_repo(config)
gecko_taskgraph.transforms.task.get_branch_rev(config)
gecko_taskgraph.transforms.task.get_default_priority(graph_config, project)
gecko_taskgraph.transforms.task.get_head_ref(config) tuple[str, str | None]

Extract the head_ref without its prefix and determine its type.

Parameters:

config (TransformConfig) – The configuration for the kind being transformed.

Returns:

A tuple of (head_ref_name, ref_type) where ref_type is ‘heads’,

’tags’, or None if the type cannot be determined.

Return type:

tuple

gecko_taskgraph.transforms.task.get_head_ref_index(config) str

Build a URL-encoded index string for the head_ref with namespace prefix.

Parameters:

config (TransformConfig) – The configuration for the kind being transformed.

Returns:

The URL-encoded index path (e.g., ‘.branch.main’ or ‘.tag.v1.0’)

with appropriate namespace prefix, or empty string if no head_ref.

Return type:

str

gecko_taskgraph.transforms.task.get_project_alias(config)
gecko_taskgraph.transforms.task.get_treeherder_project(config) str

Resolve and retrieve the Treeherder project name.

Parameters:

config (TransformConfig) – The configuration for the kind being transformed.

Returns:

The Treeherder project identifier.

Return type:

str

gecko_taskgraph.transforms.task.group_name_variant(group_names, groupSymbol)
gecko_taskgraph.transforms.task.index_builder(name)
gecko_taskgraph.transforms.task.is_run_task(cmd: str) bool
gecko_taskgraph.transforms.task.set_defaults(config, tasks)
gecko_taskgraph.transforms.task.set_implementation(config, tasks)

Set the worker implementation based on the worker-type alias.

gecko_taskgraph.transforms.task.set_task_and_artifact_expiry(config, jobs)

Set the default expiry for tasks and their artifacts.

These values are read from ci/config.yml

gecko_taskgraph.transforms.task.setup_raptor(config, tasks)

Add options that are specific to raptor jobs (identified by suite=raptor).

This variant uses a separate set of transforms for manipulating the tests at the task-level. Currently only used for setting the taskcluster proxy setting and the scopes required for perftest secrets.

gecko_taskgraph.transforms.task.task_name_from_label(config, tasks)
gecko_taskgraph.transforms.task.try_task_config_env(config, tasks)

Set environment variables in the task.

gecko_taskgraph.transforms.task.try_task_config_priority(config, tasks)

Change priority based on the try_task_config.

gecko_taskgraph.transforms.task.try_task_config_routes(config, tasks)

Set routes in the task.

gecko_taskgraph.transforms.task.validate(config, tasks)
gecko_taskgraph.transforms.task.validate_shipping_product(config, product)
gecko_taskgraph.transforms.task.verify_index(config, index)

gecko_taskgraph.transforms.test_apk module

Apply some defaults and minor modifications to the jobs defined in the test kinds.

gecko_taskgraph.transforms.test_apk.resolve_keys(config, tasks)

gecko_taskgraph.transforms.trigger_comm_central module

Resolve keys for the jobs defined in the trigger-comm-central kind.

gecko_taskgraph.transforms.trigger_comm_central.resolve_keys(config, jobs)

gecko_taskgraph.transforms.try_job module

gecko_taskgraph.transforms.try_job.set_job_try_name(config, jobs)

For a task which is governed by -j in try syntax, set the job_try_name attribute based on the job name.

gecko_taskgraph.transforms.update_integrity module

gecko_taskgraph.transforms.update_integrity.add_additional_fetches_and_command(config, jobs)

Adds fetch entries for the “from” installers and partial MARs.

gecko_taskgraph.transforms.update_integrity.add_to_installer(config, jobs)

Adds fetch entries for the “to” installer to fetches.

gecko_taskgraph.transforms.update_integrity.resolve_keys(config, jobs)
gecko_taskgraph.transforms.update_integrity.set_treeherder(config, jobs)
gecko_taskgraph.transforms.update_integrity.skip_for_non_nightly(config, jobs)

Don’t generate any jobs unless running as a nightly. Other code in this transform depends on nightly-specific parameters being set.

gecko_taskgraph.transforms.update_test module

Transform the update-test suite to parametrize by locale, source version, machine

class gecko_taskgraph.transforms.update_test.ReleaseType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: Enum

Release type

beta = 1
esr = 2
other = 3
release = 0
gecko_taskgraph.transforms.update_test.get_build_platform(platform)
gecko_taskgraph.transforms.update_test.infix_treeherder_symbol(symbol, infix)
gecko_taskgraph.transforms.update_test.parametrize_by_locale(config, tasks)
gecko_taskgraph.transforms.update_test.parametrize_by_source_version(config, tasks)
gecko_taskgraph.transforms.update_test.set_task_configuration(config, tasks)

gecko_taskgraph.transforms.update_verify module

Transform the beetmover task into an actual task description.

gecko_taskgraph.transforms.update_verify.add_command(config, tasks)

gecko_taskgraph.transforms.update_verify_config module

Transform the beetmover task into an actual task description.

gecko_taskgraph.transforms.update_verify_config.add_command(config, tasks)
gecko_taskgraph.transforms.update_verify_config.ensure_wrapped_singlequote(regexes)

Ensure that a regex (from INCLUDE_VERSION_REGEXES or MAR_CHANNEL_ID_OVERRIDE_REGEXES) is wrapper in single quotes.

gecko_taskgraph.transforms.upload_generated_sources module

Transform the upload-generated-files task description template, taskcluster/kinds/upload-generated-sources/kind.yml, into an actual task description.

gecko_taskgraph.transforms.upload_generated_sources.add_task_info(config, jobs)

gecko_taskgraph.transforms.upload_symbols module

Transform the upload-symbols task description template, taskcluster/kinds/upload-symbols/job-template.yml into an actual task description.

gecko_taskgraph.transforms.upload_symbols.check_nightlies(config, tasks)

Ensure that we upload symbols for all shippable builds, so that crash-stats can resolve any reports sent to it. Try may enable full symbols but not upload them.

Putting this check here (instead of the transforms for the build kind) lets us leverage the any not-for-build-platforms set in the update-symbols kind.

gecko_taskgraph.transforms.upload_symbols.fill_template(config, tasks)

gecko_taskgraph.transforms.zucchini_partial_rollout module

gecko_taskgraph.transforms.zucchini_partial_rollout.filter_partials_by_project(config, tasks)

Control the rollout of partials-zucchini across release channels.

This transform manages the gradual transition from the legacy “partials” implementation to the new “partials-zucchini” implementation. It ensures that partials-zucchini is only used on nightly builds, allowing thorough testing before the implementation rides the train to beta, release, and ESR channels.

The transform filters tasks based on their primary dependency (partials or partials-zucchini) and the current project/channel, ensuring the appropriate implementation is used for each release channel.

Module contents