Taskgraph is a Python library designed to generate complex dependency graphs for the Taskcluster CI service. It serves as the recommended approach for configuring CI tasks when projects outgrow simple .taskcluster.yml configurations, powering large-scale CI systems like Firefox's with tens of thousands of tasks. The library is currently at version 20.0.0 and maintains an active release cadence with frequent minor and patch updates.
pip install taskcluster-taskgraphVerified import paths — ran on the pinned version, not inferred.
The primary interaction with taskcluster-taskgraph is via its command-line interface. The `taskgraph init` command bootstraps a new project with the necessary configuration files and directory structure. You can then use `taskgraph full` to locally generate and view the task graph, and `taskgraph morphed -J` to inspect the final JSON definitions of tasks.
Migrate custom schemas to use the new `msgspec`-based `Schema` or explicitly import `LegacySchema` for continued `voluptuous` compatibility. Refer to the migration guide for detailed steps.
Review `run-task` scripts and worker configurations to ensure proper cleanup if required. Update paths for `root_dir`, `config.yml`, and `taskcluster/ci` (now `taskcluster/kinds`) in custom logic or configuration.
Remove `--tag` from `taskgraph build-image` commands and handle image tagging manually. Add `-i` or `--interactive` to `taskgraph load-task` calls where pausing execution is desired.
Ensure your environment uses Python 3.8+. Update all references to the renamed modules and decorators in your transform files and custom logic.
Follow the official Taskgraph 'Getting Started' and 'Configuring your Project' documentation to set up the `.taskcluster.yml`, `taskcluster` directory structure, and obtain necessary Taskcluster permissions.