コンテンツにスキップ

変更履歴の規約

このページは、すべての公開 NextPDF リポジトリが変更を記録し、リリースを作成する際に従う取り決めです。これは規約のリファレンスであり、パッケージの挙動を主張するものではありません。パッケージ別、バージョン別の変更履歴本文は、各リポジトリの CHANGELOG.md にあります。このページでは、リポジトリ横断の変更履歴サマリーに一貫性を持たせ、内部情報を漏らさないために、各リポジトリが共有するルールを定義します。

すべてのコミットの件名は type(scope): description 形式です。type は次のいずれかです。

種別意味ユーザー向けバージョンへの影響
feat新機能はいマイナーバージョンの更新
fix挙動の修正はいパッチバージョンの更新
perf挙動を変えないパフォーマンス改善はいパッチバージョンの更新
refactor内部の再構成。観測可能な変化なしいいえなし
docsドキュメントのみいいえなし
testテストのみいいえなし
build / ciビルドまたはパイプラインのみいいえなし
choreメンテナンス、依存関係、ツール類いいえなし
revert以前のコミットの取り消し場合による場合による

破壊的変更は、種別またはスコープの後ろに付く !feat(api)!: …)、または BREAKING CHANGE: フッターで示します。いずれの場合も、セマンティックバージョニングでは メジャー バージョンが上がります。セキュリティに関わる修正は、リポジトリ横断サマリーの Security 列に分類されるように記録します。

バージョンの更新は機械的に決まります。破壊的変更を含むリリースはメジャーになります。そうでない場合、feat を含むリリースはマイナーになります。それにも当てはまらない場合、fix または perf を含むリリースはパッチになります。1.0 より前のパッケージは、SemVer §4 に従い、破壊的変更に対してマイナーを上げることができます。サマリーを正確に保つため、コミットには引き続き破壊的変更のマーカーを付けます。

各リポジトリの CHANGELOG.mdKeep a Changelog 1.1.0 に従います。エントリはリリースされたバージョンごとに、AddedChangedDeprecatedRemovedFixedSecurity の下にグループ化されます。[Unreleased] セクションではリポジトリ内で進行中のメモを保持できますが、リポジトリ横断サマリータグ付けされ、リリースされた バージョンのみを数えます。未リリースの作業は、公開インデックスには一切表示されません。

リポジトリ横断サマリーの導出方法(そして情報漏えいを防ぐ仕組み)

「リポジトリ横断サマリーの導出方法(そして情報漏えいを防ぐ仕組み)」という見出しのセクション

変更履歴インデックスのサマリー表は、各リポジトリの Conventional Commits 履歴を最新のリリースタグ時点で読み取り専用として読み込み、カテゴリーを集計して生成されます。導出ルールは、内部の詳細が漏れないよう意図的に狭く定められています。

  1. 内容ではなく件数。 報告されるのは、ユーザー向け種別ごとのコミットのみです。コミットの件名、本文、フッター、ハッシュはいずれも表示されません。
  2. ユーザー向けの種別のみ。 docstestcichorerefactor は除外されます。これらはパッケージ利用者が観測できるものを何も変えないためです。
  3. リリース済みのみ。 コミットは、公開パッケージのタグ付けされたリリースに含まれて初めて数えられます。
  4. 識別子なし。 非公開のコミットスコープに、内部のイシュー、チケット、サイクル、ウェーブ、ワークアイテムへの参照が現れる可能性があっても、それらは一切表に出ません。スコープのテキスト自体は表示されず、読み取られるのは種別のみだからです。
  5. 自動化の帰属表示なし。 コントリビューター自動化のトレーラーは、読み取られることも表示されることもありません。

このため、公開される変更履歴は、集約されたコミットフィードではなく、カテゴリー別サマリーと各パッケージ自身の CHANGELOG.md へのリンクで構成されます。このサマリーは、構造上、内部情報が漏えいしないことを証明できます。正式な変更履歴本文は、管理元のパッケージ側にとどまります。