変更履歴の規約
変更履歴の規約
「変更履歴の規約」という見出しのセクションこのページは、すべての公開 NextPDF リポジトリが変更を記録し、リリースを作成する際に従う取り決めです。これは規約のリファレンスであり、パッケージの挙動を主張するものではありません。パッケージ別、バージョン別の変更履歴本文は、各リポジトリの CHANGELOG.md にあります。このページでは、リポジトリ横断の変更履歴サマリーに一貫性を持たせ、内部情報を漏らさないために、各リポジトリが共有するルールを定義します。
Conventional Commits 1.0.0
「Conventional Commits 1.0.0」という見出しのセクションすべてのコミットの件名は type(scope): description 形式です。type は次のいずれかです。
| 種別 | 意味 | ユーザー向け | バージョンへの影響 |
|---|---|---|---|
feat | 新機能 | はい | マイナーバージョンの更新 |
fix | 挙動の修正 | はい | パッチバージョンの更新 |
perf | 挙動を変えないパフォーマンス改善 | はい | パッチバージョンの更新 |
refactor | 内部の再構成。観測可能な変化なし | いいえ | なし |
docs | ドキュメントのみ | いいえ | なし |
test | テストのみ | いいえ | なし |
build / ci | ビルドまたはパイプラインのみ | いいえ | なし |
chore | メンテナンス、依存関係、ツール類 | いいえ | なし |
revert | 以前のコミットの取り消し | 場合による | 場合による |
破壊的変更は、種別またはスコープの後ろに付く !(feat(api)!: …)、または BREAKING CHANGE: フッターで示します。いずれの場合も、セマンティックバージョニングでは メジャー バージョンが上がります。セキュリティに関わる修正は、リポジトリ横断サマリーの Security 列に分類されるように記録します。
セマンティックバージョニング 2.0.0
「セマンティックバージョニング 2.0.0」という見出しのセクションバージョンの更新は機械的に決まります。破壊的変更を含むリリースはメジャーになります。そうでない場合、feat を含むリリースはマイナーになります。それにも当てはまらない場合、fix または perf を含むリリースはパッチになります。1.0 より前のパッケージは、SemVer §4 に従い、破壊的変更に対してマイナーを上げることができます。サマリーを正確に保つため、コミットには引き続き破壊的変更のマーカーを付けます。
Keep a Changelog によるグループ分け
「Keep a Changelog によるグループ分け」という見出しのセクション各リポジトリの CHANGELOG.md は Keep a Changelog 1.1.0 に従います。エントリはリリースされたバージョンごとに、Added、Changed、Deprecated、Removed、Fixed、Security の下にグループ化されます。[Unreleased] セクションではリポジトリ内で進行中のメモを保持できますが、リポジトリ横断サマリーは タグ付けされ、リリースされた バージョンのみを数えます。未リリースの作業は、公開インデックスには一切表示されません。
リポジトリ横断サマリーの導出方法(そして情報漏えいを防ぐ仕組み)
「リポジトリ横断サマリーの導出方法(そして情報漏えいを防ぐ仕組み)」という見出しのセクション変更履歴インデックスのサマリー表は、各リポジトリの Conventional Commits 履歴を最新のリリースタグ時点で読み取り専用として読み込み、カテゴリーを集計して生成されます。導出ルールは、内部の詳細が漏れないよう意図的に狭く定められています。
- 内容ではなく件数。 報告されるのは、ユーザー向け種別ごとのコミット数のみです。コミットの件名、本文、フッター、ハッシュはいずれも表示されません。
- ユーザー向けの種別のみ。
docs、test、ci、chore、refactorは除外されます。これらはパッケージ利用者が観測できるものを何も変えないためです。 - リリース済みのみ。 コミットは、公開パッケージのタグ付けされたリリースに含まれて初めて数えられます。
- 識別子なし。 非公開のコミットスコープに、内部のイシュー、チケット、サイクル、ウェーブ、ワークアイテムへの参照が現れる可能性があっても、それらは一切表に出ません。スコープのテキスト自体は表示されず、読み取られるのは種別のみだからです。
- 自動化の帰属表示なし。 コントリビューター自動化のトレーラーは、読み取られることも表示されることもありません。
このため、公開される変更履歴は、集約されたコミットフィードではなく、カテゴリー別サマリーと各パッケージ自身の CHANGELOG.md へのリンクで構成されます。このサマリーは、構造上、内部情報が漏えいしないことを証明できます。正式な変更履歴本文は、管理元のパッケージ側にとどまります。