Skip to content

引入实验功能

Pete Davison
Pete Davison
Maintainer

近期,Task 项目发展迅猛,我一直在深入思考项目的未来走向,以及我们如何持续演进和成长。虽然我不常写作,但我觉得我们可以更好地将这些思考传达给社区。因此,怀着这样的想法,这是首篇(希望未来还有更多)关于 Task 及我们动态的博客文章。

📆 那么,我们最近在忙什么?

过去约 12 个月里,@andreynering(项目作者及维护者)和我(@pd93)利用业余时间维护和改进 Task v3,并取得了显著进展。期间我们发布的部分成果包括:

  • 官方 VS Code 扩展
  • 内部任务 (#818)。
  • 任务别名 (#879)。
  • 任务循环执行 (#1220)。
  • 对核心代码库进行一系列重构,提升可维护性和可扩展性。
  • 大量漏洞修复与改进。
  • Crowdin 的集成。正在努力将文档翻译为7种新语言(特别感谢所有翻译人员的大力支持!)。
  • 以及更多精彩内容!✨

我们还在开发一些令人兴奋且备受期待的功能,例如支持运行远程 Taskfile (#1317)。

若没有项目约 150 位(且持续增长)贡献者、众多赞助商以及热情用户社区的支持,这一切都不可能实现。自 2022 年初以来,我们共同将 GitHub star 数量增长至超过 8400 ⭐,且增速不断加快。我们对大家的帮助与支持感激不尽!🚀

Star 历史图表

下一步计划?🤔

看到如此多的用户喜爱并使用 Task 令人倍感鼓舞。然而,与此同时,问题反馈和功能请求的数量也有所增加,尤其是那些需要 Task 进行破坏性变更的议题。这并非坏事,但随着项目发展,我们需要更负责任地处理这些变更,确保现有用户及其 Taskfile 的稳定性和兼容性。

此时您可能会想:

"但你们采用语义化版本控制——直接发布包含破坏性变更的新主版本即可。"

这么说没错…某种程度上。理论上这很合理,但现实是我们没有时间一次性完成 Task 的重大重构。这需要投入大量时间和协调工作,而由于我们需要兼顾全职工作和个人生活,难以做出这样的承诺。更频繁的小规模主版本发布也会给用户带来显著不便,因为他们需要持续跟进我们的破坏性变更。幸运的是,我们有更好的解决方案。

将有哪些变化?🧐

今后,破坏性变更将作为“实验功能”引入 Task 的_次_版本。用户需通过启用功能标志(feature flags)选择加入这些功能。这将使我们能够逐步发布新功能,并在未来主版本中将其设为默认行为前收集社区反馈。

为帮助用户适应下一个主版本,我们将在文档网站维护已弃用功能实验功能列表,并发布如何迁移至新行为的指南。

您可在 GitHub 上阅读完整的破坏性变更提案,并查看所有当前实验功能及其状态,包括温和强制(Gentle Force)远程 Taskfile实验。

v2/v3 功能将如何处理?

v2 已被正式弃用。如果您仍在使用顶部标有 version: "2" 的 Taskfile,我们_强烈建议_尽快升级。移除 v2 将有助于我们清理代码库,专注于新功能的开发。

v4 发布后,我们将继续支持 v3 一段时间(如漏洞修复等)。但由于我们将从向后兼容模式转向向前兼容模式,v4 本身将不再向后兼容 v3

v4 何时发布?👀

🤷‍♂️ 准备就绪之时。

严肃地说,目前我们尚未制定具体时间表。我们将优先解决 v3 API 最严重的问题,定期评估项目状态。当我们认为项目处于良好稳定阶段,并为用户明确了升级路径且拥有多项稳定实验功能后,才会开始考虑 v4。

👋 最后的话

Task 正在快速发展,我们对其未来充满期待。希望我们为改进项目和流程所采取的措施能助力持续成长。一如既往,如果您有任何疑问或反馈,欢迎在 GitHub 上评论或提交议题讨论。您也可以加入我们的 Discord 社区。

我计划未来就各类 Task 相关主题撰写更多博客文章,敬请定期关注我们的动态!