Taskgraph
Taskgraph is a Python library to generate graphs of tasks for the Taskcluster CI service. It is the recommended approach for configuring tasks once your project outgrows a single .taskcluster.yml file and is what powers the over 30,000 tasks and counting that make up Firefox’s CI.
For more information and usage instructions, see the docs.
How It Works
Taskgraph leverages the fact that Taskcluster is a generic task execution platform. This means that tasks can be scheduled via its comprehensive API, and aren’t limited to being triggered in response to supported events.
Taskgraph leverages this execution platform to allow CI systems to scale to any size or complexity.
A decision task is created via Taskcluster’s normal .taskcluster.yml file. This task invokes taskgraph.
Taskgraph evaluates a series of yaml based task definitions (similar to those other CI offerings provide).
Taskgraph applies transforms on top of these task definitions. Transforms are Python functions that can programmatically alter or even clone a task definition.
Taskgraph applies some optional optimization logic to remove unnecessary tasks.
Taskgraph submits the resulting task graph to Taskcluster via its API.
Taskgraph’s combination of declarative task configuration combined with programmatic alteration are what allow it to support CI systems of any scale. Taskgraph is the library that powers the 30,000+ tasks making up Firefox’s CI.
Installation
Taskgraph supports Python 3.8 and up, and can be installed from Pypi:
pip install taskcluster-taskgraph
Alternatively, the repo can be cloned and installed directly:
git clone https://github.com/taskcluster/taskgraph
cd taskgraph
pip install .
In both cases, it’s recommended to use a Python virtual environment.
Get Involved
If you’d like to get involved, please see our contributing docs!
Release files for taskcluster-taskgraph 24.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| taskcluster_taskgraph-24.3.0.tar.gz | 646.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| taskcluster_taskgraph-24.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 863.0 kB
Release files / taskcluster_taskgraph-24.3.0.tar.gz
| Download URL | taskcluster_taskgraph-24.3.0.tar.gz |
|---|---|
| Size | 646.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2bf8c165244ea8c190632f61dec5414ae56a807d8bbbee21a8cd94bbbdc4ccba
|
|
BLAKE2b-256 checksum How to use checksums |
cbfc57d97c41b53c641116cfe85531622fe8cc7df4b88e9666a3db8d99ba0bb5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.
Transparency logRelease files / taskcluster_taskgraph-24.3.0-py3-none-any.whl
| Download URL | taskcluster_taskgraph-24.3.0-py3-none-any.whl |
|---|---|
| Size | 216.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bb1282a3f7b92c786bd27e5e914181a0dc71a17a056fca2d981e3a2b2fd7b21e
|
|
BLAKE2b-256 checksum How to use checksums |
7b1f9760596bc1d76947aaa7615885534e41fddd5601959356301d7f8cb05c3e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.
Transparency log