Monorepos JavaScript のファイルベースのバージョン管理および変更ログ ツールである Changesets は、v2 以来 7 年ぶりのメジャー リリースである v3.0 をリリースしました。これにより、インストールが簡略化され、CLI が再構築され、ピアの依存関係の削除方法に待望の変更が加えられました。
このリリースは、Mateusz Burzyński、Bjorn Lu、Adam Haglund からなる最新のメンテナンス チームが主導し、v3 のパブリック リリース計画に取り組み、2026 年 8 月 11 日にリリースされました。新しいドキュメント サイト、それに対応する v2 mod/action セット、および毎週 300 万を超えるダウンロードが提供されます。
すべてのパッケージは ESM のみになり、Node.js 22.11 以降に加えて、少なくとも pnpm 10、npm 10.9、または Yarn 4.5.2 (Yarn Classic は非推奨) が必要です。クリーンアップにより、インストール サイズが 16.1 MB から 2.1 MB に、依存関係が 95 から 39 に減少し、内部的にプロジェクトは tsdown、rolldown、vitest、oxfmt に移動されました。 Changelog の書式設定は、独自の Prettier コピーを取得しなくなりましたが、 @changesets/format を使用して、プロジェクト内の nicer、oxfmt、deno、または dprint を検出します。
主な動作の変更点は、ピアの依存関係の更新により、依存関係に重大な問題ではなく問題が発生するようになったことです。この古い動作は、モノレポ設計システムを保守しているチームがメジャー リリースが「間違ったメッセージを送信しているようで、セムバーを尊重していない」と書いた問題 1011 を含め、長年にわたる苦情を引き起こしました。本物のブレークを送信する作成者は、一連の主要な変更を依存関係に明示的に追加できます。
最近リリースされた競合製品である Bumpy の支持者は、各ピアの変更が破壊的ではないと想定されており、どちらのバージョンでも伝播を構成できないため、v3 は「逆の極端なコードを作成している」ことに注意しています。これらの比較では、pnpm カタログのサポートや変更されていないプレリリース設計などのギャップを列挙しながらも、多くの長年にわたる不満が修正されたことは v3 の功績として認められています。
CLI は、引数を解析し、対話のための clack リクエストを行うために cac 上に再構築されました。これにより、プロセスをブロックしていたキャンセルされたリクエストも修正されます。新しい pack そして publish-plan コマンドは、e18e コミュニティによって推奨されているビルド、パッケージ化、および公開シーケンスをサポートしており、v2 アクションは二次アクションを公開しているため、npm Trusted Publishing を使用しているチームは公開権限を制限できます。
アップグレードは主に構成作業であり、移行ガイドに記載されています。インストール要件に加えて、コマンドとフラグの名前が変更されました。
# 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 あるチームのリリースマニュアルに「-e セットの下で無条件に実行するスクリプトは、空のリリースでは失敗するようになる」と警告されているように、リリースするものが何もない場合はコード 1 で終了するようになりました。
従来のコミットとリリースからバージョンを推測するセマンティック リリースに対して、チェンジセットはその独特の交換を保持しており、これによりコントリビュータはリリースの意図をコミット ファイルに書き込み、リリースはプル リクエストとしてレビュー可能のままになります。 v3 ではそのモデルは変更されませんが、インストールが安価になり、ピアの依存関係に関する動作が向上します。
Changesets は、モノリポジトリに重点を置いたバージョンと変更ログを管理するための MIT ライセンスのツールです。貢献者は変更をどのようにリリースするかを宣言し、CLI はこれらの宣言をバージョン バンプ、変更ログ エントリ、レジストリ リリースに変換します。 v3 は現在利用可能ですが、v2 はメンテナンス ブランチに保持されています。