From 9029ba2efc2d7163f3eb5b8af634d0bf2abc0d70 Mon Sep 17 00:00:00 2001 From: Valentin Maerten Date: Fri, 8 Aug 2025 18:42:33 +0200 Subject: [PATCH] fix changelog --- website/src/docs/changelog.md | 857 ---------------------------------- 1 file changed, 857 deletions(-) diff --git a/website/src/docs/changelog.md b/website/src/docs/changelog.md index 882fb5fb..6bbd2137 100644 --- a/website/src/docs/changelog.md +++ b/website/src/docs/changelog.md @@ -495,863 +495,6 @@ stabilize the API in the future. #121 now tracks this piece of work. ## v3.32.0 - 2023-11-29 -- Added ability to exclude some files from `sources:` by using `exclude:` (#225, - #1324 by @pd93 and @andreynering). -- The - [Remote Taskfiles experiment](https://taskfile.dev/experiments/remote-taskfiles) - now prefers remote files over cached ones by default (#1317, #1345 by @pd93). -- Added `--timeout` flag to the - [Remote Taskfiles experiment](https://taskfile.dev/experiments/remote-taskfiles) - (#1317, #1345 by @pd93). -- Fix bug where dynamic `vars:` and `env:` were being executed when they should - actually be skipped by `platforms:` (#1273, #1377 by @andreynering). -- Fix `schema.json` to make `silent` valid in `cmds` that use `for` (#1385, - #1386 by @iainvm). -- Add new `--no-status` flag to skip expensive status checks when running - `task --list --json` (#1348, #1368 by @amancevice). - -## v3.31.0 - 2023-10-07 - -- Enabled the `--yes` flag for the - [Remote Taskfiles experiment](https://taskfile.dev/experiments/remote-taskfiles) - (#1317, #1344 by @pd93). -- Add ability to set `watch: true` in a task to automatically run it in watch - mode (#231, #1361 by @andreynering). -- Fixed a bug on the watch mode where paths that contained `.git` (like - `.github`), for example, were also being ignored (#1356 by @butuzov). -- Fixed a nil pointer error when running a Taskfile with no contents (#1341, - #1342 by @pd93). -- Added a new [exit code](https://taskfile.dev/api/#exit-codes) (107) for when a - Taskfile does not contain a schema version (#1342 by @pd93). -- Increased limit of maximum task calls from 100 to 1000 for now, as some people - have been reaching this limit organically now that we have loops. This check - exists to detect recursive calls, but will be removed in favor of a better - algorithm soon (#1321, #1332). -- Fixed templating on descriptions on `task --list` (#1343 by @blackjid). -- Fixed a bug where precondition errors were incorrectly being printed when task - execution was aborted (#1337, #1338 by @sylv-io). - -## v3.30.1 - 2023-09-14 - -- Fixed a regression where some special variables weren't being set correctly - (#1331, #1334 by @pd93). - -## v3.30.0 - 2023-09-13 - -- Prep work for Remote Taskfiles (#1316 by @pd93). -- Added the - [Remote Taskfiles experiment](https://taskfile.dev/experiments/remote-taskfiles) - as a draft (#1152, #1317 by @pd93). -- Improve performance of content checksumming on `sources:` by replacing md5 - with [XXH3](https://xxhash.com/) which is much faster. This is a soft breaking - change because checksums will be invalidated when upgrading to this release - (#1325 by @ReillyBrogan). - -## v3.29.1 - 2023-08-26 - -- Update to Go 1.21 (bump minimum version to 1.20) (#1302 by @pd93) -- Fix a missing a line break on log when using `--watch` mode (#1285, #1297 by - @FilipSolich). -- Fix `defer` on JSON Schema (#1288 by @calvinmclean and @andreynering). -- Fix bug in usage of special variables like - `{{.USER_WORKING_DIR}}` in combination with `includes` - (#1046, #1205, #1250, #1293, #1312, #1274 by @andarto, #1309 by - @andreynering). -- Fix bug on `--status` flag. Running this flag should not have side-effects: it - should not update the checksum on `.task`, only report its status (#1305, - #1307 by @visciang, #1313 by @andreynering). - -## v3.28.0 - 2023-07-24 - -- Added the ability to - [loop over commands and tasks](https://taskfile.dev/usage/#looping-over-values) - using `for` (#82, #1220 by @pd93). -- Fixed variable propagation in multi-level includes (#778, #996, #1256 by - @hudclark). -- Fixed a bug where the `--exit-code` code flag was not returning the correct - exit code when calling commands indirectly (#1266, #1270 by @pd93). -- Fixed a `nil` panic when a dependency was commented out or left empty (#1263 - by @neomantra). - -## v3.27.1 - 2023-06-30 - -- Fix panic when a `.env` directory (not file) is present on current directory - (#1244, #1245 by @pd93). - -## v3.27.0 - 2023-06-29 - -- Allow Taskfiles starting with lowercase characters (#947, #1221 by @pd93). - - e.g. `taskfile.yml`, `taskfile.yaml`, `taskfile.dist.yml` & - `taskfile.dist.yaml` -- Bug fixes were made to the - [npm installation method](https://taskfile.dev/installation/#npm). (#1190, by - @sounisi5011). -- Added the - [gentle force experiment](https://taskfile.dev/experiments/gentle-force) as a - draft (#1200, #1216 by @pd93). -- Added an `--experiments` flag to allow you to see which experiments are - enabled (#1242 by @pd93). -- Added ability to specify which variables are required in a task (#1203, #1204 - by @benc-uk). - -## v3.26.0 - 2023-06-10 - -- Only rewrite checksum files in `.task` if the checksum has changed (#1185, - #1194 by @deviantintegral). -- Added [experiments documentation](https://taskfile.dev/experiments) to the - website (#1198 by @pd93). -- Deprecated `version: 2` schema. This will be removed in the next major release - (#1197, #1198, #1199 by @pd93). -- Added a new `prompt:` prop to set a warning prompt to be shown before running - a potential dangerous task (#100, #1163 by @MaxCheetham, - [Documentation](https://taskfile.dev/usage/#warning-prompts)). -- Added support for single command task syntax. With this change, it's now - possible to declare just `cmd:` in a task, avoiding the more complex - `cmds: []` when you have only a single command for that task (#1130, #1131 by - @timdp). - -## v3.25.0 - 2023-05-22 - -- Support `silent:` when calling another tasks (#680, #1142 by @danquah). -- Improve PowerShell completion script (#1168 by @trim21). -- Add more languages to the website menu and show translation progress - percentage (#1173 by @misitebao). -- Starting on this release, official binaries for FreeBSD will be available to - download (#1068 by @andreynering). -- Fix some errors being unintendedly suppressed (#1134 by @clintmod). -- Fix a nil pointer error when `version` is omitted from a Taskfile (#1148, - #1149 by @pd93). -- Fix duplicate error message when a task does not exists (#1141, #1144 by - @pd93). - -## v3.24.0 - 2023-04-15 - -- Fix Fish shell completion for tasks with aliases (#1113 by @patricksjackson). -- The default branch was renamed from `master` to `main` (#1049, #1048 by - @pd93). -- Fix bug where "up-to-date" logs were not being omitted for silent tasks (#546, - #1107 by @danquah). -- Add `.hg` (Mercurial) to the list of ignored directories when using `--watch` - (#1098 by @misery). -- More improvements to the release tool (#1096 by @pd93). -- Enforce [gofumpt](https://github.com/mvdan/gofumpt) linter (#1099 by @pd93) -- Add `--sort` flag for use with `--list` and `--list-all` (#946, #1105 by - @pd93). -- Task now has [custom exit codes](https://taskfile.dev/api/#exit-codes) - depending on the error (#1114 by @pd93). - -## v3.23.0 - 2023-03-26 - -Task now has an -[official extension for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=task.vscode-task) -contributed by @pd93! :tada: The extension is maintained in a -[new repository](https://github.com/go-task/vscode-task) under the `go-task` -organization. We're looking to gather feedback from the community so please give -it a go and let us know what you think via a -[discussion](https://github.com/go-task/vscode-task/discussions), -[issue](https://github.com/go-task/vscode-task/issues) or on our -[Discord](https://discord.gg/6TY36E39UK)! - -> **NOTE:** The extension _requires_ v3.23.0 to be installed in order to work. - -- The website was integrated with - [Crowdin](https://crowdin.com/project/taskfile) to allow the community to - contribute with translations! [Chinese](https://taskfile.dev/zh-Hans/) is the - first language available (#1057, #1058 by @misitebao). -- Added task location data to the `--json` flag output (#1056 by @pd93) -- Change the name of the file generated by `task --init` from `Taskfile.yaml` to - `Taskfile.yml` (#1062 by @misitebao). -- Added new `splitArgs` template function - (`{{splitArgs "foo bar 'foo bar baz'"}}`) to ensure string - is split as arguments (#1040, #1059 by @dhanusaputra). -- Fix the value of `{{.CHECKSUM}}` variable in status (#1076, - #1080 by @pd93). -- Fixed deep copy implementation (#1072 by @pd93) -- Created a tool to assist with releases (#1086 by @pd93). - -## v3.22.0 - 2023-03-10 - -- Add a brand new `--global` (`-g`) flag that will run a Taskfile from your - `$HOME` directory. This is useful to have automation that you can run from - anywhere in your system! - ([Documentation](https://taskfile.dev/usage/#running-a-global-taskfile), #1029 - by @andreynering). -- Add ability to set `error_only: true` on the `group` output mode. This will - instruct Task to only print a command output if it returned with a non-zero - exit code (#664, #1022 by @jaedle). -- Fixed bug where `.task/checksum` file was sometimes not being created when - task also declares a `status:` (#840, #1035 by @harelwa, #1037 by @pd93). -- Refactored and decoupled fingerprinting from the main Task executor (#1039 by - @pd93). -- Fixed deadlock issue when using `run: once` (#715, #1025 by - @theunrepentantgeek). - -## v3.21.0 - 2023-02-22 - -- Added new `TASK_VERSION` special variable (#990, #1014 by @ja1code). -- Fixed a bug where tasks were sometimes incorrectly marked as internal (#1007 - by @pd93). -- Update to Go 1.20 (bump minimum version to 1.19) (#1010 by @pd93) -- Added environment variable `FORCE_COLOR` support to force color output. Useful - for environments without TTY (#1003 by @automation-stack) - -## v3.20.0 - 2023-01-14 - -- Improve behavior and performance of status checking when using the `timestamp` - mode (#976, #977 by @aminya). -- Performance optimizations were made for large Taskfiles (#982 by @pd93). -- Add ability to configure options for the - [`set`](https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html) - and - [`shopt`](https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html) - builtins (#908, #929 by @pd93, - [Documentation](http://taskfile.dev/usage/#set-and-shopt)). -- Add new `platforms:` attribute to `task` and `cmd`, so it's now possible to - choose in which platforms that given task or command will be run on. Possible - values are operating system (GOOS), architecture (GOARCH) or a combination of - the two. Example: `platforms: [linux]`, `platforms: [amd64]` or - `platforms: [linux/amd64]`. Other platforms will be skipped (#978, #980 by - @leaanthony). - -## v3.19.1 - 2022-12-31 - -- Small bug fix: closing `Taskfile.yml` once we're done reading it (#963, #964 - by @HeCorr). -- Fixes a bug in v2 that caused a panic when using a - `Taskfile_{{OS}}.yml` file (#961, #971 by @pd93). -- Fixed a bug where watch intervals set in the Taskfile were not being respected - (#969, #970 by @pd93) -- Add `--json` flag (alias `-j`) with the intent to improve support for code - editors and add room to other possible integrations. This is basic for now, - but we plan to add more info in the near future (#936 by @davidalpert, #764). - -## v3.19.0 - 2022-12-05 - -- Installation via npm now supports [pnpm](https://pnpm.io/) as well - ([go-task/go-npm#2](https://github.com/go-task/go-npm/issues/2), - [go-task/go-npm#3](https://github.com/go-task/go-npm/pull/3)). -- It's now possible to run Taskfiles from subdirectories! A new - `USER_WORKING_DIR` special variable was added to add even more flexibility for - monorepos (#289, #920). -- Add task-level `dotenv` support (#389, #904). -- It's now possible to use global level variables on `includes` (#942, #943). -- The website got a brand new - [translation to Chinese](https://task-zh.readthedocs.io/zh_CN/latest/) by - @DeronW. Thanks! - -## v3.18.0 - 2022-11-12 - -- Show aliases on `task --list --silent` (`task --ls`). This means that aliases - will be completed by the completion scripts (#919). -- Tasks in the root Taskfile will now be displayed first in - `--list`/`--list-all` output (#806, #890). -- It's now possible to call a `default` task in an included Taskfile by using - just the namespace. For example: `docs:default` is now automatically aliased - to `docs` (#661, #815). - -## v3.17.0 - 2022-10-14 - -- Add a "Did you mean ...?" suggestion when a task does not exits another one - with a similar name is found (#867, #880). -- Now YAML parse errors will print which Taskfile failed to parse (#885, #887). -- Add ability to set `aliases` for tasks and namespaces (#268, #340, #879). -- Improvements to Fish shell completion (#897). -- Added ability to set a different watch interval by setting `interval: '500ms'` - or using the `--interval=500ms` flag (#813, #865). -- Add colored output to `--list`, `--list-all` and `--summary` flags (#845, - #874). -- Fix unexpected behavior where `label:` was being shown instead of the task - name on `--list` (#603, #877). - -## v3.16.0 - 2022-09-29 - -- Add `npm` as new installation method: `npm i -g @go-task/cli` (#870, #871, - [npm package](https://www.npmjs.com/package/@go-task/cli)). -- Add support to marking tasks and includes as internal, which will hide them - from `--list` and `--list-all` (#818). - -## v3.15.2 - 2022-09-08 - -- Fix error when using variable in `env:` introduced in the previous release - (#858, #866). -- Fix handling of `CLI_ARGS` (`--`) in Bash completion (#863). -- On zsh completion, add ability to replace `--list-all` with `--list` as - already possible on the Bash completion (#861). - -## v3.15.0 - 2022-09-03 - -- Add new special variables `ROOT_DIR` and `TASKFILE_DIR`. This was a highly - requested feature (#215, #857, - [Documentation](https://taskfile.dev/api/#special-variables)). -- Follow symlinks on `sources` (#826, #831). -- Improvements and fixes to Bash completion (#835, #844). - -## v3.14.1 - 2022-08-03 - -- Always resolve relative include paths relative to the including Taskfile - (#822, #823). -- Fix ZSH and PowerShell completions to consider all tasks instead of just the - public ones (those with descriptions) (#803). - -## v3.14.0 - 2022-07-08 - -- Add ability to override the `.task` directory location with the - `TASK_TEMP_DIR` environment variable. -- Allow to override Task colors using environment variables: `TASK_COLOR_RESET`, - `TASK_COLOR_BLUE`, `TASK_COLOR_GREEN`, `TASK_COLOR_CYAN`, `TASK_COLOR_YELLOW`, - `TASK_COLOR_MAGENTA` and `TASK_COLOR_RED` (#568, #792). -- Fixed bug when using the `output: group` mode where STDOUT and STDERR were - being print in separated blocks instead of in the right order (#779). -- Starting on this release, ARM architecture binaries are been released to Snap - as well (#795). -- i386 binaries won't be available anymore on Snap because Ubuntu removed the - support for this architecture. -- Upgrade mvdan.cc/sh, which fixes a bug with associative arrays (#785, - [mvdan/sh#884](https://github.com/mvdan/sh/issues/884), - [mvdan/sh#893](https://github.com/mvdan/sh/pull/893)). - -## v3.13.0 - 2022-06-13 - -- Added `-n` as an alias to `--dry` (#776, #777). -- Fix behavior of interrupt (SIGINT, SIGTERM) signals. Task will now give time - for the processes running to do cleanup work (#458, #479, #728, #769). -- Add new `--exit-code` (`-x`) flag that will pass-through the exit form the - command being ran (#755). - -## v3.12.1 - 2022-05-10 - -- Fixed bug where, on Windows, variables were ending with `\r` because we were - only removing the final `\n` but not `\r\n` (#717). - -## v3.12.0 - 2022-03-31 - -- The `--list` and `--list-all` flags can now be combined with the `--silent` - flag to print the task names only, without their description (#691). -- Added support for multi-level inclusion of Taskfiles. This means that included - Taskfiles can also include other Taskfiles. Before this was limited to one - level (#390, #623, #656). -- Add ability to specify vars when including a Taskfile. - [Check out the documentation](https://taskfile.dev/#/usage?id=vars-of-included-taskfiles) - for more information (#677). - -## v3.11.0 - 2022-02-19 - -- Task now supports printing begin and end messages when using the `group` - output mode, useful for grouping tasks in CI systems. - [Check out the documentation](http://taskfile.dev/#/usage?id=output-syntax) - for more information (#647, #651). -- Add `Taskfile.dist.yml` and `Taskfile.dist.yaml` to the supported file name - list. - [Check out the documentation](https://taskfile.dev/#/usage?id=supported-file-names) - for more information (#498, #666). - -## v3.10.0 - 2022-01-04 - -- A new `--list-all` (alias `-a`) flag is now available. It's similar to the - exiting `--list` (`-l`) but prints all tasks, even those without a description - (#383, #401). -- It's now possible to schedule cleanup commands to run once a task finishes - with the `defer:` keyword - ([Documentation](https://taskfile.dev/#/usage?id=doing-task-cleanup-with-defer), - #475, #626). -- Remove long deprecated and undocumented `--- title: Changelog description: - Historique complet des versions et changements de Task, de la v3.44.1 jusqu'à - la v1.0.0 permalink: /changelog/ outline: deep - ---- - -# Changelog - -## v3.44.1 - 2025-07-23 - -- Internal tasks will no longer be shown as suggestions since they cannot be - called (#2309, #2323 by @maxmzkrcensys) -- Fixed install script for some ARM platforms (#1516, #2291 by @trulede). -- Fixed a regression where fingerprinting was not working correctly if the path - to you Taskfile contained a space (#2321, #2322 by @pd93). -- Reverted a breaking change to `randInt` (#2312, #2316 by @pd93). -- Made new variables `TEST_NAME` and `TEST_DIR` available in fixture tests - (#2265 by @pd93). - -## v3.44.0 - 2025-06-08 - -- Added `uuid`, `randInt` and `randIntN` template functions (#1346, #2225 by - @pd93). -- Added new `CLI_ARGS_LIST` array variable which contains the arguments passed - to Task after the `--` (the same as `CLI_ARGS`, but an array instead of a - string). (#2138, #2139, #2140 by @pd93). -- Added `toYaml` and `fromYaml` templating functions (#2217, #2219 by @pd93). -- Added `task` field the `--list --json` output (#2256 by @aleksandersh). -- Added the ability to - [pin included taskfiles](https://taskfile.dev/next/experiments/remote-taskfiles/#manual-checksum-pinning) - by specifying a checksum. This works with both local and remote Taskfiles - (#2222, #2223 by @pd93). -- When using the - [Remote Taskfiles experiment](https://github.com/go-task/task/issues/1317), - any credentials used in the URL will now be redacted in Task's output (#2100, - #2220 by @pd93). -- Fixed fuzzy suggestions not working when misspelling a task name (#2192, #2200 - by @vmaerten). -- Fixed a bug where taskfiles in directories containing spaces created - directories in the wrong location (#2208, #2216 by @pd93). -- Added support for dual JSON schema files, allowing changes without affecting - the current schema. The current schemas will only be updated during releases. - (#2211 by @vmaerten). -- Improved fingerprint documentation by specifying that the method can be set at - the root level to apply to all tasks (#2233 by @vmaerten). -- Fixed some watcher regressions after #2048 (#2199, #2202, #2241, #2196 by - @wazazaby, #2271 by @andreynering). - -## v3.43.3 - 2025-04-27 - -Reverted the changes made in #2113 and #2186 that affected the -`USER_WORKING_DIR` and built-in variables. This fixes #2206, #2195, #2207 and -#2208. - -## v3.43.2 - 2025-04-21 - -- Fixed regresion of `CLI_ARGS` being exposed as the wrong type (#2190, #2191 by - @vmaerten). - -## v3.43.1 - 2025-04-21 - -- Significant improvements were made to the watcher. We migrated from - [watcher](https://github.com/radovskyb/watcher) to - [fsnotify](https://github.com/fsnotify/fsnotify). The former library used - polling, which means Task had a high CPU usage when watching too many files. - `fsnotify` uses proper the APIs from each operating system to watch files, - which means a much better performance. The default interval changed from 5 - seconds to 100 milliseconds, because now it configures the wait time for - duplicated events, instead of the polling time (#2048 by @andreynering, #1508, - #985, #1179). -- The [Map Variables experiment](https://github.com/go-task/task/issues/1585) - was made generally available so you can now - [define map variables in your Taskfiles!](https://taskfile.dev/usage/#variables) - (#1585, #1547, #2081 by @pd93). -- Wildcards can now - [match multiple tasks](https://taskfile.dev/usage/#wildcard-arguments) (#2072, - #2121 by @pd93). -- Added the ability to - [loop over the files specified by the `generates` keyword](https://taskfile.dev/usage/#looping-over-your-tasks-sources-or-generated-files). - This works the same way as looping over sources (#2151 by @sedyh). -- Added the ability to resolve variables when defining an include variable - (#2108, #2113 by @pd93). -- A few changes have been made to the - [Remote Taskfiles experiment](https://github.com/go-task/task/issues/1317) - (#1402, #2176 by @pd93): - - Cached files are now prioritized over remote ones. - - Added an `--expiry` flag which sets the TTL for a remote file cache. By - default the value will be 0 (caching disabled). If Task is running in - offline mode or fails to make a connection, it will fallback on the cache. -- `.taskrc` files can now be used from subdirectories and will be searched for - recursively up the file tree in the same way that Taskfiles are (#2159, #2166 - by @pd93). -- The default taskfile (output when using the `--init` flag) is now an embedded - file in the binary instead of being stored in the code (#2112 by @pd93). -- Improved the way we report the Task version when using the `--version` flag or - `{{.TASK_VERSION}}` variable. This should now be more - consistent and easier for package maintainers to use (#2131 by @pd93). -- Fixed a bug where globstar (`**`) matching in `sources` only resolved the - first result (#2073, #2075 by @pd93). -- Fixed a bug where sorting tasks by "none" would use the default sorting - instead of leaving tasks in the order they were defined (#2124, #2125 by - @trulede). -- Fixed Fish completion on newer Fish versions (#2130 by @atusy). -- Fixed a bug where undefined/null variables resolved to an empty string instead - of `nil` (#1911, #2144 by @pd93). -- The `USER_WORKING_DIR` special now will now properly account for the `--dir` - (`-d`) flag, if given (#2102, #2103 by @jaynis, #2186 by @andreynering). -- Fix Fish completions when `--global` (`-g`) is given (#2134 by @atusy). -- Fixed variables not available when using `defer:` (#1909, #2173 by @vmaerten). - -### Package API - -- The [`Executor`](https://pkg.go.dev/github.com/go-task/task/v3#Executor) now - uses the functional options pattern (#2085, #2147, #2148 by @pd93). -- The functional options for the - [`taskfile.Reader`](https://pkg.go.dev/github.com/go-task/task/v3/taskfile#Reader) - and - [`taskfile.Snippet`](https://pkg.go.dev/github.com/go-task/task/v3/taskfile#Snippet) - types no longer have the `Reader`/`Snippet` respective prefixes (#2148 by - @pd93). -- [`taskfile.Reader`](https://pkg.go.dev/github.com/go-task/task/v3/taskfile#Reader) - no longer accepts a - [`taskfile.Node`](https://pkg.go.dev/github.com/go-task/task/v3/taskfile#Node). - Instead nodes are passed directly into the - [`Reader.Read`](https://pkg.go.dev/github.com/go-task/task/v3/taskfile#Reader.Read) - method (#2169 by @pd93). -- [`Reader.Read`](https://pkg.go.dev/github.com/go-task/task/v3/taskfile#Reader.Read) - also now accepts a [`context.Context`](https://pkg.go.dev/context#Context) - (#2176 by @pd93). - -## v3.42.1 - 2025-03-10 - -- Fixed a bug where some special variables caused a type error when used global - variables (#2106, #2107 by @pd93). - -## v3.42.0 - 2025-03-08 - -- Made `--init` less verbose by default and respect `--silent` and `--verbose` - flags (#2009, #2011 by @HeCorr). -- `--init` now accepts a file name or directory as an argument (#2008, #2018 by - @HeCorr). -- Fix a bug where an HTTP node's location was being mutated incorrectly (#2007 - by @jeongukjae). -- Fixed a bug where allowed values didn't work with dynamic var (#2032, #2033 by - @vmaerten). -- Use only the relevant checker (timestamp or checksum) to improve performance - (#2029, #2031 by @vmaerten). -- Print warnings when attempting to enable an inactive experiment or an active - experiment with an invalid value (#1979, #2049 by @pd93). -- Refactored the experiments package and added tests (#2049 by @pd93). -- Show allowed values when a variable with an enum is missing (#2027, #2052 by - @vmaerten). -- Refactored how snippets in error work and added tests (#2068 by @pd93). -- Fixed a bug where errors decoding commands were sometimes unhelpful (#2068 by - @pd93). -- Fixed a bug in the Taskfile schema where `defer` statements in the shorthand - `cmds` syntax were not considered valid (#2068 by @pd93). -- Refactored how task sorting functions work (#1798 by @pd93). -- Added a new `.taskrc.yml` (or `.taskrc.yaml`) file to let users enable - experiments (similar to `.env`) (#1982 by @vmaerten). -- Added new [Getting Started docs](https://taskfile.dev/getting-started) (#2086 - by @pd93). -- Allow `matrix` to use references to other variables (#2065, #2069 by @pd93). -- Fixed a bug where, when a dynamic variable is provided, even if it is not - used, all other variables become unavailable in the templating system within - the include (#2092 by @vmaerten). - -### Package API - -Unlike our CLI tool, -[Task's package API is not currently stable](https://taskfile.dev/reference/package). -In an effort to ease the pain of breaking changes for our users, we will be -providing changelogs for our package API going forwards. The hope is that these -changes will provide a better long-term experience for our users and allow to -stabilize the API in the future. #121 now tracks this piece of work. - -- Bumped the minimum required Go version to 1.23 (#2059 by @pd93). -- [`task.InitTaskfile`](https://pkg.go.dev/github.com/go-task/task/v3#InitTaskfile) - (#2011, ff8c913 by @HeCorr and @pd93) - - No longer accepts an `io.Writer` (output is now the caller's - responsibility). - - The path argument can now be a filename OR a directory. - - The function now returns the full path of the generated file. -- [`TaskfileDecodeError.WithFileInfo`](https://pkg.go.dev/github.com/go-task/task/v3/errors#TaskfileDecodeError.WithFileInfo) - now accepts a string instead of the arguments required to generate a snippet - (#2068 by @pd93). - - The caller is now expected to create the snippet themselves (see below). -- [`TaskfileSnippet`](https://pkg.go.dev/github.com/go-task/task/v3/taskfile#Snippet) - and related code moved from the `errors` package to the `taskfile` package - (#2068 by @pd93). -- Renamed `TaskMissingRequiredVars` to - [`TaskMissingRequiredVarsError`](https://pkg.go.dev/github.com/go-task/task/v3/errors#TaskMissingRequiredVarsError) - (#2052 by @vmaerten). -- Renamed `TaskNotAllowedVars` to - [`TaskNotAllowedVarsError`](https://pkg.go.dev/github.com/go-task/task/v3/errors#TaskNotAllowedVarsError) - (#2052 by @vmaerten). -- The - [`taskfile.Reader`](https://pkg.go.dev/github.com/go-task/task/v3/taskfile#Reader) - is now constructed using the functional options pattern (#2082 by @pd93). -- Removed our internal `logger.Logger` from the entire `taskfile` package (#2082 - by @pd93). - - Users are now expected to pass a custom debug/prompt functions into - [`taskfile.Reader`](https://pkg.go.dev/github.com/go-task/task/v3/taskfile#Reader) - if they want this functionality by using the new - [`WithDebugFunc`](https://pkg.go.dev/github.com/go-task/task/v3/taskfile#WithDebugFunc) - and - [`WithPromptFunc`](https://pkg.go.dev/github.com/go-task/task/v3/taskfile#WithPromptFunc) - functional options. -- Remove `Range` functions in the `taskfile/ast` package in favour of new - iterator functions (#1798 by @pd93). -- `ast.Call` was moved from the `taskfile/ast` package to the main `task` - package (#2084 by @pd93). -- `ast.Tasks.FindMatchingTasks` was moved from the `taskfile/ast` package to the - `task.Executor.FindMatchingTasks` in the main `task` package (#2084 by @pd93). -- The `Compiler` and its `GetVariables` and `FastGetVariables` methods were - moved from the `internal/compiler` package to the main `task` package (#2084 - by @pd93). - -## v3.41.0 - 2025-01-18 - -- Fixed an issue where dynamic variables were not properly logged in verbose - mode (#1920, #1921 by @mgbowman). -- Support `silent` for defer statements (#1877, #1879 by @danilobuerger). -- Added an option to exclude some tasks from being included (#1859 by - @vmaerten). -- Fixed an issue where a required variable was incorrectly handled in a template - function (#1950, #1962 by @vmaerten). -- Expose a new `TASK_DIR` special variable, which will contain the absolute path - of task directory. (#1959, #1961 by @vmaerten). -- Fixed fatal bugs that caused concurrent map writes (#1605, #1972, #1974 by - @pd93, @GrahamDennis and @trim21). -- Refactored internal ordered map implementation to use - [github.com/elliotchance/orderedmap](https://github.com/elliotchance/orderedmap) - (#1797 by @pd93). -- Fixed a bug where variables defined at the task level were being ignored in - the `requires` section. (#1960, #1955, #1768 by @vmaerten and @mokeko) -- The `CHECKSUM` and `TIMESTAMP` variables are now accessible within `cmds` - (#1872 by @niklasr22). -- Updated [installation docs](https://taskfile.dev/installation) and added pip - installation method (#935, #1989 by @pd93). -- Fixed a bug where dynamic variables could not access environment variables - (#630, #1869 by @rohm1 and @pd93). -- Disable version check for use as an external library (#1938 by @leaanthony). - -## v3.40.1 - 2024-12-06 - -- Fixed a security issue in `git-urls` by switching to the maintained fork - `chainguard-dev/git-urls` (#1917 by @AlekSi). -- Added missing `platforms` property to `cmds` that use `for` (#1915 by - @dkarter). -- Added misspell linter to check for misspelled English words (#1883 by - @christiandins). - -## v3.40.0 - 2024-11-05 - -- Fixed output of some functions (e.g. `splitArgs`/`splitLines`) not working in - for loops (#1822, #1823 by @stawii). -- Added a new `TASK_OFFLINE` environment variable to configure the `--offline` - flag and expose it as a special variable in the templating system (#1470, - #1716 by @vmaerten and @pd93). -- Fixed a bug where multiple remote includes caused all prompts to display - without waiting for user input (#1832, #1833 by @vmaerten and @pd93). -- When using the - "[Remote Taskfiles](https://taskfile.dev/experiments/remote-taskfiles/)". - experiment, you can now include Taskfiles from Git repositories (#1652 by - @vmaerten). -- Improved the error message when a dotenv file cannot be parsed (#1842 by - @pbitty). -- Fix issue with directory when using the remote experiment (#1757 by @pbitty). -- Fixed an issue where a special variable was used in combination with a dotenv - file (#1232, #1810 by @vmaerten). -- Refactor the way Task reads Taskfiles to improve readability (#1771 by - @pbitty). -- Added a new option to ensure variable is within the list of values (#1827 by - @vmaerten). -- Allow multiple prompts to be specified for a task (#1861, #1866 by @mfbmina). -- Added new template function: `numCPU`, which returns the number of logical - CPUs usable (#1890, #1887 by @Amoghrd). -- Fixed a bug where non-nil, empty dynamic variables are returned as an empty - interface (#1903, #1904 by @pd93). - -## v3.39.2 - 2024-09-19 - -- Fix dynamic variables not working properly for a defer: statement (#1803, - #1818 by @vmaerten). - -## v3.39.1 - 2024-09-18 - -- Added Renovate configuration to automatically create PRs to keep dependencies - up to date (#1783 by @vmaerten). -- Fixed a bug where the help was displayed twice (#1805, #1806 by @vmaerten). -- Fixed a bug where ZSH and PowerShell completions did not work when using the - recommended method. (#1813, #1809 by @vmaerten and @shirayu) -- Fix variables not working properly for a `defer:` statement (#1803, #1814 by - @vmaerten and @andreynering). - -## v3.39.0 - 2024-09-07 - -- Added - [Env Precedence Experiment](https://taskfile.dev/experiments/env-precedence) - (#1038, #1633 by @vmaerten). -- Added a CI lint job to ensure that the docs are updated correctly (#1719 by - @vmaerten). -- Updated minimum required Go version to 1.22 (#1758 by @pd93). -- Expose a new `EXIT_CODE` special variable on `defer:` when a command finishes - with a non-zero exit code (#1484, #1762 by @dorimon-1 and @andreynering). -- Expose a new `ALIAS` special variable, which will contain the alias used to - call the current task. Falls back to the task name. (#1764 by @DanStory). -- Fixed `TASK_REMOTE_DIR` environment variable not working when the path was - absolute. (#1715 by @vmaerten). -- Added an option to declare an included Taskfile as flattened (#1704 by - @vmaerten). -- Added a new - [`--completion` flag](https://taskfile.dev/installation/#setup-completions) to - output completion scripts for various shells (#293, #1157 by @pd93). - - This is now the preferred way to install completions. - - The completion scripts in the `completion` directory - [are now deprecated](https://taskfile.dev/deprecations/completion-scripts/). -- Added the ability to - [loop over a matrix of values](https://taskfile.dev/usage/#looping-over-a-matrix) - (#1766, #1767, #1784 by @pd93). -- Fixed a bug in fish completion where aliases were not displayed (#1781, #1782 - by @vmaerten). -- Fixed panic when having a flattened included Taskfile that contains a - `default` task (#1777, #1778 by @vmaerten). -- Optimized file existence checks for remote Taskfiles (#1713 by @vmaerten). - -## v3.38.0 - 2024-06-30 - -- Added `TASK_EXE` special variable (#1616, #1624 by @pd93 and @andreynering). -- Some YAML parsing errors will now show in a more user friendly way (#1619 by - @pd93). -- Prefixed outputs will now be colorized by default (#1572 by - @AlexanderArvidsson) -- [References](https://taskfile.dev/usage/#referencing-other-variables) are now - generally available (no experiments required) (#1654 by @pd93). -- Templating functions can now be used in references (#1645, #1654 by @pd93). -- Added a new - [templating reference page](https://taskfile.dev/reference/templating/) to the - documentation (#1614, #1653 by @pd93). -- If using the - [Map Variables experiment (1)](https://taskfile.dev/experiments/map-variables/?proposal=1), - references are available by - [prefixing a string with a `#`](https://taskfile.dev/experiments/map-variables/?proposal=1#references) - (#1654 by @pd93). -- If using the - [Map Variables experiment (2)](https://taskfile.dev/experiments/map-variables/?proposal=2), - the `yaml` and `json` keys are no longer available (#1654 by @pd93). -- Added a new `TASK_REMOTE_DIR` environment variable to configure where cached - remote Taskfiles are stored (#1661 by @vmaerten). -- Added a new `--clear-cache` flag to clear the cache of remote Taskfiles (#1639 - by @vmaerten). -- Improved the readability of cached remote Taskfile filenames (#1636 by - @vmaerten). -- Starting releasing a binary for the `riscv64` architecture on Linux (#1699 by - @mengzhuo). -- Added `CLI_SILENT` and `CLI_VERBOSE` variables (#1480, #1669 by @Vince-Smith). -- Fixed a couple of bugs with the `prompt:` feature (#1657 by @pd93). -- Fixed JSON Schema to disallow invalid properties (#1657 by @pd93). -- Fixed version checks not working as intended (#872, #1663 by @vmaerten). -- Fixed a bug where included tasks were run multiple times even if `run: once` - was set (#852, #1655 by @pd93). -- Fixed some bugs related to column formatting in the terminal (#1350, #1637, - #1656 by @vmaerten). - -## v3.37.2 - 2024-05-12 - -- Fixed a bug where an empty Taskfile would cause a panic (#1648 by @pd93). -- Fixed a bug where includes Taskfile variable were not being merged correctly - (#1643, #1649 by @pd93). - -## v3.37.1 - 2024-05-09 - -- Fix bug where non-string values (numbers, bools) added to `env:` weren't been - correctly exported (#1640, #1641 by @vmaerten and @andreynering). - -## v3.37.0 - 2024-05-08 - -- Released the - [Any Variables experiment](https://taskfile.dev/blog/any-variables), but - [_without support for maps_](https://github.com/go-task/task/issues/1415#issuecomment-2044756925) - (#1415, #1547 by @pd93). -- Refactored how Task reads, parses and merges Taskfiles using a DAG (#1563, - #1607 by @pd93). -- Fix a bug which stopped tasks from using `stdin` as input (#1593, #1623 by - @pd93). -- Fix error when a file or directory in the project contained a special char - like `&`, `(` or `)` (#1551, #1584 by @andreynering). -- Added alias `q` for template function `shellQuote` (#1601, #1603 by @vergenzt) -- Added support for `~` on ZSH completions (#1613 by @jwater7). -- Added the ability to pass variables by reference using Go template syntax when - the - [Map Variables experiment](https://taskfile.dev/experiments/map-variables/) is - enabled (#1612 by @pd93). -- Added support for environment variables in the templating engine in `includes` - (#1610 by @vmaerten). - -## v3.36.0 - 2024-04-08 - -- Added support for - [looping over dependencies](https://taskfile.dev/usage/#looping-over-dependencies) - (#1299, #1541 by @pd93). -- When using the - "[Remote Taskfiles](https://taskfile.dev/experiments/remote-taskfiles/)" - experiment, you are now able to use - [remote Taskfiles as your entrypoint](https://taskfile.dev/experiments/remote-taskfiles/#root-remote-taskfiles). - - `includes` in remote Taskfiles will now also resolve correctly (#1347 by - @pd93). -- When using the - "[Any Variables](https://taskfile.dev/experiments/any-variables/)" - experiments, templating is now supported in collection-type variables (#1477, - #1511, #1526 by @pd93). -- Fixed a bug where variables being passed to an included Taskfile were not - available when defining global variables (#1503, #1533 by @pd93). -- Improved support to customized colors by allowing 8-bit colors and multiple - ANSI attributes (#1576 by @pd93). - -## v3.35.1 - 2024-03-04 - -- Fixed a bug where the `TASKFILE_DIR` variable was sometimes incorrect (#1522, - #1523 by @pd93). -- Added a new `TASKFILE` special variable that holds the root Taskfile path - (#1523 by @pd93). -- Fixed various issues related to running a Taskfile from a subdirectory (#1529, - #1530 by @pd93). - -## v3.35.0 - 2024-02-28 - -- Added support for - [wildcards in task names](https://taskfile.dev/usage/#wildcard-arguments) - (#836, #1489 by @pd93). -- Added the ability to - [run Taskfiles via stdin](https://taskfile.dev/usage/#reading-a-taskfile-from-stdin) - (#655, #1483 by @pd93). -- Bumped minimum Go version to 1.21 (#1500 by @pd93). -- Fixed bug related to the `--list` flag (#1509, #1512 by @pd93, #1514, #1520 by - @pd93). -- Add mention on the documentation to the fact that the variable declaration - order is respected (#1510 by @kirkrodrigues). -- Improved style guide docs (#1495 by @iwittkau). -- Removed duplicated entry for `requires` on the API docs (#1491 by - @teatimeguest). - -## v3.34.1 - 2024-01-27 - -- Fixed prompt regression on - [Remote Taskfiles experiment](https://taskfile.dev/experiments/remote-taskfiles/) - (#1486, #1487 by @pd93). - -## v3.34.0 - 2024-01-25 - -- Removed support for `version: 2` schemas. See the - [deprecation notice on our website](https://taskfile.dev/deprecations/version-2-schema) - (#1197, #1447 by @pd93). -- Fixed a couple of issues in the JSON Schema + added a CI step to ensure it's - correct (#1471, #1474, #1476 by @sirosen). -- Added - [Any Variables experiment proposal 2](https://taskfile.dev/experiments/any-variables/?proposal=2) - (#1415, #1444 by @pd93). -- Updated the experiments and deprecations documentation format (#1445 by - @pd93). -- Added new template function: `spew`, which can be used to print variables for - debugging purposes (#1452 by @pd93). -- Added new template function: `merge`, which can be used to merge any number of - map variables (#1438, #1464 by @pd93). -- Small change on the API when using as a library: `call.Direct` became - `call.Indirect` (#1459 by @pd93). -- Refactored the public `read` and `taskfile` packages and introduced - `taskfile/ast` (#1450 by @pd93). -- `ast.IncludedTaskfiles` renamed to `ast.Includes` and `orderedmap` package - renamed to `omap` plus some internal refactor work (#1456 by @pd93). -- Fix zsh completion script to allow lowercase `taskfile` file names (#1482 by - @xontab). -- Improvements on how we check the Taskfile version (#1465 by @pd93). -- Added a new `ROOT_TASKFILE` special variable (#1468, #1469 by @pd93). -- Fix experiment flags in `.env` when the `--dir` or `--taskfile` flags were - used (#1478 by @pd93). - -## v3.33.1 - 2023-12-21 - -- Added support for looping over map variables with the - [Any Variables experiment](https://taskfile.dev/experiments/any-variables) - enabled (#1435, #1437 by @pd93). -- Fixed a bug where dynamic variables were causing errors during fast - compilation (#1435, #1437 by @pd93) - -## v3.33.0 - 2023-12-20 - -- Added - [Any Variables experiment](https://taskfile.dev/experiments/any-variables) - (#1415, #1421 by @pd93). -- Updated Docusaurus to v3 (#1432 by @pd93). -- Added `aliases` to `--json` flag output (#1430, #1431 by @pd93). -- Added new `CLI_FORCE` special variable containing whether the `--force` or - `--force-all` flags were set (#1412, #1434 by @pd93). - -## v3.32.0 - 2023-11-29 - - Added ability to exclude some files from `sources:` by using `exclude:` (#225, #1324 by @pd93 and @andreynering). - The