NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4705 most downloaded on PyPI
Build taskcluster taskgraphs
Last release 17 days ago
17 Sep 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
145 releases · first in 2021
One column per quarter.
fix: Improve command_static_url repack archive logic by @nordzilla in https://github.com/taskcluster/taskgraph/pull/591
Full Changelog: https://github.com/taskcluster/taskgraph/compare/11.2.2...11.2.3
uv lockfile owned by root--no-cache flag to a uv commandrun-task now installs packages to user site dir when installing requirements with uvstatic-url will now properly rename non-archive filesRun tests against Python 3.13 by @ahal in https://github.com/taskcluster/taskgraph/pull/587
Full Changelog: https://github.com/taskcluster/taskgraph/compare/11.2.1...11.2.2
taskgraph was no longer on the $PATHuv cacheuv now included in the run-task imagefix(optimize): support kwargs in 'register_strategy' decorator by @ahal in https://github.com/taskcluster/taskgraph/pull/583
Full Changelog: https://github.com/taskcluster/taskgraph/compare/11.2.0...11.2.1
taskgraph.optimize.register_strategy can now pass kwargs on to the optimization classfeat(config): implement 'get()' for GraphConfig by @ahal in https://github.com/taskcluster/taskgraph/pull/577
Full Changelog: https://github.com/taskcluster/taskgraph/compare/11.1.0...11.2.0
taskgraph.config.GraphConfig now implements a get(<key>) method (#577)project and trust-domain are now applied to all tasks (#579)run-task script no longer attempts to chmod /dev/kvm if it already has the right permissions (#578)
Use uv to install requirements if available
uv to install requirements if available (#572)/builds already exists in Dockerfile (#573)coreutils to the linux Dockerfile (#573)BREAKING CHANGE: removed hardcode python3 path on macOS
task_context (#562)Fix logging added in 8ed01ce3 by @glandium in https://github.com/taskcluster/taskgraph/pull/554
Full Changelog: https://github.com/taskcluster/taskgraph/compare/10.0.1...10.0.2
Make toolchain and fetch tasks work when there is more than one present, and at least one is defined as a dict
BREAKING CHANGE: Bug 1796139 - Pull in fetch-content changes from mozilla-central by @jcristau
Revert "Bug 1853082 - Don't rely on file extension to guess archive t… by @jcristau in https://github.com/taskcluster/taskgraph/pull/543
Full Changelog: https://github.com/taskcluster/taskgraph/compare/9.2.0...9.2.1
Bug 1796139 - Pull in fetch-content changes from mozilla-central by @jcristau in https://github.com/taskcluster/taskgraph/pull/541
Full Changelog: https://github.com/taskcluster/taskgraph/compare/9.1.0...9.2.0
taskgraph init now use level 1 for pull request graphsSeparate log for optimizations that always logs verbosely
BREAKING CHANGE: Delete taskgraph.util.memoize (fixes #491) by @bhearsum in https://github.com/taskcluster/taskgraph/pull/515
taskgraph.util.templates from gecko_taskgraph by @ahal in https://github.com/taskcluster/taskgraph/pull/516Full Changelog: https://github.com/taskcluster/taskgraph/compare/8.2.0...9.0.0
taskgraph.util.copy.deepcopy function to assist deepcopying Task objects efficientlytaskgraph.util.templates.merge no longer attempts to merge by-<attribute> configsverify_routes_notification_filters to support all valid Taskcluster valuestaskgraph.util.memoize utility functionfix: migrate over the last untouched IndexSearch.should_replace_task by @Alphare in https://github.com/taskcluster/taskgraph/pull/506
IndexSearch.should_replace_task by @Alphare in https://github.com/taskcluster/taskgraph/pull/506Full Changelog: https://github.com/taskcluster/taskgraph/compare/8.1.0...8.2.0
IndexSearch optimization from docker utilityIndexSearch optimization supports both old and new (from 8.1.0) signaturesfix: typo in github cookiecutter taskcluster.yml by @bhearsum in https://github.com/taskcluster/taskgraph/pull/497
Full Changelog: https://github.com/taskcluster/taskgraph/compare/8.0.1...8.1.0
batch APIsbatch APIs to vastly reduce number of queries made to Taskclusterfix: stop requiring REGISTRY and VERSION files in 'build-image' command by @ahal in https://github.com/taskcluster/taskgraph/pull/488
Full Changelog: https://github.com/taskcluster/taskgraph/compare/8.0.0...8.0.1
files-changed calculation for pull requests (#494)**kwargs in functions wrapped by taskgraph.util.memoize (#490)--exclude-key argument when the excluded key may or may not exist (#489)taskgraph build-image (#488)fix: support 'artifact-reference' with private artifacts by @ahal in https://github.com/taskcluster/taskgraph/pull/485
files_changed parameter by @ahal in https://github.com/taskcluster/taskgraph/pull/481Full Changelog: https://github.com/taskcluster/taskgraph/compare/7.4.0...8.0.0
from_deps transforms (#484)from_deps name function that doesn't strip the dep's kind (#484)files_changed (#481)artifact-reference with private artifacts (#485)head_ref in pull-request cached task routes (#486)files_changed parameter (#481)taskgraph.files_changed module (#481)Don't set 'base_ref' on github-release events
get_task_definition and _get_deps (#477)ci: Use docker slim images where possible by @hneiva in https://github.com/taskcluster/taskgraph/pull/454
Full Changelog: https://github.com/taskcluster/taskgraph/compare/7.3.0...7.3.1
actions: remove hardcoded gecko trust domain from retrigger-decision action by @jcristau in https://github.com/taskcluster/taskgraph/pull/458
Full Changelog: https://github.com/taskcluster/taskgraph/compare/7.2.1...7.3.0
fix: Make run-task shebang use /usr/bin/env python3 by @hneiva in https://github.com/taskcluster/taskgraph/pull/453
Full Changelog: https://github.com/taskcluster/taskgraph/compare/7.2.0...7.2.1
https://hub.docker.com/layers/mozillareleases/taskgraph/decision-v7.2.1/images/sha256-6ff20f06a760af0d47d3f54c8c334a1b20afbbc54d7b36b49a542ce828762ff8?context=explore
Manifest digest
sha256:6ff20f06a760af0d47d3f54c8c334a1b20afbbc54d7b36b49a542ce828762ff8
OS/ARCH
linux/amd64
Compressed size
104.08 MB
Last pushed
over 2 years by mozillarelengservices
Type
Image
Manifest digest
sha256:6ff20f06a760af0d47d3f54c8c334a1b20afbbc54d7b36b49a542ce828762ff8
Image Layers
Image Layers
1 ADD file ... in / 29.01 MB
2 CMD ["bash"] 0 B
3 CMD ["/bin/bash", "--login"] 75.07 MB
4 umoci insert 237 B
Command
ADD file:af0f4e41d68b67ca88a1ce6297326159e18e27670d7bfc0bf5804a4e2b268cc8 in /
Go back
Call raise_for_status on hg.mozilla.org json-automationrelevance response by @jcristau in https://github.com/taskcluster/taskgraph/pull/419
Full Changelog: https://github.com/taskcluster/taskgraph/compare/7.1.2...7.2.0
https://hub.docker.com/layers/mozillareleases/taskgraph/decision-v7.2.0/images/sha256-b6fb4b9509c566643c924ac023f57a8d36fae143a0f12d91c12b718ab516f48b?context=repo
taskgraph init support for github-release events in .taskcluster.ymltaskgraph init .taskcluster.yml passes short refs to run-taskdocker-image isn't usedAdd a get_ancestors helper to find ancestor tasks through the Taskcluster API
get_ancestors helper to find ancestor tasks through the Taskcluster APIAdd a cache-pull-requests parameter to taskcluster/config.yml to disable caching of tasks on pull requests.
cache-pull-requests parameter to taskcluster/config.yml to disable caching of tasks on pull requests.Add a task-expires-after parameter to taskcluster/config.yml to set the default value for expires-after on level 1 tasks.
task-expires-after parameter to taskcluster/config.yml to set the default value for expires-after on level 1 tasks.Wrong module name being generated in taskgraph init
taskgraph inittaskgraph test-action-callback due to wrong default rootReference to wrong root directory in taskgraph action-callback
taskgraph action-callbackEnsure pull requests properly use cached tasks
taskgraphBREAKING CHANGE: Root directory now considered to be taskcluster instead of taskcluster/ci
<task-reference>taskgraph.util.taskclustertaskcluster instead of taskcluster/ciconfig.yml moved from taskcluster/ci to taskclustertaskcluster/ci renamed to taskcluster/kindstaskgraph.transforms.job renamed to taskgraph.transforms.runtaskgraph.target_tasks._target_task to register_target_taskindex-task docker image upgrade to node v18taskgraph.util.decision.make_decision_taskdecision-mobile docker imagetaskgraph.transforms.release_notifications shimhg on MacOS in run-taskrun transforms now contain the docker image hash if applicable--diff flag will not fail if only one of the two graph generations failedtaskgraph.util.hash are normalized for Windows supporttaskgraph init template now separates Decision task caches by projecttaskgraph init no longer derives the project name from local checkout dir
taskgraph init no longer derives the project name from local checkout dirrun-task bypasses Git's safe directory feature which breaks caches on multi-user workerstaskgraph load-image when specifying a namedeadline-after field added to job_description_schema--target-kind flag can be passed to Taskgraph multiple times
--target-kind flag can be passed to Taskgraph multiple timestaskgraph.parameters._get_defaults no longer raises outside of a repositoryException when running taskgraph load-image and taskgraph build-image
taskgraph load-image and taskgraph build-imageed25519 and ecdsa-sha2-nistp256 keys in run-tasktaskgraph initorigin remote in taskgraph inittaskgraph initDon't override all existing dependencies in from-deps (allow upstream or downstream transforms to also add them)
from-deps (allow upstream or downstream transforms to also add them)fetches entry for kinds without artifacts defined in from-depsA new chunking transform that helps parallelize tasks
chunking transform that helps parallelize tasksfetches with from-depsname with from-depsautoCancelPreviousChecks is set to true when initializing a new GitHub repository with taskgraph initSupport for substituting arbitrary parts of a task definition with task-context
task-contextcommand-context support in job transforms (this can now be implemented with task-context)group_by functions are attempted to registered twicevalidate_schema in from_deps to avoid breaking --fastAbility to specify a list of kinds in the enable_always_target parameter
enable_always_target parameterrun_using functions are definedRelaxed PyYaml dependency constraint to work around a PyYaml issue
Reverted memoize on load_yaml utility which causes issues with parallel generations
load_yaml utility which causes issues with parallel generationsrun-taskSupport for overriding the default task deadline in ci/config.yml
ci/config.ymlSupport for Mercurial 6.0+ in robustcheckout script
robustcheckout scriptall group for the from_deps transformspurgeCaches feature of generic-workerrun-task scriptrepo.find_latest_common_revision--force flag when updating Git submodules in run-task scriptRegression in add-new-jobs and retrigger actions, introduced in 5.1.0.
Disallow extraneous keys in the from-deps config
from-deps configrun-task now fetches tags when necessary after cloning repofrom-deps.unique-kinds key to allow depending on multiple tasks of a kindget_dependencies and get_primary_dependency functions in taskgraph.util.dependenciesrun-task now logs the Python version it was invoked withBug preventing use of custom group_by functions with from_deps transforms
group_by functions with from_deps transformsNew from_deps transforms for creating follow-up tasks
from_deps transforms for creating follow-up tasksRegression around make index transform running out of order
if-dependencies and soft-dependencies towards dependency limit check/New default loader which implicitly uses the job and task transforms
default loader which implicitly uses the job and task transformsrun-task in the job.run_task transformstransforms) when listing transforms in a kind configtreeherder: true which will auto-populate Treeherder metadataindex-path-regexes key to config.yml which can be used with make_index_task morphdocker-image tasks when DONTBUILD is used in commit messagefetch-content and robustcheckout time out on idle http connections
fetch-content and robustcheckout time out on idle http connectionsUpdated github ssh host key (per https://github.blog/2023-03-23-we-updated-our-rsa-ssh-host-key/)
A taskgraph init command to bootstrap projects on Firefox-CI
taskgraph init command to bootstrap projects on Firefox-CIfetch-content script now uses unzip -q to avoid polluting logsPython 3.11 is now tested in CI
.tgz file extension in fetch-content scriptjob.toolchain transforms to job.run_taskutil.yaml.load_yaml are now memoizedcommand-context.from-file in run_task transformsconfig.ymlutil.vcs.get_commit_message actually uses its revision parameterrun-task is able to git-checkout non-default branch
run-task is able to git-checkout non-default branchutil.hash.hash_paths() takes much less time to run when provided with 10+ patterns.shipping-phase attribute in task and job transforms.
shipping-phase attribute in task and job transforms.Support for disableSeccomp capability. This was removed in Taskcluster 45.0.0 as it was determined to be unnecessary.
disableSeccomp capability. This was removed in Taskcluster 45.0.0 as it was
determined to be unnecessary.New rebuild_cached_tasks action to facilitate regenerating long-lived tasks
rebuild_cached_tasks action to facilitate regenerating long-lived tasksimage_builder Docker image to version 5.0.0Support for Matrix, Slack and pulse in notify transforms
taskgraph.transforms.release_notifications to taskgraph.transforms.notify
(including backwards compatible shim)taskgraph.parameters._get_defaults catches mozilla_repo_urls.errors.UnsupportedPlatformError in order not to bust mach commands
taskgraph.parameters._get_defaults catches mozilla_repo_urls.errors.UnsupportedPlatformError in order not to bust mach commandsOnly depend on zstandard in the 'load-image' extra to avoid large (likely unused) binaries
Ability to enable/disable the always_target attribute via a new enable_always_target parameter
always_target attribute via a new enable_always_target parameterfetch-content has improved support for git submodules
fetch-content has improved support for git submodulesfetch-content can fetch private git repositories over sshfetch-content can optionally use chain-of-trust artifacts to validate downloadsfetch-content supports repacking tar archives containing symbolic linksfetch-content repacks now use the same format as the original archivefetch-content can be told to keep the .git directoryfetch-content takes care to log git commit ids even when pointed at a branch namefetch-content uses github's archive generator to speed up cloningtaskgraph load-image CLI command can now run without raising a ModuleNotFoundError.Ability to override optimization strategies via parameter
run-task as it is no longer necessarygithub-pull-request-untrustedparameters_loader in generator.load_tasks_for_kindregisterYour coding agent can read these notes before it upgrades. Set up the MCP server →