taskcluster-taskgraph 24.2.3__tar.gz → 24.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/.github/workflows/codeql-analysis.yml +4 -4
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/.github/workflows/codspeed.yml +3 -3
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/.github/workflows/pypi-publish.yml +9 -9
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/.pre-commit-config.yaml +3 -3
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/CHANGELOG.md +35 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/PKG-INFO +2 -2
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/reference/parameters.rst +11 -3
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/tutorials/connecting-taskcluster.rst +24 -11
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/tutorials/example-taskcluster.yml +16 -11
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/pyproject.toml +1 -1
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/decision.py +0 -4
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/graph.py +29 -16
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/optimize/base.py +2 -2
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/run-task/fetch-content +114 -9
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/run-task/run-task +369 -26
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/target_tasks.py +1 -1
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/transforms/task.py +2 -1
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/parameterization.py +10 -12
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/schema.py +19 -16
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/time.py +2 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/docker/fetch/Dockerfile +1 -1
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/docker/index-task/Dockerfile +1 -1
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/docker/index-task/package.json +1 -1
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/docker/index-task/yarn.lock +10 -10
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/docker/run-task/Dockerfile +1 -1
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/docker/skopeo/Dockerfile +3 -3
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/template/{{cookiecutter.project_name}}/taskcluster.github.yml +1 -1
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_graph.py +60 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_graph_perf.py +68 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_scripts_fetch_content.py +120 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_scripts_run_task.py +350 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_util_schema.py +46 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/uv.lock +998 -715
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/.codespell-ignore-words.txt +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/.github/CODEOWNERS +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/.gitignore +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/.readthedocs.yaml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/.taskcluster.yml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/.yamllint +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/CODE_OF_CONDUCT.md +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/CONTRIBUTING.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/LICENSE +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/Makefile +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/README.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/concepts/index.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/concepts/kind.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/concepts/loading.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/concepts/optimization.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/concepts/overview.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/concepts/scopes.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/concepts/task-graphs.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/concepts/transforms.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/conf.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/contributing.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/glossary.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/howto/bootstrap-taskgraph.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/howto/create-actions.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/howto/create-tasks.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/howto/debugging.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/howto/define-schemas.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/howto/docker.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/howto/index.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/howto/load-task-locally.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/howto/resolve-keyed-by.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/howto/run-locally.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/howto/send-notifications.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/howto/use-fetches.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/index.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/reference/cli.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/reference/index.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/reference/migrations.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/reference/optimization-strategies.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/reference/source/modules.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/reference/source/taskgraph.actions.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/reference/source/taskgraph.loader.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/reference/source/taskgraph.optimize.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/reference/source/taskgraph.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/reference/source/taskgraph.transforms.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/reference/source/taskgraph.transforms.run.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/reference/source/taskgraph.util.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/reference/transforms/chunking.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/reference/transforms/from_deps.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/reference/transforms/index.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/reference/transforms/matrix.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/reference/transforms/task_context.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/tutorials/creating-a-task-graph.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/tutorials/getting-started.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/tutorials/index.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/make.bat +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/packages/pytest-taskgraph/README.md +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/packages/pytest-taskgraph/pyproject.toml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/packages/pytest-taskgraph/src/pytest_taskgraph/__init__.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/packages/pytest-taskgraph/src/pytest_taskgraph/fixtures/gen.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/packages/pytest-taskgraph/src/pytest_taskgraph/fixtures/vcs.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/packages/sphinx-taskgraph/README.md +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/packages/sphinx-taskgraph/pyproject.toml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/packages/sphinx-taskgraph/src/sphinx_taskgraph/__init__.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/packages/sphinx-taskgraph/src/sphinx_taskgraph/autoschema.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/renovate.json +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/__init__.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/actions/__init__.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/actions/add_new_jobs.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/actions/cancel.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/actions/cancel_all.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/actions/rebuild_cached_tasks.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/actions/registry.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/actions/retrigger.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/actions/util.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/config.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/create.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/docker.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/filter_tasks.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/generator.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/loader/__init__.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/loader/default.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/loader/transform.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/main.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/morph.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/optimize/__init__.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/optimize/strategies.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/parameters.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/run-task/hgrc +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/run-task/robustcheckout.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/task.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/taskgraph.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/transforms/__init__.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/transforms/base.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/transforms/cached_tasks.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/transforms/chunking.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/transforms/code_review.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/transforms/docker_image.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/transforms/fetch.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/transforms/from_deps.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/transforms/matrix.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/transforms/notify.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/transforms/run/__init__.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/transforms/run/common.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/transforms/run/index_search.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/transforms/run/run_task.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/transforms/run/toolchain.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/transforms/task_context.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/__init__.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/archive.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/attributes.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/cached_tasks.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/caches.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/copy.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/dependencies.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/docker.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/hash.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/json.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/keyed_by.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/path.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/python_path.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/readonlydict.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/set_name.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/shell.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/task_context.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/taskcluster.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/taskgraph.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/templates.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/treeherder.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/vcs.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/verify.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/workertypes.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/util/yaml.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/config.yml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/docker/REGISTRY +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/docker/decision/Dockerfile +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/docker/decision/HASH +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/docker/decision/README.md +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/docker/decision/VERSION +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/docker/decision/system-setup.sh +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/docker/image_builder/README.rst +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/docker/index-task/README +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/docker/index-task/insert-indexes.js +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/docker/python/Dockerfile +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/docker/run-task/system-setup.sh +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/docker/skopeo/policy.json +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/docker/skopeo/push_image.sh +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/kinds/check/kind.yml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/kinds/codecov/kind.yml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/kinds/complete/kind.yml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/kinds/doc/kind.yml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/kinds/docker-image/kind.yml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/kinds/fetch/kind.yml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/kinds/push-image/kind.yml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/kinds/test/kind.yml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/kinds/test/linux.yml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/kinds/test/windows.yml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/scripts/codecov-upload.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/self_taskgraph/__init__.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/self_taskgraph/custom_parameters.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/self_taskgraph/custom_target_tasks.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/self_taskgraph/transforms/add_pr_route.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/self_taskgraph/transforms/push_image.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/test/params/main-repo-pull-request-untrusted.yml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/test/params/main-repo-pull-request.yml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/test/params/main-repo-push.yml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/test/params/main-repo-release-pytest-taskgraph.yml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/taskcluster/test/params/main-repo-release-taskcluster-taskgraph.yml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/template/cookiecutter.json +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/template/hooks/post_gen_project.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/template/{{cookiecutter.project_name}}/taskcluster/config.yml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/template/{{cookiecutter.project_name}}/taskcluster/docker/linux/Dockerfile +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/template/{{cookiecutter.project_name}}/taskcluster/kinds/docker-image/kind.yml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/template/{{cookiecutter.project_name}}/taskcluster/kinds/hello/kind.yml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/template/{{cookiecutter.project_name}}/taskcluster/{{cookiecutter.project_slug}}_taskgraph/transforms/hello.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/__init__.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/automationrelevance.json +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/conftest.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/data/task_context.yml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/data/taskcluster/config.yml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/data/taskcluster/docker/hello-world/Dockerfile +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/data/taskcluster/docker/hello-world-tag/Dockerfile +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/data/taskcluster/docker/hello-world-tag/REGISTRY +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/data/taskcluster/docker/hello-world-tag/VERSION +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/data/taskcluster/kinds/docker-image/kind.yml +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/data/taskcluster/scripts/toolchain/run.ps1 +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/data/taskcluster/scripts/toolchain/run.sh +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/data/taskcluster/test_taskgraph/transforms/foo.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/data/testmod/thing.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/mockedopen.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_actions_rebuild_cached_tasks.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_actions_registry.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_config.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_create.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_decision.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_docker.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_generator.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_main.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_morph.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_optimize.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_optimize_strategies.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_parameters.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_target_tasks.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_taskgraph.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_transform_chunking.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_transform_docker_image.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_transform_task_context.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_transforms_base.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_transforms_cached_tasks.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_transforms_fetch.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_transforms_from_deps.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_transforms_matrix.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_transforms_notify.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_transforms_run.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_transforms_run_run_task.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_transforms_run_toolchain.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_transforms_task.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_util_archive.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_util_attributes.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_util_cached_tasks.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_util_copy.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_util_dependencies.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_util_docker.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_util_json.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_util_keyed_by.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_util_parameterization.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_util_path.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_util_python_path.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_util_readonlydict.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_util_taskcluster.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_util_templates.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_util_time.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_util_treeherder.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_util_vcs.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_util_verify.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_util_workertypes.py +0 -0
- {taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/test/test_util_yaml.py +0 -0
{taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/.github/workflows/codeql-analysis.yml
RENAMED
|
@@ -39,10 +39,10 @@ jobs:
|
|
|
39
39
|
|
|
40
40
|
steps:
|
|
41
41
|
- name: Checkout repository
|
|
42
|
-
uses: actions/checkout@
|
|
42
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
43
43
|
# Initializes the CodeQL tools for scanning.
|
|
44
44
|
- name: Initialize CodeQL
|
|
45
|
-
uses: github/codeql-action/init@
|
|
45
|
+
uses: github/codeql-action/init@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
|
|
46
46
|
with:
|
|
47
47
|
languages: ${{ matrix.language }}
|
|
48
48
|
# If you wish to specify custom queries, you can do so here or in a config file.
|
|
@@ -55,7 +55,7 @@ jobs:
|
|
|
55
55
|
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
|
56
56
|
# If this step fails, then you should remove it and run the build manually (see below)
|
|
57
57
|
- name: Autobuild
|
|
58
|
-
uses: github/codeql-action/autobuild@
|
|
58
|
+
uses: github/codeql-action/autobuild@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
|
|
59
59
|
|
|
60
60
|
# ℹ️ Command-line programs to run using the OS shell.
|
|
61
61
|
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
|
@@ -67,4 +67,4 @@ jobs:
|
|
|
67
67
|
# echo "Run, Build Application using script"
|
|
68
68
|
# ./location_of_script_within_repo/buildscript.sh
|
|
69
69
|
- name: Perform CodeQL Analysis
|
|
70
|
-
uses: github/codeql-action/analyze@
|
|
70
|
+
uses: github/codeql-action/analyze@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
|
{taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/.github/workflows/codspeed.yml
RENAMED
|
@@ -18,14 +18,14 @@ jobs:
|
|
|
18
18
|
contents: read # required for actions/checkout
|
|
19
19
|
id-token: write # required for OIDC authentication with CodSpeed
|
|
20
20
|
steps:
|
|
21
|
-
- uses: actions/checkout@
|
|
22
|
-
- uses: astral-sh/setup-uv@
|
|
21
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
22
|
+
- uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
|
|
23
23
|
with:
|
|
24
24
|
python-version: "3.12"
|
|
25
25
|
- name: Install dependencies
|
|
26
26
|
run: uv sync
|
|
27
27
|
- name: Run benchmarks
|
|
28
|
-
uses: CodSpeedHQ/action@
|
|
28
|
+
uses: CodSpeedHQ/action@373d6868929f444bc08d901fd0eb0ad52a8875ea # v5.2.1
|
|
29
29
|
with:
|
|
30
30
|
mode: simulation
|
|
31
31
|
run: uv run pytest test/ --codspeed
|
{taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/.github/workflows/pypi-publish.yml
RENAMED
|
@@ -12,8 +12,8 @@ jobs:
|
|
|
12
12
|
id-token: write
|
|
13
13
|
steps:
|
|
14
14
|
- name: Checkout sources
|
|
15
|
-
uses: actions/checkout@
|
|
16
|
-
- uses: actions/setup-python@
|
|
15
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
16
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
17
17
|
with:
|
|
18
18
|
python-version: '3.14'
|
|
19
19
|
cache: 'pip'
|
|
@@ -28,7 +28,7 @@ jobs:
|
|
|
28
28
|
# Renovate offsets that by bumping the pinned SHA (tracked via the
|
|
29
29
|
# trailing `# vX.Y.Z` comment), so merge those bump PRs promptly.
|
|
30
30
|
- name: Publish package distributions to PyPI
|
|
31
|
-
uses: pypa/gh-action-pypi-publish@
|
|
31
|
+
uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
|
|
32
32
|
pypi-publish-pytest-taskgraph:
|
|
33
33
|
name: upload release to PyPI
|
|
34
34
|
if: startsWith(github.ref, 'refs/tags/pytest-taskgraph')
|
|
@@ -38,8 +38,8 @@ jobs:
|
|
|
38
38
|
id-token: write
|
|
39
39
|
steps:
|
|
40
40
|
- name: Checkout sources
|
|
41
|
-
uses: actions/checkout@
|
|
42
|
-
- uses: actions/setup-python@
|
|
41
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
42
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
43
43
|
with:
|
|
44
44
|
python-version: '3.14'
|
|
45
45
|
cache: 'pip'
|
|
@@ -49,7 +49,7 @@ jobs:
|
|
|
49
49
|
pip install build
|
|
50
50
|
python -m build
|
|
51
51
|
- name: Publish package distributions to PyPI
|
|
52
|
-
uses: pypa/gh-action-pypi-publish@
|
|
52
|
+
uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
|
|
53
53
|
with:
|
|
54
54
|
packages-dir: packages/pytest-taskgraph/dist
|
|
55
55
|
pypi-publish-sphinx-taskgraph:
|
|
@@ -61,8 +61,8 @@ jobs:
|
|
|
61
61
|
id-token: write
|
|
62
62
|
steps:
|
|
63
63
|
- name: Checkout sources
|
|
64
|
-
uses: actions/checkout@
|
|
65
|
-
- uses: actions/setup-python@
|
|
64
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
65
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
66
66
|
with:
|
|
67
67
|
python-version: '3.14'
|
|
68
68
|
cache: 'pip'
|
|
@@ -72,6 +72,6 @@ jobs:
|
|
|
72
72
|
pip install build
|
|
73
73
|
python -m build
|
|
74
74
|
- name: Publish package distributions to PyPI
|
|
75
|
-
uses: pypa/gh-action-pypi-publish@
|
|
75
|
+
uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
|
|
76
76
|
with:
|
|
77
77
|
packages-dir: packages/sphinx-taskgraph/dist
|
|
@@ -13,13 +13,13 @@ repos:
|
|
|
13
13
|
exclude: template
|
|
14
14
|
- id: check-added-large-files
|
|
15
15
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
16
|
-
rev: v0.
|
|
16
|
+
rev: v0.16.9
|
|
17
17
|
hooks:
|
|
18
18
|
- id: ruff
|
|
19
19
|
args: [--fix, --exit-non-zero-on-fix]
|
|
20
20
|
- id: ruff-format
|
|
21
21
|
- repo: https://github.com/astral-sh/uv-pre-commit
|
|
22
|
-
rev: 0.
|
|
22
|
+
rev: 0.12.19
|
|
23
23
|
hooks:
|
|
24
24
|
- id: uv-lock
|
|
25
25
|
- repo: https://github.com/adrienverge/yamllint.git
|
|
@@ -28,7 +28,7 @@ repos:
|
|
|
28
28
|
- id: yamllint
|
|
29
29
|
exclude: template
|
|
30
30
|
- repo: https://github.com/codespell-project/codespell
|
|
31
|
-
rev: v2.4.
|
|
31
|
+
rev: v2.4.3
|
|
32
32
|
hooks:
|
|
33
33
|
- id: codespell
|
|
34
34
|
entry: codespell -I .codespell-ignore-words.txt
|
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## [24.4.0] - 2026-10-05
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Merge concurrently extracted fetches in a fixed order in `fetch-content`
|
|
8
|
+
- Hook point in `run-task` before the task payload
|
|
9
|
+
- Prefix `run_python_script` output in `run-task` with `[script <timestamp>]`
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- `taskgraph init` template and tutorial docs now default to the `public_restricted` PR policy
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- `filter_for_git_branch` target task filter now works with untrusted PRs
|
|
18
|
+
- Update `@taskcluster/client` dependency to v110 (#1060)
|
|
19
|
+
- perf: compute `optionally_keyed_by` fields once per Schema class (#1049)
|
|
20
|
+
- perf: speed up resolving task definition references (#1051)
|
|
21
|
+
- perf: cache parsed relative time strings (#1052)
|
|
22
|
+
- perf: cache the visit order of graphs (#1053)
|
|
23
|
+
- perf: stop re-parsing the full task graph in the decision task (#1055)
|
|
24
|
+
|
|
25
|
+
## [24.3.0] - 2026-09-17
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
- Git sparse checkout support (#1039)
|
|
30
|
+
- Support for checking out git trees in parallel (#1041)
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- Improve performance of Graph.transitive_closure (#1014)
|
|
35
|
+
- Don't assume treeherder.group-names exists in graph config (#1024)
|
|
36
|
+
- Avoid seeking during tarball extraction on Windows in fetch-content (#1042)
|
|
37
|
+
|
|
3
38
|
## [24.2.3] - 2026-07-29
|
|
4
39
|
|
|
5
40
|
### Fixed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: taskcluster-taskgraph
|
|
3
|
-
Version: 24.
|
|
3
|
+
Version: 24.4.0
|
|
4
4
|
Summary: Build taskcluster taskgraphs
|
|
5
5
|
Project-URL: Repository, https://github.com/taskcluster/taskgraph
|
|
6
6
|
Project-URL: Issues, https://github.com/taskcluster/taskgraph/issues
|
|
@@ -96,9 +96,17 @@ project
|
|
|
96
96
|
|
|
97
97
|
level
|
|
98
98
|
~~~~~
|
|
99
|
-
The
|
|
100
|
-
|
|
101
|
-
|
|
99
|
+
The trust level associated with this task group. Trust levels provide a
|
|
100
|
+
convenient way to segregate resources such as worker-pools, secrets and
|
|
101
|
+
caches based on how the task group was triggered. This creates security
|
|
102
|
+
boundaries between various degrees of trust.
|
|
103
|
+
|
|
104
|
+
The meaning of a trust level can vary from project to project, but typically
|
|
105
|
+
level 1 is the lowest trust and corresponds to pull requests from external
|
|
106
|
+
contributors. Level 2 is a degree higher and denotes pull requests from repo
|
|
107
|
+
collaborators or pushes to unprotected branches. Level 3 is the highest
|
|
108
|
+
degree of trust and is reserved for pushes to protected branches and
|
|
109
|
+
releases.
|
|
102
110
|
|
|
103
111
|
Target Set
|
|
104
112
|
----------
|
|
@@ -79,7 +79,7 @@ here is the recommended method:
|
|
|
79
79
|
version: 1
|
|
80
80
|
reporting: checks-v1
|
|
81
81
|
policy:
|
|
82
|
-
pullRequests:
|
|
82
|
+
pullRequests: public_restricted
|
|
83
83
|
tasks:
|
|
84
84
|
-
|
|
85
85
|
|
|
@@ -109,7 +109,7 @@ here is the recommended method:
|
|
|
109
109
|
$if: 'tasks_for == "github-push"'
|
|
110
110
|
then: '${event.pusher.email}'
|
|
111
111
|
else:
|
|
112
|
-
$if: 'tasks_for == "github-pull-request"'
|
|
112
|
+
$if: 'tasks_for[:19] == "github-pull-request"'
|
|
113
113
|
then: '${event.pull_request.user.login}@users.noreply.github.com'
|
|
114
114
|
else:
|
|
115
115
|
$if: 'tasks_for == "github-release"'
|
|
@@ -118,22 +118,22 @@ here is the recommended method:
|
|
|
118
118
|
$if: 'tasks_for == "github-push"'
|
|
119
119
|
then: '${event.repository.html_url}'
|
|
120
120
|
else:
|
|
121
|
-
$if: 'tasks_for == "github-pull-request"'
|
|
121
|
+
$if: 'tasks_for[:19] == "github-pull-request"'
|
|
122
122
|
then: '${event.pull_request.base.repo.html_url}'
|
|
123
123
|
repoUrl:
|
|
124
124
|
$if: 'tasks_for == "github-push"'
|
|
125
125
|
then: '${event.repository.html_url}'
|
|
126
126
|
else:
|
|
127
|
-
$if: 'tasks_for == "github-pull-request"'
|
|
127
|
+
$if: 'tasks_for[:19] == "github-pull-request"'
|
|
128
128
|
then: '${event.pull_request.head.repo.html_url}'
|
|
129
129
|
project:
|
|
130
130
|
$if: 'tasks_for == "github-push"'
|
|
131
131
|
then: '${event.repository.name}'
|
|
132
132
|
else:
|
|
133
|
-
$if: 'tasks_for == "github-pull-request"'
|
|
133
|
+
$if: 'tasks_for[:19] == "github-pull-request"'
|
|
134
134
|
then: '${event.pull_request.head.repo.name}'
|
|
135
135
|
headBranch:
|
|
136
|
-
$if: 'tasks_for == "github-pull-request"'
|
|
136
|
+
$if: 'tasks_for[:19] == "github-pull-request"'
|
|
137
137
|
then: ${event.pull_request.head.ref}
|
|
138
138
|
else:
|
|
139
139
|
$if: 'tasks_for == "github-push"'
|
|
@@ -142,7 +142,7 @@ here is the recommended method:
|
|
|
142
142
|
$if: 'tasks_for == "github-push"'
|
|
143
143
|
then: '${event.after}'
|
|
144
144
|
else:
|
|
145
|
-
$if: 'tasks_for == "github-pull-request"'
|
|
145
|
+
$if: 'tasks_for[:19] == "github-pull-request"'
|
|
146
146
|
then: '${event.pull_request.head.sha}'
|
|
147
147
|
|
|
148
148
|
This isn't strictly necessary, but the format of the various Github events
|
|
@@ -165,7 +165,7 @@ here is the recommended method:
|
|
|
165
165
|
in:
|
|
166
166
|
$if: >
|
|
167
167
|
tasks_for == "github-push" && headBranch == "main"
|
|
168
|
-
|| (tasks_for == "github-pull-request" && ${event.action} in ["opened", "reopened", "synchronize"])
|
|
168
|
+
|| (tasks_for[:19] == "github-pull-request" && ${event.action} in ["opened", "reopened", "synchronize"])
|
|
169
169
|
then:
|
|
170
170
|
# Task definition goes here. Since there is no "else" clause, if
|
|
171
171
|
# the above if statement evaluates to false, there will be no
|
|
@@ -236,9 +236,11 @@ here is the recommended method:
|
|
|
236
236
|
# while ${headBranch[11:]} strips out 'refs/heads/'
|
|
237
237
|
- 'assume:repo:${repoUrl[8:]}:branch:${headBranch[11:]}'
|
|
238
238
|
else:
|
|
239
|
-
$if: 'tasks_for == "github-pull-request"'
|
|
239
|
+
$if: 'tasks_for[:19] == "github-pull-request"'
|
|
240
240
|
then:
|
|
241
|
-
|
|
241
|
+
# ${tasks_for[7:]} strips the 'github-' prefix, leaving
|
|
242
|
+
# either 'pull-request' or 'pull-request-untrusted'.
|
|
243
|
+
- 'assume:repo:github.com/${event.pull_request.base.repo.full_name}:${tasks_for[7:]}'
|
|
242
244
|
|
|
243
245
|
Notice how we assume different roles depending on whether the task is
|
|
244
246
|
coming from a push or a pull request. This is useful when you have tasks
|
|
@@ -246,6 +248,17 @@ here is the recommended method:
|
|
|
246
248
|
accidentally running on a pull request! By using different scopes, you can
|
|
247
249
|
ensure it won't ever happen.
|
|
248
250
|
|
|
251
|
+
With the ``public_restricted`` policy set above, Github reports pull
|
|
252
|
+
requests from repository collaborators with ``tasks_for ==
|
|
253
|
+
"github-pull-request"`` and pull requests from everyone else with
|
|
254
|
+
``tasks_for == "github-pull-request-untrusted"``. Slicing ``tasks_for[7:]``
|
|
255
|
+
turns those into the role names ``pull-request`` and
|
|
256
|
+
``pull-request-untrusted``, so you can grant non-collaborator pull
|
|
257
|
+
requests a more restricted set of scopes than collaborator ones. This
|
|
258
|
+
matters because collapsing that distinction (e.g. by using the ``public``
|
|
259
|
+
policy) means any external contributor's pull request gets the same
|
|
260
|
+
scopes as a trusted collaborator's.
|
|
261
|
+
|
|
249
262
|
The roles assumed above may vary depending on the Taskcluster
|
|
250
263
|
configuration.
|
|
251
264
|
|
|
@@ -310,7 +323,7 @@ here is the recommended method:
|
|
|
310
323
|
# running your command
|
|
311
324
|
MYREPO_PIP_REQUIREMENTS: taskcluster/requirements.txt
|
|
312
325
|
REPOSITORIES: {$json: {myrepo: "MyRepo"}}
|
|
313
|
-
- $if: 'tasks_for
|
|
326
|
+
- $if: 'tasks_for[:19] == "github-pull-request"'
|
|
314
327
|
then:
|
|
315
328
|
MYREPO_PULL_REQUEST_NUMBER: '${event.pull_request.number}'
|
|
316
329
|
command:
|
{taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/docs/tutorials/example-taskcluster.yml
RENAMED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
version: 1
|
|
3
3
|
reporting: checks-v1
|
|
4
4
|
policy:
|
|
5
|
-
pullRequests:
|
|
5
|
+
pullRequests: public_restricted
|
|
6
6
|
tasks:
|
|
7
7
|
- $let:
|
|
8
8
|
# Variable definitions
|
|
@@ -13,7 +13,7 @@ tasks:
|
|
|
13
13
|
$if: 'tasks_for == "github-push"'
|
|
14
14
|
then: '${event.pusher.email}'
|
|
15
15
|
else:
|
|
16
|
-
$if: 'tasks_for == "github-pull-request"'
|
|
16
|
+
$if: 'tasks_for[:19] == "github-pull-request"'
|
|
17
17
|
then: '${event.pull_request.user.login}@users.noreply.github.com'
|
|
18
18
|
else:
|
|
19
19
|
$if: 'tasks_for == "github-release"'
|
|
@@ -22,22 +22,22 @@ tasks:
|
|
|
22
22
|
$if: 'tasks_for == "github-push"'
|
|
23
23
|
then: '${event.repository.html_url}'
|
|
24
24
|
else:
|
|
25
|
-
$if: 'tasks_for == "github-pull-request"'
|
|
25
|
+
$if: 'tasks_for[:19] == "github-pull-request"'
|
|
26
26
|
then: '${event.pull_request.base.repo.html_url}'
|
|
27
27
|
repoUrl:
|
|
28
28
|
$if: 'tasks_for == "github-push"'
|
|
29
29
|
then: '${event.repository.html_url}'
|
|
30
30
|
else:
|
|
31
|
-
$if: 'tasks_for == "github-pull-request"'
|
|
31
|
+
$if: 'tasks_for[:19] == "github-pull-request"'
|
|
32
32
|
then: '${event.pull_request.head.repo.html_url}'
|
|
33
33
|
project:
|
|
34
34
|
$if: 'tasks_for == "github-push"'
|
|
35
35
|
then: '${event.repository.name}'
|
|
36
36
|
else:
|
|
37
|
-
$if: 'tasks_for == "github-pull-request"'
|
|
37
|
+
$if: 'tasks_for[:19] == "github-pull-request"'
|
|
38
38
|
then: '${event.pull_request.head.repo.name}'
|
|
39
39
|
headBranch:
|
|
40
|
-
$if: 'tasks_for == "github-pull-request"'
|
|
40
|
+
$if: 'tasks_for[:19] == "github-pull-request"'
|
|
41
41
|
then: ${event.pull_request.head.ref}
|
|
42
42
|
else:
|
|
43
43
|
$if: 'tasks_for == "github-push"'
|
|
@@ -46,13 +46,13 @@ tasks:
|
|
|
46
46
|
$if: 'tasks_for == "github-push"'
|
|
47
47
|
then: '${event.after}'
|
|
48
48
|
else:
|
|
49
|
-
$if: 'tasks_for == "github-pull-request"'
|
|
49
|
+
$if: 'tasks_for[:19] == "github-pull-request"'
|
|
50
50
|
then: '${event.pull_request.head.sha}'
|
|
51
51
|
in:
|
|
52
52
|
# Guard that controls when to schedule tasks.
|
|
53
53
|
$if: >
|
|
54
54
|
tasks_for == "github-push" && headBranch == "main"
|
|
55
|
-
|| (tasks_for == "github-pull-request" && ${event.action} in ["opened", "reopened", "synchronize"])
|
|
55
|
+
|| (tasks_for[:19] == "github-pull-request" && ${event.action} in ["opened", "reopened", "synchronize"])
|
|
56
56
|
then:
|
|
57
57
|
# Task Definition
|
|
58
58
|
taskId: '${ownTaskId}'
|
|
@@ -74,9 +74,14 @@ tasks:
|
|
|
74
74
|
# while ${headBranch[11:]} strips out 'refs/heads/'
|
|
75
75
|
- 'assume:repo:${repoUrl[8:]}:branch:${headBranch[11:]}'
|
|
76
76
|
else:
|
|
77
|
-
$if: 'tasks_for == "github-pull-request"'
|
|
77
|
+
$if: 'tasks_for[:19] == "github-pull-request"'
|
|
78
78
|
then:
|
|
79
|
-
|
|
79
|
+
# ${tasks_for[7:]} strips the 'github-' prefix, leaving
|
|
80
|
+
# 'pull-request' or 'pull-request-untrusted'. With the
|
|
81
|
+
# 'public_restricted' policy these map to two separate
|
|
82
|
+
# roles, so pull requests from collaborators get more
|
|
83
|
+
# scopes than those from non-collaborators.
|
|
84
|
+
- 'assume:repo:github.com/${event.pull_request.base.repo.full_name}:${tasks_for[7:]}'
|
|
80
85
|
payload:
|
|
81
86
|
image:
|
|
82
87
|
mozillareleases/taskgraph:decision-cf4b4b4baff57d84c1f9ec8fcd70c9839b70a7d66e6430a6c41ffe67252faa19@sha256:425e07f6813804483bc5a7258288a7684d182617ceeaa0176901ccc7702dfe28
|
|
@@ -97,7 +102,7 @@ tasks:
|
|
|
97
102
|
# bootstrapped
|
|
98
103
|
MYREPO_PIP_REQUIREMENTS: taskcluster/requirements.txt
|
|
99
104
|
REPOSITORIES: {$json: {myrepo: "MyRepo"}}
|
|
100
|
-
- $if: 'tasks_for
|
|
105
|
+
- $if: 'tasks_for[:19] == "github-pull-request"'
|
|
101
106
|
then:
|
|
102
107
|
MYREPO_PULL_REQUEST_NUMBER: '${event.pull_request.number}'
|
|
103
108
|
command:
|
|
@@ -17,7 +17,6 @@ from taskgraph.actions import render_actions_json
|
|
|
17
17
|
from taskgraph.create import create_tasks
|
|
18
18
|
from taskgraph.generator import TaskGraphGenerator
|
|
19
19
|
from taskgraph.parameters import Parameters, get_version
|
|
20
|
-
from taskgraph.taskgraph import TaskGraph
|
|
21
20
|
from taskgraph.util import json
|
|
22
21
|
from taskgraph.util.python_path import find_object
|
|
23
22
|
from taskgraph.util.schema import Schema, validate_schema
|
|
@@ -131,9 +130,6 @@ def taskgraph_decision(options, parameters=None):
|
|
|
131
130
|
"runnable-jobs.json", full_task_graph_to_runnable_tasks(full_task_json)
|
|
132
131
|
)
|
|
133
132
|
|
|
134
|
-
# this is just a test to check whether the from_json() function is working
|
|
135
|
-
_, _ = TaskGraph.from_json(full_task_json)
|
|
136
|
-
|
|
137
133
|
# write out the target task set to allow reproducing this as input
|
|
138
134
|
write_artifact("target-tasks.json", list(tgg.target_task_set.tasks.keys()))
|
|
139
135
|
|
|
@@ -61,20 +61,24 @@ class Graph(_Graph):
|
|
|
61
61
|
f"Unknown nodes in transitive closure: {nodes - self.nodes}"
|
|
62
62
|
)
|
|
63
63
|
|
|
64
|
-
#
|
|
65
|
-
#
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
64
|
+
# Build an adjacency map keyed by the node to expand from. This reduces
|
|
65
|
+
# traversal below from O(V·E) -> O(V+E).
|
|
66
|
+
adjacency = collections.defaultdict(list)
|
|
67
|
+
for edge in self.edges:
|
|
68
|
+
left, right, _ = edge
|
|
69
|
+
adjacency[right if reverse else left].append(edge)
|
|
70
|
+
|
|
71
|
+
new_nodes = set(nodes)
|
|
72
|
+
new_edges = set()
|
|
73
|
+
queue = collections.deque(nodes)
|
|
74
|
+
while queue:
|
|
75
|
+
node = queue.popleft()
|
|
76
|
+
for edge in adjacency.get(node, ()):
|
|
77
|
+
new_edges.add(edge)
|
|
78
|
+
neighbor = edge[0] if reverse else edge[1]
|
|
79
|
+
if neighbor not in new_nodes:
|
|
80
|
+
new_nodes.add(neighbor)
|
|
81
|
+
queue.append(neighbor)
|
|
78
82
|
return Graph(new_nodes, new_edges)
|
|
79
83
|
|
|
80
84
|
def _visit(self, reverse):
|
|
@@ -103,6 +107,15 @@ class Graph(_Graph):
|
|
|
103
107
|
f"Dependency loop detected involving the following nodes: {loopy_nodes}"
|
|
104
108
|
)
|
|
105
109
|
|
|
110
|
+
@functools.cache
|
|
111
|
+
def _visit_order(self, reverse):
|
|
112
|
+
"""
|
|
113
|
+
Return the order in which `_visit` yields nodes as a tuple. The graph
|
|
114
|
+
is immutable, so this is cached to avoid sorting it again every time
|
|
115
|
+
it is visited.
|
|
116
|
+
"""
|
|
117
|
+
return tuple(self._visit(reverse))
|
|
118
|
+
|
|
106
119
|
def visit_postorder(self):
|
|
107
120
|
"""
|
|
108
121
|
Generate a sequence of nodes in postorder, such that every node is
|
|
@@ -110,14 +123,14 @@ class Graph(_Graph):
|
|
|
110
123
|
|
|
111
124
|
Raises an exception if the graph contains a cycle.
|
|
112
125
|
"""
|
|
113
|
-
return self.
|
|
126
|
+
return iter(self._visit_order(False))
|
|
114
127
|
|
|
115
128
|
def visit_preorder(self):
|
|
116
129
|
"""
|
|
117
130
|
Like visit_postorder, but in reverse: evrey node is visited *before*
|
|
118
131
|
any nodes it links to.
|
|
119
132
|
"""
|
|
120
|
-
return self.
|
|
133
|
+
return iter(self._visit_order(True))
|
|
121
134
|
|
|
122
135
|
@functools.cache
|
|
123
136
|
def links_and_reverse_links_dict(self):
|
{taskcluster_taskgraph-24.2.3 → taskcluster_taskgraph-24.4.0}/src/taskgraph/optimize/base.py
RENAMED
|
@@ -78,7 +78,7 @@ def optimize_task_graph(
|
|
|
78
78
|
|
|
79
79
|
# Gather each relevant task's index
|
|
80
80
|
indexes = set()
|
|
81
|
-
for label in target_task_graph.
|
|
81
|
+
for label in target_task_graph.tasks:
|
|
82
82
|
if label in do_not_optimize:
|
|
83
83
|
continue
|
|
84
84
|
_, strategy, arg = optimizations(label)
|
|
@@ -157,7 +157,7 @@ def remove_tasks(
|
|
|
157
157
|
opt_counts = defaultdict(int)
|
|
158
158
|
opt_reasons = {}
|
|
159
159
|
removed = set()
|
|
160
|
-
dependents_of = target_task_graph.graph.
|
|
160
|
+
_, dependents_of = target_task_graph.graph.links_and_reverse_links_dict()
|
|
161
161
|
tasks = target_task_graph.tasks
|
|
162
162
|
prune_candidates = set()
|
|
163
163
|
|