- Decision task now fetches
refs/notes/decision-parametersitself
- BREAKING CHANGE: Removed ability for
run-taskto fetch arbitrary extra refs - BREAKING CHANGE: Removed docker-worker feature: relengapi-proxy
- Ability for
run-taskto fetch arbitrary extra refs - Ability for Decision task to override params via Git notes
- Improved index route verification
- BREAKING CHANGE: run-task and decision images now use Debian 13
- BREAKING CHANGE: Removed docker-worker features: dind, privileged, loopback-audio
- Support for generic-worker's
hide-cmd-windowfeature - Ability to process kinds concurrently with threading
- BREAKING CHANGE: Binaries installed as part of
PIP_REQUIREMENTSbyrun-tasknow end up in~/.local/bin - Exception when base revision is the null revision
- Ability to use
optionally_keyed_bywith underlying dict using msgspec
- Loosen
optionally_keyed_byconstraints for msgspec compatibility
- Restore
payload_builderwrapping for dict schemas - Make nested struct fields optional to match voluptuous defaults
- Converted all remaining voluptuous schemas to msgspec
- Parent image name lookup in
build-imagenow uses task ids - Decision task environment now passes full ref names for chain-of-trust verification
- Exclude
__pycache__directories when generating docker contexts
- BREAKING CHANGE: Support for msgspec schemas; voluptuous schemas renamed to
LegacySchema
- Updated taskcluster dependency to v92; artifact functions now handle redirects manually
- Updated workerType in template
.taskcluster.yml - Disabled unnecessary
taskcluster-proxyfor Windows tests
- Race condition in
docker_imagetransforms when creating docker-contexts directory - Wrong location for
extrain.taskcluster.ymltemplate
- New
get_task_definitionsTaskcluster utility function
- Better error handling on task creation failure, to gather all e.g. scope errors instead of giving up after the first
get_artifact_from_indexnow usesartifact_pathinstead ofindex_path(bug 1999039); fixes regression introduced in 16.0.0- Task objects created by
load_tasksorfrom_jsonno longer haveNoneasif_dependencies/soft_dependenciesattributes
- Updated run-task detection in
util.verifyand thetasktransform for gecko's suffixedrun-task-hgandrun-task-gitcommands
--developflag totaskgraph load-taskto support making source changes in a task
- BREAKING CHANGE:
run-taskno longer cleans up fetches dir (worker is already responsible for this) - Normalized certain known environment variables to use forward slashes in
run-task - Added some additional environment variables to this normalization in
run-task
fetch-contentnow usesPERFHERDER_FETCH_CONTENT_JSON_PATHfor perf artifact
- BREAKING CHANGE: Mercurial sparse profiles no longer supported in
run-task
- Support for local volumes to
taskgraph load-task -v host_path:container_path
load-tasknow takes run-task-{hg,git} into account when checking for run-task- Properly detect dependency cycles in the
cached_taskstransform and raise an exception instead of it being an infinite loop
- Exception when using
run-taskscript on Windows run-taskscript temporarily supports Python 3.8 again- Optimization phase updates
dependenciesproperty inTaskobjects
- Added support for outputting a mermaid flowchart of the kind graph (
taskgraph kind-graph)
get_taskcluster_clientrespectsPRODUCTION_TASKCLUSTER_ROOT_URLagain- Avoid using the proxy in
get_index_url, aligning it withget_artifact_url - Don't parse
git clean's stderr to prevent trying to parse error messages - Fixed stripping prefixes for hard links when repacking archives in fetch-content
- Fixed fetching JSON artifacts that are not an object with
util.taskcluster.get_artifact - Fixed the
run_tasktransform to not use the proxy to get script artifacts
- Support for "graph_config" verifications
- Added Python 3.8 support back to
fetch-contentscript for Gecko workaround
- BREAKING CHANGE: Dropped support for Python 3.8
- BREAKING CHANGE:
base_refparameter no longer gets reset to default branch by Decision task - BREAKING CHANGE:
base_revparameter no longer gets reset to merge-base by Decision task - BREAKING CHANGE:
run-taskscript no longer fetches or checks outbase_refparameter - BREAKING CHANGE:
run-taskscript no longer fetches all heads ifhead_refwas not specified
run-tasknow supports shallow Git clones- Improved support for shallow clones in
repo.get_changed_files()
- Improvements to graph traversal logic and caching
- Bug in
retrigger-multipleaction's schema definition run-taskno longer fetches head ref twice in some scenariosrun-taskavoids fetching tags in some scenarios when not necessaryrun-taskproperly normalizeshead_refbefore checking it out- Appropriate exception now being caught in various
taskclustercall sites
run-taskscript now cleans up zombie processes- Fixed regression to
taskgraph.util.taskcluster.list_artifacts - Fixed regression to
taskgraph.util.taskcluster.get_artifact
perfherder-data-fetch-content.jsonartifact now available in production environment
- Added pagination to
listTasksandlist_task_group_incomplete_tasks - Added proxy_url flag to
get_artifact_url - Added most robust support for different response types in
handle_artifact - Fixed regression in
purge_cache
status_task_batchednow works with pagination- Added test for
find_task_id_batchedandstatus_task_batched
find_task_id_batchedandstatus_task_batchednow supports pagination for tasks pulled from the taskcluster package
- BREAKING CHANGE: Must use
-i/--interactiveto pause task execution inload-task - Upgraded docker-image tasks to use image_builder v6.0.0
- Functions in
util/taskcluster.pynow use the official Taskcluster Python client
- Ability to run any task with a docker-worker payload to
taskgraph load-task - Ability to pipe a task definition into
taskgraph load-task - Ability to specify a custom image to
taskgraph load-task, including building them locally load_tasks_for_kindutility function can now generate any graph stage
load_tasks_for_kindutility function now forwards kwargs toTaskGraphGeneratortaskgraph build-imagenow supports images using$DOCKER_IMAGE_PARENTtaskgraph build-imagenow obtains necessary context automatically
- BREAKING CHANGE:
taskgraph build-imageno longer accepts a--tagflag - BREAKING CHANGE: Functions in
util/taskcluster.pyno longer accept theuse_proxyargument
taskgraph load-tasknow supports an--imageflag to use a different docker image
- Using
unique-kindswithfetchesnow works in from_deps transforms - Internal
load_image_by_namefunction returnsNoneinstead ofFalse
- pass along
write_artifactsto loaders (#779) - add
openssh-clientto the run-task and decision docker images (#777)
- Minor fixes for multiprocess kind processing (#773)
- Process kinds in parallel on Linux with a pool of processes (#765)
- various changes to
taskgraph load-taskto support more types of tasks - issue in the
GraphConfig.vcs_rootdetection logic
- set continuation token correctly in
status_task_batched(#763)
- make
task_contexttransforms really work without atask-context(#761) - set continuation token correctly in
find_task_id_batched(#760)
task-contextkey no longer required for tasks using thetask_contexttransforms
- New function
taskgraph.generator.load_tasks_for_kindsto get multiple kinds in one pass - Allow the
os-groupsgeneric-worker feature on linux and mac
- taskgraph build-image regression introduced in 14.6.0
- multiprocess kind processing (#746)
- Process kinds in parallel with a pool of processes (#738)
- use
uvto check python version, when available(#733)
- BREAKING CHANGE: Use
primary-dependency-labelattribute to find primary dependency of tasks (#736)
- Fallback to guessing repo root in config.py (#742)
- Reverted accidental schema changes to run and toolchain transforms
--no-verifycommand line flag to disable verifications
- docker-image transforms work with a non-standard
--root - accessing
GraphConfig.vcs_rootno longer raises with a non-standard--root - container permission issue when running
taskgraph load-task - properly quoted command in
taskgraph load-task
- add a more descriptive error when a kind cannot be found (#721)
- error out when index routes have a
/in them (#722)
- handle github submodule checks better in fetch-content (#708)
- make
hash_pathswork whenbase_pathis set (#723) - return dict from 'status_task_batched' when testing (#720)
- retag images when a tag is passed to taskgraph load-image (#713)
- file url handling for Thunderbird repos
- support lists in
resolve_keyed_by(#608) - improved error message when a kind dependency cannot be found (#696)
- don't decode YAML response before parsing them in get_artifact (#700)
- MAX_ROUTES bumped up to actual limit of 64
load-taskcommand now accepts a--userflag to run in container as- optionally use
orjsonfor faster json operations if available
- Revert "generic-worker will now verify run-task/fetch-content integrity" from 14.2.0 for being broken
- fix actions scope check on mercurial (#686)
- generic-worker will now verify run-task/fetch-content integrity (#666)
- new 'load-task' command to debug tasks locally (#680)
- ensure GraphConfig.root_dir is an absolute path (#673)
- allow task-priority to be keyed by level (#653)
- implement
taskgraph actioncommand to generate actions.json on the command line (#645) - pass push.base_revision to in-tree-action hook (#656)
- support for
volumeartifact type (#667)
- bug deleting long path names with forward slashes on Windows (#661)
- replace deprecated datetime.utcnow() with timezone-aware alternative (#652)
- only consider tracked files when building toolchain hashes (#664)
- BREAKING CHANGE: removed {task_workdir} interpolation in run-task environment variables
- Support for generic-worker's
runAsCurrentUserfeature
- Error handling during docker image builds
- Issue in
get_changed_files()utility with merge commits in Mercurial - Deprecation warning in
run-taskwith Python 3.12
- automatically interpolate {task_workdir} in environment (#630)
- add caches for common package managers (#623)
- support setting repo wide default values for cache selection (#623)
- support list of caches in
use-cacheskey (#623)
get_ancestorsnow returns tasks keyed by taskid, to avoid missing tasks when multiple tasks exist with the same label in a graph (#633)
- unused resource-monitor code (#636)
cache-dotcachekey (#623)
- fetch-content: support for downloading a single file and putting it in an archive
- use base repo for project name in github .taskcluster.yml template (#610)
- added False as option in from-deps set-name config (#621)
- fetch-content: use urlopen's context parameter instead of cafile (#618)
- run-task: update our copy of robustcheckout hg extension (#617)
- avoid computing expensive default values when the value is overridden anyways
- hash the uncompressed contents of docker context tar (#626)
- fetch-content: log x-cache-status when content size doesn't match expected (#606)
- Don't assume the taskcluster proxy is running on http://taskcluster (#603)
- Do not apply skip-unless-changed for cron triggers (#604)
- New
matrixtransforms added to allow easily splitting tasks - The
-p/--parametersflag now supportsindex=<index>as a means of discovering parameters
- BREAKING CHANGE:
target_tasks_methodfilter no longer implicitly added if other filters are used - An OSError when generating docker contexts when many files were involved
- A bug when attempting to find prior actions in Github action tasks
- The
when.files-changedoptimization no longer implicitly adds unrelatedtasks-fromfiles
- BREAKING CHANGE: docker image task labels changed from
build-docker-imagetodocker-image
- Regression to
static-urlfetches when using thestrip_componentsoradd_prefixfeatures
- A couple more regressions with the Decision image
- Cleaned up temporary
uvlockfile owned by root - Added another
--no-cacheflag to auvcommand
- Cleaned up temporary
run-tasknow installs packages to user site dir when installing requirements withuv- Fetch tasks using
static-urlwill now properly rename non-archive files
- Regression in Decision image where
taskgraphwas no longer on the $PATH - Decision image no longer contains root owned
uvcache uvnow included in therun-taskimage
taskgraph.optimize.register_strategycan now pass kwargs on to the optimization class
taskgraph.config.GraphConfignow implements aget(<key>)method (#577)- Global tags for
projectandtrust-domainare now applied to all tasks (#579)
run-taskscript no longer attempts to chmod/dev/kvmif it already has the right permissions (#578)- This fixes an issue when using a container with podman
- Use
uvto install requirements if available (#572) - Allow 9,999 upstream dependencies on a Task (#575)
- Taskcluster platform work that enabled this: taskcluster/taskcluster#7151
- Ensure builds don't fail if
/buildsalready exists in Dockerfile (#573) - Add
coreutilsto thelinuxDockerfile (#573)
- BREAKING CHANGE: removed hardcode python3 path on macOS (#566)
- BREAKING CHANGE: register_action_callback interface has changed (#553)
- Task name is now available in
task_context(#562)
- get_ancestors ignores 404s to avoid failing when some tasks have already expired (#569)
- Error in optimization log message (#554)
- Git file renames now count as changed files for optimization purposes (#555)
- Make toolchain and fetch tasks work when there is more than one present, and at least one is defined as a dict (#551)
- BREAKING CHANGE: Bug 1796139 - Pull in fetch-content changes from mozilla-central by @jcristau (#541)
- BREAKING CHANGE: Update image_builder Docker image to version 5.1.0 (#520)
- support fully configured fetches for toolchain and fetch upstreams (#545)
- Reverted "fetch-content detects archive type instead of using the file extension" change from 9.2.0, for breaking backwards compatibility (#543)
- fetch-content detects archive type instead of using the file extension
- fetch-content validates downloads against server-provided content-length when possible, and retries downloads on size or checksum mismatch
- github projects set up by
taskgraph initnow use level 1 for pull request graphs
- Separate log for optimizations that always logs verbosely (#525)
- Retry batched taskcluster requests (#529)
- Allow setting per-task priority (#534)
- Updated ReadOnlyDict vendor (#537)
- Invalid escape in string literal in robustcheckout (#475)
- IndexSearch optimization now logs when it refuses to replace a task (#524)
- Use versioned decision image in cookiecutter .taskcluster.yml files (#528)
- New
taskgraph.util.copy.deepcopyfunction to assist deepcopying Task objects efficiently - Toolchain tasks now support relative script paths
taskgraph.util.templates.mergeno longer attempts to mergeby-<attribute>configs- Cached task digest now factors in Chain of Trust config
- Updated
verify_routes_notification_filtersto support all valid Taskcluster values
- Removed the
taskgraph.util.memoizeutility function
- Invalid parameters passed to
IndexSearchoptimization fromdockerutility
IndexSearchoptimization supports both old and new (from 8.1.0) signatures
- New Taskcluster utility functions to use the new Taskcluster
batchAPIs
- Optimization logic uses new
batchAPIs to vastly reduce number of queries made to Taskcluster
- Regression to
files-changedcalculation for pull requests (#494) - Support
**kwargsin functions wrapped bytaskgraph.util.memoize(#490) - Support
--exclude-keyargument when the excluded key may or may not exist (#489) - Stop requiring REGISTRY and VERSION files for
taskgraph build-image(#488)
- Ability to use custom name functions in
from_depstransforms (#484) - New
from_depsname function that doesn't strip the dep's kind (#484) - New cli flag to force using locally generated
files_changed(#481)
- Support for
artifact-referencewith private artifacts (#485)
- Replaced
head_refin pull-request cached task routes (#486) - Created a new
files_changedparameter (#481)
- Removed the
taskgraph.files_changedmodule (#481)
- Don't set 'base_ref' on github-release events (#470)
- Faster yaml loading using the native loader if available (#474)
- Memoize
get_task_definitionand_get_deps(#477)
- Create a base docker image containing only run-task
- Support for actions in pull-requests
- Various fixes targeting tarfile reproducibility
- Make run-task shebang use /usr/bin/env python3 (#453)
- Improved logging to optimization phase
- Utility function to walk through a task's dependency ancestors
taskgraph initsupport for github-release events in .taskcluster.ymltaskgraph init.taskcluster.yml passes short refs to run-task- Check to ensure reserved dependency edge
docker-imageisn't used - Improved tracebacks when querying json-automationrelevance from hg.mozilla.org fails
- Add a
get_ancestorshelper to find ancestor tasks through the Taskcluster API
- Add a
cache-pull-requestsparameter totaskcluster/config.ymlto disable caching of tasks on pull requests.
- Add a
task-expires-afterparameter totaskcluster/config.ymlto set the default value forexpires-afteron level 1 tasks.
- Wrong module name being generated in
taskgraph init - Exception in
taskgraph test-action-callbackdue to wrong default root - Reverted change causing log spam during optimization phase
- Reference to wrong root directory in
taskgraph action-callback
- Ensure pull requests properly use cached tasks
- Print help if no arguments are provided to
taskgraph - run-task: pass '--break-system-packages' when installing pip requirements
- Bootstrap Taskgraph 7 with latest decision image
- Update template Dockerfile to work with current alpine:latest base image
- Ability to use dictionary keys with
<task-reference> - Body of responses logged on failure in
taskgraph.util.taskcluster
- BREAKING CHANGE: Root directory now considered to be
taskclusterinstead oftaskcluster/ci - BREAKING CHANGE:
config.ymlmoved fromtaskcluster/citotaskcluster - BREAKING CHANGE:
taskcluster/cirenamed totaskcluster/kinds - BREAKING CHANGE:
taskgraph.transforms.jobrenamed totaskgraph.transforms.run - BREAKING CHANGE: Renamed
taskgraph.target_tasks._target_tasktoregister_target_task - BREAKING CHANGE: Switched Decision docker image from Ubuntu 22.04 to Debian 12
index-taskdocker image upgrade to node v18
- BREAKING CHANGE: Dropped support for Python 3.7
- BREAKING CHANGE: Removed
taskgraph.util.decision.make_decision_task - BREAKING CHANGE: Removed the
decision-mobiledocker image - BREAKING CHANGE: Removed
taskgraph.transforms.release_notificationsshim
- BREAKING CHANGE: Stopped hardcoding path to
hgon MacOS inrun-task - Worker caches setup by the
runtransforms now contain the docker image hash if applicable --diffflag will not fail if only one of the two graph generations failed- Paths in
taskgraph.util.hashare normalized for Windows support taskgraph inittemplate now separates Decision task caches by project
taskgraph initno longer derives the project name from local checkout dirrun-taskbypasses Git's safe directory feature which breaks caches on multi-user workers- Fix for
taskgraph load-imagewhen specifying a name deadline-afterfield added tojob_description_schema
--target-kindflag can be passed to Taskgraph multiple times- Ability to specify max worker processes when generating graphs in parallel
taskgraph.parameters._get_defaultsno longer raises outside of a repository
- Exception when running
taskgraph load-imageandtaskgraph build-image - Missing Github ssh fingerprints for
ed25519andecdsa-sha2-nistp256keys inrun-task - Improved error message for unsupported repos when running
taskgraph init - Stopped assuming
originremote intaskgraph init - Suppressed expected stderr logging when running
taskgraph init
- Don't override all existing dependencies in
from-deps(allow upstream or downstream transforms to also add them)
- Don't add a
fetchesentry for kinds without artifacts defined infrom-deps - Sort fetches by key and artifact to ensure a consistent ordering
- A new
chunkingtransform that helps parallelize tasks - Support for adding
fetcheswithfrom-deps - An option for not overriding task
namewithfrom-deps autoCancelPreviousChecksis set totruewhen initializing a new GitHub repository withtaskgraph init
- Support for substituting arbitrary parts of a task definition with
task-context
command-contextsupport injobtransforms (this can now be implemented withtask-context)
- Complain when
group_byfunctions are attempted to registered twice - Use
validate_schemainfrom_depsto avoid breaking--fast
- Ability to specify a list of kinds in the
enable_always_targetparameter
- Assertion that payload and index builder names are unique
- Error handling when duplicate
run_usingfunctions are defined
- Relaxed PyYaml dependency constraint to work around a PyYaml issue
- Reverted memoize on
load_yamlutility which causes issues with parallel generations - Added line to log command used to invoke
run-task
- Support for overriding the default task deadline in
ci/config.yml
- Support for Mercurial 6.0+ in
robustcheckoutscript - Added an
allgroup for thefrom_depstransforms - Added support for the
purgeCachesfeature ofgeneric-worker
- Added missing line feed to Python version log in
run-taskscript - Return null revision when no common ancestor found in
repo.find_latest_common_revision - Added
--forceflag when updating Git submodules inrun-taskscript - Fix ImportError with old versions of Python (fail on version check instead)
- Regression in add-new-jobs and retrigger actions, introduced in 5.1.0.
- Replaced 'attrs' with 'dataclasses'
- Disallow extraneous keys in the
from-depsconfig run-tasknow fetches tags when necessary after cloning repo
- New
from-deps.unique-kindskey to allow depending on multiple tasks of a kind - New
get_dependenciesandget_primary_dependencyfunctions intaskgraph.util.dependencies run-tasknow logs the Python version it was invoked with
- Bug preventing use of custom
group_byfunctions withfrom_depstransforms
- New
from_depstransforms for creating follow-up tasks
- Parallel generation (via multiple params) returns non-zero if one fails
- Regression around make index transform running out of order
- Counted
if-dependenciesandsoft-dependenciestowards dependency limit check - Error messaging when Docker is stopped
- Error messaging when invalid non-existent dependencies are added
- Command line exception when branch name contains a
/ - Abort long running Git clone / fetch when transfer is too slow
- New
defaultloader which implicitly uses thejobandtasktransforms - Support for a custom command to invoke
run-taskin thejob.run_tasktransforms - Can omit object (default:
transforms) when listing transforms in a kind config - Ability to specify
treeherder: truewhich will auto-populate Treeherder metadata - Added
index-path-regexeskey toconfig.ymlwhich can be used withmake_index_taskmorph
- Stop injecting
docker-imagetasks when DONTBUILD is used in commit message
fetch-contentandrobustcheckouttime out on idle http connections
- Support for python 3.6
- Updated github ssh host key (per https://github.blog/2023-03-23-we-updated-our-rsa-ssh-host-key/)
- A
taskgraph initcommand to bootstrap projects on Firefox-CI
- DONTBUILD in a commit message now works for Github pushes
fetch-contentscript now usesunzip -qto avoid polluting logs
- Python 3.11 is now tested in CI
- Support for
.tgzfile extension infetch-contentscript - Extra arguments now forwarded from
job.toolchaintransforms tojob.run_task - All calls to
util.yaml.load_yamlare now memoized - Support for
command-context.from-fileinrun_tasktransforms - Worker provisioner / type can be formatted with alias and trust-domain in
config.yml
util.vcs.get_commit_messageactually uses itsrevisionparameter
run-taskis able to git-checkout non-default branchutil.hash.hash_paths()takes much less time to run when provided with 10+ patterns.
shipping-phaseattribute intaskandjobtransforms.
- Support for
disableSeccompcapability. This was removed in Taskcluster 45.0.0 as it was determined to be unnecessary.
- New
rebuild_cached_tasksaction to facilitate regenerating long-lived tasks
- Updated
image_builderDocker image to version 5.0.0
- Support for Matrix, Slack and pulse in notify transforms
- Renamed
taskgraph.transforms.release_notificationstotaskgraph.transforms.notify(including backwards compatible shim)
taskgraph.parameters._get_defaultscatchesmozilla_repo_urls.errors.UnsupportedPlatformErrorin order not to bustmachcommands
- Only depend on zstandard in the 'load-image' extra to avoid large (likely unused) binaries
- Ability to enable/disable the
always_targetattribute via a newenable_always_targetparameter
fetch-contenthas improved support for git submodulesfetch-contentcan fetch private git repositories over sshfetch-contentcan optionally use chain-of-trust artifacts to validate downloadsfetch-contentsupports repacking tar archives containing symbolic linksfetch-contentrepacks now use the same format as the original archivefetch-contentcan be told to keep the.gitdirectoryfetch-contenttakes care to log git commit ids even when pointed at a branch namefetch-contentuses github's archive generator to speed up cloning- Support for the disableSeccomp capability in docker-worker v44.22.0
taskgraph load-imageCLI command can now run without raising aModuleNotFoundError.
- Ability to override optimization strategies via parameter
- Support for pinning hg.mozilla.org fingerprint in
run-taskas it is no longer necessary
- Use proper Treeherder route for
github-pull-request-untrusted - Use
parameters_loaderingenerator.load_tasks_for_kind - Run initial verifications after calling
register
parameters._get_defaultsdoesn't fail ifmozilla-repo-urlsdidn't manage to parse the URL. Instead, it just provides emptybase_repository,head_repository, andproject.- Similarly,
parameters._get_defaultsdoesn't try to determine an accuratebase_revandbase_refanymore. This caused too many issues on developers' laptops. It provides now empty strings too.
vcs.remote_namereturns the first available remote and warns about itvcs.default_branchreturns the remote branch because the local one may not existtaskgraph.parameters._get_defaultstrims.gitfrom project when repository URL ends with.git
vcs.default_branchnow takes git-cinnabar into account when guessing default branch.
- SSH repositories are now supported in action tasks
run-taskdoesn't pull tags from githead_repository
util.time.json_time_from_now()andutil.time.current_json_time()now always returns milliseconds instead of sometimes rounding it up- Trimmed
.gitfrom tc-treeherder route's project
- BREAKING CHANGE:
TransformConfig.kind_dependencies_tasksis now a dictionary keyed by task label. - BREAKING CHANGE:
vcs.head_refwas renamed intovcs.head_revto clarify that the function returns a revision. This also matches--head-rev. - BREAKING CHANGE: Similarly,
vcs.base_refwas renamed intovcs.base_rev. run-tasknow clones all git-submodules at the same time as cloning the base/head repository.run-tasknow checks out a revision as a named branch that matches${PROJECT}_HEAD_REFhead_refparameter now points to a named branch and if needed, falls back to the revision hash
vcs.get_changed_files()which returns a list of files that are changed in this repository's working copy.vcs.get_outgoing_files()which returns a list of changed files compared to upstream.vcs.remote_namethat tracks the name of the remote repository (e.g.:defaultonhgororiginongit)base_refparameter that points to the reference (e.g.: a branch) on the base repositoryvcs.find_latest_common_revision()which finds the common ancestor between a providedbase_refand the currenthead_revvcs.does_revision_exist_locally()to find out if a changeset/commit exists in the locally cloned repositorybase_revparameter that points to the most common ancestor between the ancestors ofhead_revandbase_ref@register_morphdecorator which does what the name implies.
- BREAKING CHANGE:
taskgraph.util.taskcluster.status_tasknow returns the status object rather than the string state. - BREAKING CHANGE: Replacement optimization strategies now take a
deadlineargument. - BREAKING CHANGE: Replaces
Eitherbase optimization strategy with anAnycomposite strategy. - BREAKING CHANGE:
taskgraph.util.WHITELISTED_SCHEMA_IDENTIFIERSis nowtaskgraph.util.EXCEPTED_SCHEMA_IDENTIFIERS. - BREAKING CHANGE: The
defaulttarget tasks method now filters out tasks that define ashipping_phase.
- A new
taskgraph.util.taskcluster.state_taskreturns the string state (like status_task used to). - The ability to register custom optimization strategies.
- Added
release_notificationstransforms, enabling tasks to send e-mail notifications. It is usually used in the context of releases when you want to inform a group of people about the completion of a phase of a release. Notifications can contain data about what project/version reached a given phase. - New parameters:
version,next_version,build_number. As of now, they are be used byrelease_notificationto send e-mails that can contain such data.
- Allow JSON-e in schema identifiers
run-taskscript sets aTASK_WORKDIRenv pointing to the task specific working directory- Add
deferandenforce_single_matcharguments inutil.schema.resolve_keyed_by
- Misspelling in job transforms causing utility file to be unnecessarily imported
- Added
if-dependenciestojob_description_schemaallowing it to be used with job transforms
- Refactored logic for importing sibling modules into new
util.python_path.import_sibling_modules
- Skip schema validation when
taskgraph.fastis set - Improved performance of
schema.optionally_keyed_byfunction
- Support for a
toolchain-envkey which gets added to dependent tasks' environment - Support for
generic-workertoolchain tasks - Ability to execute commands using powershell in
run_tasktransforms - Implicitly run toolchain scripts ending in
.ps1with powershell
- Renaming
toolchain-artifactnow rebuilds toolchain tasks
- Git checkout cleaning regression
- Add a mechanism to bypass
--require-hasheswhen installing pip dependencies inrun-task - Decode gzipped artifacts when using
task-id=orproject=in the--parametersflag - Stop defaulting to a dummy
TASKCLUSTER_ROOT_URLand instead raise error - Some node dependency upgrades in the
index-taskimage
- Ability to pass headers alongside requests in the
fetch-contentscript
- An encoding error when using out of tree images
- Windows permissions errors in
run-taskscript cleanup
- Add ability to run new types of verifications (e.g doc verifications)
- Allow custom
onExitStatusvalues for generic-worker based tasks across all platforms
- Decision docker images updated to Ubuntu 20.04 and Mercurial 5.3.1
- Pass parameters into verifications functions
- Don't assume Taskcluster is enabled in generic-worker run-task based tasks
- Exception during local generation when generic-worker tasks exist
- Add pyenv to python docker image
- Point generic worker tasks to TC instance instead of proxy URL
- Fixed some tests for local development
- Decision tasks uploads
run-taskandfetch-contentscripts as artifacts
- Forward
descriptionandif-dependencieskeys to Task constructor
- An
--exclude-keyflag to the CLI for removing subsections of tasks - Concept of if-dependencies to optimization logic
- Optional description attribute to
Taskobjects
- A minor refactor to optimization logic around logging
- Ability for
run-taskto install Python dependencies after cloning a repo
- An exception in default parameters if repo url doesn't contain slashes
- Support
taskgraph test-action-callbackinrun_tasktransforms
- A bug with custom parameter defaults not being set when running 'taskgraph' locally
- Error in non UTF-8 locales + unicode in commit message
- User specified Taskcluster urls in environment are now normalized
- Minor refactor to requests session logic in util/taskcluster.py
- Set HGPLAIN environment variable for Mercurial commands in util/vcs.py
- Fix exception in default parameters when no git remote named "origin"
- Used repository root as default in
get_repositoryrather than cwd - Retry vcs commands in run-task if they failed
- An import error with Python 3.10
- Search ancestor directories when instantiating repo in
get_repository
- Support specifying defaults to
extend_parameters_schemautility - Added
beetmoverpayload builder totask.pytransforms
- Fixed logging error when using
taskgraph --diff - Various fixes to
Repositoryutility class invcs.py
- Relaxed lower bound constraints of some dependencies
- Initial release