1
0
mirror of https://github.com/go-task/task.git synced 2025-01-22 05:10:17 +02:00

feat: create release command

This commit is contained in:
Pete Davison 2023-03-26 15:32:20 +00:00 committed by Andrey Nering
parent cc1fd3d03e
commit 5583cea936
4 changed files with 646 additions and 661 deletions

View File

@ -2,289 +2,267 @@
## Unreleased ## Unreleased
- The website was integrated with [Crowdin](https://crowdin.com/project/taskfile) - The website was integrated with
to allow the community to contribute with translations! [Crowdin](https://crowdin.com/project/taskfile) to allow the community to
[Chinese](https://taskfile.dev/zh-Hans/) is the first language available contribute with translations! [Chinese](https://taskfile.dev/zh-Hans/) is the
([#1057](https://github.com/go-task/task/issues/1057), [#1058](https://github.com/go-task/task/pull/1058) by @misitebao). first language available (#1057, #1058 by @misitebao).
- Added task location data to the `--json` flag output ([#1056](https://github.com/go-task/task/pull/1056) by @pd93) - 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` - Change the name of the file generated by `task --init` from `Taskfile.yaml` to
to `Taskfile.yml` `Taskfile.yml` (#1062 by @misitebao).
([#1062](https://github.com/go-task/task/pull/1062) by @misitebao). - Added new `splitArgs` template function (`{{splitArgs "foo bar 'foo bar
- Added new `splitArgs` to the template system baz'"}}`) to ensure string is split as arguments (#1040,
(`{{splitArgs "foo bar 'foo bar baz'"}}`) to ensure string is splitted as #1059 by @dhanusaputra).
arguments not whitespaces - Fix the value of `{{.CHECKSUM}}` variable in status (#1076, #1080 by @pd93).
([#1040](https://github.com/go-task/task/issues/1040), [#1059](https://github.com/go-task/task/pull/1059) by @dhanusaputra). - Fixed deep copy implementation (#1072 by @pd93)
- Fix the value of `{{.CHECKSUM}}` variable in status ([#1076](https://github.com/go-task/task/issues/1076), [#1080](https://github.com/go-task/task/pull/1080) by @pd93).
- Fixed deep copy implementation ([#1072](https://github.com/go-task/task/pull/1072) by @pd93)
## v3.22.0 - 2023-03-10 ## v3.22.0 - 2023-03-10
- Add a brand new `--global` (`-g`) flag that will run a Taskfile from your - 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 `$HOME` directory. This is useful to have automation that you can run from
anywhere in your system! anywhere in your system!
([Documentation](https://taskfile.dev/usage/#running-a-global-taskfile), [#1029](https://github.com/go-task/task/pull/1029) by @andreynering). ([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 - 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 instruct Task to only print a command output if it returned with a non-zero
exit code exit code (#664, #1022 by @jaedle).
([#664](https://github.com/go-task/task/issues/664), [#1022](https://github.com/go-task/task/pull/1022) by @jaedle).
- Fixed bug where `.task/checksum` file was sometimes not being created when - Fixed bug where `.task/checksum` file was sometimes not being created when
task also declares a `status:` task also declares a `status:` (#840, #1035 by @harelwa, #1037 by @pd93).
([#840](https://github.com/go-task/task/issues/840), [#1035](https://github.com/go-task/task/pull/1035) by @harelwa, [#1037](https://github.com/go-task/task/pull/1037) by @pd93). - Refactored and decoupled fingerprinting from the main Task executor (#1039 by
- Refactored and decoupled fingerprinting from the main Task executor ([#1039](https://github.com/go-task/task/issues/1039) by @pd93). @pd93).
- Fixed deadlock issue when using `run: once` - Fixed deadlock issue when using `run: once` (#715, #1025 by
([#715](https://github.com/go-task/task/issues/715), [#1025](https://github.com/go-task/task/pull/1025) by @theunrepentantgeek). @theunrepentantgeek).
## v3.21.0 - 2023-02-22 ## v3.21.0 - 2023-02-22
- Added new `TASK_VERSION` special variable - Added new `TASK_VERSION` special variable (#990, #1014 by @ja1code).
([#990](https://github.com/go-task/task/issues/990), [#1014](https://github.com/go-task/task/pull/1014) by @ja1code). - Fixed a bug where tasks were sometimes incorrectly marked as internal (#1007
- Fixed a bug where tasks were sometimes incorrectly marked as internal ([#1007](https://github.com/go-task/task/pull/1007) by @pd93). by @pd93).
- Update to Go 1.20 (bump minimum version to 1.19) ([#1010](https://github.com/go-task/task/pull/1010) 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](https://github.com/go-task/task/pull/1003) by @automation-stack) - 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 ## v3.20.0 - 2023-01-14
- Improve behavior and performance of status checking when using the - Improve behavior and performance of status checking when using the `timestamp`
`timestamp` mode mode (#976, #977 by @aminya).
([#976](https://github.com/go-task/task/issues/976), [#977](https://github.com/go-task/task/pull/977) by @aminya). - Performance optimizations were made for large Taskfiles (#982 by @pd93).
- Performance optimizations were made for large Taskfiles - Add ability to configure options for the
([#982](https://github.com/go-task/task/pull/982) by @pd93). [`set`](https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html)
- Add ability to configure options for the [`set`](https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html) and
and [`shopt`](https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html) builtins [`shopt`](https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html)
([#908](https://github.com/go-task/task/issues/908), [#929](https://github.com/go-task/task/pull/929) by @pd93, [Documentation](http://taskfile.dev/usage/#set-and-shopt)). 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 - 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 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 values are operating system (GOOS), architecture (GOARCH) or a combination of
the two. Example: `platforms: [linux]`, `platforms: [amd64]` or the two. Example: `platforms: [linux]`, `platforms: [amd64]` or `platforms:
`platforms: [linux/amd64]`. Other platforms will be skipped [linux/amd64]`. Other platforms will be skipped (#978, #980 by @leaanthony).
([#978](https://github.com/go-task/task/issues/978), [#980](https://github.com/go-task/task/pull/980) by @leaanthony).
## v3.19.1 - 2022-12-31 ## v3.19.1 - 2022-12-31
- Small bug fix: closing `Taskfile.yml` once we're done reading it - Small bug fix: closing `Taskfile.yml` once we're done reading it
([#963](https://github.com/go-task/task/issues/963), [#964](https://github.com/go-task/task/pull/964) by @HeCorr). (#963, #964 by @HeCorr).
- Fixes a bug in v2 that caused a panic when using a `Taskfile_{{OS}}.yml` file - Fixes a bug in v2 that caused a panic when using a `Taskfile_{{OS}}.yml` file
([#961](https://github.com/go-task/task/issues/961), [#971](https://github.com/go-task/task/pull/971) by @pd93). (#961, #971 by @pd93).
- Fixed a bug where watch intervals set in the Taskfile were not being respected ([#969](https://github.com/go-task/task/pull/969), [#970](https://github.com/go-task/task/pull/970) 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 - 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, editors and add room to other possible integrations. This is basic for now,
but we plan to add more info in the near future but we plan to add more info in the near future
([#936](https://github.com/go-task/task/pull/936) by @davidalpert, [#764](https://github.com/go-task/task/issues/764)). (#936 by @davidalpert, #764).
## v3.19.0 - 2022-12-05 ## v3.19.0 - 2022-12-05
- Installation via npm now supports [pnpm](https://pnpm.io/) as well - 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)). ([go-task/go-npm#2](https://github.com/go-task/go-npm/issues/2),
- It's now possible to run Taskfiles from subdirectories! A new `USER_WORKING_DIR` special [go-task/go-npm#3](https://github.com/go-task/go-npm/pull/3)).
variable was added to add even more flexibility for monorepos - It's now possible to run Taskfiles from subdirectories! A new
([#289](https://github.com/go-task/task/issues/289), [#920](https://github.com/go-task/task/pull/920)). `USER_WORKING_DIR` special variable was added to add even more flexibility for
- Add task-level `dotenv` support monorepos (#289, #920).
([#389](https://github.com/go-task/task/issues/389), [#904](https://github.com/go-task/task/pull/904)). - Add task-level `dotenv` support (#389, #904).
- It's now possible to use global level variables on `includes` - It's now possible to use global level variables on `includes` (#942, #943).
([#942](https://github.com/go-task/task/issues/942), [#943](https://github.com/go-task/task/pull/943)). - The website got a brand new [translation to
- The website got a brand new [translation to Chinese](https://task-zh.readthedocs.io/zh_CN/latest/) Chinese](https://task-zh.readthedocs.io/zh_CN/latest/) by
by [@DeronW](https://github.com/DeronW). Thanks! [@DeronW](https://github.com/DeronW). Thanks!
## v3.18.0 - 2022-11-12 ## v3.18.0 - 2022-11-12
- Show aliases on `task --list --silent` (`task --ls`). This means that aliases - Show aliases on `task --list --silent` (`task --ls`). This means that aliases
will be completed by the completion scripts will be completed by the completion scripts (#919).
([#919](https://github.com/go-task/task/pull/919)).
- Tasks in the root Taskfile will now be displayed first in `--list`/`--list-all` - Tasks in the root Taskfile will now be displayed first in `--list`/`--list-all`
output ([#806](https://github.com/go-task/task/pull/806), [#890](https://github.com/go-task/task/pull/890)). output (#806, #890).
- It's now possible to call a `default` task in an included Taskfile by using - 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 just the namespace. For example: `docs:default` is now automatically
aliased to `docs` aliased to `docs` (#661, #815).
([#661](https://github.com/go-task/task/issues/661), [#815](https://github.com/go-task/task/pull/815)).
## v3.17.0 - 2022-10-14 ## v3.17.0 - 2022-10-14
- Add a "Did you mean ...?" suggestion when a task does not exits another one - Add a "Did you mean ...?" suggestion when a task does not exits another one
with a similar name is found with a similar name is found (#867, #880).
([#867](https://github.com/go-task/task/issues/867), [#880](https://github.com/go-task/task/pull/880)). - Now YAML parse errors will print which Taskfile failed to parse (#885, #887).
- Now YAML parse errors will print which Taskfile failed to parse - Add ability to set `aliases` for tasks and namespaces (#268, #340, #879).
([#885](https://github.com/go-task/task/issues/885), [#887](https://github.com/go-task/task/pull/887)). - Improvements to Fish shell completion (#897).
- Add ability to set `aliases` for tasks and namespaces ([#268](https://github.com/go-task/task/pull/268), [#340](https://github.com/go-task/task/pull/340), [#879](https://github.com/go-task/task/pull/879)). - Added ability to set a different watch interval by setting `interval: '500ms'`
- Improvements to Fish shell completion or using the `--interval=500ms` flag (#813, #865).
([#897](https://github.com/go-task/task/pull/897)). - Add colored output to `--list`, `--list-all` and `--summary` flags (#845,
- Added ability to set a different watch interval by setting #874).
`interval: '500ms'` or using the `--interval=500ms` flag
([#813](https://github.com/go-task/task/issues/813), [#865](https://github.com/go-task/task/pull/865)).
- Add colored output to `--list`, `--list-all` and `--summary` flags ([#845](https://github.com/go-task/task/pull/845), [#874](https://github.com/go-task/task/pull/874)).
- Fix unexpected behavior where `label:` was being shown instead of the task - Fix unexpected behavior where `label:` was being shown instead of the task
name on `--list` name on `--list` (#603, #877).
([#603](https://github.com/go-task/task/issues/603), [#877](https://github.com/go-task/task/pull/877)).
## v3.16.0 - 2022-09-29 ## v3.16.0 - 2022-09-29
- Add `npm` as new installation method: `npm i -g @go-task/cli` - Add `npm` as new installation method: `npm i -g @go-task/cli`
([#870](https://github.com/go-task/task/issues/870), [#871](https://github.com/go-task/task/pull/871), [npm package](https://www.npmjs.com/package/@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 - Add support to marking tasks and includes as internal, which will hide them
from `--list` and `--list-all` from `--list` and `--list-all` (#818).
([#818](https://github.com/go-task/task/pull/818)).
## v3.15.2 - 2022-09-08 ## v3.15.2 - 2022-09-08
- Fix error when using variable in `env:` introduced in the previous release - Fix error when using variable in `env:` introduced in the previous release
([#858](https://github.com/go-task/task/issues/858), [#866](https://github.com/go-task/task/pull/866)). (#858, #866).
- Fix handling of `CLI_ARGS` (`--`) in Bash completion - Fix handling of `CLI_ARGS` (`--`) in Bash completion (#863).
([#863](https://github.com/go-task/task/pull/863)).
- On zsh completion, add ability to replace `--list-all` with `--list` as - On zsh completion, add ability to replace `--list-all` with `--list` as
already possible on the Bash completion already possible on the Bash completion (#861).
([#861](https://github.com/go-task/task/pull/861)).
## v3.15.0 - 2022-09-03 ## v3.15.0 - 2022-09-03
- Add new special variables `ROOT_DIR` and `TASKFILE_DIR`. This was a highly - Add new special variables `ROOT_DIR` and `TASKFILE_DIR`. This was a highly
requested feature requested feature (#215, #857,
([#215](https://github.com/go-task/task/issues/215), [#857](https://github.com/go-task/task/pull/857), [Documentation](https://taskfile.dev/api/#special-variables)). [Documentation](https://taskfile.dev/api/#special-variables)).
- Follow symlinks on `sources` - Follow symlinks on `sources` (#826, #831).
([#826](https://github.com/go-task/task/issues/826), [#831](https://github.com/go-task/task/pull/831)). - Improvements and fixes to Bash completion (#835, #844).
- Improvements and fixes to Bash completion
([#835](https://github.com/go-task/task/pull/835), [#844](https://github.com/go-task/task/pull/844)).
## v3.14.1 - 2022-08-03 ## v3.14.1 - 2022-08-03
- Always resolve relative include paths relative to the including Taskfile - Always resolve relative include paths relative to the including Taskfile
([#822](https://github.com/go-task/task/issues/822), [#823](https://github.com/go-task/task/pull/823)). (#822, #823).
- Fix ZSH and PowerShell completions to consider all tasks instead of just the - Fix ZSH and PowerShell completions to consider all tasks instead of just the
public ones (those with descriptions) public ones (those with descriptions) (#803).
([#803](https://github.com/go-task/task/pull/803)).
## v3.14.0 - 2022-07-08 ## v3.14.0 - 2022-07-08
- Add ability to override the `.task` directory location with the - Add ability to override the `.task` directory location with the
`TASK_TEMP_DIR` environment variable. `TASK_TEMP_DIR` environment variable.
- Allow to override Task colors using environment variables: - Allow to override Task colors using environment variables: `TASK_COLOR_RESET`,
`TASK_COLOR_RESET`, `TASK_COLOR_BLUE`, `TASK_COLOR_GREEN`, `TASK_COLOR_BLUE`, `TASK_COLOR_GREEN`, `TASK_COLOR_CYAN`, `TASK_COLOR_YELLOW`,
`TASK_COLOR_CYAN`, `TASK_COLOR_YELLOW`, `TASK_COLOR_MAGENTA` `TASK_COLOR_MAGENTA` and `TASK_COLOR_RED` (#568, #792).
and `TASK_COLOR_RED`
([#568](https://github.com/go-task/task/pull/568), [#792](https://github.com/go-task/task/pull/792)).
- Fixed bug when using the `output: group` mode where STDOUT and STDERR were - Fixed bug when using the `output: group` mode where STDOUT and STDERR were
being print in separated blocks instead of in the right order being print in separated blocks instead of in the right order (#779).
([#779](https://github.com/go-task/task/issues/779)).
- Starting on this release, ARM architecture binaries are been released to Snap - Starting on this release, ARM architecture binaries are been released to Snap
as well as well (#795).
([#795](https://github.com/go-task/task/issues/795)). - i386 binaries won't be available anymore on Snap because Ubuntu removed the
- i386 binaries won't be available anymore on Snap because Ubuntu removed the support support for this architecture.
for this architecture. - Upgrade mvdan.cc/sh, which fixes a bug with associative arrays (#785,
- Upgrade mvdan.cc/sh, which fixes a bug with associative arrays [mvdan/sh#884](https://github.com/mvdan/sh/issues/884),
([#785](https://github.com/go-task/task/issues/785), [mvdan/sh#884](https://github.com/mvdan/sh/issues/884), [mvdan/sh#893](https://github.com/mvdan/sh/pull/893)). [mvdan/sh#893](https://github.com/mvdan/sh/pull/893)).
## v3.13.0 - 2022-06-13 ## v3.13.0 - 2022-06-13
- Added `-n` as an alias to `--dry` - Added `-n` as an alias to `--dry` (#776, #777).
([#776](https://github.com/go-task/task/issues/776), [#777](https://github.com/go-task/task/pull/777)).
- Fix behavior of interrupt (SIGINT, SIGTERM) signals. Task will now give time - Fix behavior of interrupt (SIGINT, SIGTERM) signals. Task will now give time
for the processes running to do cleanup work for the processes running to do cleanup work (#458, #479, #728, #769).
([#458](https://github.com/go-task/task/issues/458), [#479](https://github.com/go-task/task/pull/479), [#728](https://github.com/go-task/task/issues/728), [#769](https://github.com/go-task/task/pull/769)).
- Add new `--exit-code` (`-x`) flag that will pass-through the exit form the - Add new `--exit-code` (`-x`) flag that will pass-through the exit form the
command being ran command being ran (#755).
([#755](https://github.com/go-task/task/pull/755)).
## v3.12.1 - 2022-05-10 ## v3.12.1 - 2022-05-10
- Fixed bug where, on Windows, variables were ending with `\r` because we were - Fixed bug where, on Windows, variables were ending with `\r` because we were
only removing the final `\n` but not `\r\n` only removing the final `\n` but not `\r\n` (#717).
([#717](https://github.com/go-task/task/issues/717)).
## v3.12.0 - 2022-03-31 ## v3.12.0 - 2022-03-31
- The `--list` and `--list-all` flags can now be combined with the `--silent` - The `--list` and `--list-all` flags can now be combined with the `--silent`
flag to print the task names only, without their description flag to print the task names only, without their description (#691).
([#691](https://github.com/go-task/task/pull/691)). - Added support for multi-level inclusion of Taskfiles. This means that included
- Added support for multi-level inclusion of Taskfiles. This means that Taskfiles can also include other Taskfiles. Before this was limited to one
included Taskfiles can also include other Taskfiles. Before this was limited level (#390, #623, #656).
to one level - Add ability to specify vars when including a Taskfile. [Check out the
([#390](https://github.com/go-task/task/issues/390), [#623](https://github.com/go-task/task/discussions/623), [#656](https://github.com/go-task/task/pull/656)). documentation](https://taskfile.dev/#/usage?id=vars-of-included-taskfiles) for
- Add ability to specify vars when including a Taskfile. more information (#677).
[Check out the documentation](https://taskfile.dev/#/usage?id=vars-of-included-taskfiles)
for more information.
([#677](https://github.com/go-task/task/pull/677)).
## v3.11.0 - 2022-02-19 ## v3.11.0 - 2022-02-19
- Task now supports printing begin and end messages when using the `group` - Task now supports printing begin and end messages when using the `group`
output mode, useful for grouping tasks in CI systems. output mode, useful for grouping tasks in CI systems. [Check out the
[Check out the documentation](http://taskfile.dev/#/usage?id=output-syntax) for more information documentation](http://taskfile.dev/#/usage?id=output-syntax) for more
([#647](https://github.com/go-task/task/issues/647), [#651](https://github.com/go-task/task/pull/651)). information (#647, #651).
- Add `Taskfile.dist.yml` and `Taskfile.dist.yaml` to the supported file - Add `Taskfile.dist.yml` and `Taskfile.dist.yaml` to the supported file name
name list. [Check out the documentation](https://taskfile.dev/#/usage?id=supported-file-names) for more information list. [Check out the
([#498](https://github.com/go-task/task/issues/498), [#666](https://github.com/go-task/task/pull/666)). documentation](https://taskfile.dev/#/usage?id=supported-file-names) for more
information (#498, #666).
## v3.10.0 - 2022-01-04 ## v3.10.0 - 2022-01-04
- A new `--list-all` (alias `-a`) flag is now available. It's similar to the - 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 exiting `--list` (`-l`) but prints all tasks, even those without a description
description (#383, #401).
([#383](https://github.com/go-task/task/issues/383), [#401](https://github.com/go-task/task/pull/401)).
- It's now possible to schedule cleanup commands to run once a task finishes - It's now possible to schedule cleanup commands to run once a task finishes
with the `defer:` keyword with the `defer:` keyword
([Documentation](https://taskfile.dev/#/usage?id=doing-task-cleanup-with-defer), [#475](https://github.com/go-task/task/issues/475), [#626](https://github.com/go-task/task/pull/626)). ([Documentation](https://taskfile.dev/#/usage?id=doing-task-cleanup-with-defer),
#475, #626).
- Remove long deprecated and undocumented `$` variable prefix and `^` command - Remove long deprecated and undocumented `$` variable prefix and `^` command
prefix prefix (#642, #644, #645).
([#642](https://github.com/go-task/task/issues/642), [#644](https://github.com/go-task/task/issues/644), [#645](https://github.com/go-task/task/pull/645)). - Add support for `.yaml` extension (as an alternative to `.yml`). This was
- Add support for `.yaml` extension (as an alternative to `.yml`). requested multiple times throughout the years. Enjoy! (#183, #184, #369, #584,
This was requested multiple times throughout the years. Enjoy! #621).
([#183](https://github.com/go-task/task/issues/183), [#184](https://github.com/go-task/task/pull/184), [#369](https://github.com/go-task/task/issues/369), [#584](https://github.com/go-task/task/issues/584), [#621](https://github.com/go-task/task/pull/621)). - Fixed error when computing a variable when the task directory do not exist yet
- Fixed error when computing a variable when the task directory do not exist (#481, #579).
yet
([#481](https://github.com/go-task/task/issues/481), [#579](https://github.com/go-task/task/pull/579)).
## v3.9.2 - 2021-12-02 ## v3.9.2 - 2021-12-02
- Upgrade [mvdan/sh](https://github.com/mvdan/sh) which contains a fix a for - Upgrade [mvdan/sh](https://github.com/mvdan/sh) which contains a fix a for a
a important regression on Windows important regression on Windows (#619,
([#619](https://github.com/go-task/task/issues/619), [mvdan/sh#768](https://github.com/mvdan/sh/issues/768), [mvdan/sh#769](https://github.com/mvdan/sh/pull/769)). [mvdan/sh#768](https://github.com/mvdan/sh/issues/768),
[mvdan/sh#769](https://github.com/mvdan/sh/pull/769)).
## v3.9.1 - 2021-11-28 ## v3.9.1 - 2021-11-28
- Add logging in verbose mode for when a task starts and finishes - Add logging in verbose mode for when a task starts and finishes (#533, #588).
([#533](https://github.com/go-task/task/issues/533), [#588](https://github.com/go-task/task/pull/588)). - Fix an issue with preconditions and context errors (#597, #598).
- Fix an issue with preconditions and context errors
([#597](https://github.com/go-task/task/issues/597), [#598](https://github.com/go-task/task/pull/598)).
- Quote each `{{.CLI_ARGS}}` argument to prevent one with spaces to become many - Quote each `{{.CLI_ARGS}}` argument to prevent one with spaces to become many
([#613](https://github.com/go-task/task/pull/613)). (#613).
- Fix nil pointer when `cmd:` was left empty - Fix nil pointer when `cmd:` was left empty (#612, #614).
([#612](https://github.com/go-task/task/issues/612), [#614](https://github.com/go-task/task/pull/614)). - Upgrade [mvdan/sh](https://github.com/mvdan/sh) which contains two relevant
- Upgrade [mvdan/sh](https://github.com/mvdan/sh) which contains two fixes:
relevant fixes: - Fix quote of empty strings in `shellQuote` (#609,
- Fix quote of empty strings in `shellQuote` [mvdan/sh#763](https://github.com/mvdan/sh/issues/763)).
([#609](https://github.com/go-task/task/issues/609), [mvdan/sh#763](https://github.com/mvdan/sh/issues/763)).
- Fix issue of wrong environment variable being picked when there's another - Fix issue of wrong environment variable being picked when there's another
very similar one very similar one (#586,
([#586](https://github.com/go-task/task/issues/586), [mvdan/sh#745](https://github.com/mvdan/sh/pull/745)). [mvdan/sh#745](https://github.com/mvdan/sh/pull/745)).
- Install shell completions automatically when installing via Homebrew - Install shell completions automatically when installing via Homebrew (#264,
([#264](https://github.com/go-task/task/issues/264), [#592](https://github.com/go-task/task/pull/592), [go-task/homebrew-tap#2](https://github.com/go-task/homebrew-tap/pull/2)). #592,
[go-task/homebrew-tap#2](https://github.com/go-task/homebrew-tap/pull/2)).
## v3.9.0 - 2021-10-02 ## v3.9.0 - 2021-10-02
- A new `shellQuote` function was added to the template system - A new `shellQuote` function was added to the template system (`{{shellQuote "a
(`{{shellQuote "a string"}}`) to ensure a string is safe for use in shell string"}}`) to ensure a string is safe for use in shell
([mvdan/sh#727](https://github.com/mvdan/sh/pull/727), [mvdan/sh#737](https://github.com/mvdan/sh/pull/737), [Documentation](https://pkg.go.dev/mvdan.cc/sh/v3@v3.4.0/syntax#Quote)) ([mvdan/sh#727](https://github.com/mvdan/sh/pull/727),
- In this version [mvdan.cc/sh](https://github.com/mvdan/sh) was upgraded [mvdan/sh#737](https://github.com/mvdan/sh/pull/737),
with some small fixes and features [Documentation](https://pkg.go.dev/mvdan.cc/sh/v3@v3.4.0/syntax#Quote))
- The `read -p` flag is now supported - In this version [mvdan.cc/sh](https://github.com/mvdan/sh) was upgraded with
([#314](https://github.com/go-task/task/issues/314), [mvdan/sh#551](https://github.com/mvdan/sh/issues/551), [mvdan/sh#772](https://github.com/mvdan/sh/pull/722)) some small fixes and features
- The `pwd -P` and `pwd -L` flags are now supported - The `read -p` flag is now supported (#314,
([#553](https://github.com/go-task/task/issues/553), [mvdan/sh#724](https://github.com/mvdan/sh/issues/724), [mvdan/sh#728](https://github.com/mvdan/sh/pull/728)) [mvdan/sh#551](https://github.com/mvdan/sh/issues/551),
- The `$GID` environment variable is now correctly being set [mvdan/sh#772](https://github.com/mvdan/sh/pull/722))
([#561](https://github.com/go-task/task/issues/561), [mvdan/sh#723](https://github.com/mvdan/sh/pull/723)) - The `pwd -P` and `pwd -L` flags are now supported (#553,
[mvdan/sh#724](https://github.com/mvdan/sh/issues/724),
[mvdan/sh#728](https://github.com/mvdan/sh/pull/728))
- The `$GID` environment variable is now correctly being set (#561,
[mvdan/sh#723](https://github.com/mvdan/sh/pull/723))
## v3.8.0 - 2021-09-26 ## v3.8.0 - 2021-09-26
- Add `interactive: true` setting to improve support for interactive CLI apps - Add `interactive: true` setting to improve support for interactive CLI apps
([#217](https://github.com/go-task/task/issues/217), [#563](https://github.com/go-task/task/pull/563)). (#217, #563).
- Fix some `nil` errors - Fix some `nil` errors (#534, #573).
([#534](https://github.com/go-task/task/issues/534), [#573](https://github.com/go-task/task/pull/573)). - Add ability to declare an included Taskfile as optional (#519, #552).
- Add ability to declare an included Taskfile as optional - Add support for including Taskfiles in the home directory by using `~` (#539,
([#519](https://github.com/go-task/task/issues/519), [#552](https://github.com/go-task/task/pull/552)). #557).
- Add support for including Taskfiles in the home directory by using `~`
([#539](https://github.com/go-task/task/issues/539), [#557](https://github.com/go-task/task/pull/557)).
## v3.7.3 - 2021-09-04 ## v3.7.3 - 2021-09-04
- Add official support to Apple M1 ([#564](https://github.com/go-task/task/pull/564), [#567](https://github.com/go-task/task/pull/567)). - Add official support to Apple M1 (#564, #567).
- Our [official Homebrew tap](https://github.com/go-task/homebrew-tap) will - Our [official Homebrew tap](https://github.com/go-task/homebrew-tap) will
support more platforms, including Apple M1 support more platforms, including Apple M1
@ -293,177 +271,137 @@
- Add `run:` setting to control if tasks should run multiple times or not. - Add `run:` setting to control if tasks should run multiple times or not.
Available options are `always` (the default), `when_changed` (if a variable Available options are `always` (the default), `when_changed` (if a variable
modified the task) and `once` (run only once no matter what). modified the task) and `once` (run only once no matter what).
This is a long time requested feature. Enjoy! This is a long time requested feature. Enjoy! (#53, #359).
([#53](https://github.com/go-task/task/issues/53), [#359](https://github.com/go-task/task/pull/359)).
## v3.6.0 - 2021-07-10 ## v3.6.0 - 2021-07-10
- Allow using both `sources:` and `status:` in the same task - Allow using both `sources:` and `status:` in the same task (#411, #427, #477).
([#411](https://github.com/go-task/task/issues/411), [#427](https://github.com/go-task/task/issues/427), [#477](https://github.com/go-task/task/pull/477)).
- Small optimization and bug fix: don't compute variables if not needed for - Small optimization and bug fix: don't compute variables if not needed for
`dotenv:` ([#517](https://github.com/go-task/task/issues/517)). `dotenv:` (#517).
## v3.5.0 - 2021-07-04 ## v3.5.0 - 2021-07-04
- Add support for interpolation in `dotenv:` - Add support for interpolation in `dotenv:` (#433, #434, #453).
([#433](https://github.com/go-task/task/discussions/433), [#434](https://github.com/go-task/task/issues/434), [#453](https://github.com/go-task/task/pull/453)).
## v3.4.3 - 2021-05-30 ## v3.4.3 - 2021-05-30
- Add support for the `NO_COLOR` environment variable. - Add support for the `NO_COLOR` environment variable.
([#459](https://github.com/go-task/task/issues/459), [fatih/color#137](https://github.com/fatih/color/pull/137)). (#459, [fatih/color#137](https://github.com/fatih/color/pull/137)).
- Fix bug where sources were not considering the right directory - Fix bug where sources were not considering the right directory
in `--watch` mode in `--watch` mode (#484, #485).
([#484](https://github.com/go-task/task/issues/484), [#485](https://github.com/go-task/task/pull/485)).
## v3.4.2 - 2021-04-23 ## v3.4.2 - 2021-04-23
- On watch, report which file failed to read - On watch, report which file failed to read (#472).
([#472](https://github.com/go-task/task/pull/472)). - Do not try to catch SIGKILL signal, which are not actually possible (#476).
- Do not try to catch SIGKILL signal, which are not actually possible
([#476](https://github.com/go-task/task/pull/476)).
- Improve version reporting when building Task from source using Go Modules - Improve version reporting when building Task from source using Go Modules
([#462](https://github.com/go-task/task/pull/462), [#473](https://github.com/go-task/task/pull/473)). (#462, #473).
## v3.4.1 - 2021-04-17 ## v3.4.1 - 2021-04-17
- Improve error reporting when parsing YAML: in some situations where you - Improve error reporting when parsing YAML: in some situations where you
would just see an generic error, you'll now see the actual error with would just see an generic error, you'll now see the actual error with
more detail: the YAML line the failed to parse, for example more detail: the YAML line the failed to parse, for example (#467).
([#467](https://github.com/go-task/task/issues/467)).
- A JSON Schema was published [here](https://json.schemastore.org/taskfile.json) - A JSON Schema was published [here](https://json.schemastore.org/taskfile.json)
and is automatically being used by some editors like Visual Studio Code and is automatically being used by some editors like Visual Studio Code
([#135](https://github.com/go-task/task/issues/135)). (#135).
- Print task name before the command in the log output - Print task name before the command in the log output (#398).
([#398](https://github.com/go-task/task/pull/398)).
## v3.3.0 - 2021-03-20 ## v3.3.0 - 2021-03-20
- Add support for delegating CLI arguments to commands with `--` and a - Add support for delegating CLI arguments to commands with `--` and a
special `CLI_ARGS` variable special `CLI_ARGS` variable (#327).
([#327](https://github.com/go-task/task/issues/327)).
- Add a `--concurrency` (alias `-C`) flag, to limit the number of tasks that - Add a `--concurrency` (alias `-C`) flag, to limit the number of tasks that
run concurrently. This is useful for heavy workloads. run concurrently. This is useful for heavy workloads. (#345).
([#345](https://github.com/go-task/task/pull/345)).
## v3.2.2 - 2021-01-12 ## v3.2.2 - 2021-01-12
- Improve performance of `--list` and `--summary` by skipping running shell - Improve performance of `--list` and `--summary` by skipping running shell
variables for these flags variables for these flags (#332).
([#332](https://github.com/go-task/task/issues/332)).
- Fixed a bug where an environment in a Taskfile was not always overridable - Fixed a bug where an environment in a Taskfile was not always overridable
by the system environment by the system environment (#425).
([#425](https://github.com/go-task/task/issues/425)). - Fixed environment from .env files not being available as variables (#379).
- Fixed environment from .env files not being available as variables - The install script is now working for ARM platforms (#428).
([#379](https://github.com/go-task/task/issues/379)).
- The install script is now working for ARM platforms
([#428](https://github.com/go-task/task/pull/428)).
## v3.2.1 - 2021-01-09 ## v3.2.1 - 2021-01-09
- Fixed some bugs and regressions regarding dynamic variables and directories - Fixed some bugs and regressions regarding dynamic variables and directories
([#426](https://github.com/go-task/task/issues/426)). (#426).
- The [slim-sprig](https://github.com/go-task/slim-sprig) package was updated - The [slim-sprig](https://github.com/go-task/slim-sprig) package was updated
with the upstream [sprig](https://github.com/Masterminds/sprig). with the upstream [sprig](https://github.com/Masterminds/sprig).
## v3.2.0 - 2021-01-07 ## v3.2.0 - 2021-01-07
- Fix the `.task` directory being created in the task directory instead of the - Fix the `.task` directory being created in the task directory instead of the
Taskfile directory Taskfile directory (#247).
([#247](https://github.com/go-task/task/issues/247)).
- Fix a bug where dynamic variables (those declared with `sh:`) were not - Fix a bug where dynamic variables (those declared with `sh:`) were not
running in the task directory when the task has a custom dir or it was running in the task directory when the task has a custom dir or it was
in an included Taskfile in an included Taskfile (#384).
([#384](https://github.com/go-task/task/issues/384)).
- The watch feature (via the `--watch` flag) got a few different bug fixes and - The watch feature (via the `--watch` flag) got a few different bug fixes and
should be more stable now should be more stable now (#423, #365).
([#423](https://github.com/go-task/task/pull/423), [#365](https://github.com/go-task/task/issues/365)).
## v3.1.0 - 2021-01-03 ## v3.1.0 - 2021-01-03
- Fix a bug when the checksum up-to-date resolution is used by a task - Fix a bug when the checksum up-to-date resolution is used by a task
with a custom `label:` attribute with a custom `label:` attribute (#412).
([#412](https://github.com/go-task/task/issues/412)).
- Starting from this release, we're releasing official ARMv6 and ARM64 binaries - Starting from this release, we're releasing official ARMv6 and ARM64 binaries
for Linux for Linux (#375, #418).
([#375](https://github.com/go-task/task/issues/375), [#418](https://github.com/go-task/task/issues/418)).
- Task now respects the order of declaration of included Taskfiles when - Task now respects the order of declaration of included Taskfiles when
evaluating variables declaring by them evaluating variables declaring by them (#393).
([#393](https://github.com/go-task/task/issues/393)).
- `set -e` is now automatically set on every command. This was done to fix an - `set -e` is now automatically set on every command. This was done to fix an
issue where multiline string commands wouldn't really fail unless the issue where multiline string commands wouldn't really fail unless the
sentence was in the last line sentence was in the last line (#403).
([#403](https://github.com/go-task/task/issues/403)).
## v3.0.1 - 2020-12-26 ## v3.0.1 - 2020-12-26
- Allow use as a library by moving the required packages out of the `internal` - Allow use as a library by moving the required packages out of the `internal`
directory directory (#358).
([#358](https://github.com/go-task/task/pull/358)). - Do not error if a specified dotenv file does not exist (#378, #385).
- Do not error if a specified dotenv file does not exist - Fix panic when you have empty tasks in your Taskfile (#338, #362).
([#378](https://github.com/go-task/task/issues/378), [#385](https://github.com/go-task/task/pull/385)).
- Fix panic when you have empty tasks in your Taskfile
([#338](https://github.com/go-task/task/issues/338), [#362](https://github.com/go-task/task/pull/362)).
## v3.0.0 - 2020-08-16 ## v3.0.0 - 2020-08-16
- On `v3`, all CLI variables will be considered global variables - On `v3`, all CLI variables will be considered global variables (#336, #341)
([#336](https://github.com/go-task/task/issues/336), [#341](https://github.com/go-task/task/pull/341)) - Add support to `.env` like files (#324, #356).
- Add support to `.env` like files
([#324](https://github.com/go-task/task/issues/324), [#356](https://github.com/go-task/task/pull/356)).
- Add `label:` to task so you can override the task name in the logs - Add `label:` to task so you can override the task name in the logs
([#321](https://github.com/go-task/task/issues/321]), [#337](https://github.com/go-task/task/pull/337)). ([#321](https://github.com/go-task/task/issues/321]), #337).
- Refactor how variables work on version 3 - Refactor how variables work on version 3 (#311).
([#311](https://github.com/go-task/task/pull/311)).
- Disallow `expansions` on v3 since it has no effect. - Disallow `expansions` on v3 since it has no effect.
- `Taskvars.yml` is not automatically included anymore. - `Taskvars.yml` is not automatically included anymore.
- `Taskfile_{{OS}}.yml` is not automatically included anymore. - `Taskfile_{{OS}}.yml` is not automatically included anymore.
- Allow interpolation on `includes`, so you can manually include a Taskfile - Allow interpolation on `includes`, so you can manually include a Taskfile
based on operation system, for example. based on operation system, for example.
- Expose `.TASK` variable in templates with the task name - Expose `.TASK` variable in templates with the task name (#252).
([#252](https://github.com/go-task/task/issues/252)). - Implement short task syntax (#194, #240).
- Implement short task syntax
([#194](https://github.com/go-task/task/issues/194), [#240](https://github.com/go-task/task/pull/240)).
- Added option to make included Taskfile run commands on its own directory - Added option to make included Taskfile run commands on its own directory
([#260](https://github.com/go-task/task/issues/260), [#144](https://github.com/go-task/task/issues/144)) (#260, #144)
- Taskfiles in version 1 are not supported anymore - Taskfiles in version 1 are not supported anymore (#237).
([#237](https://github.com/go-task/task/pull/237)).
- Added global `method:` option. With this option, you can set a default - Added global `method:` option. With this option, you can set a default
method to all tasks in a Taskfile method to all tasks in a Taskfile (#246).
([#246](https://github.com/go-task/task/issues/246)). - Changed default method from `timestamp` to `checksum` (#246).
- Changed default method from `timestamp` to `checksum`
([#246](https://github.com/go-task/task/issues/246)).
- New magic variables are now available when using `status:`: - New magic variables are now available when using `status:`:
`.TIMESTAMP` which contains the greatest modification date `.TIMESTAMP` which contains the greatest modification date
from the files listed in `sources:`, and `.CHECKSUM`, which from the files listed in `sources:`, and `.CHECKSUM`, which
contains a checksum of all files listed in `status:`. contains a checksum of all files listed in `status:`.
This is useful for manual checking when using external, or even remote, This is useful for manual checking when using external, or even remote,
artifacts when using `status:` artifacts when using `status:` (#216).
([#216](https://github.com/go-task/task/pull/216)).
- We're now using [slim-sprig](https://github.com/go-task/slim-sprig) instead of - We're now using [slim-sprig](https://github.com/go-task/slim-sprig) instead of
[sprig](https://github.com/Masterminds/sprig), which allowed a file size [sprig](https://github.com/Masterminds/sprig), which allowed a file size
reduction of about 22% reduction of about 22% (#219).
([#219](https://github.com/go-task/task/pull/219)).
- We now use some colors on Task output to better distinguish message types - - We now use some colors on Task output to better distinguish message types -
commands are green, errors are red, etc commands are green, errors are red, etc (#207).
([#207](https://github.com/go-task/task/pull/207)).
## v2.8.1 - 2020-05-20 ## v2.8.1 - 2020-05-20
- Fix error code for the `--help` flag - Fix error code for the `--help` flag (#300, #330).
([#300](https://github.com/go-task/task/issues/300), [#330](https://github.com/go-task/task/pull/330)). - Print version to stdout instead of stderr (#299, #329).
- Print version to stdout instead of stderr - Supress `context` errors when using the `--watch` flag (#313, #317).
([#299](https://github.com/go-task/task/issues/299), [#329](https://github.com/go-task/task/pull/329)). - Support templating on description (#276, #283).
- Supress `context` errors when using the `--watch` flag
([#313](https://github.com/go-task/task/issues/313), [#317](https://github.com/go-task/task/pull/317)).
- Support templating on description
([#276](https://github.com/go-task/task/issues/276), [#283](https://github.com/go-task/task/pull/283)).
## v2.8.0 - 2019-12-07 ## v2.8.0 - 2019-12-07
- Add `--parallel` flag (alias `-p`) to run tasks given by the command line in - Add `--parallel` flag (alias `-p`) to run tasks given by the command line in
parallel parallel (#266).
([#266](https://github.com/go-task/task/pull/266)).
- Fixed bug where calling the `task` CLI only informing global vars would not - Fixed bug where calling the `task` CLI only informing global vars would not
execute the `default` task. execute the `default` task.
- Add hability to silent all tasks by adding `silent: true` a the root of the - Add hability to silent all tasks by adding `silent: true` a the root of the
@ -471,41 +409,34 @@
## v2.7.1 - 2019-11-10 ## v2.7.1 - 2019-11-10
- Fix error being raised when `exit 0` was called - Fix error being raised when `exit 0` was called (#251).
([#251](https://github.com/go-task/task/issues/251)).
## v2.7.0 - 2019-09-22 ## v2.7.0 - 2019-09-22
- Fixed panic bug when assigning a global variable - Fixed panic bug when assigning a global variable (#229, #243).
([#229](https://github.com/go-task/task/issues/229), [#243](https://github.com/go-task/task/issues/234)).
- A task with `method: checksum` will now re-run if generated files are deleted - A task with `method: checksum` will now re-run if generated files are deleted
([#228](https://github.com/go-task/task/pull/228), [#238](https://github.com/go-task/task/issues/238)). (#228, #238).
## v2.6.0 - 2019-07-21 ## v2.6.0 - 2019-07-21
- Fixed some bugs regarding minor version checks on `version:`. - Fixed some bugs regarding minor version checks on `version:`.
- Add `preconditions:` to task - Add `preconditions:` to task (#205).
([#205](https://github.com/go-task/task/pull/205)). - Create directory informed on `dir:` if it doesn't exist (#209, #211).
- Create directory informed on `dir:` if it doesn't exist
([#209](https://github.com/go-task/task/issues/209), [#211](https://github.com/go-task/task/pull/211)).
- We now have a `--taskfile` flag (alias `-t`), which can be used to run - We now have a `--taskfile` flag (alias `-t`), which can be used to run
another Taskfile (other than the default `Taskfile.yml`) another Taskfile (other than the default `Taskfile.yml`) (#221).
([#221](https://github.com/go-task/task/pull/221)).
- It's now possible to install Task using Homebrew on Linux - It's now possible to install Task using Homebrew on Linux
([go-task/homebrew-tap#1](https://github.com/go-task/homebrew-tap/pull/1)). ([go-task/homebrew-tap#1](https://github.com/go-task/homebrew-tap/pull/1)).
## v2.5.2 - 2019-05-11 ## v2.5.2 - 2019-05-11
- Reverted YAML upgrade due issues with CRLF on Windows - Reverted YAML upgrade due issues with CRLF on Windows
([#201](https://github.com/go-task/task/issues/201), [go-yaml/yaml#450](https://github.com/go-yaml/yaml/issues/450)). (#201, [go-yaml/yaml#450](https://github.com/go-yaml/yaml/issues/450)).
- Allow setting global variables through the CLI - Allow setting global variables through the CLI (#192).
([#192](https://github.com/go-task/task/issues/192)).
## 2.5.1 - 2019-04-27 ## 2.5.1 - 2019-04-27
- Fixed some issues with interactive command line tools, where sometimes - Fixed some issues with interactive command line tools, where sometimes the
the output were not being shown, and similar issues output were not being shown, and similar issues (#114, #190, #200).
([#114](https://github.com/go-task/task/issues/114), [#190](https://github.com/go-task/task/issues/190), [#200](https://github.com/go-task/task/pull/200)).
- Upgraded [go-yaml/yaml](https://github.com/go-yaml/yaml) from v2 to v3. - Upgraded [go-yaml/yaml](https://github.com/go-yaml/yaml) from v2 to v3.
## v2.5.0 - 2019-03-16 ## v2.5.0 - 2019-03-16
@ -514,55 +445,54 @@
While stuff is being redirected, we strongly recommend to everyone that use While stuff is being redirected, we strongly recommend to everyone that use
[this install script](https://taskfile.dev/#/installation?id=install-script) [this install script](https://taskfile.dev/#/installation?id=install-script)
to use the new taskfile.dev domain on scripts from now on. to use the new taskfile.dev domain on scripts from now on.
- Fixed to the ZSH completion - Fixed to the ZSH completion (#182).
([#182](https://github.com/go-task/task/pull/182)). - Add [`--summary` flag along with `summary:` task
- Add [`--summary` flag along with `summary:` task attribute](https://taskfile.org/#/usage?id=display-summary-of-task) attribute](https://taskfile.org/#/usage?id=display-summary-of-task) (#180).
([#180](https://github.com/go-task/task/pull/180)).
## v2.4.0 - 2019-02-21 ## v2.4.0 - 2019-02-21
- Allow calling a task of the root Taskfile from an included Taskfile - Allow calling a task of the root Taskfile from an included Taskfile by
by prefixing it with `:` prefixing it with `:` (#161, #172).
([#161](https://github.com/go-task/task/issues/161), [#172](https://github.com/go-task/task/issues/172)), - Add flag to override the `output` option (#173).
- Add flag to override the `output` option
([#173](https://github.com/go-task/task/pull/173));
- Fix bug where Task was persisting the new checksum on the disk when the Dry - Fix bug where Task was persisting the new checksum on the disk when the Dry
Mode is enabled Mode is enabled (#166).
([#166](https://github.com/go-task/task/issues/166)); - Fix file timestamp issue when the file name has spaces (#176).
- Fix file timestamp issue when the file name has spaces - Mitigating path expanding issues on Windows (#170).
([#176](https://github.com/go-task/task/issues/176));
- Mitigating path expanding issues on Windows
([#170](https://github.com/go-task/task/pull/170)).
## v2.3.0 - 2019-01-02 ## v2.3.0 - 2019-01-02
- On Windows, Task can now be installed using [Scoop](https://scoop.sh/) - On Windows, Task can now be installed using [Scoop](https://scoop.sh/) (#152).
([#152](https://github.com/go-task/task/pull/152)); - Fixed issue with file/directory globing (#153).
- Fixed issue with file/directory globing - Added ability to globally set environment variables (#138, #159).
([#153](https://github.com/go-task/task/issues/153));
- Added ability to globally set environment variables
(
[#138](https://github.com/go-task/task/pull/138),
[#159](https://github.com/go-task/task/pull/159)
).
## v2.2.1 - 2018-12-09 ## v2.2.1 - 2018-12-09
- This repository now uses Go Modules (#143). We'll still keep the `vendor` directory in sync for some time, though; - This repository now uses Go Modules (#143). We'll still keep the `vendor`
- Fixing a bug when the Taskfile has no tasks but includes another Taskfile (#150); directory in sync for some time, though;
- Fix a bug when calling another task or a dependency in an included Taskfile (#151). - Fixing a bug when the Taskfile has no tasks but includes another Taskfile
(#150);
- Fix a bug when calling another task or a dependency in an included Taskfile
(#151).
## v2.2.0 - 2018-10-25 ## v2.2.0 - 2018-10-25
- Added support for [including other Taskfiles](https://taskfile.org/#/usage?id=including-other-taskfiles) (#98) - Added support for [including other
- This should be considered experimental. For now, only including local files is supported, but support for including remote Taskfiles is being discussed. If you have any feedback, please comment on #98. Taskfiles](https://taskfile.org/#/usage?id=including-other-taskfiles) (#98)
- This should be considered experimental. For now, only including local files
is supported, but support for including remote Taskfiles is being discussed.
If you have any feedback, please comment on #98.
- Task now have a dedicated documentation site: https://taskfile.org - Task now have a dedicated documentation site: https://taskfile.org
- Thanks to [Docsify](https://docsify.js.org/) for making this pretty easy. To check the source code, just take a look at the [docs](https://github.com/go-task/task/tree/master/docs) directory of this repository. Contributions to the documentation is really appreciated. - Thanks to [Docsify](https://docsify.js.org/) for making this pretty easy. To
check the source code, just take a look at the
[docs](https://github.com/go-task/task/tree/master/docs) directory of this
repository. Contributions to the documentation is really appreciated.
## v2.1.1 - 2018-09-17 ## v2.1.1 - 2018-09-17
- Fix suggestion to use `task --init` not being shown anymore (when a `Taskfile.yml` is not found) - Fix suggestion to use `task --init` not being shown anymore (when a
- Fix error when using checksum method and no file exists for a source glob (#131) `Taskfile.yml` is not found)
- Fix error when using checksum method and no file exists for a source glob
(#131)
- Fix signal handling when the `--watch` flag is given (#132) - Fix signal handling when the `--watch` flag is given (#132)
## v2.1.0 - 2018-08-19 ## v2.1.0 - 2018-08-19
@ -575,7 +505,8 @@
- Expand environment variables on "dir", "sources" and "generates" (#116) - Expand environment variables on "dir", "sources" and "generates" (#116)
- Fix YAML merging syntax (#112) - Fix YAML merging syntax (#112)
- Add ZSH completion (#111) - Add ZSH completion (#111)
- Implement new `output` option. Please check out the [documentation](https://github.com/go-task/task#output-syntax) - Implement new `output` option. Please check out the
[documentation](https://github.com/go-task/task#output-syntax)
## v2.0.2 - 2018-05-01 ## v2.0.2 - 2018-05-01
@ -589,10 +520,13 @@
Version 2.0.0 is here, with a new Taskfile format. Version 2.0.0 is here, with a new Taskfile format.
Please, make sure to read the [Taskfile versions](https://github.com/go-task/task/blob/master/TASKFILE_VERSIONS.md) document, since it describes in depth what changed for this version. Please, make sure to read the [Taskfile
versions](https://github.com/go-task/task/blob/master/TASKFILE_VERSIONS.md)
document, since it describes in depth what changed for this version.
- New Taskfile version 2 (https://github.com/go-task/task/issues/77) - New Taskfile version 2 (#77)
- Possibility to have global variables in the `Taskfile.yml` instead of `Taskvars.yml` (https://github.com/go-task/task/issues/66) - Possibility to have global variables in the `Taskfile.yml` instead of
`Taskvars.yml` (#66)
- Small improvements and fixes - Small improvements and fixes
## v1.4.4 - 2017-11-19 ## v1.4.4 - 2017-11-19
@ -613,7 +547,8 @@ Please, make sure to read the [Taskfile versions](https://github.com/go-task/tas
- Added suport for multiline variables from sh (#64) - Added suport for multiline variables from sh (#64)
- Fixes env: remove square braces and evaluate shell (#62) - Fixes env: remove square braces and evaluate shell (#62)
- Watch: change watch library and few fixes and improvements - Watch: change watch library and few fixes and improvements
- When use watching, cancel and restart long running process on file change (#59 and #60) - When use watching, cancel and restart long running process on file change (#59
and #60)
## v1.4.2 - 2017-07-30 ## v1.4.2 - 2017-07-30
@ -627,7 +562,8 @@ Please, make sure to read the [Taskfile versions](https://github.com/go-task/tas
- Allow use of YAML for dynamic variables instead of $ prefix - Allow use of YAML for dynamic variables instead of $ prefix
- `VAR: {sh: echo Hello}` instead of `VAR: $echo Hello` - `VAR: {sh: echo Hello}` instead of `VAR: $echo Hello`
- Add `--list` (or `-l`) flag to print existing tasks - Add `--list` (or `-l`) flag to print existing tasks
- OS specific Taskvars file (e.g. `Taskvars_windows.yml`, `Taskvars_linux.yml`, etc) - OS specific Taskvars file (e.g. `Taskvars_windows.yml`, `Taskvars_linux.yml`,
etc)
- Consider task up-to-date on equal timestamps (#49) - Consider task up-to-date on equal timestamps (#49)
- Allow absolute path in generates section (#48) - Allow absolute path in generates section (#48)
- Bugfix: allow templating when calling deps (#42) - Bugfix: allow templating when calling deps (#42)
@ -655,11 +591,13 @@ Please, make sure to read the [Taskfile versions](https://github.com/go-task/tas
- Migrate from os/exec.Cmd to a native Go sh/bash interpreter - Migrate from os/exec.Cmd to a native Go sh/bash interpreter
- This is a potentially breaking change if you use Windows. - This is a potentially breaking change if you use Windows.
- Now, `cmd` is not used anymore on Windows. Always use Bash-like syntax for your commands, even on Windows. - Now, `cmd` is not used anymore on Windows. Always use Bash-like syntax for
your commands, even on Windows.
- Add "ToSlash" and "FromSlash" to template functions - Add "ToSlash" and "FromSlash" to template functions
- Use functions defined on github.com/Masterminds/sprig - Use functions defined on github.com/Masterminds/sprig
- Do not redirect stdin while running variables commands - Do not redirect stdin while running variables commands
- Using `context` and `errgroup` packages (this will make other tasks to be cancelled, if one returned an error) - Using `context` and `errgroup` packages (this will make other tasks to be
cancelled, if one returned an error)
## v1.2.0 - 2017-04-02 ## v1.2.0 - 2017-04-02

View File

@ -106,18 +106,10 @@ tasks:
cmds: cmds:
- goreleaser --snapshot --rm-dist - goreleaser --snapshot --rm-dist
docs:changelog: release:
desc: Copy CHANGELOG.md to the documentation website desc: Prepare the project for a new release
vars:
FILE: docs/docs/changelog.md
cmds: cmds:
- rm {{.FILE}} - go run ./cmd/release {{.CLI_ARGS}}
- 'echo "---" >> {{.FILE}}'
- 'echo "slug: /changelog/" >> {{.FILE}}'
- 'echo "sidebar_position: 7" >> {{.FILE}}'
- 'echo "---" >> {{.FILE}}'
- 'echo "" >> {{.FILE}}'
- 'cat CHANGELOG.md >> {{.FILE}}'
npm:publish: npm:publish:
desc: Publish release to npm desc: Publish release to npm

115
cmd/release/main.go Normal file
View File

@ -0,0 +1,115 @@
package main
import (
"errors"
"fmt"
"os"
"os/exec"
"regexp"
"strings"
"time"
"github.com/Masterminds/semver/v3"
)
const (
changelogSource = "CHANGELOG.md"
changelogTarget = "docs/docs/changelog.md"
)
const changelogTemplate = `---
slug: /changelog/
sidebar_position: 7
---`
var (
changelogReleaseRegex = regexp.MustCompile(`## Unreleased`)
changelogUserRegex = regexp.MustCompile(`@(\w+)`)
changelogIssueRegex = regexp.MustCompile(`#(\d+)`)
)
func main() {
if err := release(); err != nil {
fmt.Println(err)
os.Exit(1)
}
}
func release() error {
if len(os.Args) != 2 {
return errors.New("error: expected version number")
}
version, err := getVersion()
if err != nil {
return err
}
if err := bumpVersion(version, os.Args[1]); err != nil {
return err
}
fmt.Println(version)
if err := changelog(version); err != nil {
return err
}
return nil
}
func getVersion() (*semver.Version, error) {
cmd := exec.Command("git", "describe", "--tags", "--abbrev=0")
b, err := cmd.Output()
if err != nil {
return nil, err
}
return semver.NewVersion(strings.TrimSpace(string(b)))
}
func bumpVersion(version *semver.Version, verb string) error {
switch verb {
case "major":
*version = version.IncMajor()
case "minor":
*version = version.IncMinor()
case "patch":
*version = version.IncPatch()
default:
*version = *semver.MustParse(verb)
}
return nil
}
func changelog(version *semver.Version) error {
// Open changelog source file
b, err := os.ReadFile(changelogSource)
if err != nil {
panic(err)
}
changelog := string(b)
date := time.Now().Format("2006-01-02")
// Replace "Unreleased" with the new version and date
changelog = changelogReleaseRegex.ReplaceAllString(changelog, fmt.Sprintf("## v%s - %s", version, date))
// Write the changelog to the source file
if err := os.WriteFile(changelogSource, []byte(changelog), 0644); err != nil {
panic(err)
}
// Add the frontmatter to the changelog
changelog = fmt.Sprintf("%s\n\n%s", changelogTemplate, changelog)
// Replace @user and #issue with full links
changelog = changelogUserRegex.ReplaceAllString(changelog, "[@$1](https://github.com/$1)")
changelog = changelogIssueRegex.ReplaceAllString(changelog, "[#$1](https://github.com/go-task/task/issues/$1)")
// Write the changelog to the target file
if err := os.WriteFile(changelogTarget, []byte(changelog), 0644); err != nil {
panic(err)
}
return nil
}

View File

@ -10,269 +10,249 @@ sidebar_position: 7
- Add a brand new `--global` (`-g`) flag that will run a Taskfile from your - 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 `$HOME` directory. This is useful to have automation that you can run from
anywhere in your system! anywhere in your system!
([Documentation](https://taskfile.dev/usage/#running-a-global-taskfile), [#1029](https://github.com/go-task/task/pull/1029) by @andreynering). ([Documentation](https://taskfile.dev/usage/#running-a-global-taskfile), [#1029](https://github.com/go-task/task/issues/1029)
by [@andreynering](https://github.com/andreynering)).
- Add ability to set `error_only: true` on the `group` output mode. This will - 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 instruct Task to only print a command output if it returned with a non-zero
exit code exit code ([#664](https://github.com/go-task/task/issues/664), [#1022](https://github.com/go-task/task/issues/1022) by [@jaedle](https://github.com/jaedle)).
([#664](https://github.com/go-task/task/issues/664), [#1022](https://github.com/go-task/task/pull/1022) by @jaedle).
- Fixed bug where `.task/checksum` file was sometimes not being created when - Fixed bug where `.task/checksum` file was sometimes not being created when
task also declares a `status:` task also declares a `status:` ([#840](https://github.com/go-task/task/issues/840), [#1035](https://github.com/go-task/task/issues/1035) by [@harelwa](https://github.com/harelwa), [#1037](https://github.com/go-task/task/issues/1037) by [@pd93](https://github.com/pd93)).
([#840](https://github.com/go-task/task/issues/840), [#1035](https://github.com/go-task/task/pull/1035) by @harelwa, [#1037](https://github.com/go-task/task/pull/1037) by @pd93). - Refactored and decoupled fingerprinting from the main Task executor ([#1039](https://github.com/go-task/task/issues/1039) by
- Refactored and decoupled fingerprinting from the main Task executor ([#1039](https://github.com/go-task/task/issues/1039) by @pd93). [@pd93](https://github.com/pd93)).
- Fixed deadlock issue when using `run: once` - Fixed deadlock issue when using `run: once` ([#715](https://github.com/go-task/task/issues/715), [#1025](https://github.com/go-task/task/issues/1025) by
([#715](https://github.com/go-task/task/issues/715), [#1025](https://github.com/go-task/task/pull/1025) by @theunrepentantgeek). [@theunrepentantgeek](https://github.com/theunrepentantgeek)).
## v3.21.0 - 2023-02-22 ## v3.21.0 - 2023-02-22
- Added new `TASK_VERSION` special variable - Added new `TASK_VERSION` special variable ([#990](https://github.com/go-task/task/issues/990), [#1014](https://github.com/go-task/task/issues/1014) by [@ja1code](https://github.com/ja1code)).
([#990](https://github.com/go-task/task/issues/990), [#1014](https://github.com/go-task/task/pull/1014) by @ja1code). - Fixed a bug where tasks were sometimes incorrectly marked as internal ([#1007](https://github.com/go-task/task/issues/1007)
- Fixed a bug where tasks were sometimes incorrectly marked as internal ([#1007](https://github.com/go-task/task/pull/1007) by @pd93). by [@pd93](https://github.com/pd93)).
- Update to Go 1.20 (bump minimum version to 1.19) ([#1010](https://github.com/go-task/task/pull/1010) by @pd93) - Update to Go 1.20 (bump minimum version to 1.19) ([#1010](https://github.com/go-task/task/issues/1010) by [@pd93](https://github.com/pd93))
- Added environment variable `FORCE_COLOR` support to force color output. Usefull for environments without TTY ([#1003](https://github.com/go-task/task/pull/1003) by @automation-stack) - Added environment variable `FORCE_COLOR` support to force color output.
Usefull for environments without TTY ([#1003](https://github.com/go-task/task/issues/1003) by [@automation](https://github.com/automation)-stack)
## v3.20.0 - 2023-01-14 ## v3.20.0 - 2023-01-14
- Improve behavior and performance of status checking when using the - Improve behavior and performance of status checking when using the `timestamp`
`timestamp` mode mode ([#976](https://github.com/go-task/task/issues/976), [#977](https://github.com/go-task/task/issues/977) by [@aminya](https://github.com/aminya)).
([#976](https://github.com/go-task/task/issues/976), [#977](https://github.com/go-task/task/pull/977) by @aminya). - Performance optimizations were made for large Taskfiles ([#982](https://github.com/go-task/task/issues/982) by [@pd93](https://github.com/pd93)).
- Performance optimizations were made for large Taskfiles - Add ability to configure options for the
([#982](https://github.com/go-task/task/pull/982) by @pd93). [`set`](https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html)
- Add ability to configure options for the [`set`](https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html) and
and [`shopt`](https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html) builtins [`shopt`](https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html)
([#908](https://github.com/go-task/task/issues/908), [#929](https://github.com/go-task/task/pull/929) by @pd93, [Documentation](http://taskfile.dev/usage/#set-and-shopt)). builtins ([#908](https://github.com/go-task/task/issues/908), [#929](https://github.com/go-task/task/issues/929) by [@pd93](https://github.com/pd93),
[Documentation](http://taskfile.dev/usage/#set-and-shopt)).
- Add new `platforms:` attribute to `task` and `cmd`, so it's now possible to - 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 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 values are operating system (GOOS), architecture (GOARCH) or a combination of
the two. Example: `platforms: [linux]`, `platforms: [amd64]` or the two. Example: `platforms: [linux]`, `platforms: [amd64]` or `platforms:
`platforms: [linux/amd64]`. Other platforms will be skipped [linux/amd64]`. Other platforms will be skipped ([#978](https://github.com/go-task/task/issues/978), [#980](https://github.com/go-task/task/issues/980) by [@leaanthony](https://github.com/leaanthony)).
([#978](https://github.com/go-task/task/issues/978), [#980](https://github.com/go-task/task/pull/980) by @leaanthony).
## v3.19.1 - 2022-12-31 ## v3.19.1 - 2022-12-31
- Small bug fix: closing `Taskfile.yml` once we're done reading it - Small bug fix: closing `Taskfile.yml` once we're done reading it
([#963](https://github.com/go-task/task/issues/963), [#964](https://github.com/go-task/task/pull/964) by @HeCorr). ([#963](https://github.com/go-task/task/issues/963), [#964](https://github.com/go-task/task/issues/964) by [@HeCorr](https://github.com/HeCorr)).
- Fixes a bug in v2 that caused a panic when using a `Taskfile_{{OS}}.yml` file - Fixes a bug in v2 that caused a panic when using a `Taskfile_{{OS}}.yml` file
([#961](https://github.com/go-task/task/issues/961), [#971](https://github.com/go-task/task/pull/971) by @pd93). ([#961](https://github.com/go-task/task/issues/961), [#971](https://github.com/go-task/task/issues/971) by [@pd93](https://github.com/pd93)).
- Fixed a bug where watch intervals set in the Taskfile were not being respected ([#969](https://github.com/go-task/task/pull/969), [#970](https://github.com/go-task/task/pull/970) by @pd93) - Fixed a bug where watch intervals set in the Taskfile were not being respected
([#969](https://github.com/go-task/task/issues/969), [#970](https://github.com/go-task/task/issues/970) by [@pd93](https://github.com/pd93))
- Add `--json` flag (alias `-j`) with the intent to improve support for code - 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, editors and add room to other possible integrations. This is basic for now,
but we plan to add more info in the near future but we plan to add more info in the near future
([#936](https://github.com/go-task/task/pull/936) by @davidalpert, [#764](https://github.com/go-task/task/issues/764)). ([#936](https://github.com/go-task/task/issues/936) by [@davidalpert](https://github.com/davidalpert), [#764](https://github.com/go-task/task/issues/764)).
## v3.19.0 - 2022-12-05 ## v3.19.0 - 2022-12-05
- Installation via npm now supports [pnpm](https://pnpm.io/) as well - 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)). ([go-task/go-npm[#2](https://github.com/go-task/task/issues/2)](https://github.com/go-task/go-npm/issues/2),
- It's now possible to run Taskfiles from subdirectories! A new `USER_WORKING_DIR` special [go-task/go-npm[#3](https://github.com/go-task/task/issues/3)](https://github.com/go-task/go-npm/pull/3)).
variable was added to add even more flexibility for monorepos - It's now possible to run Taskfiles from subdirectories! A new
([#289](https://github.com/go-task/task/issues/289), [#920](https://github.com/go-task/task/pull/920)). `USER_WORKING_DIR` special variable was added to add even more flexibility for
- Add task-level `dotenv` support monorepos ([#289](https://github.com/go-task/task/issues/289), [#920](https://github.com/go-task/task/issues/920)).
([#389](https://github.com/go-task/task/issues/389), [#904](https://github.com/go-task/task/pull/904)). - Add task-level `dotenv` support ([#389](https://github.com/go-task/task/issues/389), [#904](https://github.com/go-task/task/issues/904)).
- It's now possible to use global level variables on `includes` - It's now possible to use global level variables on `includes` ([#942](https://github.com/go-task/task/issues/942), [#943](https://github.com/go-task/task/issues/943)).
([#942](https://github.com/go-task/task/issues/942), [#943](https://github.com/go-task/task/pull/943)). - The website got a brand new [translation to
- The website got a brand new [translation to Chinese](https://task-zh.readthedocs.io/zh_CN/latest/) Chinese](https://task-zh.readthedocs.io/zh_CN/latest/) by
by [@DeronW](https://github.com/DeronW). Thanks! [[@DeronW](https://github.com/DeronW)](https://github.com/DeronW). Thanks!
## v3.18.0 - 2022-11-12 ## v3.18.0 - 2022-11-12
- Show aliases on `task --list --silent` (`task --ls`). This means that aliases - Show aliases on `task --list --silent` (`task --ls`). This means that aliases
will be completed by the completion scripts will be completed by the completion scripts ([#919](https://github.com/go-task/task/issues/919)).
([#919](https://github.com/go-task/task/pull/919)).
- Tasks in the root Taskfile will now be displayed first in `--list`/`--list-all` - Tasks in the root Taskfile will now be displayed first in `--list`/`--list-all`
output ([#806](https://github.com/go-task/task/pull/806), [#890](https://github.com/go-task/task/pull/890)). output ([#806](https://github.com/go-task/task/issues/806), [#890](https://github.com/go-task/task/issues/890)).
- It's now possible to call a `default` task in an included Taskfile by using - 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 just the namespace. For example: `docs:default` is now automatically
aliased to `docs` aliased to `docs` ([#661](https://github.com/go-task/task/issues/661), [#815](https://github.com/go-task/task/issues/815)).
([#661](https://github.com/go-task/task/issues/661), [#815](https://github.com/go-task/task/pull/815)).
## v3.17.0 - 2022-10-14 ## v3.17.0 - 2022-10-14
- Add a "Did you mean ...?" suggestion when a task does not exits another one - Add a "Did you mean ...?" suggestion when a task does not exits another one
with a similar name is found with a similar name is found ([#867](https://github.com/go-task/task/issues/867), [#880](https://github.com/go-task/task/issues/880)).
([#867](https://github.com/go-task/task/issues/867), [#880](https://github.com/go-task/task/pull/880)). - Now YAML parse errors will print which Taskfile failed to parse ([#885](https://github.com/go-task/task/issues/885), [#887](https://github.com/go-task/task/issues/887)).
- Now YAML parse errors will print which Taskfile failed to parse - Add ability to set `aliases` for tasks and namespaces ([#268](https://github.com/go-task/task/issues/268), [#340](https://github.com/go-task/task/issues/340), [#879](https://github.com/go-task/task/issues/879)).
([#885](https://github.com/go-task/task/issues/885), [#887](https://github.com/go-task/task/pull/887)). - Improvements to Fish shell completion ([#897](https://github.com/go-task/task/issues/897)).
- Add ability to set `aliases` for tasks and namespaces ([#268](https://github.com/go-task/task/pull/268), [#340](https://github.com/go-task/task/pull/340), [#879](https://github.com/go-task/task/pull/879)). - Added ability to set a different watch interval by setting `interval: '500ms'`
- Improvements to Fish shell completion or using the `--interval=500ms` flag ([#813](https://github.com/go-task/task/issues/813), [#865](https://github.com/go-task/task/issues/865)).
([#897](https://github.com/go-task/task/pull/897)). - Add colored output to `--list`, `--list-all` and `--summary` flags ([#845](https://github.com/go-task/task/issues/845),
- Added ability to set a different watch interval by setting [#874](https://github.com/go-task/task/issues/874)).
`interval: '500ms'` or using the `--interval=500ms` flag
([#813](https://github.com/go-task/task/issues/813), [#865](https://github.com/go-task/task/pull/865)).
- Add colored output to `--list`, `--list-all` and `--summary` flags ([#845](https://github.com/go-task/task/pull/845), [#874](https://github.com/go-task/task/pull/874)).
- Fix unexpected behavior where `label:` was being shown instead of the task - Fix unexpected behavior where `label:` was being shown instead of the task
name on `--list` name on `--list` ([#603](https://github.com/go-task/task/issues/603), [#877](https://github.com/go-task/task/issues/877)).
([#603](https://github.com/go-task/task/issues/603), [#877](https://github.com/go-task/task/pull/877)).
## v3.16.0 - 2022-09-29 ## v3.16.0 - 2022-09-29
- Add `npm` as new installation method: `npm i -g @go-task/cli` - Add `npm` as new installation method: `npm i -g [@go](https://github.com/go)-task/cli`
([#870](https://github.com/go-task/task/issues/870), [#871](https://github.com/go-task/task/pull/871), [npm package](https://www.npmjs.com/package/@go-task/cli)). ([#870](https://github.com/go-task/task/issues/870), [#871](https://github.com/go-task/task/issues/871), [npm package](https://www.npmjs.com/package/[@go](https://github.com/go)-task/cli)).
- Add support to marking tasks and includes as internal, which will hide them - Add support to marking tasks and includes as internal, which will hide them
from `--list` and `--list-all` from `--list` and `--list-all` ([#818](https://github.com/go-task/task/issues/818)).
([#818](https://github.com/go-task/task/pull/818)).
## v3.15.2 - 2022-09-08 ## v3.15.2 - 2022-09-08
- Fix error when using variable in `env:` introduced in the previous release - Fix error when using variable in `env:` introduced in the previous release
([#858](https://github.com/go-task/task/issues/858), [#866](https://github.com/go-task/task/pull/866)). ([#858](https://github.com/go-task/task/issues/858), [#866](https://github.com/go-task/task/issues/866)).
- Fix handling of `CLI_ARGS` (`--`) in Bash completion - Fix handling of `CLI_ARGS` (`--`) in Bash completion ([#863](https://github.com/go-task/task/issues/863)).
([#863](https://github.com/go-task/task/pull/863)).
- On zsh completion, add ability to replace `--list-all` with `--list` as - On zsh completion, add ability to replace `--list-all` with `--list` as
already possible on the Bash completion already possible on the Bash completion ([#861](https://github.com/go-task/task/issues/861)).
([#861](https://github.com/go-task/task/pull/861)).
## v3.15.0 - 2022-09-03 ## v3.15.0 - 2022-09-03
- Add new special variables `ROOT_DIR` and `TASKFILE_DIR`. This was a highly - Add new special variables `ROOT_DIR` and `TASKFILE_DIR`. This was a highly
requested feature requested feature ([#215](https://github.com/go-task/task/issues/215), [#857](https://github.com/go-task/task/issues/857),
([#215](https://github.com/go-task/task/issues/215), [#857](https://github.com/go-task/task/pull/857), [Documentation](https://taskfile.dev/api/#special-variables)). [Documentation](https://taskfile.dev/api/#special-variables)).
- Follow symlinks on `sources` - Follow symlinks on `sources` ([#826](https://github.com/go-task/task/issues/826), [#831](https://github.com/go-task/task/issues/831)).
([#826](https://github.com/go-task/task/issues/826), [#831](https://github.com/go-task/task/pull/831)). - Improvements and fixes to Bash completion ([#835](https://github.com/go-task/task/issues/835), [#844](https://github.com/go-task/task/issues/844)).
- Improvements and fixes to Bash completion
([#835](https://github.com/go-task/task/pull/835), [#844](https://github.com/go-task/task/pull/844)).
## v3.14.1 - 2022-08-03 ## v3.14.1 - 2022-08-03
- Always resolve relative include paths relative to the including Taskfile - Always resolve relative include paths relative to the including Taskfile
([#822](https://github.com/go-task/task/issues/822), [#823](https://github.com/go-task/task/pull/823)). ([#822](https://github.com/go-task/task/issues/822), [#823](https://github.com/go-task/task/issues/823)).
- Fix ZSH and PowerShell completions to consider all tasks instead of just the - Fix ZSH and PowerShell completions to consider all tasks instead of just the
public ones (those with descriptions) public ones (those with descriptions) ([#803](https://github.com/go-task/task/issues/803)).
([#803](https://github.com/go-task/task/pull/803)).
## v3.14.0 - 2022-07-08 ## v3.14.0 - 2022-07-08
- Add ability to override the `.task` directory location with the - Add ability to override the `.task` directory location with the
`TASK_TEMP_DIR` environment variable. `TASK_TEMP_DIR` environment variable.
- Allow to override Task colors using environment variables: - Allow to override Task colors using environment variables: `TASK_COLOR_RESET`,
`TASK_COLOR_RESET`, `TASK_COLOR_BLUE`, `TASK_COLOR_GREEN`, `TASK_COLOR_BLUE`, `TASK_COLOR_GREEN`, `TASK_COLOR_CYAN`, `TASK_COLOR_YELLOW`,
`TASK_COLOR_CYAN`, `TASK_COLOR_YELLOW`, `TASK_COLOR_MAGENTA` `TASK_COLOR_MAGENTA` and `TASK_COLOR_RED` ([#568](https://github.com/go-task/task/issues/568), [#792](https://github.com/go-task/task/issues/792)).
and `TASK_COLOR_RED`
([#568](https://github.com/go-task/task/pull/568), [#792](https://github.com/go-task/task/pull/792)).
- Fixed bug when using the `output: group` mode where STDOUT and STDERR were - Fixed bug when using the `output: group` mode where STDOUT and STDERR were
being print in separated blocks instead of in the right order being print in separated blocks instead of in the right order ([#779](https://github.com/go-task/task/issues/779)).
([#779](https://github.com/go-task/task/issues/779)).
- Starting on this release, ARM architecture binaries are been released to Snap - Starting on this release, ARM architecture binaries are been released to Snap
as well as well ([#795](https://github.com/go-task/task/issues/795)).
([#795](https://github.com/go-task/task/issues/795)). - i386 binaries won't be available anymore on Snap because Ubuntu removed the
- i386 binaries won't be available anymore on Snap because Ubuntu removed the support support for this architecture.
for this architecture. - Upgrade mvdan.cc/sh, which fixes a bug with associative arrays ([#785](https://github.com/go-task/task/issues/785),
- Upgrade mvdan.cc/sh, which fixes a bug with associative arrays [mvdan/sh[#884](https://github.com/go-task/task/issues/884)](https://github.com/mvdan/sh/issues/884),
([#785](https://github.com/go-task/task/issues/785), [mvdan/sh#884](https://github.com/mvdan/sh/issues/884), [mvdan/sh#893](https://github.com/mvdan/sh/pull/893)). [mvdan/sh[#893](https://github.com/go-task/task/issues/893)](https://github.com/mvdan/sh/pull/893)).
## v3.13.0 - 2022-06-13 ## v3.13.0 - 2022-06-13
- Added `-n` as an alias to `--dry` - Added `-n` as an alias to `--dry` ([#776](https://github.com/go-task/task/issues/776), [#777](https://github.com/go-task/task/issues/777)).
([#776](https://github.com/go-task/task/issues/776), [#777](https://github.com/go-task/task/pull/777)).
- Fix behavior of interrupt (SIGINT, SIGTERM) signals. Task will now give time - Fix behavior of interrupt (SIGINT, SIGTERM) signals. Task will now give time
for the processes running to do cleanup work for the processes running to do cleanup work ([#458](https://github.com/go-task/task/issues/458), [#479](https://github.com/go-task/task/issues/479), [#728](https://github.com/go-task/task/issues/728), [#769](https://github.com/go-task/task/issues/769)).
([#458](https://github.com/go-task/task/issues/458), [#479](https://github.com/go-task/task/pull/479), [#728](https://github.com/go-task/task/issues/728), [#769](https://github.com/go-task/task/pull/769)).
- Add new `--exit-code` (`-x`) flag that will pass-through the exit form the - Add new `--exit-code` (`-x`) flag that will pass-through the exit form the
command being ran command being ran ([#755](https://github.com/go-task/task/issues/755)).
([#755](https://github.com/go-task/task/pull/755)).
## v3.12.1 - 2022-05-10 ## v3.12.1 - 2022-05-10
- Fixed bug where, on Windows, variables were ending with `\r` because we were - Fixed bug where, on Windows, variables were ending with `\r` because we were
only removing the final `\n` but not `\r\n` only removing the final `\n` but not `\r\n` ([#717](https://github.com/go-task/task/issues/717)).
([#717](https://github.com/go-task/task/issues/717)).
## v3.12.0 - 2022-03-31 ## v3.12.0 - 2022-03-31
- The `--list` and `--list-all` flags can now be combined with the `--silent` - The `--list` and `--list-all` flags can now be combined with the `--silent`
flag to print the task names only, without their description flag to print the task names only, without their description ([#691](https://github.com/go-task/task/issues/691)).
([#691](https://github.com/go-task/task/pull/691)). - Added support for multi-level inclusion of Taskfiles. This means that included
- Added support for multi-level inclusion of Taskfiles. This means that Taskfiles can also include other Taskfiles. Before this was limited to one
included Taskfiles can also include other Taskfiles. Before this was limited level ([#390](https://github.com/go-task/task/issues/390), [#623](https://github.com/go-task/task/issues/623), [#656](https://github.com/go-task/task/issues/656)).
to one level - Add ability to specify vars when including a Taskfile. [Check out the
([#390](https://github.com/go-task/task/issues/390), [#623](https://github.com/go-task/task/discussions/623), [#656](https://github.com/go-task/task/pull/656)). documentation](https://taskfile.dev/#/usage?id=vars-of-included-taskfiles) for
- Add ability to specify vars when including a Taskfile. more information ([#677](https://github.com/go-task/task/issues/677)).
[Check out the documentation](https://taskfile.dev/#/usage?id=vars-of-included-taskfiles)
for more information.
([#677](https://github.com/go-task/task/pull/677)).
## v3.11.0 - 2022-02-19 ## v3.11.0 - 2022-02-19
- Task now supports printing begin and end messages when using the `group` - Task now supports printing begin and end messages when using the `group`
output mode, useful for grouping tasks in CI systems. output mode, useful for grouping tasks in CI systems. [Check out the
[Check out the documentation](http://taskfile.dev/#/usage?id=output-syntax) for more information documentation](http://taskfile.dev/#/usage?id=output-syntax) for more
([#647](https://github.com/go-task/task/issues/647), [#651](https://github.com/go-task/task/pull/651)). information ([#647](https://github.com/go-task/task/issues/647), [#651](https://github.com/go-task/task/issues/651)).
- Add `Taskfile.dist.yml` and `Taskfile.dist.yaml` to the supported file - Add `Taskfile.dist.yml` and `Taskfile.dist.yaml` to the supported file name
name list. [Check out the documentation](https://taskfile.dev/#/usage?id=supported-file-names) for more information list. [Check out the
([#498](https://github.com/go-task/task/issues/498), [#666](https://github.com/go-task/task/pull/666)). documentation](https://taskfile.dev/#/usage?id=supported-file-names) for more
information ([#498](https://github.com/go-task/task/issues/498), [#666](https://github.com/go-task/task/issues/666)).
## v3.10.0 - 2022-01-04 ## v3.10.0 - 2022-01-04
- A new `--list-all` (alias `-a`) flag is now available. It's similar to the - 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 exiting `--list` (`-l`) but prints all tasks, even those without a description
description ([#383](https://github.com/go-task/task/issues/383), [#401](https://github.com/go-task/task/issues/401)).
([#383](https://github.com/go-task/task/issues/383), [#401](https://github.com/go-task/task/pull/401)).
- It's now possible to schedule cleanup commands to run once a task finishes - It's now possible to schedule cleanup commands to run once a task finishes
with the `defer:` keyword with the `defer:` keyword
([Documentation](https://taskfile.dev/#/usage?id=doing-task-cleanup-with-defer), [#475](https://github.com/go-task/task/issues/475), [#626](https://github.com/go-task/task/pull/626)). ([Documentation](https://taskfile.dev/#/usage?id=doing-task-cleanup-with-defer),
[#475](https://github.com/go-task/task/issues/475), [#626](https://github.com/go-task/task/issues/626)).
- Remove long deprecated and undocumented `$` variable prefix and `^` command - Remove long deprecated and undocumented `$` variable prefix and `^` command
prefix prefix ([#642](https://github.com/go-task/task/issues/642), [#644](https://github.com/go-task/task/issues/644), [#645](https://github.com/go-task/task/issues/645)).
([#642](https://github.com/go-task/task/issues/642), [#644](https://github.com/go-task/task/issues/644), [#645](https://github.com/go-task/task/pull/645)). - Add support for `.yaml` extension (as an alternative to `.yml`). This was
- Add support for `.yaml` extension (as an alternative to `.yml`). requested multiple times throughout the years. Enjoy! ([#183](https://github.com/go-task/task/issues/183), [#184](https://github.com/go-task/task/issues/184), [#369](https://github.com/go-task/task/issues/369), [#584](https://github.com/go-task/task/issues/584),
This was requested multiple times throughout the years. Enjoy! [#621](https://github.com/go-task/task/issues/621)).
([#183](https://github.com/go-task/task/issues/183), [#184](https://github.com/go-task/task/pull/184), [#369](https://github.com/go-task/task/issues/369), [#584](https://github.com/go-task/task/issues/584), [#621](https://github.com/go-task/task/pull/621)). - Fixed error when computing a variable when the task directory do not exist yet
- Fixed error when computing a variable when the task directory do not exist ([#481](https://github.com/go-task/task/issues/481), [#579](https://github.com/go-task/task/issues/579)).
yet
([#481](https://github.com/go-task/task/issues/481), [#579](https://github.com/go-task/task/pull/579)).
## v3.9.2 - 2021-12-02 ## v3.9.2 - 2021-12-02
- Upgrade [mvdan/sh](https://github.com/mvdan/sh) which contains a fix a for - Upgrade [mvdan/sh](https://github.com/mvdan/sh) which contains a fix a for a
a important regression on Windows important regression on Windows ([#619](https://github.com/go-task/task/issues/619),
([#619](https://github.com/go-task/task/issues/619), [mvdan/sh#768](https://github.com/mvdan/sh/issues/768), [mvdan/sh#769](https://github.com/mvdan/sh/pull/769)). [mvdan/sh[#768](https://github.com/go-task/task/issues/768)](https://github.com/mvdan/sh/issues/768),
[mvdan/sh[#769](https://github.com/go-task/task/issues/769)](https://github.com/mvdan/sh/pull/769)).
## v3.9.1 - 2021-11-28 ## v3.9.1 - 2021-11-28
- Add logging in verbose mode for when a task starts and finishes - Add logging in verbose mode for when a task starts and finishes ([#533](https://github.com/go-task/task/issues/533), [#588](https://github.com/go-task/task/issues/588)).
([#533](https://github.com/go-task/task/issues/533), [#588](https://github.com/go-task/task/pull/588)). - Fix an issue with preconditions and context errors ([#597](https://github.com/go-task/task/issues/597), [#598](https://github.com/go-task/task/issues/598)).
- Fix an issue with preconditions and context errors
([#597](https://github.com/go-task/task/issues/597), [#598](https://github.com/go-task/task/pull/598)).
- Quote each `{{.CLI_ARGS}}` argument to prevent one with spaces to become many - Quote each `{{.CLI_ARGS}}` argument to prevent one with spaces to become many
([#613](https://github.com/go-task/task/pull/613)). ([#613](https://github.com/go-task/task/issues/613)).
- Fix nil pointer when `cmd:` was left empty - Fix nil pointer when `cmd:` was left empty ([#612](https://github.com/go-task/task/issues/612), [#614](https://github.com/go-task/task/issues/614)).
([#612](https://github.com/go-task/task/issues/612), [#614](https://github.com/go-task/task/pull/614)). - Upgrade [mvdan/sh](https://github.com/mvdan/sh) which contains two relevant
- Upgrade [mvdan/sh](https://github.com/mvdan/sh) which contains two fixes:
relevant fixes: - Fix quote of empty strings in `shellQuote` ([#609](https://github.com/go-task/task/issues/609),
- Fix quote of empty strings in `shellQuote` [mvdan/sh[#763](https://github.com/go-task/task/issues/763)](https://github.com/mvdan/sh/issues/763)).
([#609](https://github.com/go-task/task/issues/609), [mvdan/sh#763](https://github.com/mvdan/sh/issues/763)).
- Fix issue of wrong environment variable being picked when there's another - Fix issue of wrong environment variable being picked when there's another
very similar one very similar one ([#586](https://github.com/go-task/task/issues/586),
([#586](https://github.com/go-task/task/issues/586), [mvdan/sh#745](https://github.com/mvdan/sh/pull/745)). [mvdan/sh[#745](https://github.com/go-task/task/issues/745)](https://github.com/mvdan/sh/pull/745)).
- Install shell completions automatically when installing via Homebrew - Install shell completions automatically when installing via Homebrew ([#264](https://github.com/go-task/task/issues/264),
([#264](https://github.com/go-task/task/issues/264), [#592](https://github.com/go-task/task/pull/592), [go-task/homebrew-tap#2](https://github.com/go-task/homebrew-tap/pull/2)). [#592](https://github.com/go-task/task/issues/592),
[go-task/homebrew-tap[#2](https://github.com/go-task/task/issues/2)](https://github.com/go-task/homebrew-tap/pull/2)).
## v3.9.0 - 2021-10-02 ## v3.9.0 - 2021-10-02
- A new `shellQuote` function was added to the template system - A new `shellQuote` function was added to the template system (`{{shellQuote "a
(`{{shellQuote "a string"}}`) to ensure a string is safe for use in shell string"}}`) to ensure a string is safe for use in shell
([mvdan/sh#727](https://github.com/mvdan/sh/pull/727), [mvdan/sh#737](https://github.com/mvdan/sh/pull/737), [Documentation](https://pkg.go.dev/mvdan.cc/sh/v3@v3.4.0/syntax#Quote)) ([mvdan/sh[#727](https://github.com/go-task/task/issues/727)](https://github.com/mvdan/sh/pull/727),
- In this version [mvdan.cc/sh](https://github.com/mvdan/sh) was upgraded [mvdan/sh[#737](https://github.com/go-task/task/issues/737)](https://github.com/mvdan/sh/pull/737),
with some small fixes and features [Documentation](https://pkg.go.dev/mvdan.cc/sh/v3[@v3](https://github.com/v3).4.0/syntax#Quote))
- The `read -p` flag is now supported - In this version [mvdan.cc/sh](https://github.com/mvdan/sh) was upgraded with
([#314](https://github.com/go-task/task/issues/314), [mvdan/sh#551](https://github.com/mvdan/sh/issues/551), [mvdan/sh#772](https://github.com/mvdan/sh/pull/722)) some small fixes and features
- The `pwd -P` and `pwd -L` flags are now supported - The `read -p` flag is now supported ([#314](https://github.com/go-task/task/issues/314),
([#553](https://github.com/go-task/task/issues/553), [mvdan/sh#724](https://github.com/mvdan/sh/issues/724), [mvdan/sh#728](https://github.com/mvdan/sh/pull/728)) [mvdan/sh[#551](https://github.com/go-task/task/issues/551)](https://github.com/mvdan/sh/issues/551),
- The `$GID` environment variable is now correctly being set [mvdan/sh[#772](https://github.com/go-task/task/issues/772)](https://github.com/mvdan/sh/pull/722))
([#561](https://github.com/go-task/task/issues/561), [mvdan/sh#723](https://github.com/mvdan/sh/pull/723)) - The `pwd -P` and `pwd -L` flags are now supported ([#553](https://github.com/go-task/task/issues/553),
[mvdan/sh[#724](https://github.com/go-task/task/issues/724)](https://github.com/mvdan/sh/issues/724),
[mvdan/sh[#728](https://github.com/go-task/task/issues/728)](https://github.com/mvdan/sh/pull/728))
- The `$GID` environment variable is now correctly being set ([#561](https://github.com/go-task/task/issues/561),
[mvdan/sh[#723](https://github.com/go-task/task/issues/723)](https://github.com/mvdan/sh/pull/723))
## v3.8.0 - 2021-09-26 ## v3.8.0 - 2021-09-26
- Add `interactive: true` setting to improve support for interactive CLI apps - Add `interactive: true` setting to improve support for interactive CLI apps
([#217](https://github.com/go-task/task/issues/217), [#563](https://github.com/go-task/task/pull/563)). ([#217](https://github.com/go-task/task/issues/217), [#563](https://github.com/go-task/task/issues/563)).
- Fix some `nil` errors - Fix some `nil` errors ([#534](https://github.com/go-task/task/issues/534), [#573](https://github.com/go-task/task/issues/573)).
([#534](https://github.com/go-task/task/issues/534), [#573](https://github.com/go-task/task/pull/573)). - Add ability to declare an included Taskfile as optional ([#519](https://github.com/go-task/task/issues/519), [#552](https://github.com/go-task/task/issues/552)).
- Add ability to declare an included Taskfile as optional - Add support for including Taskfiles in the home directory by using `~` ([#539](https://github.com/go-task/task/issues/539),
([#519](https://github.com/go-task/task/issues/519), [#552](https://github.com/go-task/task/pull/552)). [#557](https://github.com/go-task/task/issues/557)).
- Add support for including Taskfiles in the home directory by using `~`
([#539](https://github.com/go-task/task/issues/539), [#557](https://github.com/go-task/task/pull/557)).
## v3.7.3 - 2021-09-04 ## v3.7.3 - 2021-09-04
- Add official support to Apple M1 ([#564](https://github.com/go-task/task/pull/564), [#567](https://github.com/go-task/task/pull/567)). - Add official support to Apple M1 ([#564](https://github.com/go-task/task/issues/564), [#567](https://github.com/go-task/task/issues/567)).
- Our [official Homebrew tap](https://github.com/go-task/homebrew-tap) will - Our [official Homebrew tap](https://github.com/go-task/homebrew-tap) will
support more platforms, including Apple M1 support more platforms, including Apple M1
@ -281,71 +261,57 @@ sidebar_position: 7
- Add `run:` setting to control if tasks should run multiple times or not. - Add `run:` setting to control if tasks should run multiple times or not.
Available options are `always` (the default), `when_changed` (if a variable Available options are `always` (the default), `when_changed` (if a variable
modified the task) and `once` (run only once no matter what). modified the task) and `once` (run only once no matter what).
This is a long time requested feature. Enjoy! This is a long time requested feature. Enjoy! ([#53](https://github.com/go-task/task/issues/53), [#359](https://github.com/go-task/task/issues/359)).
([#53](https://github.com/go-task/task/issues/53), [#359](https://github.com/go-task/task/pull/359)).
## v3.6.0 - 2021-07-10 ## v3.6.0 - 2021-07-10
- Allow using both `sources:` and `status:` in the same task - Allow using both `sources:` and `status:` in the same task ([#411](https://github.com/go-task/task/issues/411), [#427](https://github.com/go-task/task/issues/427), [#477](https://github.com/go-task/task/issues/477)).
([#411](https://github.com/go-task/task/issues/411), [#427](https://github.com/go-task/task/issues/427), [#477](https://github.com/go-task/task/pull/477)).
- Small optimization and bug fix: don't compute variables if not needed for - Small optimization and bug fix: don't compute variables if not needed for
`dotenv:` ([#517](https://github.com/go-task/task/issues/517)). `dotenv:` ([#517](https://github.com/go-task/task/issues/517)).
## v3.5.0 - 2021-07-04 ## v3.5.0 - 2021-07-04
- Add support for interpolation in `dotenv:` - Add support for interpolation in `dotenv:` ([#433](https://github.com/go-task/task/issues/433), [#434](https://github.com/go-task/task/issues/434), [#453](https://github.com/go-task/task/issues/453)).
([#433](https://github.com/go-task/task/discussions/433), [#434](https://github.com/go-task/task/issues/434), [#453](https://github.com/go-task/task/pull/453)).
## v3.4.3 - 2021-05-30 ## v3.4.3 - 2021-05-30
- Add support for the `NO_COLOR` environment variable. - Add support for the `NO_COLOR` environment variable.
([#459](https://github.com/go-task/task/issues/459), [fatih/color#137](https://github.com/fatih/color/pull/137)). ([#459](https://github.com/go-task/task/issues/459), [fatih/color[#137](https://github.com/go-task/task/issues/137)](https://github.com/fatih/color/pull/137)).
- Fix bug where sources were not considering the right directory - Fix bug where sources were not considering the right directory
in `--watch` mode in `--watch` mode ([#484](https://github.com/go-task/task/issues/484), [#485](https://github.com/go-task/task/issues/485)).
([#484](https://github.com/go-task/task/issues/484), [#485](https://github.com/go-task/task/pull/485)).
## v3.4.2 - 2021-04-23 ## v3.4.2 - 2021-04-23
- On watch, report which file failed to read - On watch, report which file failed to read ([#472](https://github.com/go-task/task/issues/472)).
([#472](https://github.com/go-task/task/pull/472)). - Do not try to catch SIGKILL signal, which are not actually possible ([#476](https://github.com/go-task/task/issues/476)).
- Do not try to catch SIGKILL signal, which are not actually possible
([#476](https://github.com/go-task/task/pull/476)).
- Improve version reporting when building Task from source using Go Modules - Improve version reporting when building Task from source using Go Modules
([#462](https://github.com/go-task/task/pull/462), [#473](https://github.com/go-task/task/pull/473)). ([#462](https://github.com/go-task/task/issues/462), [#473](https://github.com/go-task/task/issues/473)).
## v3.4.1 - 2021-04-17 ## v3.4.1 - 2021-04-17
- Improve error reporting when parsing YAML: in some situations where you - Improve error reporting when parsing YAML: in some situations where you
would just see an generic error, you'll now see the actual error with would just see an generic error, you'll now see the actual error with
more detail: the YAML line the failed to parse, for example more detail: the YAML line the failed to parse, for example ([#467](https://github.com/go-task/task/issues/467)).
([#467](https://github.com/go-task/task/issues/467)).
- A JSON Schema was published [here](https://json.schemastore.org/taskfile.json) - A JSON Schema was published [here](https://json.schemastore.org/taskfile.json)
and is automatically being used by some editors like Visual Studio Code and is automatically being used by some editors like Visual Studio Code
([#135](https://github.com/go-task/task/issues/135)). ([#135](https://github.com/go-task/task/issues/135)).
- Print task name before the command in the log output - Print task name before the command in the log output ([#398](https://github.com/go-task/task/issues/398)).
([#398](https://github.com/go-task/task/pull/398)).
## v3.3.0 - 2021-03-20 ## v3.3.0 - 2021-03-20
- Add support for delegating CLI arguments to commands with `--` and a - Add support for delegating CLI arguments to commands with `--` and a
special `CLI_ARGS` variable special `CLI_ARGS` variable ([#327](https://github.com/go-task/task/issues/327)).
([#327](https://github.com/go-task/task/issues/327)).
- Add a `--concurrency` (alias `-C`) flag, to limit the number of tasks that - Add a `--concurrency` (alias `-C`) flag, to limit the number of tasks that
run concurrently. This is useful for heavy workloads. run concurrently. This is useful for heavy workloads. ([#345](https://github.com/go-task/task/issues/345)).
([#345](https://github.com/go-task/task/pull/345)).
## v3.2.2 - 2021-01-12 ## v3.2.2 - 2021-01-12
- Improve performance of `--list` and `--summary` by skipping running shell - Improve performance of `--list` and `--summary` by skipping running shell
variables for these flags variables for these flags ([#332](https://github.com/go-task/task/issues/332)).
([#332](https://github.com/go-task/task/issues/332)).
- Fixed a bug where an environment in a Taskfile was not always overridable - Fixed a bug where an environment in a Taskfile was not always overridable
by the system environment by the system environment ([#425](https://github.com/go-task/task/issues/425)).
([#425](https://github.com/go-task/task/issues/425)). - Fixed environment from .env files not being available as variables ([#379](https://github.com/go-task/task/issues/379)).
- Fixed environment from .env files not being available as variables - The install script is now working for ARM platforms ([#428](https://github.com/go-task/task/issues/428)).
([#379](https://github.com/go-task/task/issues/379)).
- The install script is now working for ARM platforms
([#428](https://github.com/go-task/task/pull/428)).
## v3.2.1 - 2021-01-09 ## v3.2.1 - 2021-01-09
@ -357,101 +323,75 @@ sidebar_position: 7
## v3.2.0 - 2021-01-07 ## v3.2.0 - 2021-01-07
- Fix the `.task` directory being created in the task directory instead of the - Fix the `.task` directory being created in the task directory instead of the
Taskfile directory Taskfile directory ([#247](https://github.com/go-task/task/issues/247)).
([#247](https://github.com/go-task/task/issues/247)).
- Fix a bug where dynamic variables (those declared with `sh:`) were not - Fix a bug where dynamic variables (those declared with `sh:`) were not
running in the task directory when the task has a custom dir or it was running in the task directory when the task has a custom dir or it was
in an included Taskfile in an included Taskfile ([#384](https://github.com/go-task/task/issues/384)).
([#384](https://github.com/go-task/task/issues/384)).
- The watch feature (via the `--watch` flag) got a few different bug fixes and - The watch feature (via the `--watch` flag) got a few different bug fixes and
should be more stable now should be more stable now ([#423](https://github.com/go-task/task/issues/423), [#365](https://github.com/go-task/task/issues/365)).
([#423](https://github.com/go-task/task/pull/423), [#365](https://github.com/go-task/task/issues/365)).
## v3.1.0 - 2021-01-03 ## v3.1.0 - 2021-01-03
- Fix a bug when the checksum up-to-date resolution is used by a task - Fix a bug when the checksum up-to-date resolution is used by a task
with a custom `label:` attribute with a custom `label:` attribute ([#412](https://github.com/go-task/task/issues/412)).
([#412](https://github.com/go-task/task/issues/412)).
- Starting from this release, we're releasing official ARMv6 and ARM64 binaries - Starting from this release, we're releasing official ARMv6 and ARM64 binaries
for Linux for Linux ([#375](https://github.com/go-task/task/issues/375), [#418](https://github.com/go-task/task/issues/418)).
([#375](https://github.com/go-task/task/issues/375), [#418](https://github.com/go-task/task/issues/418)).
- Task now respects the order of declaration of included Taskfiles when - Task now respects the order of declaration of included Taskfiles when
evaluating variables declaring by them evaluating variables declaring by them ([#393](https://github.com/go-task/task/issues/393)).
([#393](https://github.com/go-task/task/issues/393)).
- `set -e` is now automatically set on every command. This was done to fix an - `set -e` is now automatically set on every command. This was done to fix an
issue where multiline string commands wouldn't really fail unless the issue where multiline string commands wouldn't really fail unless the
sentence was in the last line sentence was in the last line ([#403](https://github.com/go-task/task/issues/403)).
([#403](https://github.com/go-task/task/issues/403)).
## v3.0.1 - 2020-12-26 ## v3.0.1 - 2020-12-26
- Allow use as a library by moving the required packages out of the `internal` - Allow use as a library by moving the required packages out of the `internal`
directory directory ([#358](https://github.com/go-task/task/issues/358)).
([#358](https://github.com/go-task/task/pull/358)). - Do not error if a specified dotenv file does not exist ([#378](https://github.com/go-task/task/issues/378), [#385](https://github.com/go-task/task/issues/385)).
- Do not error if a specified dotenv file does not exist - Fix panic when you have empty tasks in your Taskfile ([#338](https://github.com/go-task/task/issues/338), [#362](https://github.com/go-task/task/issues/362)).
([#378](https://github.com/go-task/task/issues/378), [#385](https://github.com/go-task/task/pull/385)).
- Fix panic when you have empty tasks in your Taskfile
([#338](https://github.com/go-task/task/issues/338), [#362](https://github.com/go-task/task/pull/362)).
## v3.0.0 - 2020-08-16 ## v3.0.0 - 2020-08-16
- On `v3`, all CLI variables will be considered global variables - On `v3`, all CLI variables will be considered global variables ([#336](https://github.com/go-task/task/issues/336), [#341](https://github.com/go-task/task/issues/341))
([#336](https://github.com/go-task/task/issues/336), [#341](https://github.com/go-task/task/pull/341)) - Add support to `.env` like files ([#324](https://github.com/go-task/task/issues/324), [#356](https://github.com/go-task/task/issues/356)).
- Add support to `.env` like files
([#324](https://github.com/go-task/task/issues/324), [#356](https://github.com/go-task/task/pull/356)).
- Add `label:` to task so you can override the task name in the logs - Add `label:` to task so you can override the task name in the logs
([#321](https://github.com/go-task/task/issues/321]), [#337](https://github.com/go-task/task/pull/337)). ([[#321](https://github.com/go-task/task/issues/321)](https://github.com/go-task/task/issues/321]), [#337](https://github.com/go-task/task/issues/337)).
- Refactor how variables work on version 3 - Refactor how variables work on version 3 ([#311](https://github.com/go-task/task/issues/311)).
([#311](https://github.com/go-task/task/pull/311)).
- Disallow `expansions` on v3 since it has no effect. - Disallow `expansions` on v3 since it has no effect.
- `Taskvars.yml` is not automatically included anymore. - `Taskvars.yml` is not automatically included anymore.
- `Taskfile_{{OS}}.yml` is not automatically included anymore. - `Taskfile_{{OS}}.yml` is not automatically included anymore.
- Allow interpolation on `includes`, so you can manually include a Taskfile - Allow interpolation on `includes`, so you can manually include a Taskfile
based on operation system, for example. based on operation system, for example.
- Expose `.TASK` variable in templates with the task name - Expose `.TASK` variable in templates with the task name ([#252](https://github.com/go-task/task/issues/252)).
([#252](https://github.com/go-task/task/issues/252)). - Implement short task syntax ([#194](https://github.com/go-task/task/issues/194), [#240](https://github.com/go-task/task/issues/240)).
- Implement short task syntax
([#194](https://github.com/go-task/task/issues/194), [#240](https://github.com/go-task/task/pull/240)).
- Added option to make included Taskfile run commands on its own directory - Added option to make included Taskfile run commands on its own directory
([#260](https://github.com/go-task/task/issues/260), [#144](https://github.com/go-task/task/issues/144)) ([#260](https://github.com/go-task/task/issues/260), [#144](https://github.com/go-task/task/issues/144))
- Taskfiles in version 1 are not supported anymore - Taskfiles in version 1 are not supported anymore ([#237](https://github.com/go-task/task/issues/237)).
([#237](https://github.com/go-task/task/pull/237)).
- Added global `method:` option. With this option, you can set a default - Added global `method:` option. With this option, you can set a default
method to all tasks in a Taskfile method to all tasks in a Taskfile ([#246](https://github.com/go-task/task/issues/246)).
([#246](https://github.com/go-task/task/issues/246)). - Changed default method from `timestamp` to `checksum` ([#246](https://github.com/go-task/task/issues/246)).
- Changed default method from `timestamp` to `checksum`
([#246](https://github.com/go-task/task/issues/246)).
- New magic variables are now available when using `status:`: - New magic variables are now available when using `status:`:
`.TIMESTAMP` which contains the greatest modification date `.TIMESTAMP` which contains the greatest modification date
from the files listed in `sources:`, and `.CHECKSUM`, which from the files listed in `sources:`, and `.CHECKSUM`, which
contains a checksum of all files listed in `status:`. contains a checksum of all files listed in `status:`.
This is useful for manual checking when using external, or even remote, This is useful for manual checking when using external, or even remote,
artifacts when using `status:` artifacts when using `status:` ([#216](https://github.com/go-task/task/issues/216)).
([#216](https://github.com/go-task/task/pull/216)).
- We're now using [slim-sprig](https://github.com/go-task/slim-sprig) instead of - We're now using [slim-sprig](https://github.com/go-task/slim-sprig) instead of
[sprig](https://github.com/Masterminds/sprig), which allowed a file size [sprig](https://github.com/Masterminds/sprig), which allowed a file size
reduction of about 22% reduction of about 22% ([#219](https://github.com/go-task/task/issues/219)).
([#219](https://github.com/go-task/task/pull/219)).
- We now use some colors on Task output to better distinguish message types - - We now use some colors on Task output to better distinguish message types -
commands are green, errors are red, etc commands are green, errors are red, etc ([#207](https://github.com/go-task/task/issues/207)).
([#207](https://github.com/go-task/task/pull/207)).
## v2.8.1 - 2020-05-20 ## v2.8.1 - 2020-05-20
- Fix error code for the `--help` flag - Fix error code for the `--help` flag ([#300](https://github.com/go-task/task/issues/300), [#330](https://github.com/go-task/task/issues/330)).
([#300](https://github.com/go-task/task/issues/300), [#330](https://github.com/go-task/task/pull/330)). - Print version to stdout instead of stderr ([#299](https://github.com/go-task/task/issues/299), [#329](https://github.com/go-task/task/issues/329)).
- Print version to stdout instead of stderr - Supress `context` errors when using the `--watch` flag ([#313](https://github.com/go-task/task/issues/313), [#317](https://github.com/go-task/task/issues/317)).
([#299](https://github.com/go-task/task/issues/299), [#329](https://github.com/go-task/task/pull/329)). - Support templating on description ([#276](https://github.com/go-task/task/issues/276), [#283](https://github.com/go-task/task/issues/283)).
- Supress `context` errors when using the `--watch` flag
([#313](https://github.com/go-task/task/issues/313), [#317](https://github.com/go-task/task/pull/317)).
- Support templating on description
([#276](https://github.com/go-task/task/issues/276), [#283](https://github.com/go-task/task/pull/283)).
## v2.8.0 - 2019-12-07 ## v2.8.0 - 2019-12-07
- Add `--parallel` flag (alias `-p`) to run tasks given by the command line in - Add `--parallel` flag (alias `-p`) to run tasks given by the command line in
parallel parallel ([#266](https://github.com/go-task/task/issues/266)).
([#266](https://github.com/go-task/task/pull/266)).
- Fixed bug where calling the `task` CLI only informing global vars would not - Fixed bug where calling the `task` CLI only informing global vars would not
execute the `default` task. execute the `default` task.
- Add hability to silent all tasks by adding `silent: true` a the root of the - Add hability to silent all tasks by adding `silent: true` a the root of the
@ -459,41 +399,34 @@ sidebar_position: 7
## v2.7.1 - 2019-11-10 ## v2.7.1 - 2019-11-10
- Fix error being raised when `exit 0` was called - Fix error being raised when `exit 0` was called ([#251](https://github.com/go-task/task/issues/251)).
([#251](https://github.com/go-task/task/issues/251)).
## v2.7.0 - 2019-09-22 ## v2.7.0 - 2019-09-22
- Fixed panic bug when assigning a global variable - Fixed panic bug when assigning a global variable ([#229](https://github.com/go-task/task/issues/229), [#243](https://github.com/go-task/task/issues/243)).
([#229](https://github.com/go-task/task/issues/229), [#243](https://github.com/go-task/task/issues/234)).
- A task with `method: checksum` will now re-run if generated files are deleted - A task with `method: checksum` will now re-run if generated files are deleted
([#228](https://github.com/go-task/task/pull/228), [#238](https://github.com/go-task/task/issues/238)). ([#228](https://github.com/go-task/task/issues/228), [#238](https://github.com/go-task/task/issues/238)).
## v2.6.0 - 2019-07-21 ## v2.6.0 - 2019-07-21
- Fixed some bugs regarding minor version checks on `version:`. - Fixed some bugs regarding minor version checks on `version:`.
- Add `preconditions:` to task - Add `preconditions:` to task ([#205](https://github.com/go-task/task/issues/205)).
([#205](https://github.com/go-task/task/pull/205)). - Create directory informed on `dir:` if it doesn't exist ([#209](https://github.com/go-task/task/issues/209), [#211](https://github.com/go-task/task/issues/211)).
- Create directory informed on `dir:` if it doesn't exist
([#209](https://github.com/go-task/task/issues/209), [#211](https://github.com/go-task/task/pull/211)).
- We now have a `--taskfile` flag (alias `-t`), which can be used to run - We now have a `--taskfile` flag (alias `-t`), which can be used to run
another Taskfile (other than the default `Taskfile.yml`) another Taskfile (other than the default `Taskfile.yml`) ([#221](https://github.com/go-task/task/issues/221)).
([#221](https://github.com/go-task/task/pull/221)).
- It's now possible to install Task using Homebrew on Linux - It's now possible to install Task using Homebrew on Linux
([go-task/homebrew-tap#1](https://github.com/go-task/homebrew-tap/pull/1)). ([go-task/homebrew-tap[#1](https://github.com/go-task/task/issues/1)](https://github.com/go-task/homebrew-tap/pull/1)).
## v2.5.2 - 2019-05-11 ## v2.5.2 - 2019-05-11
- Reverted YAML upgrade due issues with CRLF on Windows - Reverted YAML upgrade due issues with CRLF on Windows
([#201](https://github.com/go-task/task/issues/201), [go-yaml/yaml#450](https://github.com/go-yaml/yaml/issues/450)). ([#201](https://github.com/go-task/task/issues/201), [go-yaml/yaml[#450](https://github.com/go-task/task/issues/450)](https://github.com/go-yaml/yaml/issues/450)).
- Allow setting global variables through the CLI - Allow setting global variables through the CLI ([#192](https://github.com/go-task/task/issues/192)).
([#192](https://github.com/go-task/task/issues/192)).
## 2.5.1 - 2019-04-27 ## 2.5.1 - 2019-04-27
- Fixed some issues with interactive command line tools, where sometimes - Fixed some issues with interactive command line tools, where sometimes the
the output were not being shown, and similar issues output were not being shown, and similar issues ([#114](https://github.com/go-task/task/issues/114), [#190](https://github.com/go-task/task/issues/190), [#200](https://github.com/go-task/task/issues/200)).
([#114](https://github.com/go-task/task/issues/114), [#190](https://github.com/go-task/task/issues/190), [#200](https://github.com/go-task/task/pull/200)).
- Upgraded [go-yaml/yaml](https://github.com/go-yaml/yaml) from v2 to v3. - Upgraded [go-yaml/yaml](https://github.com/go-yaml/yaml) from v2 to v3.
## v2.5.0 - 2019-03-16 ## v2.5.0 - 2019-03-16
@ -502,72 +435,72 @@ sidebar_position: 7
While stuff is being redirected, we strongly recommend to everyone that use While stuff is being redirected, we strongly recommend to everyone that use
[this install script](https://taskfile.dev/#/installation?id=install-script) [this install script](https://taskfile.dev/#/installation?id=install-script)
to use the new taskfile.dev domain on scripts from now on. to use the new taskfile.dev domain on scripts from now on.
- Fixed to the ZSH completion - Fixed to the ZSH completion ([#182](https://github.com/go-task/task/issues/182)).
([#182](https://github.com/go-task/task/pull/182)). - Add [`--summary` flag along with `summary:` task
- Add [`--summary` flag along with `summary:` task attribute](https://taskfile.org/#/usage?id=display-summary-of-task) attribute](https://taskfile.org/#/usage?id=display-summary-of-task) ([#180](https://github.com/go-task/task/issues/180)).
([#180](https://github.com/go-task/task/pull/180)).
## v2.4.0 - 2019-02-21 ## v2.4.0 - 2019-02-21
- Allow calling a task of the root Taskfile from an included Taskfile - Allow calling a task of the root Taskfile from an included Taskfile by
by prefixing it with `:` prefixing it with `:` ([#161](https://github.com/go-task/task/issues/161), [#172](https://github.com/go-task/task/issues/172)).
([#161](https://github.com/go-task/task/issues/161), [#172](https://github.com/go-task/task/issues/172)), - Add flag to override the `output` option ([#173](https://github.com/go-task/task/issues/173)).
- Add flag to override the `output` option
([#173](https://github.com/go-task/task/pull/173));
- Fix bug where Task was persisting the new checksum on the disk when the Dry - Fix bug where Task was persisting the new checksum on the disk when the Dry
Mode is enabled Mode is enabled ([#166](https://github.com/go-task/task/issues/166)).
([#166](https://github.com/go-task/task/issues/166)); - Fix file timestamp issue when the file name has spaces ([#176](https://github.com/go-task/task/issues/176)).
- Fix file timestamp issue when the file name has spaces - Mitigating path expanding issues on Windows ([#170](https://github.com/go-task/task/issues/170)).
([#176](https://github.com/go-task/task/issues/176));
- Mitigating path expanding issues on Windows
([#170](https://github.com/go-task/task/pull/170)).
## v2.3.0 - 2019-01-02 ## v2.3.0 - 2019-01-02
- On Windows, Task can now be installed using [Scoop](https://scoop.sh/) - On Windows, Task can now be installed using [Scoop](https://scoop.sh/) ([#152](https://github.com/go-task/task/issues/152)).
([#152](https://github.com/go-task/task/pull/152)); - Fixed issue with file/directory globing ([#153](https://github.com/go-task/task/issues/153)).
- Fixed issue with file/directory globing - Added ability to globally set environment variables ([#138](https://github.com/go-task/task/issues/138), [#159](https://github.com/go-task/task/issues/159)).
([#153](https://github.com/go-task/task/issues/153));
- Added ability to globally set environment variables
(
[#138](https://github.com/go-task/task/pull/138),
[#159](https://github.com/go-task/task/pull/159)
).
## v2.2.1 - 2018-12-09 ## v2.2.1 - 2018-12-09
- This repository now uses Go Modules (#143). We'll still keep the `vendor` directory in sync for some time, though; - This repository now uses Go Modules ([#143](https://github.com/go-task/task/issues/143)). We'll still keep the `vendor`
- Fixing a bug when the Taskfile has no tasks but includes another Taskfile (#150); directory in sync for some time, though;
- Fix a bug when calling another task or a dependency in an included Taskfile (#151). - Fixing a bug when the Taskfile has no tasks but includes another Taskfile
([#150](https://github.com/go-task/task/issues/150));
- Fix a bug when calling another task or a dependency in an included Taskfile
([#151](https://github.com/go-task/task/issues/151)).
## v2.2.0 - 2018-10-25 ## v2.2.0 - 2018-10-25
- Added support for [including other Taskfiles](https://taskfile.org/#/usage?id=including-other-taskfiles) (#98) - Added support for [including other
- This should be considered experimental. For now, only including local files is supported, but support for including remote Taskfiles is being discussed. If you have any feedback, please comment on #98. Taskfiles](https://taskfile.org/#/usage?id=including-other-taskfiles) ([#98](https://github.com/go-task/task/issues/98))
- This should be considered experimental. For now, only including local files
is supported, but support for including remote Taskfiles is being discussed.
If you have any feedback, please comment on [#98](https://github.com/go-task/task/issues/98).
- Task now have a dedicated documentation site: https://taskfile.org - Task now have a dedicated documentation site: https://taskfile.org
- Thanks to [Docsify](https://docsify.js.org/) for making this pretty easy. To check the source code, just take a look at the [docs](https://github.com/go-task/task/tree/master/docs) directory of this repository. Contributions to the documentation is really appreciated. - Thanks to [Docsify](https://docsify.js.org/) for making this pretty easy. To
check the source code, just take a look at the
[docs](https://github.com/go-task/task/tree/master/docs) directory of this
repository. Contributions to the documentation is really appreciated.
## v2.1.1 - 2018-09-17 ## v2.1.1 - 2018-09-17
- Fix suggestion to use `task --init` not being shown anymore (when a `Taskfile.yml` is not found) - Fix suggestion to use `task --init` not being shown anymore (when a
- Fix error when using checksum method and no file exists for a source glob (#131) `Taskfile.yml` is not found)
- Fix signal handling when the `--watch` flag is given (#132) - Fix error when using checksum method and no file exists for a source glob
([#131](https://github.com/go-task/task/issues/131))
- Fix signal handling when the `--watch` flag is given ([#132](https://github.com/go-task/task/issues/132))
## v2.1.0 - 2018-08-19 ## v2.1.0 - 2018-08-19
- Add a `ignore_error` option to task and command (#123) - Add a `ignore_error` option to task and command ([#123](https://github.com/go-task/task/issues/123))
- Add a dry run mode (`--dry` flag) (#126) - Add a dry run mode (`--dry` flag) ([#126](https://github.com/go-task/task/issues/126))
## v2.0.3 - 2018-06-24 ## v2.0.3 - 2018-06-24
- Expand environment variables on "dir", "sources" and "generates" (#116) - Expand environment variables on "dir", "sources" and "generates" ([#116](https://github.com/go-task/task/issues/116))
- Fix YAML merging syntax (#112) - Fix YAML merging syntax ([#112](https://github.com/go-task/task/issues/112))
- Add ZSH completion (#111) - Add ZSH completion ([#111](https://github.com/go-task/task/issues/111))
- Implement new `output` option. Please check out the [documentation](https://github.com/go-task/task#output-syntax) - Implement new `output` option. Please check out the
[documentation](https://github.com/go-task/task#output-syntax)
## v2.0.2 - 2018-05-01 ## v2.0.2 - 2018-05-01
- Fix merging of YAML anchors (#112) - Fix merging of YAML anchors ([#112](https://github.com/go-task/task/issues/112))
## v2.0.1 - 2018-03-11 ## v2.0.1 - 2018-03-11
@ -577,77 +510,84 @@ sidebar_position: 7
Version 2.0.0 is here, with a new Taskfile format. Version 2.0.0 is here, with a new Taskfile format.
Please, make sure to read the [Taskfile versions](https://github.com/go-task/task/blob/master/TASKFILE_VERSIONS.md) document, since it describes in depth what changed for this version. Please, make sure to read the [Taskfile
versions](https://github.com/go-task/task/blob/master/TASKFILE_VERSIONS.md)
document, since it describes in depth what changed for this version.
* New Taskfile version 2 (https://github.com/go-task/task/issues/77) - New Taskfile version 2 ([#77](https://github.com/go-task/task/issues/77))
* Possibility to have global variables in the `Taskfile.yml` instead of `Taskvars.yml` (https://github.com/go-task/task/issues/66) - Possibility to have global variables in the `Taskfile.yml` instead of
* Small improvements and fixes `Taskvars.yml` ([#66](https://github.com/go-task/task/issues/66))
- Small improvements and fixes
## v1.4.4 - 2017-11-19 ## v1.4.4 - 2017-11-19
- Handle SIGINT and SIGTERM (#75); - Handle SIGINT and SIGTERM ([#75](https://github.com/go-task/task/issues/75));
- List: print message with there's no task with description; - List: print message with there's no task with description;
- Expand home dir ("~" symbol) on paths (#74); - Expand home dir ("~" symbol) on paths ([#74](https://github.com/go-task/task/issues/74));
- Add Snap as an installation method; - Add Snap as an installation method;
- Move examples to its own repo; - Move examples to its own repo;
- Watch: also walk on tasks called on on "cmds", and not only on "deps"; - Watch: also walk on tasks called on on "cmds", and not only on "deps";
- Print logs to stderr instead of stdout (#68); - Print logs to stderr instead of stdout ([#68](https://github.com/go-task/task/issues/68));
- Remove deprecated `set` keyword; - Remove deprecated `set` keyword;
- Add checksum based status check, alternative to timestamp based. - Add checksum based status check, alternative to timestamp based.
## v1.4.3 - 2017-09-07 ## v1.4.3 - 2017-09-07
- Allow assigning variables to tasks at run time via CLI (#33) - Allow assigning variables to tasks at run time via CLI ([#33](https://github.com/go-task/task/issues/33))
- Added suport for multiline variables from sh (#64) - Added suport for multiline variables from sh ([#64](https://github.com/go-task/task/issues/64))
- Fixes env: remove square braces and evaluate shell (#62) - Fixes env: remove square braces and evaluate shell ([#62](https://github.com/go-task/task/issues/62))
- Watch: change watch library and few fixes and improvements - Watch: change watch library and few fixes and improvements
- When use watching, cancel and restart long running process on file change (#59 and #60) - When use watching, cancel and restart long running process on file change ([#59](https://github.com/go-task/task/issues/59)
and [#60](https://github.com/go-task/task/issues/60))
## v1.4.2 - 2017-07-30 ## v1.4.2 - 2017-07-30
- Flag to set directory of execution - Flag to set directory of execution
- Always echo command if is verbose mode - Always echo command if is verbose mode
- Add silent mode to disable echoing of commands - Add silent mode to disable echoing of commands
- Fixes and improvements of variables (#56) - Fixes and improvements of variables ([#56](https://github.com/go-task/task/issues/56))
## v1.4.1 - 2017-07-15 ## v1.4.1 - 2017-07-15
- Allow use of YAML for dynamic variables instead of $ prefix - Allow use of YAML for dynamic variables instead of $ prefix
- `VAR: {sh: echo Hello}` instead of `VAR: $echo Hello` - `VAR: {sh: echo Hello}` instead of `VAR: $echo Hello`
- Add `--list` (or `-l`) flag to print existing tasks - Add `--list` (or `-l`) flag to print existing tasks
- OS specific Taskvars file (e.g. `Taskvars_windows.yml`, `Taskvars_linux.yml`, etc) - OS specific Taskvars file (e.g. `Taskvars_windows.yml`, `Taskvars_linux.yml`,
- Consider task up-to-date on equal timestamps (#49) etc)
- Allow absolute path in generates section (#48) - Consider task up-to-date on equal timestamps ([#49](https://github.com/go-task/task/issues/49))
- Bugfix: allow templating when calling deps (#42) - Allow absolute path in generates section ([#48](https://github.com/go-task/task/issues/48))
- Bugfix: allow templating when calling deps ([#42](https://github.com/go-task/task/issues/42))
- Fix panic for invalid task in cyclic dep detection - Fix panic for invalid task in cyclic dep detection
- Better error output for dynamic variables in Taskvars.yml (#41) - Better error output for dynamic variables in Taskvars.yml ([#41](https://github.com/go-task/task/issues/41))
- Allow template evaluation in parameters - Allow template evaluation in parameters
## v1.4.0 - 2017-07-06 ## v1.4.0 - 2017-07-06
- Cache dynamic variables - Cache dynamic variables
- Add verbose mode (`-v` flag) - Add verbose mode (`-v` flag)
- Support to task parameters (overriding vars) (#31) (#32) - Support to task parameters (overriding vars) ([#31](https://github.com/go-task/task/issues/31)) ([#32](https://github.com/go-task/task/issues/32))
- Print command, also when "set:" is specified (#35) - Print command, also when "set:" is specified ([#35](https://github.com/go-task/task/issues/35))
- Improve task command help text (#35) - Improve task command help text ([#35](https://github.com/go-task/task/issues/35))
## v1.3.1 - 2017-06-14 ## v1.3.1 - 2017-06-14
- Fix glob not working on commands (#28) - Fix glob not working on commands ([#28](https://github.com/go-task/task/issues/28))
- Add ExeExt template function - Add ExeExt template function
- Add `--init` flag to create a new Taskfile - Add `--init` flag to create a new Taskfile
- Add status option to prevent task from running (#27) - Add status option to prevent task from running ([#27](https://github.com/go-task/task/issues/27))
- Allow interpolation on `generates` and `sources` attributes (#26) - Allow interpolation on `generates` and `sources` attributes ([#26](https://github.com/go-task/task/issues/26))
## v1.3.0 - 2017-04-24 ## v1.3.0 - 2017-04-24
- Migrate from os/exec.Cmd to a native Go sh/bash interpreter - Migrate from os/exec.Cmd to a native Go sh/bash interpreter
- This is a potentially breaking change if you use Windows. - This is a potentially breaking change if you use Windows.
- Now, `cmd` is not used anymore on Windows. Always use Bash-like syntax for your commands, even on Windows. - Now, `cmd` is not used anymore on Windows. Always use Bash-like syntax for
your commands, even on Windows.
- Add "ToSlash" and "FromSlash" to template functions - Add "ToSlash" and "FromSlash" to template functions
- Use functions defined on github.com/Masterminds/sprig - Use functions defined on github.com/Masterminds/sprig
- Do not redirect stdin while running variables commands - Do not redirect stdin while running variables commands
- Using `context` and `errgroup` packages (this will make other tasks to be cancelled, if one returned an error) - Using `context` and `errgroup` packages (this will make other tasks to be
cancelled, if one returned an error)
## v1.2.0 - 2017-04-02 ## v1.2.0 - 2017-04-02
@ -655,18 +595,18 @@ Please, make sure to read the [Taskfile versions](https://github.com/go-task/tas
- Watch a task (experimental) - Watch a task (experimental)
- Possibility to call another task - Possibility to call another task
- Fix "=" not being reconized in variables/environment variables - Fix "=" not being reconized in variables/environment variables
- Tasks can now have a description, and help will print them (#10) - Tasks can now have a description, and help will print them ([#10](https://github.com/go-task/task/issues/10))
- Task dependencies now run concurrently - Task dependencies now run concurrently
- Support for a default task (#16) - Support for a default task ([#16](https://github.com/go-task/task/issues/16))
## v1.1.0 - 2017-03-08 ## v1.1.0 - 2017-03-08
- Support for YAML, TOML and JSON (#1) - Support for YAML, TOML and JSON ([#1](https://github.com/go-task/task/issues/1))
- Support running command in another directory (#4) - Support running command in another directory ([#4](https://github.com/go-task/task/issues/4))
- `--force` or `-f` flag to force execution of task even when it's up-to-date - `--force` or `-f` flag to force execution of task even when it's up-to-date
- Detection of cyclic dependencies (#5) - Detection of cyclic dependencies ([#5](https://github.com/go-task/task/issues/5))
- Support for variables (#6, #9, #14) - Support for variables ([#6](https://github.com/go-task/task/issues/6), [#9](https://github.com/go-task/task/issues/9), [#14](https://github.com/go-task/task/issues/14))
- Operation System specific commands and variables (#13) - Operation System specific commands and variables ([#13](https://github.com/go-task/task/issues/13))
## v1.0.0 - 2017-02-28 ## v1.0.0 - 2017-02-28