Taskfile 版本管理
随着新功能的添加和旧功能的移除,Taskfile 模式会逐步演变。本文档说明如何利用 Taskfile 的模式版本号,确保您的 Taskfile 使用者正在使用正确的 Task 版本。
Taskfile 版本的含义
每个 Taskfile 顶部的模式版本号对应着 Task CLI 的某个版本,进而代表了该版本所提供的功能特性。创建 Taskfile 时,您应指定支持所需功能的最低 Task 版本。如果尝试运行 Taskfile 时使用的 Task 版本未达到最低要求,程序将报错退出。例如,某个 Taskfile 的开头为:
version: '3.2.1'使用 Task v3.2.0 版本执行时将会报错退出。使用 v3.2.1 或更高版本则可正常运行。
Task 接受所有符合 SemVer 规范的版本字符串,包括省略次版本号或修订号的简写形式。例如 3、3.0 和 3.0.0 都具有相同含义且均为有效格式。多数 Taskfile 仅指定主版本号,但在需要与他人共享 Taskfile 时,更精确的版本指定会更有帮助。
例如下面这个使用了别名功能的 Taskfile:
version: '3'
tasks:
hello:
aliases:
- hi
- hey
cmds:
- echo "Hello, world!"别名功能自 Task v3.17.0 开始引入,但该 Taskfile 仅指定了 3 作为版本号。这意味着安装了 v3.16.0 或更低版本的用户在运行任务时,可能会收到令人困惑的错误信息——因为 Taskfile 表明任何高于 v3.0.0 的版本都应兼容。
此时我们应该将文件开头改为:
version: '3.17'现在当有人尝试使用旧版 Task 运行该 Taskfile 时,将会收到错误提示,要求将其 Task 版本升级至 v3.17.0 或更高版本。
版本 1 和 2
Task 的版本 1 和版本 2 已不再官方支持,强烈建议仍在使用这些版本的用户升级至最新版 Task。
虽然 Task 的 version: 2 支持模式版本号,但其运行机制与上文讨论的版本控制方式并不完全相同,不能依赖其实现上述功能。