Skip to content

Releases: go-task/task

v3.46.0-nightly

08 Oct 00:19
4e84c6b
Compare
Choose a tag to compare
v3.46.0-nightly Pre-release
Pre-release

Changelog

  • 4e84c6b fix: links to static files
  • 0f9baf6 docs: Update Remote Taskfiles default values
    (#2430)
  • 979ad52 chore(deps): update mvdan.cc/sh/moreinterp digest to 1714925 (#2435)
  • 975c076 chore(deps): update all non-major dependencies (#2436)
  • 67a0225 docs(changelog): add entry for #2431
  • 028ae1a fix: fix message shown when a taskfile was not found (#2431)
  • 68b1d27 lint: fix lint by passing context
  • 12793c3 chore: delete unused file cmd/tmp/main.go
  • 8716ab8 docs: remove ga
  • c2a4e44 docs: update sprig links to our domain
  • f5a8ec8 fix: changelog in website

v3.45.4

17 Sep 15:08
048d927
Compare
Choose a tag to compare
  • Fixed a bug where cache-expiry could not be defined in .taskrc.yml (#2423 by @vmaerten).
  • Fixed a bug where .taskrc.yml files in parent folders were not read correctly (#2424 by @vmaerten).
  • Fixed a bug where autocomplete in subfolders did not work with zsh (#2425 by @vmaerten).

v3.45.3

15 Sep 13:24
17db402
Compare
Choose a tag to compare
  • Task now includes built-in core utilities to greatly improve compatibility on Windows. This means that your commands that uses cp, mv, mkdir or any other common core utility will now work by default on Windows, without extra setup. This is something we wanted to address for many many years, and it's finally being shipped! Read our blog post about this topic. (#197, #2360 by @andreynering).
  • ✨ Built and deployed a brand new website using VitePress (#2359, #2369, #2371, #2375, #2378 by @vmaerten, @andreynering, @pd93).
  • Began releasing nightly builds. This will allow people to test our changes before they are fully released and without having to install Go to build them (#2358 by @vmaerten).
  • Added support for global config files in $XDG_CONFIG_HOME/task/taskrc.yml or $HOME/.taskrc.yml. Check out our new configuration guide for more details (#2247, #2380, #2390, #2391 by @vmaerten, @pd93).
  • Added experiments to the taskrc schema to clarify the expected keys and values (#2235 by @vmaerten).
  • Added support for new properties in .taskrc.yml: insecure, verbose, concurrency, remote offline, remote timeout, and remote expiry. ⚠️ Note: setting offline via environment variable is no longer supported. (#2389 by @vmaerten)
  • Added a --nested flag when outputting tasks using --list --json. This will output tasks in a nested structure when tasks are namespaced (#2415 by @pd93).
  • Enhanced support for tasks with wildcards: they are now logged correctly, and wildcard parameters are fully considered during fingerprinting (#1808, #1795 by @vmaerten).
  • Fixed panic when a variable was declared as an empty hash ({}) (#2416, #2417 by @trulede).

Package API

Other news

We recently released our official GitHub Action. This is based on the fantastic work by the Arduino team who created and maintained the community version. Now that this is officially adopted, fixes/updates should be more timely. We have already merged a couple of longstanding PRs in our first release (by @pd93, @shrink, @trim21 and all the previous contributors to arduino/setup-task).


NOTE: v3.45.0-v3.45.2 were skipped due to issues with our release process.

Want to support Task development? Consider becoming a sponsor.

v3.44.1

23 Jul 21:06
72991d4
Compare
Choose a tag to compare
  • Internal tasks will no longer be shown as suggestions since they cannot be called (#2309, #2323 by @maxmzkrcensys)
  • Fixed install script for some ARM platforms (#1516, #2291 by @trulede).
  • Fixed a regression where fingerprinting was not working correctly if the path to you Taskfile contained a space (#2321, #2322 by @pd93).
  • Reverted a breaking change to randInt (#2312, #2316 by @pd93).
  • Made new variables TEST_NAME and TEST_DIR available in fixture tests (#2265 by @pd93).

v3.44.0

09 Jun 00:41
Compare
Choose a tag to compare
  • Added uuid, randInt and randIntN template functions (#1346, #2225 by @pd93).
  • Added new CLI_ARGS_LIST array variable which contains the arguments passed to Task after the -- (the same as CLI_ARGS, but an array instead of a string). (#2138, #2139, #2140 by @pd93).
  • Added toYaml and fromYaml templating functions (#2217, #2219 by @pd93).
  • Added task field the --list --json output (#2256 by @aleksandersh).
  • Added the ability to pin included taskfiles by specifying a checksum. This works with both local and remote Taskfiles (#2222, #2223 by @pd93).
  • When using the Remote Taskfiles experiment, any credentials used in the URL will now be redacted in Task's output (#2100, #2220 by @pd93).
  • Fixed fuzzy suggestions not working when misspelling a task name (#2192, #2200 by @vmaerten).
  • Fixed a bug where taskfiles in directories containing spaces created directories in the wrong location (#2208, #2216 by @pd93).
  • Added support for dual JSON schema files, allowing changes without affecting the current schema. The current schemas will only be updated during releases. (#2211 by @vmaerten).
  • Improved fingerprint documentation by specifying that the method can be set at the root level to apply to all tasks (#2233 by @vmaerten).
  • Fixed some watcher regressions after #2048 (#2199, #2202, #2241, #2196 by @wazazaby, #2271 by @andreynering).

v3.43.3

27 Apr 22:37
1c35358
Compare
Choose a tag to compare

Reverted the changes made in #2113 and #2186 that affected the USER_WORKING_DIR and built-in variables. This fixes #2206, #2195, #2207 and #2208.

v3.43.2

21 Apr 19:41
Compare
Choose a tag to compare

v3.43.1

21 Apr 17:13
Compare
Choose a tag to compare
  • Significant improvements were made to the watcher. We migrated from watcher to fsnotify. The former library used polling, which means Task had a high CPU usage when watching too many files. fsnotify uses proper the APIs from each operating system to watch files, which means a much better performance. The default interval changed from 5 seconds to 100 milliseconds, because now it configures the wait time for duplicated events, instead of the polling time (#2048 by @andreynering, #1508, #985, #1179).
  • The Map Variables experiment was made generally available so you can now define map variables in your Taskfiles! (#1585, #1547, #2081 by @pd93).
  • Wildcards can now match multiple tasks (#2072, #2121 by @pd93).
  • Added the ability to loop over the files specified by the generates keyword. This works the same way as looping over sources (#2151 by @sedyh).
  • Added the ability to resolve variables when defining an include variable (#2108, #2113 by @pd93).
  • A few changes have been made to the Remote Taskfiles experiment (#1402, #2176 by @pd93):
    • Cached files are now prioritized over remote ones.
    • Added an --expiry flag which sets the TTL for a remote file cache. By default the value will be 0 (caching disabled). If Task is running in offline mode or fails to make a connection, it will fallback on the cache.
  • .taskrc files can now be used from subdirectories and will be searched for recursively up the file tree in the same way that Taskfiles are (#2159, #2166 by @pd93).
  • The default taskfile (output when using the --init flag) is now an embedded file in the binary instead of being stored in the code (#2112 by @pd93).
  • Improved the way we report the Task version when using the --version flag or {{.TASK_VERSION}} variable. This should now be more consistent and easier for package maintainers to use (#2131 by @pd93).
  • Fixed a bug where globstar (**) matching in sources only resolved the first result (#2073, #2075 by @pd93).
  • Fixed a bug where sorting tasks by "none" would use the default sorting instead of leaving tasks in the order they were defined (#2124, #2125 by @trulede).
  • Fixed Fish completion on newer Fish versions (#2130 by @atusy).
  • Fixed a bug where undefined/null variables resolved to an empty string instead of nil (#1911, #2144 by @pd93).
  • The USER_WORKING_DIR special now will now properly account for the --dir (-d) flag, if given (#2102, #2103 by @jaynis, #2186 by @andreynering).
  • Fix Fish completions when --global (-g) is given (#2134 by @atusy).
  • Fixed variables not available when using defer: (#1909, #2173 by @vmaerten).

Contribute

Love Task? If you or your company benefit from our work, consider becoming a sponsor!

v3.42.1

10 Mar 20:29
8181352
Compare
Choose a tag to compare
  • Fixed a bug where some special variables caused a type error when used in global variables (#2106, #2107 by @pd93).

v3.42.0

09 Mar 01:43
Compare
Choose a tag to compare
  • Made --init less verbose by default and respect --silent and --verbose flags (#2009, #2011 by @HeCorr).
  • --init now accepts a file name or directory as an argument (#2008, #2018 by @HeCorr).
  • Fix a bug where an HTTP node's location was being mutated incorrectly (#2007 by @jeongukjae).
  • Fixed a bug where allowed values didn't work with dynamic var (#2032, #2033 by @vmaerten).
  • Use only the relevant checker (timestamp or checksum) to improve performance (#2029, #2031 by @vmaerten).
  • Print warnings when attempting to enable an inactive experiment or an active experiment with an invalid value (#1979, #2049 by @pd93).
  • Refactored the experiments package and added tests (#2049 by @pd93).
  • Show allowed values when a variable with an enum is missing (#2027, #2052 by @vmaerten).
  • Refactored how snippets in error work and added tests (#2068 by @pd93).
  • Fixed a bug where errors decoding commands were sometimes unhelpful (#2068 by @pd93).
  • Fixed a bug in the Taskfile schema where defer statements in the shorthand cmds syntax were not considered valid (#2068 by @pd93).
  • Refactored how task sorting functions work (#1798 by @pd93).
  • Added a new .taskrc.yml (or .taskrc.yaml) file to let users enable experiments (similar to .env) (#1982 by @vmaerten).
  • Added new Getting Started docs (#2086 by @pd93).
  • Allow matrix to use references to other variables (#2065, #2069 by @pd93).
  • Fixed a bug where, when a dynamic variable is provided, even if it is not used, all other variables become unavailable in the templating system within the include (#2092 by @vmaerten).

Package API

Unlike our CLI tool, Task's package API is not currently stable. In an effort to ease the pain of breaking changes for our users, we will be providing changelogs for our package API going forwards. The hope is that these changes will provide a better long-term experience for our users and allow to stabilize the API in the future. #121 now tracks this piece of work.

  • Bumped the minimum required Go version to 1.23 (#2059 by @pd93).
  • task.InitTaskfile (#2011, ff8c913 by @HeCorr and @pd93)
    • No longer accepts an io.Writer (output is now the caller's responsibility).
    • The path argument can now be a filename OR a directory.
    • The function now returns the full path of the generated file.
  • TaskfileDecodeError.WithFileInfo now accepts a string instead of the arguments required to generate a snippet (#2068 by @pd93).
    • The caller is now expected to create the snippet themselves (see below).
  • TaskfileSnippet and related code moved from the errors package to the taskfile package (#2068 by @pd93).
  • Renamed TaskMissingRequiredVars to TaskMissingRequiredVarsError (#2052 by @vmaerten).
  • Renamed TaskNotAllowedVars to TaskNotAllowedVarsError (#2052 by @vmaerten).
  • The taskfile.Reader is now constructed using the functional options pattern (#2082 by @pd93).
  • Removed our internal logger.Logger from the entire taskfile package (#2082 by @pd93).
  • Remove Range functions in the taskfile/ast package in favour of new iterator functions (#1798 by @pd93).
  • ast.Call was moved from the taskfile/ast package to the main task package (#2084 by @pd93).
  • ast.Tasks.FindMatchingTasks was moved from the taskfile/ast package to the task.Executor.FindMatchingTasks in the main task package (#2084 by @pd93).
  • The Compiler and its GetVariables and FastGetVariables methods were moved from the internal/compiler package to the main task package (#2084 by @pd93).