taskcluster-taskgraph 24.0.0__tar.gz → 24.1.1__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.0.0 → taskcluster_taskgraph-24.1.1}/.github/workflows/codeql-analysis.yml +4 -4
- taskcluster_taskgraph-24.1.1/.github/workflows/codspeed.yml +31 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/.github/workflows/pypi-publish.yml +15 -9
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/.gitignore +1 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/CHANGELOG.md +12 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/PKG-INFO +5 -1
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/README.rst +4 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/reference/transforms/task_context.rst +81 -30
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/pyproject.toml +2 -1
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/parameters.py +13 -10
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/transforms/task_context.py +16 -0
- taskcluster_taskgraph-24.1.1/src/taskgraph/util/task_context.py +20 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/docker/index-task/yarn.lock +3 -3
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/data/task_context.yml +1 -0
- taskcluster_taskgraph-24.1.1/test/test_graph_perf.py +218 -0
- taskcluster_taskgraph-24.1.1/test/test_transform_task_context.py +348 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/uv.lock +222 -35
- taskcluster_taskgraph-24.0.0/test/test_transform_task_context.py +0 -222
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/.codespell-ignore-words.txt +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/.github/CODEOWNERS +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/.pre-commit-config.yaml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/.readthedocs.yaml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/.taskcluster.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/.yamllint +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/CODE_OF_CONDUCT.md +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/CONTRIBUTING.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/LICENSE +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/Makefile +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/concepts/index.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/concepts/kind.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/concepts/loading.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/concepts/optimization.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/concepts/overview.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/concepts/scopes.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/concepts/task-graphs.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/concepts/transforms.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/conf.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/contributing.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/glossary.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/howto/bootstrap-taskgraph.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/howto/create-actions.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/howto/create-tasks.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/howto/debugging.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/howto/define-schemas.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/howto/docker.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/howto/index.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/howto/load-task-locally.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/howto/resolve-keyed-by.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/howto/run-locally.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/howto/send-notifications.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/howto/use-fetches.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/index.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/reference/cli.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/reference/index.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/reference/migrations.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/reference/optimization-strategies.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/reference/parameters.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/reference/source/modules.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/reference/source/taskgraph.actions.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/reference/source/taskgraph.loader.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/reference/source/taskgraph.optimize.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/reference/source/taskgraph.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/reference/source/taskgraph.transforms.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/reference/source/taskgraph.transforms.run.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/reference/source/taskgraph.util.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/reference/transforms/chunking.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/reference/transforms/from_deps.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/reference/transforms/index.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/reference/transforms/matrix.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/tutorials/connecting-taskcluster.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/tutorials/creating-a-task-graph.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/tutorials/example-taskcluster.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/tutorials/getting-started.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/docs/tutorials/index.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/make.bat +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/packages/pytest-taskgraph/README.md +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/packages/pytest-taskgraph/pyproject.toml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/packages/pytest-taskgraph/src/pytest_taskgraph/__init__.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/packages/pytest-taskgraph/src/pytest_taskgraph/fixtures/gen.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/packages/pytest-taskgraph/src/pytest_taskgraph/fixtures/vcs.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/packages/sphinx-taskgraph/README.md +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/packages/sphinx-taskgraph/pyproject.toml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/packages/sphinx-taskgraph/src/sphinx_taskgraph/__init__.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/packages/sphinx-taskgraph/src/sphinx_taskgraph/autoschema.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/renovate.json +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/__init__.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/actions/__init__.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/actions/add_new_jobs.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/actions/cancel.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/actions/cancel_all.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/actions/rebuild_cached_tasks.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/actions/registry.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/actions/retrigger.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/actions/util.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/config.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/create.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/decision.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/docker.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/filter_tasks.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/generator.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/graph.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/loader/__init__.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/loader/default.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/loader/transform.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/main.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/morph.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/optimize/__init__.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/optimize/base.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/optimize/strategies.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/run-task/fetch-content +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/run-task/hgrc +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/run-task/robustcheckout.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/run-task/run-task +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/target_tasks.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/task.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/taskgraph.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/transforms/__init__.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/transforms/base.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/transforms/cached_tasks.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/transforms/chunking.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/transforms/code_review.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/transforms/docker_image.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/transforms/fetch.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/transforms/from_deps.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/transforms/matrix.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/transforms/notify.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/transforms/run/__init__.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/transforms/run/common.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/transforms/run/index_search.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/transforms/run/run_task.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/transforms/run/toolchain.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/transforms/task.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/__init__.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/archive.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/attributes.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/cached_tasks.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/caches.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/copy.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/dependencies.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/docker.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/hash.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/json.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/keyed_by.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/parameterization.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/path.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/python_path.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/readonlydict.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/schema.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/set_name.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/shell.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/taskcluster.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/taskgraph.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/templates.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/time.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/treeherder.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/vcs.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/verify.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/workertypes.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/src/taskgraph/util/yaml.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/config.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/docker/REGISTRY +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/docker/decision/Dockerfile +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/docker/decision/HASH +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/docker/decision/README.md +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/docker/decision/VERSION +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/docker/decision/system-setup.sh +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/docker/fetch/Dockerfile +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/docker/image_builder/README.rst +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/docker/index-task/Dockerfile +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/docker/index-task/README +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/docker/index-task/insert-indexes.js +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/docker/index-task/package.json +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/docker/python/Dockerfile +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/docker/run-task/Dockerfile +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/docker/run-task/system-setup.sh +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/docker/skopeo/Dockerfile +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/docker/skopeo/policy.json +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/docker/skopeo/push_image.sh +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/kinds/check/kind.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/kinds/codecov/kind.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/kinds/complete/kind.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/kinds/doc/kind.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/kinds/docker-image/kind.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/kinds/fetch/kind.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/kinds/push-image/kind.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/kinds/test/kind.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/kinds/test/linux.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/kinds/test/windows.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/scripts/codecov-upload.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/self_taskgraph/__init__.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/self_taskgraph/custom_parameters.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/self_taskgraph/custom_target_tasks.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/self_taskgraph/transforms/add_pr_route.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/self_taskgraph/transforms/push_image.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/test/params/main-repo-pull-request-untrusted.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/test/params/main-repo-pull-request.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/test/params/main-repo-push.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/test/params/main-repo-release-pytest-taskgraph.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/taskcluster/test/params/main-repo-release-taskcluster-taskgraph.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/template/cookiecutter.json +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/template/hooks/post_gen_project.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/template/{{cookiecutter.project_name}}/taskcluster/config.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/template/{{cookiecutter.project_name}}/taskcluster/docker/linux/Dockerfile +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/template/{{cookiecutter.project_name}}/taskcluster/kinds/docker-image/kind.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/template/{{cookiecutter.project_name}}/taskcluster/kinds/hello/kind.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/template/{{cookiecutter.project_name}}/taskcluster/{{cookiecutter.project_slug}}_taskgraph/transforms/hello.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/template/{{cookiecutter.project_name}}/taskcluster.github.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/__init__.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/automationrelevance.json +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/conftest.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/data/taskcluster/config.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/data/taskcluster/docker/hello-world/Dockerfile +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/data/taskcluster/docker/hello-world-tag/Dockerfile +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/data/taskcluster/docker/hello-world-tag/REGISTRY +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/data/taskcluster/docker/hello-world-tag/VERSION +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/data/taskcluster/kinds/docker-image/kind.yml +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/data/taskcluster/scripts/toolchain/run.ps1 +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/data/taskcluster/scripts/toolchain/run.sh +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/data/taskcluster/test_taskgraph/transforms/foo.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/data/testmod/thing.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/mockedopen.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_actions_rebuild_cached_tasks.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_actions_registry.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_config.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_create.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_decision.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_docker.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_generator.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_graph.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_main.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_morph.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_optimize.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_optimize_strategies.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_parameters.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_scripts_fetch_content.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_scripts_run_task.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_target_tasks.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_taskgraph.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_transform_chunking.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_transform_docker_image.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_transforms_base.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_transforms_cached_tasks.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_transforms_fetch.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_transforms_from_deps.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_transforms_matrix.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_transforms_notify.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_transforms_run.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_transforms_run_run_task.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_transforms_run_toolchain.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_transforms_task.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_util_archive.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_util_attributes.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_util_cached_tasks.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_util_copy.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_util_dependencies.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_util_docker.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_util_json.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_util_keyed_by.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_util_parameterization.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_util_path.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_util_python_path.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_util_readonlydict.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_util_schema.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_util_taskcluster.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_util_templates.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_util_time.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_util_treeherder.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_util_vcs.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_util_verify.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_util_workertypes.py +0 -0
- {taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/test/test_util_yaml.py +0 -0
{taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/.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@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
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@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.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@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.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@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: CodSpeed
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
pull_request:
|
|
9
|
+
# `workflow_dispatch` allows CodSpeed to trigger backtest
|
|
10
|
+
# performance analysis in order to generate initial data.
|
|
11
|
+
workflow_dispatch:
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
benchmarks:
|
|
15
|
+
name: Run benchmarks
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
permissions:
|
|
18
|
+
contents: read # required for actions/checkout
|
|
19
|
+
id-token: write # required for OIDC authentication with CodSpeed
|
|
20
|
+
steps:
|
|
21
|
+
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
22
|
+
- uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
|
|
23
|
+
with:
|
|
24
|
+
python-version: "3.12"
|
|
25
|
+
- name: Install dependencies
|
|
26
|
+
run: uv sync
|
|
27
|
+
- name: Run benchmarks
|
|
28
|
+
uses: CodSpeedHQ/action@9d332c4d90b43981c3e55ae8e38e68709996240f # v4.17.0
|
|
29
|
+
with:
|
|
30
|
+
mode: simulation
|
|
31
|
+
run: uv run pytest test/ --codspeed
|
{taskcluster_taskgraph-24.0.0 → taskcluster_taskgraph-24.1.1}/.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@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
16
|
+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
17
17
|
with:
|
|
18
18
|
python-version: '3.11'
|
|
19
19
|
cache: 'pip'
|
|
@@ -21,8 +21,14 @@ jobs:
|
|
|
21
21
|
run: |
|
|
22
22
|
pip install build
|
|
23
23
|
python -m build
|
|
24
|
+
# NOTE: We deliberately pin this action to a commit SHA rather than the
|
|
25
|
+
# mutable `@release/v1` ref that PyPA recommends. The pin stops the
|
|
26
|
+
# action from being swapped out from under a workflow that holds PyPI
|
|
27
|
+
# publish (OIDC) rights; the cost is losing automatic upstream patches.
|
|
28
|
+
# Renovate offsets that by bumping the pinned SHA (tracked via the
|
|
29
|
+
# trailing `# vX.Y.Z` comment), so merge those bump PRs promptly.
|
|
24
30
|
- name: Publish package distributions to PyPI
|
|
25
|
-
uses: pypa/gh-action-pypi-publish@
|
|
31
|
+
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
|
|
26
32
|
pypi-publish-pytest-taskgraph:
|
|
27
33
|
name: upload release to PyPI
|
|
28
34
|
if: startsWith(github.ref, 'refs/tags/pytest-taskgraph')
|
|
@@ -32,8 +38,8 @@ jobs:
|
|
|
32
38
|
id-token: write
|
|
33
39
|
steps:
|
|
34
40
|
- name: Checkout sources
|
|
35
|
-
uses: actions/checkout@
|
|
36
|
-
- uses: actions/setup-python@
|
|
41
|
+
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
42
|
+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
37
43
|
with:
|
|
38
44
|
python-version: '3.11'
|
|
39
45
|
cache: 'pip'
|
|
@@ -43,7 +49,7 @@ jobs:
|
|
|
43
49
|
pip install build
|
|
44
50
|
python -m build
|
|
45
51
|
- name: Publish package distributions to PyPI
|
|
46
|
-
uses: pypa/gh-action-pypi-publish@
|
|
52
|
+
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
|
|
47
53
|
with:
|
|
48
54
|
packages-dir: packages/pytest-taskgraph/dist
|
|
49
55
|
pypi-publish-sphinx-taskgraph:
|
|
@@ -55,8 +61,8 @@ jobs:
|
|
|
55
61
|
id-token: write
|
|
56
62
|
steps:
|
|
57
63
|
- name: Checkout sources
|
|
58
|
-
uses: actions/checkout@
|
|
59
|
-
- uses: actions/setup-python@
|
|
64
|
+
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
65
|
+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
60
66
|
with:
|
|
61
67
|
python-version: '3.11'
|
|
62
68
|
cache: 'pip'
|
|
@@ -66,6 +72,6 @@ jobs:
|
|
|
66
72
|
pip install build
|
|
67
73
|
python -m build
|
|
68
74
|
- name: Publish package distributions to PyPI
|
|
69
|
-
uses: pypa/gh-action-pypi-publish@
|
|
75
|
+
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
|
|
70
76
|
with:
|
|
71
77
|
packages-dir: packages/sphinx-taskgraph/dist
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## [24.1.1] - 2026-06-11
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- Use proper `comm` parameters in Git repos as well
|
|
8
|
+
|
|
9
|
+
## [24.1.0] - 2026-06-04
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- support for custom context in task-context (#971)
|
|
14
|
+
|
|
3
15
|
## [24.0.0] - 2026-06-03
|
|
4
16
|
|
|
5
17
|
### Changed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: taskcluster-taskgraph
|
|
3
|
-
Version: 24.
|
|
3
|
+
Version: 24.1.1
|
|
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
|
|
@@ -44,6 +44,10 @@ Description-Content-Type: text/x-rst
|
|
|
44
44
|
:target: https://codecov.io/gh/taskcluster/taskgraph
|
|
45
45
|
:alt: Code Coverage
|
|
46
46
|
|
|
47
|
+
.. image:: https://img.shields.io/endpoint?url=https://codspeed.io/badge.json
|
|
48
|
+
:target: https://codspeed.io/taskcluster/taskgraph?utm_source=badge
|
|
49
|
+
:alt: CodSpeed Performance
|
|
50
|
+
|
|
47
51
|
.. image:: https://badge.fury.io/py/taskcluster-taskgraph.svg
|
|
48
52
|
:target: https://badge.fury.io/py/taskcluster-taskgraph
|
|
49
53
|
:alt: Pypi Version
|
|
@@ -7,6 +7,10 @@
|
|
|
7
7
|
:target: https://codecov.io/gh/taskcluster/taskgraph
|
|
8
8
|
:alt: Code Coverage
|
|
9
9
|
|
|
10
|
+
.. image:: https://img.shields.io/endpoint?url=https://codspeed.io/badge.json
|
|
11
|
+
:target: https://codspeed.io/taskcluster/taskgraph?utm_source=badge
|
|
12
|
+
:alt: CodSpeed Performance
|
|
13
|
+
|
|
10
14
|
.. image:: https://badge.fury.io/py/taskcluster-taskgraph.svg
|
|
11
15
|
:target: https://badge.fury.io/py/taskcluster-taskgraph
|
|
12
16
|
:alt: Pypi Version
|
|
@@ -98,35 +98,6 @@ with the this ``kind``:
|
|
|
98
98
|
...the description will bring in the value ``foo`` from the parameters if
|
|
99
99
|
present, or ``default`` otherwise.
|
|
100
100
|
|
|
101
|
-
from-file
|
|
102
|
-
~~~~~~~~~
|
|
103
|
-
|
|
104
|
-
Context may also be provided from a defined yaml file. The provided file
|
|
105
|
-
should usually only contain top level keys and values (eg: nested objects
|
|
106
|
-
will not be interpolated - they will be substituted as text representations
|
|
107
|
-
of the object).
|
|
108
|
-
|
|
109
|
-
For example, with this kind definition:
|
|
110
|
-
|
|
111
|
-
.. code-block:: yaml
|
|
112
|
-
|
|
113
|
-
tasks:
|
|
114
|
-
build:
|
|
115
|
-
description: my description {foo}
|
|
116
|
-
task-context:
|
|
117
|
-
from-file: some_file.yaml
|
|
118
|
-
substitution-fields:
|
|
119
|
-
- description
|
|
120
|
-
|
|
121
|
-
And this in ``some_file.yaml``:
|
|
122
|
-
|
|
123
|
-
.. code-block:: yaml
|
|
124
|
-
|
|
125
|
-
foo: from a file
|
|
126
|
-
|
|
127
|
-
...description will end up with "my description from a file".
|
|
128
|
-
|
|
129
|
-
|
|
130
101
|
from-object
|
|
131
102
|
~~~~~~~~~~~
|
|
132
103
|
|
|
@@ -158,6 +129,86 @@ For example:
|
|
|
158
129
|
This will give build1 and build2 descriptions with their ``extra_desc``
|
|
159
130
|
included while allowing them to share the rest of their task definition.
|
|
160
131
|
|
|
132
|
+
from-custom
|
|
133
|
+
~~~~~~~~~~~
|
|
134
|
+
|
|
135
|
+
Context may be provided by custom providers, which must be registered prior
|
|
136
|
+
to this transform being run. This allows the creation of context that is
|
|
137
|
+
derived from parameters, code constants, or anything else accessible to
|
|
138
|
+
taskgraph.
|
|
139
|
+
|
|
140
|
+
For example, you may have a custom context handler set-up in
|
|
141
|
+
``taskcluster/my_taskgraph/custom_context.py``:
|
|
142
|
+
|
|
143
|
+
.. code-block:: python
|
|
144
|
+
|
|
145
|
+
NON_PRODUCTION_BRANCHES = ["maple", "pine"]
|
|
146
|
+
|
|
147
|
+
@custom_context("release-level")
|
|
148
|
+
def release_level_context(config, task):
|
|
149
|
+
# Despite being level 3, some branches are not truly considered "production"
|
|
150
|
+
# in the sense of creating releases that ship to users.
|
|
151
|
+
if config.params["level"] == "1" or config.params["project"] in NON_PRODUCTION_BRANCHES:
|
|
152
|
+
return "staging"
|
|
153
|
+
return "production"
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
In your ``register`` function you will need to ensure you import this module.
|
|
157
|
+
Eg: ``taskcluster/my_taskgraph/__init__.py``:
|
|
158
|
+
|
|
159
|
+
.. code-block:: python
|
|
160
|
+
|
|
161
|
+
def register(graph_config):
|
|
162
|
+
from my_taskgraph import custom_contexts # trigger custom task-context registration
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
Now you can use ``release-level`` as context in a kind:
|
|
166
|
+
|
|
167
|
+
.. code-block:: yaml
|
|
168
|
+
|
|
169
|
+
task-defaults:
|
|
170
|
+
task-context:
|
|
171
|
+
from-custom:
|
|
172
|
+
- release-level
|
|
173
|
+
substitution-fields:
|
|
174
|
+
- scopes
|
|
175
|
+
|
|
176
|
+
scopes:
|
|
177
|
+
by-release-level:
|
|
178
|
+
staging:
|
|
179
|
+
- secrets:get:staging_creds
|
|
180
|
+
production:
|
|
181
|
+
- secrets:get:production_creds
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
from-file
|
|
185
|
+
~~~~~~~~~
|
|
186
|
+
|
|
187
|
+
Context may also be provided from a defined yaml file. The provided file
|
|
188
|
+
should usually only contain top level keys and values (eg: nested objects
|
|
189
|
+
will not be interpolated - they will be substituted as text representations
|
|
190
|
+
of the object).
|
|
191
|
+
|
|
192
|
+
For example, with this kind definition:
|
|
193
|
+
|
|
194
|
+
.. code-block:: yaml
|
|
195
|
+
|
|
196
|
+
tasks:
|
|
197
|
+
build:
|
|
198
|
+
description: my description {foo}
|
|
199
|
+
task-context:
|
|
200
|
+
from-file: some_file.yaml
|
|
201
|
+
substitution-fields:
|
|
202
|
+
- description
|
|
203
|
+
|
|
204
|
+
And this in ``some_file.yaml``:
|
|
205
|
+
|
|
206
|
+
.. code-block:: yaml
|
|
207
|
+
|
|
208
|
+
foo: from a file
|
|
209
|
+
|
|
210
|
+
...description will end up with "my description from a file".
|
|
211
|
+
|
|
161
212
|
Implicit Context
|
|
162
213
|
~~~~~~~~~~~~~~~~
|
|
163
214
|
|
|
@@ -185,7 +236,7 @@ Keys will be resolved on ``substitution-fields`` first, then substitution
|
|
|
185
236
|
will be performed on the resolved value.
|
|
186
237
|
|
|
187
238
|
If the same key is found in multiple places the order of precedence is as
|
|
188
|
-
follows: ``from-parameters``, ``from-object`` keys, ``from-file`` and finally
|
|
239
|
+
follows: ``from-parameters``, ``from-object`` keys, ``from-custom`` providers, ``from-file`` and finally
|
|
189
240
|
implicit context.
|
|
190
241
|
|
|
191
242
|
That is to say: parameters will always override anything else.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
### Project
|
|
2
2
|
[project]
|
|
3
3
|
name = "taskcluster-taskgraph"
|
|
4
|
-
version = "24.
|
|
4
|
+
version = "24.1.1"
|
|
5
5
|
description = "Build taskcluster taskgraphs"
|
|
6
6
|
readme = "README.rst"
|
|
7
7
|
authors = [
|
|
@@ -42,6 +42,7 @@ dev = [
|
|
|
42
42
|
"pre-commit>=4.3.0",
|
|
43
43
|
"pyright>=1.1.406",
|
|
44
44
|
"pytest>=8.4.2",
|
|
45
|
+
"pytest-codspeed>=3.2.0",
|
|
45
46
|
"pytest-mock>=3.15.1",
|
|
46
47
|
"pytest-taskgraph>=0.2.0",
|
|
47
48
|
"responses>=0.25.8",
|
|
@@ -291,30 +291,33 @@ class Parameters(ReadOnlyDict):
|
|
|
291
291
|
|
|
292
292
|
:return str: The URL displaying the given path.
|
|
293
293
|
"""
|
|
294
|
+
if "comm/" in path:
|
|
295
|
+
path = path.split("comm/")[1]
|
|
296
|
+
repo_key = "comm_head_repository"
|
|
297
|
+
rev_key = "comm_head_rev"
|
|
298
|
+
else:
|
|
299
|
+
repo_key = "head_repository"
|
|
300
|
+
rev_key = "head_rev"
|
|
301
|
+
|
|
294
302
|
if self["repository_type"] == "hg":
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
repo = self["comm_head_repository"]
|
|
298
|
-
rev = self["comm_head_rev"]
|
|
299
|
-
else:
|
|
300
|
-
repo = self["head_repository"]
|
|
301
|
-
rev = self["head_rev"]
|
|
303
|
+
repo = self[repo_key]
|
|
304
|
+
rev = self[rev_key]
|
|
302
305
|
endpoint = "file" if pretty else "raw-file"
|
|
303
306
|
return f"{repo}/{endpoint}/{rev}/{path}"
|
|
304
307
|
elif self["repository_type"] == "git":
|
|
305
308
|
# For getting the file URL for git repositories, we only support a Github HTTPS remote
|
|
306
|
-
repo = self[
|
|
309
|
+
repo = self[repo_key]
|
|
307
310
|
if repo.startswith("https://github.com/"):
|
|
308
311
|
if repo.endswith("/"):
|
|
309
312
|
repo = repo[:-1]
|
|
310
313
|
|
|
311
|
-
rev = self[
|
|
314
|
+
rev = self[rev_key]
|
|
312
315
|
endpoint = "blob" if pretty else "raw"
|
|
313
316
|
return f"{repo}/{endpoint}/{rev}/{path}"
|
|
314
317
|
elif repo.startswith("git@github.com:"):
|
|
315
318
|
if repo.endswith(".git"):
|
|
316
319
|
repo = repo[:-4]
|
|
317
|
-
rev = self[
|
|
320
|
+
rev = self[rev_key]
|
|
318
321
|
endpoint = "blob" if pretty else "raw"
|
|
319
322
|
return "{}/{}/{}/{}".format(
|
|
320
323
|
repo.replace("git@github.com:", "https://github.com/"),
|
|
@@ -2,6 +2,7 @@ from typing import Optional, Union
|
|
|
2
2
|
|
|
3
3
|
from taskgraph.transforms.base import TransformSequence
|
|
4
4
|
from taskgraph.util.schema import Schema, resolve_keyed_by
|
|
5
|
+
from taskgraph.util.task_context import CUSTOM_CONTEXT_MAP
|
|
5
6
|
from taskgraph.util.templates import deep_get, substitute_task_fields
|
|
6
7
|
from taskgraph.util.yaml import load_yaml
|
|
7
8
|
|
|
@@ -28,6 +29,12 @@ class TaskContextConfig(Schema):
|
|
|
28
29
|
from_file: Optional[str] = None
|
|
29
30
|
# Key/value pairs to be used as task context
|
|
30
31
|
from_object: Optional[object] = None
|
|
32
|
+
# Retrieve task context values from registered custom providers. Each
|
|
33
|
+
# entry is the name of a provider registered via
|
|
34
|
+
# ``taskgraph.util.task_context.custom_context``. Providers are called
|
|
35
|
+
# with the ``TransformConfig`` and the task being rendered, and must
|
|
36
|
+
# return a dict of key/value pairs to add to the context.
|
|
37
|
+
from_custom: Optional[list[str]] = None
|
|
31
38
|
resolve_keyed_by_options: Optional[ResolveKeyedByConfigOptions] = None
|
|
32
39
|
|
|
33
40
|
|
|
@@ -51,6 +58,7 @@ class TaskContextSchema(Schema, forbid_unknown_fields=False, kw_only=True):
|
|
|
51
58
|
# is as follows:
|
|
52
59
|
# - Parameters
|
|
53
60
|
# - `from-object` keys
|
|
61
|
+
# - Custom providers (`from-custom`)
|
|
54
62
|
# - File
|
|
55
63
|
#
|
|
56
64
|
# That is to say: parameters will always override anything else.
|
|
@@ -89,10 +97,18 @@ def render_task(config, tasks):
|
|
|
89
97
|
if from_file:
|
|
90
98
|
file_context = load_yaml(from_file)
|
|
91
99
|
|
|
100
|
+
custom_context = {}
|
|
101
|
+
for name in sub_config.pop("from-custom", None) or []:
|
|
102
|
+
if name not in CUSTOM_CONTEXT_MAP:
|
|
103
|
+
raise ValueError(f"no provider found for custom context '{name}'")
|
|
104
|
+
|
|
105
|
+
custom_context.update(CUSTOM_CONTEXT_MAP[name](config, task))
|
|
106
|
+
|
|
92
107
|
fields = sub_config.pop("substitution-fields")
|
|
93
108
|
|
|
94
109
|
subs = {}
|
|
95
110
|
subs.update(file_context)
|
|
111
|
+
subs.update(custom_context)
|
|
96
112
|
# We've popped away the configuration; everything left in `sub_config` is
|
|
97
113
|
# substitution key/value pairs.
|
|
98
114
|
subs.update(sub_config.pop("from-object", {}))
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
4
|
+
|
|
5
|
+
# Define a collection of custom task-context providers.
|
|
6
|
+
# Note: this is stored here instead of where it is used in the
|
|
7
|
+
# `task_context` transform to give consumers a chance to register their own
|
|
8
|
+
# providers before the `task_context` schema is created.
|
|
9
|
+
CUSTOM_CONTEXT_MAP = {}
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def custom_context(name):
|
|
13
|
+
def wrapper(func):
|
|
14
|
+
assert name not in CUSTOM_CONTEXT_MAP, (
|
|
15
|
+
f"duplicate custom_context function name {name} ({func} and {CUSTOM_CONTEXT_MAP[name]})"
|
|
16
|
+
)
|
|
17
|
+
CUSTOM_CONTEXT_MAP[name] = func
|
|
18
|
+
return func
|
|
19
|
+
|
|
20
|
+
return wrapper
|
|
@@ -63,9 +63,9 @@
|
|
|
63
63
|
"@types/node" "*"
|
|
64
64
|
|
|
65
65
|
"@types/node@*":
|
|
66
|
-
version "25.9.
|
|
67
|
-
resolved "https://registry.yarnpkg.com/@types/node/-/node-25.9.
|
|
68
|
-
integrity sha512-
|
|
66
|
+
version "25.9.2"
|
|
67
|
+
resolved "https://registry.yarnpkg.com/@types/node/-/node-25.9.2.tgz#fc8958e757994b71fee516f9634bdb03d1b19e9f"
|
|
68
|
+
integrity sha512-G05zqtJhcDLb8uslf5EjCxXg9G1KQxiV8OS0R26IC//Eoyitzqe8z37I7cqvnZlrlSfgocQRfSn/AHBZJJFyGw==
|
|
69
69
|
dependencies:
|
|
70
70
|
undici-types ">=7.24.0 <7.24.7"
|
|
71
71
|
|