Bumpy: ストリームライン化されたバージョニングとチェンジログのための Changesets のモダンな後継者
バージョン、リリース、およびチェンジログの管理は、特に複雑なモノレポ環境において、大きな課題となることがあります。Changesets のようなツールは価値のあるワークフローを提供してきましたが、それらには独自の複雑さや未解決の問題が伴うことがよくあります。そこで、これらの多くのペインポイントに正面から取り組み、開発者により直感的な体験を提供するモダンな後継者として設計された、新しいオープンソースのソリューション、Bumpy が登場しました。
Bumpy は、特に多数の関連パッケージを持つモノレポにおいて有益な、堅牢な代替手段として位置付けられています。ただし、よりシンプルなプロジェクト構成でも同様に効果的です。その核心的なミッションは、ファイルベースのバンプおよびチェンジログのワークフローを洗練させ、前身のツールを長年悩ませてきた数百ものオープンな問題を解決することです。
Changesets の制限への対処
Bumpy の作成者は、このツールが Changesets で見つかった 120 件以上の重要な問題を直接解決することを強調しています。安定性と開発者体験へのこの焦点は、いくつかの主要なアーキテクチャと機能の決定に表れています:
簡素化されたアーキテクチャとインストール
Changesets からの最も重要な違いの一つは、Bumpy のアーキテクチャの簡素さです。Changesets は 20 個のサブパッケージで構成されるモノレポとして構築されていますが、Bumpy ははるかにシンプルなモノリス・アプローチを採用しています。この簡素化は、インストールと使用にも及びます:
- Single Install: Changesets のように、GitHub app、GitHub action、npm モジュール、および個別のチェンジログ・フォーマッターをインストールする必要があることが多いのに対し、Bumpy はこれらを単一のインストールに集約しています。
強化された柔軟性とカスタマイズ性
Bumpy は、プロジェクトがリリースプロセスを管理する方法において、より大きな柔軟性を導入しています:
- Flexible Include/Exclude Logic: バージョニングのプロセスにおいて、どのパッケージが含められるか、または除外されるかをよりきめ細かな制御が可能になり、プライベートパッケージの動作に関する仮定を超えた制御を提供します。
- Custom Publishing Commands: このツールは npm によるパブリッシングを前提としたり強制したりせず、ユーザーが特定のニーズに合わせてカスタムのパブリッシング・コマンドを定義することを可能にします。
- Sane Peer Dependency Bumping: Bumpy は、peer dependency のバージョン・バンプをより論理的で予測可能な方法で処理します。
- Built-in and Custom Formatters: チェンジログ用の組み込みフォーマッターが含まれており、開発者が独自のカスタム・フォーマッターを記述することをより容易にします。
Quality of Life Improvements
コア機能に加えて、Bumpy は開発者体験を改善するために設計されたいくつかの Quality of Life 向上策を取り入れています:
- Non-Interactive
addCommand:addコマンドの非対話型バージョンが利用可能です。これは、自動化エージェントや CI/CD パイプラインにおいて特に有用です。 - Delightful Frogs: このプロジェクトには、いくつかの遊び心のある要素も含まれています。