Changelog
v3.36.0 - 2024-04-08​
- Added support for looping over dependencies (#1299, #1541 by @pd93).
- When using the "Remote Taskfiles" experiment, you are now able to use remote Taskfiles as your entrypoint.
- When using the "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 (#836, #1489 by @pd93).
- Added the ability to run Taskfiles via 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 (#1486, #1487 by @pd93).
v3.34.0 - 2024-01-25​
- Removed support for
version: 2
schemas. See the deprecation notice on our website (#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 (#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
becamecall.Indirect
(#1459 by @pd93). - Refactored the public
read
andtaskfile
packages and introducedtaskfile/ast
(#1450 by @pd93). ast.IncludedTaskfiles
renamed toast.Includes
andorderedmap
package renamed toomap
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 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 (#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 usingexclude:
(#225, #1324 by @pd93 and @andreynering). - The Remote Taskfiles experiment now prefers remote files over cached ones by default (#1317, #1345 by @pd93).
- Added
--timeout
flag to the Remote Taskfiles experiment (#1317, #1345 by @pd93). - Fix bug where dynamic
vars:
andenv:
were being executed when they should actually be skipped byplatforms:
(#1273, #1377 by @andreynering). - Fix
schema.json
to makesilent
valid incmds
that usefor
(#1385, #1386 by @iainvm). - Add new
--no-status
flag to skip expensive status checks when runningtask --list --json
(#1348, #1368 by @amancevice).
v3.31.0 - 2023-10-07​
- Enabled the
--yes
flag for the Remote Taskfiles experiment (#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 (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 as a draft (#1152, #1317 by @pd93).
- Improve performance of content checksuming on
sources:
by replacing md5 with XXH3 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 withincludes
(#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
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​
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
- e.g.
- Bug fixes were made to the npm installation method. (#1190, by @sounisi5011).
- Added the gentle force experiment 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 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 dangurous task (#100, #1163 by @MaxCheetham, Documentation). - Added support for single command task syntax. With this change, it's now
possible to declare just
cmd:
in a task, avoiding the more complexcmds: []
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 supressed (#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
tomain
(#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 linter (#1099 by @pd93)
- Add
--sort
flag for use with--list
and--list-all
(#946, #1105 by @pd93). - Task now has custom 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
contributed by @pd93! 🎉 The extension is maintained in a
new repository 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,
issue or on our
Discord!
NOTE: The extension requires v3.23.0 to be installed in order to work.
- The website was integrated with Crowdin to allow the community to contribute with translations! Chinese 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
fromTaskfile.yaml
toTaskfile.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, #1029 by @andreynering). - Add ability to set
error_only: true
on thegroup
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 astatus:
(#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. Usefull 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
andshopt
builtins (#908, #929 by @pd93, Documentation). - Add new
platforms:
attribute totask
andcmd
, 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]
orplatforms: [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 as well (go-task/go-npm#2, go-task/go-npm#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 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 todocs
(#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). - 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
andTASKFILE_DIR
. This was a highly requested feature (#215, #857, Documentation). - 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 theTASK_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
andTASK_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, mvdan/sh#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 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 for more information (#647, #651). - Add
Taskfile.dist.yml
andTaskfile.dist.yaml
to the supported file name list. Check out the documentation 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, #475, #626). - Remove long deprecated and undocumented
$
variable prefix and^
command prefix (#642, #644, #645). - Add support for
.yaml
extension (as an alternative to.yml
). This was requested multiple times throughout the years. Enjoy! (#183, #184, #369, #584, #621). - Fixed error when computing a variable when the task directory do not exist yet (#481, #579).