1. セマンティックバージョニング (SemVer) 2.0 の概略
バージョン番号を MAJOR.MINOR.PATCH の 3 段で管理し、原則として次のルールに従います。
| 区分 | 代表例 | 増分条件 (SemVer 2.0 §2) |
|---|---|---|
| MAJOR | 2.0.0 | 互換性を壊す API 変更を導入したとき |
| MINOR | 1.3.0 | 後方互換を保ったまま新機能を追加したとき |
| PATCH | 1.3.4 | 後方互換を保ったバグ修正のみを行ったとき |
追加の “-alpha.1”, “-beta.3”, “-rc.2” などの プレリリース識別子と “+build.meta” の ビルドメタデータを付与して、順序付けや CI 生成物を区別できます。
2. HtmlAgilityPack におけるバージョニング方針
| 区分 | ライブラリの具体例 | 方針のポイント |
|---|---|---|
| MAJOR (現在 1) | 1.x.x → 将来予定の 2.0.0 |
API シグネチャ変更・名前空間統合など 破壊的変更発生時のみ増分。 メジャーを上げる際は旧系列 ( 1.x) を 12 か月程度セキュリティ & クリティカル修正のみサポートする計画。 |
| MINOR | 1.12.0 |
新機能・対応プラットフォーム追加・非推奨 API マークなど。例: 1.12.0 で .NET 8 サポート追加と .NET Standard 1.3/1.6 サポート終了を実施 (API 破壊がないため MINOR) github.com |
| PATCH | 1.12.1 |
バグ修正・内部最適化のみ。例: 1.12.1 では Nullability 属性の誤りを修正 github.com |
運用上の注意
破壊的変更の判断基準は public なクラス・メソッド・プロパティのシグネチャ互換性。内部挙動変更・パフォーマンス改善は PATCH/MINOR に収める。
プラットフォーム対応/非対応 (.NET Framework/Standard/Core 追加・削除) は API が変わらなければ MINOR で扱う。
3. プレリリース版の命名規則
開発ブランチで安定版を切る前に 1.13.0-beta.1 などを NuGet の Prerelease として公開し、
-
‐alpha : 仕様固まらず破壊的変更の可能性あり
-
‐beta / -rc : API 凍結、安定化フェーズ
と段階的に信頼度を示します。CI 生成物は-ci-<commit>のようなビルドメタデータを付けて区別することもあります。
4. リリース系列とライフサイクル
-
最新系列: 2025-04-15 時点の最新安定版は 1.12.1 nuget.org
-
旧系列:
1.11.xなど 1 つ前の MINOR は、重要バグがあればパッチを継続 (例: 1.11.74 → 1.11.74) -
EoL: 2 世代以上前の MINOR (
1.10.x以前) は基本的に更新されず、NuGet 上の履歴のみ残る。
5. 最新リリース情報を追跡する 4 つの実践手順
| 方法 | 活用ポイント |
|---|---|
GitHub Releases (https://github.com/zzzprojects/html-agility-pack/releases) |
タグ v1.12.1 等で 変更点・Issue/PR リンクを確認可能。RSS を購読すれば自動通知可。 github.com |
| NuGet “Versions” タブ | 公開日時・ダウンロード数・依存関係を一覧で確認。CLI なら dotnet list package --outdated でチェック。 nuget.org |
| GitHub API | https://api.github.com/repos/zzzprojects/html-agility-pack/releases/latest で JSON 取得 → CI や Slack 通知に組込可。 |
| Dependabot / Renovate | プロジェクトに導入すると PR で自動的にバージョンアップ提案 & 変更点要約を受信。 |
6. バージョンアップ時のチェックリスト
-
CHANGELOG.md/ Release Notes で破壊的変更の有無を確認 -
ターゲットフレームワーク (T-FMs) の削除・追加有無を確認 (
.csprojの<TargetFramework>変更要否) -
非推奨 API に対する ビルド警告 (
[Obsolete]属性) をコンパイル時に確認 -
主要機能を対象とする 回帰テスト を実行
-
問題発生時は
1.x.yの パッチ バージョンへロールバックし、Issue を報告
まとめ
HtmlAgilityPack は SemVer 2.0 に忠実な “1系” を継続しつつ、
-
MINOR で新機能/環境サポート、
-
PATCH で安定性向上、
-
MAJOR で将来の大規模刷新を計画
という明確なポリシーを採用しています。
GitHub Releases・NuGet・自動アップデータを活用して 最新リリースを追跡し、
上記チェックリストで安全にライブラリを更新してください。
ChatGPT4o 生成日:2025/06/23