小马队

印第安纳波利斯小马队

变更集 v3:通过补丁增强对等依赖性,并仅以 88% 的较小安装量提供 ESM

变更集 v3:通过补丁增强对等依赖性,并仅以 88% 的较小安装量提供 ESM


Changesets 是一个用于 JavaScript monorepos 的基于文件的版本控制和变更日志工具,现已发布 v3.0,这是自 v2 以来七年来的第一个主要版本,带来了更精简的安装、重新设计的 CLI 以及对如何消除对等依赖关系的期待已久的更改。

于 2026 年 8 月 11 日发布,由 Mateusz Burzyński、Bjorn Lu 和 Adam Haglund 组成的新维护团队领导,正在制定公共 v3 发布计划。它配备了一个新的文档网站、匹配的更改/操作 v2 以及其背后的每周下载量超过 300 万次。

现在,所有软件包仅支持 ESM,并且需要 Node.js 22.11 或更高版本,加上 pnpm 10、npm 10.9 或最低 Yarn 4.5.2,Yarn Classic 已放弃。将清理削减安装大小从 16.1MB 移至 2.1MB,并将依赖项从 95 个移至 39 个,并在内部移至项目 tsdown、rolldown、vitest 和 oxfmt。更改日志格式不再提取自己的更漂亮的副本,而是使用 @changesets/format 来标识项目中的 Pretty、oxfmt、deno 或 dprint。

主要行为变化是,对等依赖项更新现在为依赖项提供了补丁程序,而不是主要的补丁程序。多年来,旧的行为引起了抱怨,包括第 1011 期,维护设计系统 monorepo 的团队写道,升级到主要版本“似乎发送了错误的信息并且不尊重 Semvar”。真正突破的作者仍然可以为依赖者添加明显的核心更改。

最近推出的竞争对手 Bumpy 的管理员指出,v3“硬编码反严重性”,因为现在假设每个对等点更改都是不间断的,并且这两个版本都不允许您配置传播。虽然列出了 pnpm 目录支持和未更改的预发布设计等差距,但他们的比较仍然认为 v3 解决了许多长期存在的抱怨。

重构了用于 cac 中交互的参数解析和时钟提示的 CLI,这还修复了导致进程崩溃的中止提示。新的 packpublish-plan 命令支持 e18e 社区推荐的构建、打包和发布顺序,v2 公开了操作子任务,因此使用 npm 可信发布的团队可以减少发布权限。

升级主要是一项配置任务,记录在迁移指南中。除了安装要求之外,命令和标志已被重命名:


# v2
changeset tag
changeset status --sinceMaster
# v3
changeset git-tag
changeset status --since=main

配置也动了 prettier 替换为 format 并且私有包不会被重新格式化,除非重新选择:


{
 "format": "auto",
 "privatePackages": { "version": true, "tag": false }
}

changeset version 现在,当没有任何内容可发布时,会以代码 1 退出,因此正如一个团队的发布手册所警告的那样,“任何在 set -e 下无条件运行的脚本现在都将因空发布而失败”。

与语义发布不同,语义发布从传统提交和发布中预测版本,变更集是其典型的业务停止,贡献者在 Markdown 文件中写入发布意图,并且发布可以作为拉取请求进行审查。 v3 不会改变该模型,它的安装成本更低,并且在对等依赖关系方面表现更好。

Changesets 是 MIT 许可的工具,用于管理版本和变更日志,重点是 monorepos。贡献者宣布如何发布他们的更改,CLI 将这些公告转化为版本升级、更改日志条目和注册表发布。 v3 现已可用,v2 保留在维护分支中。





Source link

Leave a Reply

Your email address will not be published. Required fields are marked *