Guide/guides
リリース / 互換性ポリシー
本番で使ってもらうために、リリースについて最低限守る約束をまとめます。
リリース / 互換性ポリシー
本番で使ってもらうために、リリースについて最低限守る約束をまとめます。
バージョニング(SemVer)
安定版のバージョン番号は Semantic Versioning に従います。
- MAJOR: 互換性のない変更
- MINOR: 後方互換を保った機能追加
- PATCH: 後方互換を保ったバグ修正とセキュリティ修正
1.0 以降、破壊的変更はメジャーリリースでだけ入れます。マイナーリリースとパッチリリースは後方互換を保ちます。
ランタイム互換性マトリクス
| ランタイム | サポート | 補足 |
|---|---|---|
Bun 1.4.2 |
主対象 | 開発、テスト、CLI、セルフホストの本番環境で使います。CI とリリースのワークフローはこのバージョンに固定しています |
Bun 1.4.4 |
試験運用 | CI の非必須レーンで、主対象に昇格する前に検証しています。リリースの基準には含めません |
Bun 1.3.14 |
ベストエフォート | CI ではテストしていません。Bun 1.4.0 未満では guren doctor が警告を出します |
| Node.js | デプロイ用 | AWS Lambda と Vercel 向けのビルドは、各アダプターが対応するランタイムで動きます。開発と CLI には Bun が必要です |
| Cloudflare Workers | デプロイ用 | Cloudflare プラグインと、プラグインが生成する互換性設定が必要です |
マトリクスを変えるときは、このガイドとサポートマトリクスを同じ PR で更新してください。変更内容を書いた changeset も追加し、リリースノートに載るようにします。
後方互換ルール
@guren/*から公開している export は、すべて API として扱います。- 公開している型や挙動を削除・変更するときは、次の 3 つを揃えます。
- リリースノートの移行手順の節
- 可能な範囲での段階的な非推奨化
- 変更前と変更後の挙動の境目を確かめるテスト
リリースノート方針
- どのリリースにも changelog とリリースノートを付けます。
- リリースノートには少なくとも次の項目を入れます。
- Added / Changed / Fixed
- Breaking changes(ある場合)
- 移行手順
- ランタイム互換性の変更
アップグレード文書の必須化
マイナーリリースを出すたびに、docs/en/guides/upgrading.md と docs/ja/guides/upgrading.md に項目を追記します。