github.com/clusterize-io/tusk@v0.6.3-0.20211001020217-cfe8a8cd0d4a/CHANGELOG.md (about) 1 # Changelog 2 This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). 3 4 ## Unreleased 5 6 ## 0.6.2 (2021-04-26) 7 ### Added 8 - Added fish completions. 9 10 ### Fixed 11 - Fixed an issue where certain behavior might unintentionally run during 12 tab completions. 13 - Fixed an issue where XDG_DATA_HOME was respected incorrectly when installing 14 bash completions. 15 16 17 ## 0.6.1 (2020-08-17) 18 ### Added 19 - Commands to install and uninstall completion will now appear in the help 20 documentation. 21 22 23 ## 0.6.0 (2020-05-16) 24 ### Added 25 - The interpreter used for running commands can now be configured using the 26 top-level `interpreter` clause in the YAML configuration. 27 28 ### Changed 29 - The interpreter now allows for specifying an arbitrary command and series of 30 arguments, so interpreters like `node` or `ruby` that happen to use a flag 31 other than `-c` may be specified. 32 - The interpreter settings now also apply to commands run as part of `when` and 33 `option` clauses. 34 35 ### Removed 36 - **BREAKING**: To avoid inadvertantly picking up unrelated shell settings, the 37 environment variable `SHELL` is no longer considered an override for the 38 command interpreter. 39 40 41 ## 0.5.2 (2020-01-26) 42 ### Added 43 - The `include` clause is now available to include task definitions from other 44 files. 45 46 47 ## 0.5.1 (2020-01-13) 48 ### Fixed 49 - Completions now correctly escape ":" characters in command and flag names. 50 51 52 ## 0.5.0 (2019-12-05) 53 ### Added 54 - The `command` clause now accepts a `print` option to override the command 55 text that is printed to screen. 56 - The `command` clause now acccepts a `dir` option to change the working 57 directory for that command. 58 59 ### Changed 60 - The `command` clause now has a longer form, where string literals now map to 61 the `exec` field. This longer form allows additional options such as `print` 62 to be specified in a command when necessary while maintaining backward 63 compatibility. 64 65 ### Fixed 66 - **BREAKING**: Unspecified fields in the YAML or duplicate map keys should 67 more consistently raise errors when parsing. Some `tusk.yml` files with 68 issues that were treated as valid in previous versions may no longer be 69 considered valid. 70 71 ### Removed 72 - **BREAKING**: Setting environment variables with `environment` has been 73 removed in favor of `set-environment`. 74 75 76 ## 0.4.7 (2019-08-06) 77 ### Fixed 78 - Fix issue where args could be passed to tasks out of order. 79 80 81 ## 0.4.6 (2019-06-30) 82 ### Added 83 - Support Alpine Linux with binary releases. 84 85 86 ## 0.4.5 (2019-05-05) 87 ### Added 88 - Support `not-exists` check inside `when` clauses. 89 90 91 ## 0.4.4 (2019-04-24) 92 ### Added 93 - Bash and zsh completion can be installed and uninstalled by command-line. 94 95 96 ## 0.4.3 (2019-03-31) 97 ### Added 98 - Help text for commands now includes arguments section. 99 - Include subtask hierarchy on command run. 100 101 ### Changed 102 - UI theme is now slightly more colorful. 103 - Hidden task names do not appear in console output. 104 105 106 ## 0.4.2 (2019-01-23) 107 ### Added 108 - Add short form for `when` clauses to express equal-true relationships. 109 110 111 ## 0.4.1 (2018-07-03) 112 ### Added 113 - Add `finally` clause to run cleanup logic after tasks have completed. This 114 clause takes the same arguments as `run`. 115 116 ### Changed 117 - Update UI theme to include more relevant information in normal and verbose 118 modes. 119 120 121 ## 0.4.0 (2018-05-21) 122 ### Added 123 - Short-flag combination is now supported. 124 125 ### Changed 126 - A `when` item now evaluates to true if ANY tests pass rather than if ALL tests 127 pass. All `when` items in a clause must still pass. 128 - `environment` clauses in `when` items now support mapping a single key to 129 multiple values. 130 131 ### Removed 132 - **BREAKING**: Remove deprecated `not_equal` syntax in favor of `not-equal`. 133 134 135 ## 0.3.5 (2018-04-11) 136 ### Added 137 - Positional arguments for tasks are now supported. All positional arguments 138 specified in the config file are required. 139 140 ### Changed 141 - Tagline is now "the modern task runner". 142 - Help documentation for flags with placeholder options now display them using 143 angular brackets. 144 - Minor changes to certain error messages. 145 146 147 ## 0.3.4 (2018-03-14) 148 ### Added 149 - Top-level keys `name` and `usage` can be changed in the config file to update 150 help documentation. This supports aliasing different config files to be used 151 as custom CLI tools. 152 - Support `tusk.yaml` as alternate config file name. 153 154 ## 0.3.3 (2018-02-21) 155 ### Added 156 - Support environment variable conditional in `when` clauses. 157 158 ### Changed 159 - Warnings now appear more consistently for deprecated functionality. 160 - Help documentation for flags is now more consistently structured. 161 - Several configuration keys have been renamed. While the original names are 162 still supported, they have been deprecated and will be removed in a future 163 release. See the deprecated section for details. 164 165 ### Deprecated 166 - The key name `not_equal` should be replaced with `not-equal`. This change is 167 to reinforce the convention for naming multi-word keys such as flag names 168 using kebab case. 169 - The key name `environment` in `run` clauses should be replaced with 170 `set-environment`. This is to make the behavior distinction from other 171 `environment` clauses clear. 172 173 174 ## 0.3.2 (2018-01-23) 175 ### Added 176 - Support lists of `when` items. 177 178 ### Deprecated 179 - Individual `when` items should no longer contain multiple validations for AND 180 logic. Multiple validations for OR logic will be added in a future release. 181 182 183 ## 0.3.1 (2018-01-05) 184 ### Fixed 185 - Invoking the same sub-task multiple times with different options now assigns 186 the options to each sub-task correctly. 187 - Short flags with arguments now offer Bash/Zsh completions correctly. 188 189 190 ## 0.3.0 (2018-01-04) 191 ### Changed 192 - **BREAKING**: Interpolation is now done per task. This has the following 193 effects: 194 - Sub-task options are no longer exposed to the command line. 195 - Sub-task options are now exposed in run clauses and can be passed by a 196 parent task to a sub-task. 197 - Shared options are only exposed when used directly by the invoked task and 198 not when invoked by sub-tasks. 199 - Tasks and sub-tasks can define options with the same name. 200 - Sub-tasks can now be defined in any order. 201 202 ### Fixed 203 - Sub-tasks no longer execute multiple times per reference in situations where 204 the same sub-task is referenced in multiple places. 205 206 ### Removed 207 - **BREAKING**: Environment variables can no longer be set inside of an 208 `option` clause. Using `environment` inside a `run` clause is the replacement 209 behavior. 210 211 212 ## 0.2.3 (2017-12-19) 213 ### Fixed 214 - Fix issue with Zsh tab completions. 215 216 ## 0.2.2 (2017-12-14) 217 ### Added 218 - Add `values` field for options. Any option directly passed by command line 219 flag or environment variable must be one of the listed values, if specified. 220 - Add completion for option values. 221 222 ### Fixed 223 - Fix issue where global flags with hyphens are sometimes skipped during 224 interpolation. 225 - Fix various issues with Zsh tab completions. 226 227 ## 0.2.1 (2017-11-12) 228 ### Added 229 - Environment variables can now be set and unset inside of a `run` clause. This 230 replaces the `export` functionality that was previously under `option`. 231 - Tasks can now be defined as private. 232 233 ### Changed 234 - Change to more minimalistic UI output theme. 235 - Log-level messages (Debug, Info, Warning, and Error) are now printed in title 236 case instead of all caps. 237 238 ### Deprecated 239 - Environment variables should no longer be set inside of an `option` clause. 240 Using `environment` inside a `run` clause is the replacement behavior. 241 242 243 ## 0.2.0 (2017-11-08) 244 ### Added 245 - Windows is now supported. 246 - New -s/--silent global option available for no stderr/stdout. 247 248 ### Changed 249 - **BREAKING**: Shell commands are now executed by the `SHELL` environment 250 variable by default. If `SHELL` is not set, `sh` is used. 251 - Commands and flags are now listed in alphabetical order. 252 253 ### Fixed 254 - Avoid infinite loop when searching for tusk.yml in non-unix file systems. 255 - Remove redundant error message for non-exit exec errors. 256 - Improve error messaging for non-generic yaml parsing errors. 257 - Fix indentation for the task list in `--help` output. 258 259 260 ## 0.1.5 (2017-10-26) 261 ### Changed 262 - Include expected value for skipped run clauses during verbose logging. 263 264 ### Fixed 265 - Bash and Zsh completions offer file completion for subcommand flags that take 266 a value rather than re-offering flag names. 267 - The default value for numeric types is now `0`, and the default for booleans 268 is now `false`. Previously, it was an empty string for both. 269 270 271 ## 0.1.4 (2017-10-19) 272 ### Changed 273 - Bash and Zsh completions now complete global flags and task flags. 274 - Zsh completion now includes usage information. 275 276 ### Fixed 277 - Application no longer errors when referencing the same shared option in both 278 a task and its sub-task. Redefinitions are still disallowed. 279 280 281 ## 0.1.3 (2017-10-16) 282 ### Added 283 - Completions for Bash and Zsh are now bundled with releases and automatically 284 installed with Homebrew. 285 - Homepage is now listed for Homebrew formula. 286 287 ### Changed 288 - Help documentation is no longer displayed during incorrect usage. 289 290 ### Fixed 291 - Passing the help flag now prevents code execution and prints help. 292 - Homebrew test command is now functional. 293 294 295 ## 0.1.2 (2017-09-26) 296 ### Added 297 - Options may now be required. 298 - Options can be exported to environment variables. 299 300 ### Changed 301 - Improve error handling in custom yaml unmarshaling. 302 - Exit for unexpected errors occuring during when clause validation. 303 - Use exit code 1 for all unexpected errors. 304 - Unexpected arguments now cause an error. 305 - Remove piping of command stdout/stderr to improve support for interactive 306 tasks. 307 308 ### Fixed 309 - Short names cannot exceed one character in length. 310 311 312 ## 0.1.1 (2017-09-16) 313 ### Changed 314 - The recommended way to install the latest stable version is now Homebrew or 315 downloading directly from the GitHub releases page. 316 317 ### Fixed 318 - Fix interpolation for tasks with only private options. 319 320 ## 0.1.0 (2017-09-14) 321 ### Initial Release