Releases: go-task/task
Releases · go-task/task
v3.43.3
v3.43.2
v3.43.1
- 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.
fsnotifyuses 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
generateskeyword. 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
--expiryflag 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.
.taskrcfiles 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
--initflag) 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
--versionflag 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 insourcesonly 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_DIRspecial 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
v3.42.0
- Made
--initless verbose by default and respect--silentand--verboseflags (#2009, #2011 by @HeCorr). --initnow 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
deferstatements in the shorthandcmdssyntax 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
matrixto 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.
- No longer accepts an
TaskfileDecodeError.WithFileInfonow 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).
TaskfileSnippetand related code moved from theerrorspackage to thetaskfilepackage (#2068 by @pd93).- Renamed
TaskMissingRequiredVarstoTaskMissingRequiredVarsError(#2052 by @vmaerten). - Renamed
TaskNotAllowedVarstoTaskNotAllowedVarsError(#2052 by @vmaerten). - The
taskfile.Readeris now constructed using the functional options pattern (#2082 by @pd93). - Removed our internal
logger.Loggerfrom the entiretaskfilepackage (#2082 by @pd93).- Users are now expected to pass a custom debug/prompt functions into
taskfile.Readerif they want this functionality by using the newWithDebugFuncandWithPromptFuncfunctional options.
- Users are now expected to pass a custom debug/prompt functions into
- Remove
Rangefunctions in thetaskfile/astpackage in favour of new iterator functions (#1798 by @pd93). ast.Callwas moved from thetaskfile/astpackage to the maintaskpackage (#2084 by @pd93).ast.Tasks.FindMatchingTaskswas moved from thetaskfile/astpackage to thetask.Executor.FindMatchingTasksin the maintaskpackage (#2084 by @pd93).- The
Compilerand itsGetVariablesandFastGetVariablesmethods were moved from theinternal/compilerpackage to the maintaskpackage (#2084 by @pd93).
v3.41.0
- Fixed an issue where dynamic variables were not properly logged in verbose mode (#1920, #1921 by @mgbowman).
- Support
silentfor defer statements (#1877, #1879 by @danilobuerger). - Added an option to exclude some tasks from being included (#1859 by @vmaerten).
- Fixed an issue where a required variable was incorrectly handled in a template function (#1950, #1962 by @vmaerten).
- Expose a new
TASK_DIRspecial variable, which will contain the absolute path of task directory. (#1959, #1961 by @vmaerten). - Fixed fatal bugs that caused concurrent map writes (#1605, #1972, #1974 by @pd93, @GrahamDennis and @trim21).
- Refactored internal ordered map implementation to use github.com/elliotchance/orderedmap (#1797 by @pd93).
- Fixed a bug where variables defined at the task level were being ignored in the
requiressection. (#1960, #1955, #1768 by @vmaerten and @mokeko) - The
CHECKSUMandTIMESTAMPvariables are now accessible withincmds(#1872 by @niklasr22). - Updated installation docs and added pip installation method (#935, #1989 by @pd93).
- Fixed a bug where dynamic variables could not access environment variables (#630, #1869 by @rohm1 and @pd93).
- Disable version check for use as an external library (#1938 by @leaanthony).
v3.40.1
v3.40.0
If you like this project, consider spreading the word or sponsoring the project.
- Fixed output of some functions (e.g.
splitArgs/splitLines) not working in for loops (#1822, #1823 by @stawii). - Added a new
TASK_OFFLINEenvironment variable to configure the--offlineflag and expose it as a special variable in the templating system (#1470, #1716 by @vmaerten and @pd93). - Fixed a bug where multiple remote includes caused all prompts to display without waiting for user input (#1832, #1833 by @vmaerten and @pd93).
- When using the "Remote Taskfiles" experiment, you can now include Taskfiles from Git repositories (#1652 by @vmaerten).
- Improved the error message when a dotenv file cannot be parsed (#1842 by @pbitty).
- Fix issue with directory when using the remote experiment (#1757 by @pbitty).
- Fixed an issue where a special variable was used in combination with a dotenv file (#1232, #1810 by @vmaerten).
- Refactor the way Task reads Taskfiles to improve readability (#1771 by @pbitty).
- Added a new option to ensure variable is within the list of values (#1827 by @vmaerten).
- Allow multiple prompts to be specified for a task (#1861, #1866 by @mfbmina).
- Added new template function:
numCPU, which returns the number of logical CPUs usable (#1890, #1887 by @Amoghrd). - Fixed a bug where non-nil, empty dynamic variables are returned as an empty interface (#1903, #1904 by @pd93).
v3.39.2
v3.39.1
- Added Renovate configuration to automatically create PRs to keep dependencies up to date (#1783 by @vmaerten).
- Fixed a bug where the help was displayed twice (#1805, #1806 by @vmaerten).
- Fixed a bug where ZSH and PowerShell completions did not work when using the recommended method. (#1813, #1809 by @vmaerten and @shirayu)
- Fix variables not working properly for a
defer:statement (#1803, #1814 by @vmaerten and @andreynering).