メインコンテンツまでスキップ

第10章:Changelog/リリースノート(説明できる人が強い📰✨)

この章は「更新したい人(利用者)が困らない説明」を書けるようになる回だよ😊🫶 コードが良くても、説明がないと “怖くて更新できない” ってなりがち…😇💦 だから SemVer(MAJOR/MINOR/PATCH) とセットで、伝え方を型にしちゃおう〜📘✨


1. まず結論:Changelog とリリースノートは役割が違うよ📌

Changelog vs Release Notes

Changelog(変更履歴)🗂️

  • リポジトリに置く「バージョンごとの、ちゃんと整理された変更一覧」
  • “人間のための” 変更メモ(コミットログ貼り付けじゃない🙅‍♀️)
  • Keep a Changelog の考え方が超定番だよ✨ (keepachangelog.com)

リリースノート(Release Notes)📣

  • 「今回のリリースで利用者が読むべきこと」を短くまとめたもの
  • GitHub Releases の本文などに載せることが多いよ🧡
  • GitHub には 自動生成のリリースノート もある(PR一覧・貢献者・フルChangelogへのリンクなど) (GitHub Docs)

👉 イメージ: Changelog=辞書リリースノート=ニュース みたいな感じ📰✨


2. “利用者が助かる” 文章に必須の4点セット🧰✨

リリースノート/Changelog、どっちでも大事なのはこれ👇

  1. 何が変わった?(変更点)
  2. 誰が影響受ける?(影響範囲)
  3. 壊れる?壊れない?(互換性:SemVerの意味付け)
  4. どう直す?(移行手順/回避策)

SemVer 自体も「公開APIを宣言して、X.Y.Zで意味を伝える」って考え方だよ📌 (Semantic Versioning)


3. Changelogの“型”は Keep a Changelog が最強にラク🧱✨

Unreleased Flow

Keep a Changelog のおすすめポイント👇

  • 先頭に Unreleased(未リリース)を置いて、日々そこへ追記
  • リリースするときに Unreleased を新しいバージョンへ “お引っ越し” これで管理が超ラクになるよ😊🪄 (keepachangelog.com)

よく使う見出し(カテゴリ)📌

  • Added / Changed / Deprecated / Removed / Fixed / Security この6つに寄せると読み手が迷わない✨ (keepachangelog.com)

4. “SemVer別” 書き分けルール(ここ超大事😺✨)

PATCH(例:1.2.3 → 1.2.4)🐛

  • 書くべき:何が直った?、回避策、影響ある人は誰?
  • 書かない方がいい:大改造の話、仕様変更っぽい話(混ぜると怖い😇)

テンプレ(PATCH)

  • Fixed:◯◯の条件で例外が出るのを修正
  • Impact:◯◯を使ってる人だけ
  • Workaround(任意):一時回避(あれば)

MINOR(例:1.2.3 → 1.3.0)➕

  • 書くべき:新機能の使い方(最小例)、追加点
  • 注意:追加でも「呼ばれるメソッドが変わる」系は事故るので、影響を一言入れる🙂

MAJOR(例:1.2.3 → 2.0.0)🚨💥

  • 書くべき:破壊変更を最上部、移行手順、置き換え先
  • コツ:見出しに BREAKING を付けると親切✨(目に入る👀)

5. 実戦!C#ライブラリの Changelog 例(コピペで使える📄✨)

ここでは架空ライブラリ KomiyaMath ってことにするね😺

# Changelog
この変更履歴は Keep a Changelog の形式に基づき、Semantic Versioning に従います。

## [Unreleased]
### Added
- (ここに次のリリース予定を書いていく)

## [1.1.0] - 2026-01-20
### Added
- `TryParseInvariant(string, out decimal)` を追加(後方互換)✨
### Fixed
- `Parse()` が全角スペースを含む入力で失敗することがある問題を修正🐛

## [1.0.1] - 2026-01-10
### Fixed
- `RoundTo()` が負の値で誤差が大きくなるケースを修正🐛

## [2.0.0] - 2026-01-23
### Changed
- **BREAKING**: `Parse(string)``Parse(string, CultureInfo)` に変更(カルチャ明示)🚨
### Removed
- **BREAKING**: 以前から `[Obsolete]` にしていた `LegacyParse()` を削除💥
### Fixed
- 大きい桁数の丸めで一部例外になる問題を修正🐛

ポイント👆

  • Unreleased が先頭(毎日ここに書く) (keepachangelog.com)
  • 破壊変更は強調&上の方(見落とし防止)🚨
  • “どう困るか” が伝わる単語を入れる(カルチャ、例外、削除…)🙂

6. 同じ内容を「リリースノート」に変換するコツ📰✨

Changelog は網羅寄り、リリースノートは 利用者が今読むべきことに絞る✂️

例:v2.0.0 のリリースノート(短くて強い💪)

## v2.0.0 リリースノート 🚀

### 🚨 Breaking Changes
- `Parse(string)``Parse(string, CultureInfo)` に変更しました。
- 影響:`Parse("123.45")` のようにカルチャ未指定で呼んでいるコード
- 移行:`Parse(text, CultureInfo.InvariantCulture)` のように指定してください

- `[Obsolete]` にしていた `LegacyParse()` を削除しました

### 🐛 Fixes
- 大きい桁数の丸めで一部例外になる問題を修正

👉 “影響” と “移行” が1行でもあるだけで、利用者の安心度が爆上がりするよ😊🫶


7. GitHub の「自動生成リリースノート」も賢く使おう🤖🧡

GitHub Releases では 自動生成ができるよ! PR一覧・貢献者・フルChangelogへのリンクが出るので、土台に最高✨ (GitHub Docs)

さらに .github/release.yml を置くと、ラベルでカテゴリ分けもできる👇 (GitHub Docs)

release.yml(例:Features / Bug Fixes に分ける)

changelog:
categories:
- title: Features ✨
labels:
- enhancement
- feature
- title: Bug Fixes 🐛
labels:
- bug
- fix
- title: Other 🔧
labels:
- "*"

コツ💡

  • 自動生成は「PRの羅列」になりやすい → 上に手書きで “Breaking/Impact/Migration” を足すと最強💪
  • “読む人が困る変更” だけは必ず人間が面倒を見る😺

8. AI(Copilot/Codex等)で爆速に書く方法🤖🪄

AIは「下書き作成」には神!でも 最終チェックは人間の仕事ね🙂✨

使えるプロンプト例(そのまま投げてOK)

  • 「このPR説明と差分要約から、Keep a Changelog形式で Added/Fixed/Changed に分類して」
  • 「この変更は利用者に破壊的?影響範囲と移行手順を3行で」
  • 「PATCHとして出すのは危険?危険なら理由と、MINOR/MAJOR案を」
  • 「リリースノートを“利用者が更新判断できる文章”に直して。必ず Impact と Migration を入れて」

AIに出させた後のチェック✅(超重要)

  • “利用者視点”になってる?(内部事情ばっかりになってない?😇)
  • 破壊変更が埋もれてない?(🚨が目立つ?)
  • 具体的な移行手順がある?(置き換えのコードがある?)

9. ミニ演習:技術メモ → リリースノートに変換🪄📝

お題(技術メモ)😺

  • Parseをカルチャ明示に変更
  • LegacyParse削除
  • 丸めの例外修正
  • 内部リファクタ

あなたのリリースノート(目標)🎯

  • 🚨Breaking Changes(2つ)
  • 🐛Fixes(1つ)
  • “内部リファクタ” は基本書かなくてOK(利用者に関係ないなら)🙆‍♀️

10. 章の成果物(テンプレセット)📄✨

最後に、これをあなたのプロジェクトに置けばOK!

① CHANGELOG.md 雛形

# Changelog
この変更履歴は Keep a Changelog の形式に基づき、Semantic Versioning に従います。

## [Unreleased]
### Added
### Changed
### Deprecated
### Removed
### Fixed
### Security

## [x.y.z] - YYYY-MM-DD
### Added
### Changed
### Deprecated
### Removed
### Fixed
### Security

② リリースノート雛形(GitHub Releases用)

## vX.Y.Z リリースノート 🚀

### 🚨 Breaking Changes(あれば最上部)
- 影響:
- 移行:

### ✨ Added / 🔧 Changed
-

### 🐛 Fixes
-

### 🧡 Notes(任意)
- 互換性:PATCH / MINOR / MAJOR(今回どれ?)

ちょい最新情報メモ(C#まわり)🧩✨

本日時点では C# 14 が最新リリースとして案内されていて、.NET 10 対応& Visual Studio 2026 に含まれる、という説明になってるよ📌 (Microsoft Learn) (だから、サンプルも “今どきのC#” で考えてOKだよ😊)


次の章(第11章:NuGetとバージョン📦🚀)に行く前に、もしよければ: あなたの想定してるライブラリ(例:ユーティリティ/HTTPクライアント/DBアクセスなど)を1つ決めた体で、“v1.0.1 / v1.1.0 / v2.0.0 のChangelogとリリースノート” を一緒に作るところまでやっちゃおうか?😺✨