Files
go-task/assets/js/9beb87c2.633fe3d7.js
2023-04-15 19:41:48 +00:00

1 line
82 KiB
JavaScript

"use strict";(self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[]).push([[34],{3905:function(t,e,a){a.d(e,{Zo:function(){return h},kt:function(){return d}});var i=a(7294);function s(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function n(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,i)}return a}function l(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?n(Object(a),!0).forEach((function(e){s(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):n(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}function r(t,e){if(null==t)return{};var a,i,s=function(t,e){if(null==t)return{};var a,i,s={},n=Object.keys(t);for(i=0;i<n.length;i++)a=n[i],e.indexOf(a)>=0||(s[a]=t[a]);return s}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(i=0;i<n.length;i++)a=n[i],e.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(s[a]=t[a])}return s}var o=i.createContext({}),k=function(t){var e=i.useContext(o),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},h=function(t){var e=k(t.components);return i.createElement(o.Provider,{value:e},t.children)},m="mdxType",p={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},u=i.forwardRef((function(t,e){var a=t.components,s=t.mdxType,n=t.originalType,o=t.parentName,h=r(t,["components","mdxType","originalType","parentName"]),m=k(a),u=s,d=m["".concat(o,".").concat(u)]||m[u]||p[u]||n;return a?i.createElement(d,l(l({ref:e},h),{},{components:a})):i.createElement(d,l({ref:e},h))}));function d(t,e){var a=arguments,s=e&&e.mdxType;if("string"==typeof t||s){var n=a.length,l=new Array(n);l[0]=u;var r={};for(var o in e)hasOwnProperty.call(e,o)&&(r[o]=e[o]);r.originalType=t,r[m]="string"==typeof t?t:s,l[1]=r;for(var k=2;k<n;k++)l[k]=a[k];return i.createElement.apply(null,l)}return i.createElement.apply(null,a)}u.displayName="MDXCreateElement"},1016:function(t,e,a){a.r(e),a.d(e,{assets:function(){return o},contentTitle:function(){return l},default:function(){return m},frontMatter:function(){return n},metadata:function(){return r},toc:function(){return k}});var i=a(3117),s=(a(7294),a(3905));const n={slug:"/changelog/",sidebar_position:7},l="Changelog",r={unversionedId:"changelog",id:"changelog",title:"Changelog",description:"v3.23.0 - 2023-03-26",source:"@site/docs/changelog.md",sourceDirName:".",slug:"/changelog/",permalink:"/changelog/",draft:!1,tags:[],version:"current",sidebarPosition:7,frontMatter:{slug:"/changelog/",sidebar_position:7},sidebar:"tutorialSidebar",previous:{title:"Styleguide",permalink:"/styleguide/"},next:{title:"Community",permalink:"/community/"}},o={},k=[{value:"v3.23.0 - 2023-03-26",id:"v3230---2023-03-26",level:2},{value:"v3.22.0 - 2023-03-10",id:"v3220---2023-03-10",level:2},{value:"v3.21.0 - 2023-02-22",id:"v3210---2023-02-22",level:2},{value:"v3.20.0 - 2023-01-14",id:"v3200---2023-01-14",level:2},{value:"v3.19.1 - 2022-12-31",id:"v3191---2022-12-31",level:2},{value:"v3.19.0 - 2022-12-05",id:"v3190---2022-12-05",level:2},{value:"v3.18.0 - 2022-11-12",id:"v3180---2022-11-12",level:2},{value:"v3.17.0 - 2022-10-14",id:"v3170---2022-10-14",level:2},{value:"v3.16.0 - 2022-09-29",id:"v3160---2022-09-29",level:2},{value:"v3.15.2 - 2022-09-08",id:"v3152---2022-09-08",level:2},{value:"v3.15.0 - 2022-09-03",id:"v3150---2022-09-03",level:2},{value:"v3.14.1 - 2022-08-03",id:"v3141---2022-08-03",level:2},{value:"v3.14.0 - 2022-07-08",id:"v3140---2022-07-08",level:2},{value:"v3.13.0 - 2022-06-13",id:"v3130---2022-06-13",level:2},{value:"v3.12.1 - 2022-05-10",id:"v3121---2022-05-10",level:2},{value:"v3.12.0 - 2022-03-31",id:"v3120---2022-03-31",level:2},{value:"v3.11.0 - 2022-02-19",id:"v3110---2022-02-19",level:2},{value:"v3.10.0 - 2022-01-04",id:"v3100---2022-01-04",level:2},{value:"v3.9.2 - 2021-12-02",id:"v392---2021-12-02",level:2},{value:"v3.9.1 - 2021-11-28",id:"v391---2021-11-28",level:2},{value:"v3.9.0 - 2021-10-02",id:"v390---2021-10-02",level:2},{value:"v3.8.0 - 2021-09-26",id:"v380---2021-09-26",level:2},{value:"v3.7.3 - 2021-09-04",id:"v373---2021-09-04",level:2},{value:"v3.7.0 - 2021-07-31",id:"v370---2021-07-31",level:2},{value:"v3.6.0 - 2021-07-10",id:"v360---2021-07-10",level:2},{value:"v3.5.0 - 2021-07-04",id:"v350---2021-07-04",level:2},{value:"v3.4.3 - 2021-05-30",id:"v343---2021-05-30",level:2},{value:"v3.4.2 - 2021-04-23",id:"v342---2021-04-23",level:2},{value:"v3.4.1 - 2021-04-17",id:"v341---2021-04-17",level:2},{value:"v3.3.0 - 2021-03-20",id:"v330---2021-03-20",level:2},{value:"v3.2.2 - 2021-01-12",id:"v322---2021-01-12",level:2},{value:"v3.2.1 - 2021-01-09",id:"v321---2021-01-09",level:2},{value:"v3.2.0 - 2021-01-07",id:"v320---2021-01-07",level:2},{value:"v3.1.0 - 2021-01-03",id:"v310---2021-01-03",level:2},{value:"v3.0.1 - 2020-12-26",id:"v301---2020-12-26",level:2},{value:"v3.0.0 - 2020-08-16",id:"v300---2020-08-16",level:2},{value:"v2.8.1 - 2020-05-20",id:"v281---2020-05-20",level:2},{value:"v2.8.0 - 2019-12-07",id:"v280---2019-12-07",level:2},{value:"v2.7.1 - 2019-11-10",id:"v271---2019-11-10",level:2},{value:"v2.7.0 - 2019-09-22",id:"v270---2019-09-22",level:2},{value:"v2.6.0 - 2019-07-21",id:"v260---2019-07-21",level:2},{value:"v2.5.2 - 2019-05-11",id:"v252---2019-05-11",level:2},{value:"2.5.1 - 2019-04-27",id:"251---2019-04-27",level:2},{value:"v2.5.0 - 2019-03-16",id:"v250---2019-03-16",level:2},{value:"v2.4.0 - 2019-02-21",id:"v240---2019-02-21",level:2},{value:"v2.3.0 - 2019-01-02",id:"v230---2019-01-02",level:2},{value:"v2.2.1 - 2018-12-09",id:"v221---2018-12-09",level:2},{value:"v2.2.0 - 2018-10-25",id:"v220---2018-10-25",level:2},{value:"v2.1.1 - 2018-09-17",id:"v211---2018-09-17",level:2},{value:"v2.1.0 - 2018-08-19",id:"v210---2018-08-19",level:2},{value:"v2.0.3 - 2018-06-24",id:"v203---2018-06-24",level:2},{value:"v2.0.2 - 2018-05-01",id:"v202---2018-05-01",level:2},{value:"v2.0.1 - 2018-03-11",id:"v201---2018-03-11",level:2},{value:"v2.0.0 - 2018-03-08",id:"v200---2018-03-08",level:2},{value:"v1.4.4 - 2017-11-19",id:"v144---2017-11-19",level:2},{value:"v1.4.3 - 2017-09-07",id:"v143---2017-09-07",level:2},{value:"v1.4.2 - 2017-07-30",id:"v142---2017-07-30",level:2},{value:"v1.4.1 - 2017-07-15",id:"v141---2017-07-15",level:2},{value:"v1.4.0 - 2017-07-06",id:"v140---2017-07-06",level:2},{value:"v1.3.1 - 2017-06-14",id:"v131---2017-06-14",level:2},{value:"v1.3.0 - 2017-04-24",id:"v130---2017-04-24",level:2},{value:"v1.2.0 - 2017-04-02",id:"v120---2017-04-02",level:2},{value:"v1.1.0 - 2017-03-08",id:"v110---2017-03-08",level:2},{value:"v1.0.0 - 2017-02-28",id:"v100---2017-02-28",level:2}],h={toc:k};function m(t){let{components:e,...a}=t;return(0,s.kt)("wrapper",(0,i.Z)({},h,a,{components:e,mdxType:"MDXLayout"}),(0,s.kt)("h1",{id:"changelog"},"Changelog"),(0,s.kt)("h2",{id:"v3230---2023-03-26"},"v3.23.0 - 2023-03-26"),(0,s.kt)("p",null,"Task now has an ",(0,s.kt)("a",{parentName:"p",href:"https://marketplace.visualstudio.com/items?itemName=task.vscode-task"},"official extension for Visual Studio Code")," contributed by ",(0,s.kt)("a",{parentName:"p",href:"https://github.com/pd93"},"@pd93"),"! \ud83c\udf89 The extension is maintained in a ",(0,s.kt)("a",{parentName:"p",href:"https://github.com/go-task/vscode-task"},"new repository")," under the ",(0,s.kt)("inlineCode",{parentName:"p"},"go-task")," organization. We're looking to gather feedback from the community so please give it a go and let us know what you think via a ",(0,s.kt)("a",{parentName:"p",href:"https://github.com/go-task/vscode-task/discussions"},"discussion"),", ",(0,s.kt)("a",{parentName:"p",href:"https://github.com/go-task/vscode-task/issues"},"issue")," or on our ",(0,s.kt)("a",{parentName:"p",href:"https://discord.gg/6TY36E39UK"},"Discord"),"!"),(0,s.kt)("blockquote",null,(0,s.kt)("p",{parentName:"blockquote"},(0,s.kt)("strong",{parentName:"p"},"NOTE:"),"\nThe extension ",(0,s.kt)("em",{parentName:"p"},"requires")," v3.23.0 to be installed in order to work.")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"The website was integrated with\n",(0,s.kt)("a",{parentName:"li",href:"https://crowdin.com/project/taskfile"},"Crowdin")," to allow the community to\ncontribute with translations! ",(0,s.kt)("a",{parentName:"li",href:"https://taskfile.dev/zh-Hans/"},"Chinese")," is the\nfirst language available (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/1057"},"#1057"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/1058"},"#1058")," by ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/misitebao"},"@misitebao"),")."),(0,s.kt)("li",{parentName:"ul"},"Added task location data to the ",(0,s.kt)("inlineCode",{parentName:"li"},"--json")," flag output (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/1056"},"#1056")," by ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/pd93"},"@pd93"),")"),(0,s.kt)("li",{parentName:"ul"},"Change the name of the file generated by ",(0,s.kt)("inlineCode",{parentName:"li"},"task --init")," from ",(0,s.kt)("inlineCode",{parentName:"li"},"Taskfile.yaml")," to\n",(0,s.kt)("inlineCode",{parentName:"li"},"Taskfile.yml")," (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/1062"},"#1062")," by ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/misitebao"},"@misitebao"),")."),(0,s.kt)("li",{parentName:"ul"},"Added new ",(0,s.kt)("inlineCode",{parentName:"li"},"splitArgs")," template function (",(0,s.kt)("inlineCode",{parentName:"li"},"{{splitArgs \"foo bar 'foo bar\nbaz'\"}}"),") to ensure string is split as arguments (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/1040"},"#1040"),",\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/1059"},"#1059")," by ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/dhanusaputra"},"@dhanusaputra"),")."),(0,s.kt)("li",{parentName:"ul"},"Fix the value of ",(0,s.kt)("inlineCode",{parentName:"li"},"{{.CHECKSUM}}")," variable in status (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/1076"},"#1076"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/1080"},"#1080")," by ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/pd93"},"@pd93"),")."),(0,s.kt)("li",{parentName:"ul"},"Fixed deep copy implementation (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/1072"},"#1072")," by ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/pd93"},"@pd93"),")"),(0,s.kt)("li",{parentName:"ul"},"Created a tool to assist with releases (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/1086"},"#1086")," by ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/pd93"},"@pd93"),").")),(0,s.kt)("h2",{id:"v3220---2023-03-10"},"v3.22.0 - 2023-03-10"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Add a brand new ",(0,s.kt)("inlineCode",{parentName:"li"},"--global")," (",(0,s.kt)("inlineCode",{parentName:"li"},"-g"),") flag that will run a Taskfile from your\n",(0,s.kt)("inlineCode",{parentName:"li"},"$HOME")," directory. This is useful to have automation that you can run from\nanywhere in your system!\n(",(0,s.kt)("a",{parentName:"li",href:"https://taskfile.dev/usage/#running-a-global-taskfile"},"Documentation"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/1029"},"#1029"),"\nby ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/andreynering"},"@andreynering"),")."),(0,s.kt)("li",{parentName:"ul"},"Add ability to set ",(0,s.kt)("inlineCode",{parentName:"li"},"error_only: true")," on the ",(0,s.kt)("inlineCode",{parentName:"li"},"group")," output mode. This will\ninstruct Task to only print a command output if it returned with a non-zero\nexit code (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/664"},"#664"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/1022"},"#1022")," by ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/jaedle"},"@jaedle"),")."),(0,s.kt)("li",{parentName:"ul"},"Fixed bug where ",(0,s.kt)("inlineCode",{parentName:"li"},".task/checksum")," file was sometimes not being created when\ntask also declares a ",(0,s.kt)("inlineCode",{parentName:"li"},"status:")," (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/840"},"#840"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/1035"},"#1035")," by ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/harelwa"},"@harelwa"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/1037"},"#1037")," by ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/pd93"},"@pd93"),")."),(0,s.kt)("li",{parentName:"ul"},"Refactored and decoupled fingerprinting from the main Task executor (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/1039"},"#1039")," by\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/pd93"},"@pd93"),")."),(0,s.kt)("li",{parentName:"ul"},"Fixed deadlock issue when using ",(0,s.kt)("inlineCode",{parentName:"li"},"run: once")," (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/715"},"#715"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/1025"},"#1025")," by\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/theunrepentantgeek"},"@theunrepentantgeek"),").")),(0,s.kt)("h2",{id:"v3210---2023-02-22"},"v3.21.0 - 2023-02-22"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Added new ",(0,s.kt)("inlineCode",{parentName:"li"},"TASK_VERSION")," special variable (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/990"},"#990"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/1014"},"#1014")," by ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/ja1code"},"@ja1code"),")."),(0,s.kt)("li",{parentName:"ul"},"Fixed a bug where tasks were sometimes incorrectly marked as internal (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/1007"},"#1007"),"\nby ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/pd93"},"@pd93"),")."),(0,s.kt)("li",{parentName:"ul"},"Update to Go 1.20 (bump minimum version to 1.19) (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/1010"},"#1010")," by ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/pd93"},"@pd93"),")"),(0,s.kt)("li",{parentName:"ul"},"Added environment variable ",(0,s.kt)("inlineCode",{parentName:"li"},"FORCE_COLOR")," support to force color output.\nUsefull for environments without TTY (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/1003"},"#1003")," by ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/automation"},"@automation"),"-stack)")),(0,s.kt)("h2",{id:"v3200---2023-01-14"},"v3.20.0 - 2023-01-14"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Improve behavior and performance of status checking when using the ",(0,s.kt)("inlineCode",{parentName:"li"},"timestamp"),"\nmode (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/976"},"#976"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/977"},"#977")," by ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/aminya"},"@aminya"),")."),(0,s.kt)("li",{parentName:"ul"},"Performance optimizations were made for large Taskfiles (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/982"},"#982")," by ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/pd93"},"@pd93"),")."),(0,s.kt)("li",{parentName:"ul"},"Add ability to configure options for the\n",(0,s.kt)("a",{parentName:"li",href:"https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html"},(0,s.kt)("inlineCode",{parentName:"a"},"set")),"\nand\n",(0,s.kt)("a",{parentName:"li",href:"https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html"},(0,s.kt)("inlineCode",{parentName:"a"},"shopt")),"\nbuiltins (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/908"},"#908"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/929"},"#929")," by ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/pd93"},"@pd93"),",\n",(0,s.kt)("a",{parentName:"li",href:"http://taskfile.dev/usage/#set-and-shopt"},"Documentation"),")."),(0,s.kt)("li",{parentName:"ul"},"Add new ",(0,s.kt)("inlineCode",{parentName:"li"},"platforms:")," attribute to ",(0,s.kt)("inlineCode",{parentName:"li"},"task")," and ",(0,s.kt)("inlineCode",{parentName:"li"},"cmd"),", so it's now possible to\nchoose in which platforms that given task or command will be run on. Possible\nvalues are operating system (GOOS), architecture (GOARCH) or a combination of\nthe two. Example: ",(0,s.kt)("inlineCode",{parentName:"li"},"platforms: [linux]"),", ",(0,s.kt)("inlineCode",{parentName:"li"},"platforms: [amd64]")," or ",(0,s.kt)("inlineCode",{parentName:"li"},"platforms:\n[linux/amd64]"),". Other platforms will be skipped (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/978"},"#978"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/980"},"#980")," by ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/leaanthony"},"@leaanthony"),").")),(0,s.kt)("h2",{id:"v3191---2022-12-31"},"v3.19.1 - 2022-12-31"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Small bug fix: closing ",(0,s.kt)("inlineCode",{parentName:"li"},"Taskfile.yml")," once we're done reading it\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/963"},"#963"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/964"},"#964")," by ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/HeCorr"},"@HeCorr"),")."),(0,s.kt)("li",{parentName:"ul"},"Fixes a bug in v2 that caused a panic when using a ",(0,s.kt)("inlineCode",{parentName:"li"},"Taskfile_{{OS}}.yml")," file\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/961"},"#961"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/971"},"#971")," by ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/pd93"},"@pd93"),")."),(0,s.kt)("li",{parentName:"ul"},"Fixed a bug where watch intervals set in the Taskfile were not being respected\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/969"},"#969"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/970"},"#970")," by ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/pd93"},"@pd93"),")"),(0,s.kt)("li",{parentName:"ul"},"Add ",(0,s.kt)("inlineCode",{parentName:"li"},"--json")," flag (alias ",(0,s.kt)("inlineCode",{parentName:"li"},"-j"),") with the intent to improve support for code\neditors and add room to other possible integrations. This is basic for now,\nbut we plan to add more info in the near future\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/936"},"#936")," by ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/davidalpert"},"@davidalpert"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/764"},"#764"),").")),(0,s.kt)("h2",{id:"v3190---2022-12-05"},"v3.19.0 - 2022-12-05"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Installation via npm now supports ",(0,s.kt)("a",{parentName:"li",href:"https://pnpm.io/"},"pnpm")," as well\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/go-npm/issues/2"},"go-task/go-npm[#2](https://github.com/go-task/task/issues/2)"),",\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/go-npm/pull/3"},"go-task/go-npm[#3](https://github.com/go-task/task/issues/3)"),")."),(0,s.kt)("li",{parentName:"ul"},"It's now possible to run Taskfiles from subdirectories! A new\n",(0,s.kt)("inlineCode",{parentName:"li"},"USER_WORKING_DIR")," special variable was added to add even more flexibility for\nmonorepos (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/289"},"#289"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/920"},"#920"),")."),(0,s.kt)("li",{parentName:"ul"},"Add task-level ",(0,s.kt)("inlineCode",{parentName:"li"},"dotenv")," support (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/389"},"#389"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/904"},"#904"),")."),(0,s.kt)("li",{parentName:"ul"},"It's now possible to use global level variables on ",(0,s.kt)("inlineCode",{parentName:"li"},"includes")," (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/942"},"#942"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/943"},"#943"),")."),(0,s.kt)("li",{parentName:"ul"},"The website got a brand new ",(0,s.kt)("a",{parentName:"li",href:"https://task-zh.readthedocs.io/zh_CN/latest/"},"translation to\nChinese")," by\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/DeronW"},"[@DeronW](https://github.com/DeronW)"),". Thanks!")),(0,s.kt)("h2",{id:"v3180---2022-11-12"},"v3.18.0 - 2022-11-12"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Show aliases on ",(0,s.kt)("inlineCode",{parentName:"li"},"task --list --silent")," (",(0,s.kt)("inlineCode",{parentName:"li"},"task --ls"),"). This means that aliases\nwill be completed by the completion scripts (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/919"},"#919"),")."),(0,s.kt)("li",{parentName:"ul"},"Tasks in the root Taskfile will now be displayed first in ",(0,s.kt)("inlineCode",{parentName:"li"},"--list"),"/",(0,s.kt)("inlineCode",{parentName:"li"},"--list-all"),"\noutput (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/806"},"#806"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/890"},"#890"),")."),(0,s.kt)("li",{parentName:"ul"},"It's now possible to call a ",(0,s.kt)("inlineCode",{parentName:"li"},"default")," task in an included Taskfile by using\njust the namespace. For example: ",(0,s.kt)("inlineCode",{parentName:"li"},"docs:default")," is now automatically\naliased to ",(0,s.kt)("inlineCode",{parentName:"li"},"docs")," (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/661"},"#661"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/815"},"#815"),").")),(0,s.kt)("h2",{id:"v3170---2022-10-14"},"v3.17.0 - 2022-10-14"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},'Add a "Did you mean ...?" suggestion when a task does not exits another one\nwith a similar name is found (',(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/867"},"#867"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/880"},"#880"),")."),(0,s.kt)("li",{parentName:"ul"},"Now YAML parse errors will print which Taskfile failed to parse (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/885"},"#885"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/887"},"#887"),")."),(0,s.kt)("li",{parentName:"ul"},"Add ability to set ",(0,s.kt)("inlineCode",{parentName:"li"},"aliases")," for tasks and namespaces (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/268"},"#268"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/340"},"#340"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/879"},"#879"),")."),(0,s.kt)("li",{parentName:"ul"},"Improvements to Fish shell completion (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/897"},"#897"),")."),(0,s.kt)("li",{parentName:"ul"},"Added ability to set a different watch interval by setting ",(0,s.kt)("inlineCode",{parentName:"li"},"interval: '500ms'"),"\nor using the ",(0,s.kt)("inlineCode",{parentName:"li"},"--interval=500ms")," flag (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/813"},"#813"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/865"},"#865"),")."),(0,s.kt)("li",{parentName:"ul"},"Add colored output to ",(0,s.kt)("inlineCode",{parentName:"li"},"--list"),", ",(0,s.kt)("inlineCode",{parentName:"li"},"--list-all")," and ",(0,s.kt)("inlineCode",{parentName:"li"},"--summary")," flags (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/845"},"#845"),",\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/874"},"#874"),")."),(0,s.kt)("li",{parentName:"ul"},"Fix unexpected behavior where ",(0,s.kt)("inlineCode",{parentName:"li"},"label:")," was being shown instead of the task\nname on ",(0,s.kt)("inlineCode",{parentName:"li"},"--list")," (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/603"},"#603"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/877"},"#877"),").")),(0,s.kt)("h2",{id:"v3160---2022-09-29"},"v3.16.0 - 2022-09-29"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Add ",(0,s.kt)("inlineCode",{parentName:"li"},"npm")," as new installation method: ",(0,s.kt)("inlineCode",{parentName:"li"},"npm i -g [@go](https://github.com/go)-task/cli"),"\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/870"},"#870"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/871"},"#871"),", ",(0,s.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/%5B@go%5D(https://github.com/go)-task/cli"},"npm package"),")."),(0,s.kt)("li",{parentName:"ul"},"Add support to marking tasks and includes as internal, which will hide them\nfrom ",(0,s.kt)("inlineCode",{parentName:"li"},"--list")," and ",(0,s.kt)("inlineCode",{parentName:"li"},"--list-all")," (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/818"},"#818"),").")),(0,s.kt)("h2",{id:"v3152---2022-09-08"},"v3.15.2 - 2022-09-08"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Fix error when using variable in ",(0,s.kt)("inlineCode",{parentName:"li"},"env:")," introduced in the previous release\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/858"},"#858"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/866"},"#866"),")."),(0,s.kt)("li",{parentName:"ul"},"Fix handling of ",(0,s.kt)("inlineCode",{parentName:"li"},"CLI_ARGS")," (",(0,s.kt)("inlineCode",{parentName:"li"},"--"),") in Bash completion (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/863"},"#863"),")."),(0,s.kt)("li",{parentName:"ul"},"On zsh completion, add ability to replace ",(0,s.kt)("inlineCode",{parentName:"li"},"--list-all")," with ",(0,s.kt)("inlineCode",{parentName:"li"},"--list")," as\nalready possible on the Bash completion (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/861"},"#861"),").")),(0,s.kt)("h2",{id:"v3150---2022-09-03"},"v3.15.0 - 2022-09-03"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Add new special variables ",(0,s.kt)("inlineCode",{parentName:"li"},"ROOT_DIR")," and ",(0,s.kt)("inlineCode",{parentName:"li"},"TASKFILE_DIR"),". This was a highly\nrequested feature (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/215"},"#215"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/857"},"#857"),",\n",(0,s.kt)("a",{parentName:"li",href:"https://taskfile.dev/api/#special-variables"},"Documentation"),")."),(0,s.kt)("li",{parentName:"ul"},"Follow symlinks on ",(0,s.kt)("inlineCode",{parentName:"li"},"sources")," (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/826"},"#826"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/831"},"#831"),")."),(0,s.kt)("li",{parentName:"ul"},"Improvements and fixes to Bash completion (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/835"},"#835"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/844"},"#844"),").")),(0,s.kt)("h2",{id:"v3141---2022-08-03"},"v3.14.1 - 2022-08-03"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Always resolve relative include paths relative to the including Taskfile\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/822"},"#822"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/823"},"#823"),")."),(0,s.kt)("li",{parentName:"ul"},"Fix ZSH and PowerShell completions to consider all tasks instead of just the\npublic ones (those with descriptions) (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/803"},"#803"),").")),(0,s.kt)("h2",{id:"v3140---2022-07-08"},"v3.14.0 - 2022-07-08"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Add ability to override the ",(0,s.kt)("inlineCode",{parentName:"li"},".task")," directory location with the\n",(0,s.kt)("inlineCode",{parentName:"li"},"TASK_TEMP_DIR")," environment variable."),(0,s.kt)("li",{parentName:"ul"},"Allow to override Task colors using environment variables: ",(0,s.kt)("inlineCode",{parentName:"li"},"TASK_COLOR_RESET"),",\n",(0,s.kt)("inlineCode",{parentName:"li"},"TASK_COLOR_BLUE"),", ",(0,s.kt)("inlineCode",{parentName:"li"},"TASK_COLOR_GREEN"),", ",(0,s.kt)("inlineCode",{parentName:"li"},"TASK_COLOR_CYAN"),", ",(0,s.kt)("inlineCode",{parentName:"li"},"TASK_COLOR_YELLOW"),",\n",(0,s.kt)("inlineCode",{parentName:"li"},"TASK_COLOR_MAGENTA")," and ",(0,s.kt)("inlineCode",{parentName:"li"},"TASK_COLOR_RED")," (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/568"},"#568"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/792"},"#792"),")."),(0,s.kt)("li",{parentName:"ul"},"Fixed bug when using the ",(0,s.kt)("inlineCode",{parentName:"li"},"output: group")," mode where STDOUT and STDERR were\nbeing print in separated blocks instead of in the right order (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/779"},"#779"),")."),(0,s.kt)("li",{parentName:"ul"},"Starting on this release, ARM architecture binaries are been released to Snap\nas well (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/795"},"#795"),")."),(0,s.kt)("li",{parentName:"ul"},"i386 binaries won't be available anymore on Snap because Ubuntu removed the\nsupport for this architecture."),(0,s.kt)("li",{parentName:"ul"},"Upgrade mvdan.cc/sh, which fixes a bug with associative arrays (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/785"},"#785"),",\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/issues/884"},"mvdan/sh[#884](https://github.com/go-task/task/issues/884)"),",\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/pull/893"},"mvdan/sh[#893](https://github.com/go-task/task/issues/893)"),").")),(0,s.kt)("h2",{id:"v3130---2022-06-13"},"v3.13.0 - 2022-06-13"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Added ",(0,s.kt)("inlineCode",{parentName:"li"},"-n")," as an alias to ",(0,s.kt)("inlineCode",{parentName:"li"},"--dry")," (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/776"},"#776"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/777"},"#777"),")."),(0,s.kt)("li",{parentName:"ul"},"Fix behavior of interrupt (SIGINT, SIGTERM) signals. Task will now give time\nfor the processes running to do cleanup work (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/458"},"#458"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/479"},"#479"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/728"},"#728"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/769"},"#769"),")."),(0,s.kt)("li",{parentName:"ul"},"Add new ",(0,s.kt)("inlineCode",{parentName:"li"},"--exit-code")," (",(0,s.kt)("inlineCode",{parentName:"li"},"-x"),") flag that will pass-through the exit form the\ncommand being ran (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/755"},"#755"),").")),(0,s.kt)("h2",{id:"v3121---2022-05-10"},"v3.12.1 - 2022-05-10"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Fixed bug where, on Windows, variables were ending with ",(0,s.kt)("inlineCode",{parentName:"li"},"\\r")," because we were\nonly removing the final ",(0,s.kt)("inlineCode",{parentName:"li"},"\\n")," but not ",(0,s.kt)("inlineCode",{parentName:"li"},"\\r\\n")," (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/717"},"#717"),").")),(0,s.kt)("h2",{id:"v3120---2022-03-31"},"v3.12.0 - 2022-03-31"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"The ",(0,s.kt)("inlineCode",{parentName:"li"},"--list")," and ",(0,s.kt)("inlineCode",{parentName:"li"},"--list-all")," flags can now be combined with the ",(0,s.kt)("inlineCode",{parentName:"li"},"--silent"),"\nflag to print the task names only, without their description (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/691"},"#691"),")."),(0,s.kt)("li",{parentName:"ul"},"Added support for multi-level inclusion of Taskfiles. This means that included\nTaskfiles can also include other Taskfiles. Before this was limited to one\nlevel (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/390"},"#390"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/623"},"#623"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/656"},"#656"),")."),(0,s.kt)("li",{parentName:"ul"},"Add ability to specify vars when including a Taskfile. ",(0,s.kt)("a",{parentName:"li",href:"https://taskfile.dev/#/usage?id=vars-of-included-taskfiles"},"Check out the\ndocumentation")," for\nmore information (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/677"},"#677"),").")),(0,s.kt)("h2",{id:"v3110---2022-02-19"},"v3.11.0 - 2022-02-19"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Task now supports printing begin and end messages when using the ",(0,s.kt)("inlineCode",{parentName:"li"},"group"),"\noutput mode, useful for grouping tasks in CI systems. ",(0,s.kt)("a",{parentName:"li",href:"http://taskfile.dev/#/usage?id=output-syntax"},"Check out the\ndocumentation")," for more\ninformation (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/647"},"#647"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/651"},"#651"),")."),(0,s.kt)("li",{parentName:"ul"},"Add ",(0,s.kt)("inlineCode",{parentName:"li"},"Taskfile.dist.yml")," and ",(0,s.kt)("inlineCode",{parentName:"li"},"Taskfile.dist.yaml")," to the supported file name\nlist. ",(0,s.kt)("a",{parentName:"li",href:"https://taskfile.dev/#/usage?id=supported-file-names"},"Check out the\ndocumentation")," for more\ninformation (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/498"},"#498"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/666"},"#666"),").")),(0,s.kt)("h2",{id:"v3100---2022-01-04"},"v3.10.0 - 2022-01-04"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"A new ",(0,s.kt)("inlineCode",{parentName:"li"},"--list-all")," (alias ",(0,s.kt)("inlineCode",{parentName:"li"},"-a"),") flag is now available. It's similar to the\nexiting ",(0,s.kt)("inlineCode",{parentName:"li"},"--list")," (",(0,s.kt)("inlineCode",{parentName:"li"},"-l"),") but prints all tasks, even those without a description\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/383"},"#383"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/401"},"#401"),")."),(0,s.kt)("li",{parentName:"ul"},"It's now possible to schedule cleanup commands to run once a task finishes\nwith the ",(0,s.kt)("inlineCode",{parentName:"li"},"defer:")," keyword\n(",(0,s.kt)("a",{parentName:"li",href:"https://taskfile.dev/#/usage?id=doing-task-cleanup-with-defer"},"Documentation"),",\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/475"},"#475"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/626"},"#626"),")."),(0,s.kt)("li",{parentName:"ul"},"Remove long deprecated and undocumented ",(0,s.kt)("inlineCode",{parentName:"li"},"$")," variable prefix and ",(0,s.kt)("inlineCode",{parentName:"li"},"^")," command\nprefix (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/642"},"#642"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/644"},"#644"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/645"},"#645"),")."),(0,s.kt)("li",{parentName:"ul"},"Add support for ",(0,s.kt)("inlineCode",{parentName:"li"},".yaml")," extension (as an alternative to ",(0,s.kt)("inlineCode",{parentName:"li"},".yml"),"). This was\nrequested multiple times throughout the years. Enjoy! (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/183"},"#183"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/184"},"#184"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/369"},"#369"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/584"},"#584"),",\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/621"},"#621"),")."),(0,s.kt)("li",{parentName:"ul"},"Fixed error when computing a variable when the task directory do not exist yet\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/481"},"#481"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/579"},"#579"),").")),(0,s.kt)("h2",{id:"v392---2021-12-02"},"v3.9.2 - 2021-12-02"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Upgrade ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh"},"mvdan/sh")," which contains a fix a for a\nimportant regression on Windows (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/619"},"#619"),",\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/issues/768"},"mvdan/sh[#768](https://github.com/go-task/task/issues/768)"),",\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/pull/769"},"mvdan/sh[#769](https://github.com/go-task/task/issues/769)"),").")),(0,s.kt)("h2",{id:"v391---2021-11-28"},"v3.9.1 - 2021-11-28"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Add logging in verbose mode for when a task starts and finishes (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/533"},"#533"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/588"},"#588"),")."),(0,s.kt)("li",{parentName:"ul"},"Fix an issue with preconditions and context errors (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/597"},"#597"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/598"},"#598"),")."),(0,s.kt)("li",{parentName:"ul"},"Quote each ",(0,s.kt)("inlineCode",{parentName:"li"},"{{.CLI_ARGS}}")," argument to prevent one with spaces to become many\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/613"},"#613"),")."),(0,s.kt)("li",{parentName:"ul"},"Fix nil pointer when ",(0,s.kt)("inlineCode",{parentName:"li"},"cmd:")," was left empty (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/612"},"#612"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/614"},"#614"),")."),(0,s.kt)("li",{parentName:"ul"},"Upgrade ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh"},"mvdan/sh")," which contains two relevant\nfixes:",(0,s.kt)("ul",{parentName:"li"},(0,s.kt)("li",{parentName:"ul"},"Fix quote of empty strings in ",(0,s.kt)("inlineCode",{parentName:"li"},"shellQuote")," (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/609"},"#609"),",\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/issues/763"},"mvdan/sh[#763](https://github.com/go-task/task/issues/763)"),")."),(0,s.kt)("li",{parentName:"ul"},"Fix issue of wrong environment variable being picked when there's another\nvery similar one (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/586"},"#586"),",\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/pull/745"},"mvdan/sh[#745](https://github.com/go-task/task/issues/745)"),")."))),(0,s.kt)("li",{parentName:"ul"},"Install shell completions automatically when installing via Homebrew (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/264"},"#264"),",\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/592"},"#592"),",\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/homebrew-tap/pull/2"},"go-task/homebrew-tap[#2](https://github.com/go-task/task/issues/2)"),").")),(0,s.kt)("h2",{id:"v390---2021-10-02"},"v3.9.0 - 2021-10-02"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"A new ",(0,s.kt)("inlineCode",{parentName:"li"},"shellQuote")," function was added to the template system (",(0,s.kt)("inlineCode",{parentName:"li"},'{{shellQuote "a\nstring"}}'),") to ensure a string is safe for use in shell\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/pull/727"},"mvdan/sh[#727](https://github.com/go-task/task/issues/727)"),",\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/pull/737"},"mvdan/sh[#737](https://github.com/go-task/task/issues/737)"),",\n",(0,s.kt)("a",{parentName:"li",href:"https://pkg.go.dev/mvdan.cc/sh/v3%5B@v3%5D(https://github.com/v3).4.0/syntax#Quote"},"Documentation"),")"),(0,s.kt)("li",{parentName:"ul"},"In this version ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh"},"mvdan.cc/sh")," was upgraded with\nsome small fixes and features",(0,s.kt)("ul",{parentName:"li"},(0,s.kt)("li",{parentName:"ul"},"The ",(0,s.kt)("inlineCode",{parentName:"li"},"read -p")," flag is now supported (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/314"},"#314"),",\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/issues/551"},"mvdan/sh[#551](https://github.com/go-task/task/issues/551)"),",\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/pull/722"},"mvdan/sh[#772](https://github.com/go-task/task/issues/772)"),")"),(0,s.kt)("li",{parentName:"ul"},"The ",(0,s.kt)("inlineCode",{parentName:"li"},"pwd -P")," and ",(0,s.kt)("inlineCode",{parentName:"li"},"pwd -L")," flags are now supported (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/553"},"#553"),",\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/issues/724"},"mvdan/sh[#724](https://github.com/go-task/task/issues/724)"),",\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/pull/728"},"mvdan/sh[#728](https://github.com/go-task/task/issues/728)"),")"),(0,s.kt)("li",{parentName:"ul"},"The ",(0,s.kt)("inlineCode",{parentName:"li"},"$GID")," environment variable is now correctly being set (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/561"},"#561"),",\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/pull/723"},"mvdan/sh[#723](https://github.com/go-task/task/issues/723)"),")")))),(0,s.kt)("h2",{id:"v380---2021-09-26"},"v3.8.0 - 2021-09-26"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Add ",(0,s.kt)("inlineCode",{parentName:"li"},"interactive: true")," setting to improve support for interactive CLI apps\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/217"},"#217"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/563"},"#563"),")."),(0,s.kt)("li",{parentName:"ul"},"Fix some ",(0,s.kt)("inlineCode",{parentName:"li"},"nil")," errors (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/534"},"#534"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/573"},"#573"),")."),(0,s.kt)("li",{parentName:"ul"},"Add ability to declare an included Taskfile as optional (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/519"},"#519"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/552"},"#552"),")."),(0,s.kt)("li",{parentName:"ul"},"Add support for including Taskfiles in the home directory by using ",(0,s.kt)("inlineCode",{parentName:"li"},"~")," (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/539"},"#539"),",\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/557"},"#557"),").")),(0,s.kt)("h2",{id:"v373---2021-09-04"},"v3.7.3 - 2021-09-04"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Add official support to Apple M1 (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/564"},"#564"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/567"},"#567"),")."),(0,s.kt)("li",{parentName:"ul"},"Our ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/homebrew-tap"},"official Homebrew tap")," will\nsupport more platforms, including Apple M1")),(0,s.kt)("h2",{id:"v370---2021-07-31"},"v3.7.0 - 2021-07-31"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Add ",(0,s.kt)("inlineCode",{parentName:"li"},"run:")," setting to control if tasks should run multiple times or not.\nAvailable options are ",(0,s.kt)("inlineCode",{parentName:"li"},"always")," (the default), ",(0,s.kt)("inlineCode",{parentName:"li"},"when_changed")," (if a variable\nmodified the task) and ",(0,s.kt)("inlineCode",{parentName:"li"},"once")," (run only once no matter what).\nThis is a long time requested feature. Enjoy! (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/53"},"#53"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/359"},"#359"),").")),(0,s.kt)("h2",{id:"v360---2021-07-10"},"v3.6.0 - 2021-07-10"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Allow using both ",(0,s.kt)("inlineCode",{parentName:"li"},"sources:")," and ",(0,s.kt)("inlineCode",{parentName:"li"},"status:")," in the same task (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/411"},"#411"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/427"},"#427"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/477"},"#477"),")."),(0,s.kt)("li",{parentName:"ul"},"Small optimization and bug fix: don't compute variables if not needed for\n",(0,s.kt)("inlineCode",{parentName:"li"},"dotenv:")," (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/517"},"#517"),").")),(0,s.kt)("h2",{id:"v350---2021-07-04"},"v3.5.0 - 2021-07-04"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Add support for interpolation in ",(0,s.kt)("inlineCode",{parentName:"li"},"dotenv:")," (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/433"},"#433"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/434"},"#434"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/453"},"#453"),").")),(0,s.kt)("h2",{id:"v343---2021-05-30"},"v3.4.3 - 2021-05-30"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Add support for the ",(0,s.kt)("inlineCode",{parentName:"li"},"NO_COLOR")," environment variable.\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/459"},"#459"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/fatih/color/pull/137"},"fatih/color[#137](https://github.com/go-task/task/issues/137)"),")."),(0,s.kt)("li",{parentName:"ul"},"Fix bug where sources were not considering the right directory\nin ",(0,s.kt)("inlineCode",{parentName:"li"},"--watch")," mode (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/484"},"#484"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/485"},"#485"),").")),(0,s.kt)("h2",{id:"v342---2021-04-23"},"v3.4.2 - 2021-04-23"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"On watch, report which file failed to read (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/472"},"#472"),")."),(0,s.kt)("li",{parentName:"ul"},"Do not try to catch SIGKILL signal, which are not actually possible (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/476"},"#476"),")."),(0,s.kt)("li",{parentName:"ul"},"Improve version reporting when building Task from source using Go Modules\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/462"},"#462"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/473"},"#473"),").")),(0,s.kt)("h2",{id:"v341---2021-04-17"},"v3.4.1 - 2021-04-17"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Improve error reporting when parsing YAML: in some situations where you\nwould just see an generic error, you'll now see the actual error with\nmore detail: the YAML line the failed to parse, for example (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/467"},"#467"),")."),(0,s.kt)("li",{parentName:"ul"},"A JSON Schema was published ",(0,s.kt)("a",{parentName:"li",href:"https://json.schemastore.org/taskfile.json"},"here"),"\nand is automatically being used by some editors like Visual Studio Code\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/135"},"#135"),")."),(0,s.kt)("li",{parentName:"ul"},"Print task name before the command in the log output (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/398"},"#398"),").")),(0,s.kt)("h2",{id:"v330---2021-03-20"},"v3.3.0 - 2021-03-20"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Add support for delegating CLI arguments to commands with ",(0,s.kt)("inlineCode",{parentName:"li"},"--")," and a\nspecial ",(0,s.kt)("inlineCode",{parentName:"li"},"CLI_ARGS")," variable (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/327"},"#327"),")."),(0,s.kt)("li",{parentName:"ul"},"Add a ",(0,s.kt)("inlineCode",{parentName:"li"},"--concurrency")," (alias ",(0,s.kt)("inlineCode",{parentName:"li"},"-C"),") flag, to limit the number of tasks that\nrun concurrently. This is useful for heavy workloads. (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/345"},"#345"),").")),(0,s.kt)("h2",{id:"v322---2021-01-12"},"v3.2.2 - 2021-01-12"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Improve performance of ",(0,s.kt)("inlineCode",{parentName:"li"},"--list")," and ",(0,s.kt)("inlineCode",{parentName:"li"},"--summary")," by skipping running shell\nvariables for these flags (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/332"},"#332"),")."),(0,s.kt)("li",{parentName:"ul"},"Fixed a bug where an environment in a Taskfile was not always overridable\nby the system environment (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/425"},"#425"),")."),(0,s.kt)("li",{parentName:"ul"},"Fixed environment from .env files not being available as variables (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/379"},"#379"),")."),(0,s.kt)("li",{parentName:"ul"},"The install script is now working for ARM platforms (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/428"},"#428"),").")),(0,s.kt)("h2",{id:"v321---2021-01-09"},"v3.2.1 - 2021-01-09"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Fixed some bugs and regressions regarding dynamic variables and directories\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/426"},"#426"),")."),(0,s.kt)("li",{parentName:"ul"},"The ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/slim-sprig"},"slim-sprig")," package was updated\nwith the upstream ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/Masterminds/sprig"},"sprig"),".")),(0,s.kt)("h2",{id:"v320---2021-01-07"},"v3.2.0 - 2021-01-07"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Fix the ",(0,s.kt)("inlineCode",{parentName:"li"},".task")," directory being created in the task directory instead of the\nTaskfile directory (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/247"},"#247"),")."),(0,s.kt)("li",{parentName:"ul"},"Fix a bug where dynamic variables (those declared with ",(0,s.kt)("inlineCode",{parentName:"li"},"sh:"),") were not\nrunning in the task directory when the task has a custom dir or it was\nin an included Taskfile (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/384"},"#384"),")."),(0,s.kt)("li",{parentName:"ul"},"The watch feature (via the ",(0,s.kt)("inlineCode",{parentName:"li"},"--watch")," flag) got a few different bug fixes and\nshould be more stable now (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/423"},"#423"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/365"},"#365"),").")),(0,s.kt)("h2",{id:"v310---2021-01-03"},"v3.1.0 - 2021-01-03"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Fix a bug when the checksum up-to-date resolution is used by a task\nwith a custom ",(0,s.kt)("inlineCode",{parentName:"li"},"label:")," attribute (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/412"},"#412"),")."),(0,s.kt)("li",{parentName:"ul"},"Starting from this release, we're releasing official ARMv6 and ARM64 binaries\nfor Linux (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/375"},"#375"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/418"},"#418"),")."),(0,s.kt)("li",{parentName:"ul"},"Task now respects the order of declaration of included Taskfiles when\nevaluating variables declaring by them (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/393"},"#393"),")."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"set -e")," is now automatically set on every command. This was done to fix an\nissue where multiline string commands wouldn't really fail unless the\nsentence was in the last line (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/403"},"#403"),").")),(0,s.kt)("h2",{id:"v301---2020-12-26"},"v3.0.1 - 2020-12-26"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Allow use as a library by moving the required packages out of the ",(0,s.kt)("inlineCode",{parentName:"li"},"internal"),"\ndirectory (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/358"},"#358"),")."),(0,s.kt)("li",{parentName:"ul"},"Do not error if a specified dotenv file does not exist (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/378"},"#378"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/385"},"#385"),")."),(0,s.kt)("li",{parentName:"ul"},"Fix panic when you have empty tasks in your Taskfile (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/338"},"#338"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/362"},"#362"),").")),(0,s.kt)("h2",{id:"v300---2020-08-16"},"v3.0.0 - 2020-08-16"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"On ",(0,s.kt)("inlineCode",{parentName:"li"},"v3"),", all CLI variables will be considered global variables (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/336"},"#336"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/341"},"#341"),")"),(0,s.kt)("li",{parentName:"ul"},"Add support to ",(0,s.kt)("inlineCode",{parentName:"li"},".env")," like files (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/324"},"#324"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/356"},"#356"),")."),(0,s.kt)("li",{parentName:"ul"},"Add ",(0,s.kt)("inlineCode",{parentName:"li"},"label:")," to task so you can override the task name in the logs\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/321%5D"},"[#321](https://github.com/go-task/task/issues/321)"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/337"},"#337"),")."),(0,s.kt)("li",{parentName:"ul"},"Refactor how variables work on version 3 (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/311"},"#311"),")."),(0,s.kt)("li",{parentName:"ul"},"Disallow ",(0,s.kt)("inlineCode",{parentName:"li"},"expansions")," on v3 since it has no effect."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"Taskvars.yml")," is not automatically included anymore."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"Taskfile_{{OS}}.yml")," is not automatically included anymore."),(0,s.kt)("li",{parentName:"ul"},"Allow interpolation on ",(0,s.kt)("inlineCode",{parentName:"li"},"includes"),", so you can manually include a Taskfile\nbased on operation system, for example."),(0,s.kt)("li",{parentName:"ul"},"Expose ",(0,s.kt)("inlineCode",{parentName:"li"},".TASK")," variable in templates with the task name (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/252"},"#252"),")."),(0,s.kt)("li",{parentName:"ul"},"Implement short task syntax (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/194"},"#194"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/240"},"#240"),")."),(0,s.kt)("li",{parentName:"ul"},"Added option to make included Taskfile run commands on its own directory\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/260"},"#260"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/144"},"#144"),")"),(0,s.kt)("li",{parentName:"ul"},"Taskfiles in version 1 are not supported anymore (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/237"},"#237"),")."),(0,s.kt)("li",{parentName:"ul"},"Added global ",(0,s.kt)("inlineCode",{parentName:"li"},"method:")," option. With this option, you can set a default\nmethod to all tasks in a Taskfile (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/246"},"#246"),")."),(0,s.kt)("li",{parentName:"ul"},"Changed default method from ",(0,s.kt)("inlineCode",{parentName:"li"},"timestamp")," to ",(0,s.kt)("inlineCode",{parentName:"li"},"checksum")," (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/246"},"#246"),")."),(0,s.kt)("li",{parentName:"ul"},"New magic variables are now available when using ",(0,s.kt)("inlineCode",{parentName:"li"},"status:"),":\n",(0,s.kt)("inlineCode",{parentName:"li"},".TIMESTAMP")," which contains the greatest modification date\nfrom the files listed in ",(0,s.kt)("inlineCode",{parentName:"li"},"sources:"),", and ",(0,s.kt)("inlineCode",{parentName:"li"},".CHECKSUM"),", which\ncontains a checksum of all files listed in ",(0,s.kt)("inlineCode",{parentName:"li"},"status:"),".\nThis is useful for manual checking when using external, or even remote,\nartifacts when using ",(0,s.kt)("inlineCode",{parentName:"li"},"status:")," (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/216"},"#216"),")."),(0,s.kt)("li",{parentName:"ul"},"We're now using ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/slim-sprig"},"slim-sprig")," instead of\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/Masterminds/sprig"},"sprig"),", which allowed a file size\nreduction of about 22% (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/219"},"#219"),")."),(0,s.kt)("li",{parentName:"ul"},"We now use some colors on Task output to better distinguish message types -\ncommands are green, errors are red, etc (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/207"},"#207"),").")),(0,s.kt)("h2",{id:"v281---2020-05-20"},"v2.8.1 - 2020-05-20"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Fix error code for the ",(0,s.kt)("inlineCode",{parentName:"li"},"--help")," flag (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/300"},"#300"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/330"},"#330"),")."),(0,s.kt)("li",{parentName:"ul"},"Print version to stdout instead of stderr (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/299"},"#299"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/329"},"#329"),")."),(0,s.kt)("li",{parentName:"ul"},"Supress ",(0,s.kt)("inlineCode",{parentName:"li"},"context")," errors when using the ",(0,s.kt)("inlineCode",{parentName:"li"},"--watch")," flag (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/313"},"#313"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/317"},"#317"),")."),(0,s.kt)("li",{parentName:"ul"},"Support templating on description (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/276"},"#276"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/283"},"#283"),").")),(0,s.kt)("h2",{id:"v280---2019-12-07"},"v2.8.0 - 2019-12-07"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Add ",(0,s.kt)("inlineCode",{parentName:"li"},"--parallel")," flag (alias ",(0,s.kt)("inlineCode",{parentName:"li"},"-p"),") to run tasks given by the command line in\nparallel (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/266"},"#266"),")."),(0,s.kt)("li",{parentName:"ul"},"Fixed bug where calling the ",(0,s.kt)("inlineCode",{parentName:"li"},"task")," CLI only informing global vars would not\nexecute the ",(0,s.kt)("inlineCode",{parentName:"li"},"default")," task."),(0,s.kt)("li",{parentName:"ul"},"Add hability to silent all tasks by adding ",(0,s.kt)("inlineCode",{parentName:"li"},"silent: true")," a the root of the\nTaskfile.")),(0,s.kt)("h2",{id:"v271---2019-11-10"},"v2.7.1 - 2019-11-10"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Fix error being raised when ",(0,s.kt)("inlineCode",{parentName:"li"},"exit 0")," was called (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/251"},"#251"),").")),(0,s.kt)("h2",{id:"v270---2019-09-22"},"v2.7.0 - 2019-09-22"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Fixed panic bug when assigning a global variable (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/229"},"#229"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/243"},"#243"),")."),(0,s.kt)("li",{parentName:"ul"},"A task with ",(0,s.kt)("inlineCode",{parentName:"li"},"method: checksum")," will now re-run if generated files are deleted\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/228"},"#228"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/238"},"#238"),").")),(0,s.kt)("h2",{id:"v260---2019-07-21"},"v2.6.0 - 2019-07-21"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Fixed some bugs regarding minor version checks on ",(0,s.kt)("inlineCode",{parentName:"li"},"version:"),"."),(0,s.kt)("li",{parentName:"ul"},"Add ",(0,s.kt)("inlineCode",{parentName:"li"},"preconditions:")," to task (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/205"},"#205"),")."),(0,s.kt)("li",{parentName:"ul"},"Create directory informed on ",(0,s.kt)("inlineCode",{parentName:"li"},"dir:")," if it doesn't exist (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/209"},"#209"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/211"},"#211"),")."),(0,s.kt)("li",{parentName:"ul"},"We now have a ",(0,s.kt)("inlineCode",{parentName:"li"},"--taskfile")," flag (alias ",(0,s.kt)("inlineCode",{parentName:"li"},"-t"),"), which can be used to run\nanother Taskfile (other than the default ",(0,s.kt)("inlineCode",{parentName:"li"},"Taskfile.yml"),") (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/221"},"#221"),")."),(0,s.kt)("li",{parentName:"ul"},"It's now possible to install Task using Homebrew on Linux\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/homebrew-tap/pull/1"},"go-task/homebrew-tap[#1](https://github.com/go-task/task/issues/1)"),").")),(0,s.kt)("h2",{id:"v252---2019-05-11"},"v2.5.2 - 2019-05-11"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Reverted YAML upgrade due issues with CRLF on Windows\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/201"},"#201"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-yaml/yaml/issues/450"},"go-yaml/yaml[#450](https://github.com/go-task/task/issues/450)"),")."),(0,s.kt)("li",{parentName:"ul"},"Allow setting global variables through the CLI (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/192"},"#192"),").")),(0,s.kt)("h2",{id:"251---2019-04-27"},"2.5.1 - 2019-04-27"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Fixed some issues with interactive command line tools, where sometimes the\noutput were not being shown, and similar issues (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/114"},"#114"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/190"},"#190"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/200"},"#200"),")."),(0,s.kt)("li",{parentName:"ul"},"Upgraded ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-yaml/yaml"},"go-yaml/yaml")," from v2 to v3.")),(0,s.kt)("h2",{id:"v250---2019-03-16"},"v2.5.0 - 2019-03-16"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"We moved from the taskfile.org domain to the new fancy taskfile.dev domain.\nWhile stuff is being redirected, we strongly recommend to everyone that use\n",(0,s.kt)("a",{parentName:"li",href:"https://taskfile.dev/#/installation?id=install-script"},"this install script"),"\nto use the new taskfile.dev domain on scripts from now on."),(0,s.kt)("li",{parentName:"ul"},"Fixed to the ZSH completion (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/182"},"#182"),")."),(0,s.kt)("li",{parentName:"ul"},"Add ",(0,s.kt)("a",{parentName:"li",href:"https://taskfile.org/#/usage?id=display-summary-of-task"},(0,s.kt)("inlineCode",{parentName:"a"},"--summary")," flag along with ",(0,s.kt)("inlineCode",{parentName:"a"},"summary:")," task\nattribute")," (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/180"},"#180"),").")),(0,s.kt)("h2",{id:"v240---2019-02-21"},"v2.4.0 - 2019-02-21"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Allow calling a task of the root Taskfile from an included Taskfile by\nprefixing it with ",(0,s.kt)("inlineCode",{parentName:"li"},":")," (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/161"},"#161"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/172"},"#172"),")."),(0,s.kt)("li",{parentName:"ul"},"Add flag to override the ",(0,s.kt)("inlineCode",{parentName:"li"},"output")," option (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/173"},"#173"),")."),(0,s.kt)("li",{parentName:"ul"},"Fix bug where Task was persisting the new checksum on the disk when the Dry\nMode is enabled (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/166"},"#166"),")."),(0,s.kt)("li",{parentName:"ul"},"Fix file timestamp issue when the file name has spaces (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/176"},"#176"),")."),(0,s.kt)("li",{parentName:"ul"},"Mitigating path expanding issues on Windows (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/170"},"#170"),").")),(0,s.kt)("h2",{id:"v230---2019-01-02"},"v2.3.0 - 2019-01-02"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"On Windows, Task can now be installed using ",(0,s.kt)("a",{parentName:"li",href:"https://scoop.sh/"},"Scoop")," (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/152"},"#152"),")."),(0,s.kt)("li",{parentName:"ul"},"Fixed issue with file/directory globing (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/153"},"#153"),")."),(0,s.kt)("li",{parentName:"ul"},"Added ability to globally set environment variables (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/138"},"#138"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/159"},"#159"),").")),(0,s.kt)("h2",{id:"v221---2018-12-09"},"v2.2.1 - 2018-12-09"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"This repository now uses Go Modules (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/143"},"#143"),"). We'll still keep the ",(0,s.kt)("inlineCode",{parentName:"li"},"vendor"),"\ndirectory in sync for some time, though;"),(0,s.kt)("li",{parentName:"ul"},"Fixing a bug when the Taskfile has no tasks but includes another Taskfile\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/150"},"#150"),");"),(0,s.kt)("li",{parentName:"ul"},"Fix a bug when calling another task or a dependency in an included Taskfile\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/151"},"#151"),").")),(0,s.kt)("h2",{id:"v220---2018-10-25"},"v2.2.0 - 2018-10-25"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Added support for ",(0,s.kt)("a",{parentName:"li",href:"https://taskfile.org/#/usage?id=including-other-taskfiles"},"including other\nTaskfiles")," (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/98"},"#98"),")",(0,s.kt)("ul",{parentName:"li"},(0,s.kt)("li",{parentName:"ul"},"This should be considered experimental. For now, only including local files\nis supported, but support for including remote Taskfiles is being discussed.\nIf you have any feedback, please comment on ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/98"},"#98"),"."))),(0,s.kt)("li",{parentName:"ul"},"Task now have a dedicated documentation site: ",(0,s.kt)("a",{parentName:"li",href:"https://taskfile.org"},"https://taskfile.org"),(0,s.kt)("ul",{parentName:"li"},(0,s.kt)("li",{parentName:"ul"},"Thanks to ",(0,s.kt)("a",{parentName:"li",href:"https://docsify.js.org/"},"Docsify")," for making this pretty easy. To\ncheck the source code, just take a look at the\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/tree/main/docs"},"docs")," directory of this\nrepository. Contributions to the documentation is really appreciated.")))),(0,s.kt)("h2",{id:"v211---2018-09-17"},"v2.1.1 - 2018-09-17"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Fix suggestion to use ",(0,s.kt)("inlineCode",{parentName:"li"},"task --init")," not being shown anymore (when a\n",(0,s.kt)("inlineCode",{parentName:"li"},"Taskfile.yml")," is not found)"),(0,s.kt)("li",{parentName:"ul"},"Fix error when using checksum method and no file exists for a source glob\n(",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/131"},"#131"),")"),(0,s.kt)("li",{parentName:"ul"},"Fix signal handling when the ",(0,s.kt)("inlineCode",{parentName:"li"},"--watch")," flag is given (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/132"},"#132"),")")),(0,s.kt)("h2",{id:"v210---2018-08-19"},"v2.1.0 - 2018-08-19"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Add a ",(0,s.kt)("inlineCode",{parentName:"li"},"ignore_error")," option to task and command (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/123"},"#123"),")"),(0,s.kt)("li",{parentName:"ul"},"Add a dry run mode (",(0,s.kt)("inlineCode",{parentName:"li"},"--dry")," flag) (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/126"},"#126"),")")),(0,s.kt)("h2",{id:"v203---2018-06-24"},"v2.0.3 - 2018-06-24"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},'Expand environment variables on "dir", "sources" and "generates" (',(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/116"},"#116"),")"),(0,s.kt)("li",{parentName:"ul"},"Fix YAML merging syntax (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/112"},"#112"),")"),(0,s.kt)("li",{parentName:"ul"},"Add ZSH completion (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/111"},"#111"),")"),(0,s.kt)("li",{parentName:"ul"},"Implement new ",(0,s.kt)("inlineCode",{parentName:"li"},"output")," option. Please check out the\n",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task#output-syntax"},"documentation"))),(0,s.kt)("h2",{id:"v202---2018-05-01"},"v2.0.2 - 2018-05-01"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Fix merging of YAML anchors (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/112"},"#112"),")")),(0,s.kt)("h2",{id:"v201---2018-03-11"},"v2.0.1 - 2018-03-11"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Fixes panic on ",(0,s.kt)("inlineCode",{parentName:"li"},"task --list"))),(0,s.kt)("h2",{id:"v200---2018-03-08"},"v2.0.0 - 2018-03-08"),(0,s.kt)("p",null,"Version 2.0.0 is here, with a new Taskfile format."),(0,s.kt)("p",null,"-Please, make sure to read the ",(0,s.kt)("a",{parentName:"p",href:"https://github.com/go-task/task/blob/main/TASKFILE_VERSIONS.md"},"Taskfile\n-versions"),"\n-document, since it describes in depth what changed for this version."),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"New Taskfile version 2 (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/77"},"#77"),")"),(0,s.kt)("li",{parentName:"ul"},"Possibility to have global variables in the ",(0,s.kt)("inlineCode",{parentName:"li"},"Taskfile.yml")," instead of\n",(0,s.kt)("inlineCode",{parentName:"li"},"Taskvars.yml")," (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/66"},"#66"),")"),(0,s.kt)("li",{parentName:"ul"},"Small improvements and fixes")),(0,s.kt)("h2",{id:"v144---2017-11-19"},"v1.4.4 - 2017-11-19"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Handle SIGINT and SIGTERM (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/75"},"#75"),");"),(0,s.kt)("li",{parentName:"ul"},"List: print message with there's no task with description;"),(0,s.kt)("li",{parentName:"ul"},'Expand home dir ("~" symbol) on paths (',(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/74"},"#74"),");"),(0,s.kt)("li",{parentName:"ul"},"Add Snap as an installation method;"),(0,s.kt)("li",{parentName:"ul"},"Move examples to its own repo;"),(0,s.kt)("li",{parentName:"ul"},'Watch: also walk on tasks called on on "cmds", and not only on "deps";'),(0,s.kt)("li",{parentName:"ul"},"Print logs to stderr instead of stdout (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/68"},"#68"),");"),(0,s.kt)("li",{parentName:"ul"},"Remove deprecated ",(0,s.kt)("inlineCode",{parentName:"li"},"set")," keyword;"),(0,s.kt)("li",{parentName:"ul"},"Add checksum based status check, alternative to timestamp based.")),(0,s.kt)("h2",{id:"v143---2017-09-07"},"v1.4.3 - 2017-09-07"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Allow assigning variables to tasks at run time via CLI (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/33"},"#33"),")"),(0,s.kt)("li",{parentName:"ul"},"Added suport for multiline variables from sh (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/64"},"#64"),")"),(0,s.kt)("li",{parentName:"ul"},"Fixes env: remove square braces and evaluate shell (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/62"},"#62"),")"),(0,s.kt)("li",{parentName:"ul"},"Watch: change watch library and few fixes and improvements"),(0,s.kt)("li",{parentName:"ul"},"When use watching, cancel and restart long running process on file change (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/59"},"#59"),"\nand ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/60"},"#60"),")")),(0,s.kt)("h2",{id:"v142---2017-07-30"},"v1.4.2 - 2017-07-30"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Flag to set directory of execution"),(0,s.kt)("li",{parentName:"ul"},"Always echo command if is verbose mode"),(0,s.kt)("li",{parentName:"ul"},"Add silent mode to disable echoing of commands"),(0,s.kt)("li",{parentName:"ul"},"Fixes and improvements of variables (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/56"},"#56"),")")),(0,s.kt)("h2",{id:"v141---2017-07-15"},"v1.4.1 - 2017-07-15"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Allow use of YAML for dynamic variables instead of $ prefix",(0,s.kt)("ul",{parentName:"li"},(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"VAR: {sh: echo Hello}")," instead of ",(0,s.kt)("inlineCode",{parentName:"li"},"VAR: $echo Hello")))),(0,s.kt)("li",{parentName:"ul"},"Add ",(0,s.kt)("inlineCode",{parentName:"li"},"--list")," (or ",(0,s.kt)("inlineCode",{parentName:"li"},"-l"),") flag to print existing tasks"),(0,s.kt)("li",{parentName:"ul"},"OS specific Taskvars file (e.g. ",(0,s.kt)("inlineCode",{parentName:"li"},"Taskvars_windows.yml"),", ",(0,s.kt)("inlineCode",{parentName:"li"},"Taskvars_linux.yml"),",\netc)"),(0,s.kt)("li",{parentName:"ul"},"Consider task up-to-date on equal timestamps (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/49"},"#49"),")"),(0,s.kt)("li",{parentName:"ul"},"Allow absolute path in generates section (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/48"},"#48"),")"),(0,s.kt)("li",{parentName:"ul"},"Bugfix: allow templating when calling deps (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/42"},"#42"),")"),(0,s.kt)("li",{parentName:"ul"},"Fix panic for invalid task in cyclic dep detection"),(0,s.kt)("li",{parentName:"ul"},"Better error output for dynamic variables in Taskvars.yml (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/41"},"#41"),")"),(0,s.kt)("li",{parentName:"ul"},"Allow template evaluation in parameters")),(0,s.kt)("h2",{id:"v140---2017-07-06"},"v1.4.0 - 2017-07-06"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Cache dynamic variables"),(0,s.kt)("li",{parentName:"ul"},"Add verbose mode (",(0,s.kt)("inlineCode",{parentName:"li"},"-v")," flag)"),(0,s.kt)("li",{parentName:"ul"},"Support to task parameters (overriding vars) (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/31"},"#31"),") (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/32"},"#32"),")"),(0,s.kt)("li",{parentName:"ul"},'Print command, also when "set:" is specified (',(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/35"},"#35"),")"),(0,s.kt)("li",{parentName:"ul"},"Improve task command help text (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/35"},"#35"),")")),(0,s.kt)("h2",{id:"v131---2017-06-14"},"v1.3.1 - 2017-06-14"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Fix glob not working on commands (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/28"},"#28"),")"),(0,s.kt)("li",{parentName:"ul"},"Add ExeExt template function"),(0,s.kt)("li",{parentName:"ul"},"Add ",(0,s.kt)("inlineCode",{parentName:"li"},"--init")," flag to create a new Taskfile"),(0,s.kt)("li",{parentName:"ul"},"Add status option to prevent task from running (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/27"},"#27"),")"),(0,s.kt)("li",{parentName:"ul"},"Allow interpolation on ",(0,s.kt)("inlineCode",{parentName:"li"},"generates")," and ",(0,s.kt)("inlineCode",{parentName:"li"},"sources")," attributes (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/26"},"#26"),")")),(0,s.kt)("h2",{id:"v130---2017-04-24"},"v1.3.0 - 2017-04-24"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Migrate from os/exec.Cmd to a native Go sh/bash interpreter",(0,s.kt)("ul",{parentName:"li"},(0,s.kt)("li",{parentName:"ul"},"This is a potentially breaking change if you use Windows."),(0,s.kt)("li",{parentName:"ul"},"Now, ",(0,s.kt)("inlineCode",{parentName:"li"},"cmd")," is not used anymore on Windows. Always use Bash-like syntax for\nyour commands, even on Windows."))),(0,s.kt)("li",{parentName:"ul"},'Add "ToSlash" and "FromSlash" to template functions'),(0,s.kt)("li",{parentName:"ul"},"Use functions defined on github.com/Masterminds/sprig"),(0,s.kt)("li",{parentName:"ul"},"Do not redirect stdin while running variables commands"),(0,s.kt)("li",{parentName:"ul"},"Using ",(0,s.kt)("inlineCode",{parentName:"li"},"context")," and ",(0,s.kt)("inlineCode",{parentName:"li"},"errgroup")," packages (this will make other tasks to be\ncancelled, if one returned an error)")),(0,s.kt)("h2",{id:"v120---2017-04-02"},"v1.2.0 - 2017-04-02"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"More tests and Travis integration"),(0,s.kt)("li",{parentName:"ul"},"Watch a task (experimental)"),(0,s.kt)("li",{parentName:"ul"},"Possibility to call another task"),(0,s.kt)("li",{parentName:"ul"},'Fix "=" not being reconized in variables/environment variables'),(0,s.kt)("li",{parentName:"ul"},"Tasks can now have a description, and help will print them (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/10"},"#10"),")"),(0,s.kt)("li",{parentName:"ul"},"Task dependencies now run concurrently"),(0,s.kt)("li",{parentName:"ul"},"Support for a default task (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/16"},"#16"),")")),(0,s.kt)("h2",{id:"v110---2017-03-08"},"v1.1.0 - 2017-03-08"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Support for YAML, TOML and JSON (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/1"},"#1"),")"),(0,s.kt)("li",{parentName:"ul"},"Support running command in another directory (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/4"},"#4"),")"),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"--force")," or ",(0,s.kt)("inlineCode",{parentName:"li"},"-f")," flag to force execution of task even when it's up-to-date"),(0,s.kt)("li",{parentName:"ul"},"Detection of cyclic dependencies (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/5"},"#5"),")"),(0,s.kt)("li",{parentName:"ul"},"Support for variables (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/6"},"#6"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/9"},"#9"),", ",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/14"},"#14"),")"),(0,s.kt)("li",{parentName:"ul"},"Operation System specific commands and variables (",(0,s.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/13"},"#13"),")")),(0,s.kt)("h2",{id:"v100---2017-02-28"},"v1.0.0 - 2017-02-28"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Add LICENSE file")))}m.isMDXComponent=!0}}]);