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 に項目を追記します。