# リリース / 互換性ポリシー

このドキュメントは、本番運用に向けた最低限のリリース契約を定義します。

## バージョニング（SemVer）

安定版では Semantic Versioning を採用します:

- **MAJOR**: 非互換変更
- **MINOR**: 後方互換のある機能追加
- **PATCH**: 後方互換のあるバグ修正/セキュリティ修正

`1.0` 以降、破壊的変更はメジャーリリースでのみ行います。マイナー・パッチは後方互換です。

## ランタイム互換性マトリクス

| ランタイム | サポート | 補足 |
| --- | --- | --- |
| Bun `1.3.x` | 対応（主対象） | CI / Release は Bun `1.3.1` で検証 |
| Node.js `20.x` | ツール用途のみ | ドキュメント/ビルド補助など |
| Node.js `22.x` | ツール用途のみ | ドキュメント/ビルド補助など |

マトリクスを変更する場合は、このガイドと `CHANGELOG.md` を同一PRで更新します。

## 後方互換ルール

- `@guren/*` の公開 export は API 面として扱います。
- 公開型/挙動の削除・変更には次が必須です:
  - リリースノートでの移行セクション
  - 可能なら段階的な非推奨化
  - 旧挙動/新挙動境界をカバーするテスト

## リリースノート方針

- すべてのリリースに changelog / release notes を付与します。
- 最低限、以下を含めます:
  - Added / Changed / Fixed
  - Breaking changes（ある場合）
  - Migration 手順
  - ランタイム互換性変更

## アップグレード文書の必須化

各 minor リリースごとに `docs/en/guides/upgrading.md` と `docs/ja/guides/upgrading.md` へ追記します。
