@@ -5,6 +5,77 @@ sidebar_position: 14
5
5
6
6
# Changelog
7
7
8
+ ## v3.43.0 - 2025-04-21
9
+
10
+ - Significant improvements were made to the watcher. We migrated from
11
+ [ watcher] ( https://github.com/radovskyb/watcher ) to
12
+ [ fsnotify] ( https://github.com/fsnotify/fsnotify ) . The former library used
13
+ polling, which means Task had a high CPU usage when watching too many files.
14
+ ` fsnotify ` uses proper the APIs from each operating system to watch files,
15
+ which means a much better performance. The default interval changed from 5
16
+ seconds to 100 milliseconds, because now it configures the wait time for
17
+ duplicated events, instead of the polling time (#2048 by @andreynering , #1508 ,
18
+ #985 , #1179 ).
19
+ - The [ Map Variables experiment] ( https://github.com/go-task/task/issues/1585 )
20
+ was made generally available so you can now
21
+ [ define map variables in your Taskfiles!] ( https://taskfile.dev/usage/#variables )
22
+ (#1585 , #1547 , #2081 by @pd93 ).
23
+ - Wildcards can now
24
+ [ match multiple tasks] ( https://taskfile.dev/usage/#wildcard-arguments ) (#2072 ,
25
+ #2121 by @pd93 ).
26
+ - Added the ability to
27
+ [ loop over the files specified by the ` generates ` keyword] ( https://taskfile.dev/usage/#looping-over-your-tasks-sources-or-generated-files ) .
28
+ This works the same way as looping over sources (#2151 by @sedyh ).
29
+ - Added the ability to resolve variables when defining an include variable
30
+ (#2108 , #2113 by @pd93 ).
31
+ - A few changes have been made to the
32
+ [ Remote Taskfiles experiment] ( https://github.com/go-task/task/issues/1317 )
33
+ (#1402 , #2176 by @pd93 ):
34
+ - Cached files are now prioritized over remote ones.
35
+ - Added an ` --expiry ` flag which sets the TTL for a remote file cache. By
36
+ default the value will be 0 (caching disabled). If Task is running in
37
+ offline mode or fails to make a connection, it will fallback on the cache.
38
+ - ` .taskrc ` files can now be used from subdirectories and will be searched for
39
+ recursively up the file tree in the same way that Taskfiles are (#2159 , #2166
40
+ by @pd93 ).
41
+ - The default taskfile (output when using the ` --init ` flag) is now an embedded
42
+ file in the binary instead of being stored in the code (#2112 by @pd93 ).
43
+ - Improved the way we report the Task version when using the ` --version ` flag or
44
+ ` {{.TASK_VERSION}} ` variable. This should now be more consistent and easier
45
+ for package maintainers to use (#2131 by @pd93 ).
46
+ - Fixed a bug where globstar (` ** ` ) matching in ` sources ` only resolved the
47
+ first result (#2073 , #2075 by @pd93 ).
48
+ - Fixed a bug where sorting tasks by "none" would use the default sorting
49
+ instead of leaving tasks in the order they were defined (#2124 , #2125 by
50
+ @trulede ).
51
+ - Fixed Fish completion on newer Fish versions (#2130 by @atusy ).
52
+ - Fixed a bug where undefined/null variables resolved to an empty string instead
53
+ of ` nil ` (#1911 , #2144 by @pd93 ).
54
+ - The ` USER_WORKING_DIR ` special now will now properly account for the ` --dir `
55
+ (` -d ` ) flag, if given (#2102 , #2103 by @jaynis , #2186 by @andreynering ).
56
+ - Fix Fish completions when ` --global ` (` -g ` ) is given (#2134 by @atusy ).
57
+ - Fixed variables not available when using ` defer: ` (#1909 , #2173 by @vmaerten ).
58
+
59
+ #### Package API
60
+
61
+ - The [ ` Executor ` ] ( https://pkg.go.dev/github.com/go-task/task/v3#Executor ) now
62
+ uses the functional options pattern (#2085 , #2147 , #2148 by @pd93 ).
63
+ - The functional options for the
64
+ [ ` taskfile.Reader ` ] ( https://pkg.go.dev/github.com/go-task/task/v3/taskfile#Reader )
65
+ and
66
+ [ ` taskfile.Snippet ` ] ( https://pkg.go.dev/github.com/go-task/task/v3/taskfile#Snippet )
67
+ types no longer have the ` Reader ` /` Snippet ` respective prefixes (#2148 by
68
+ @pd93 ).
69
+ - [ ` taskfile.Reader ` ] ( https://pkg.go.dev/github.com/go-task/task/v3/taskfile#Reader )
70
+ no longer accepts a
71
+ [ ` taskfile.Node ` ] ( https://pkg.go.dev/github.com/go-task/task/v3/taskfile#Node ) .
72
+ Instead nodes are passed directly into the
73
+ [ ` Reader.Read ` ] ( https://pkg.go.dev/github.com/go-task/task/v3/taskfile#Reader.Read )
74
+ method (#2169 by @pd93 ).
75
+ - [ ` Reader.Read ` ] ( https://pkg.go.dev/github.com/go-task/task/v3/taskfile#Reader.Read )
76
+ also now accepts a [ ` context.Context ` ] ( https://pkg.go.dev/context#Context )
77
+ (#2176 by @pd93 ).
78
+
8
79
## v3.42.1 - 2025-03-10
9
80
10
81
- Fixed a bug where some special variables caused a type error when used global
0 commit comments