Semantic Versioning の方針

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. バージョンアップ時のチェックリスト

  1. CHANGELOG.md / Release Notes で破壊的変更の有無を確認

  2. ターゲットフレームワーク (T-FMs) の削除・追加有無を確認 (.csproj<TargetFramework> 変更要否)

  3. 非推奨 API に対する ビルド警告 ([Obsolete] 属性) をコンパイル時に確認

  4. 主要機能を対象とする 回帰テスト を実行

  5. 問題発生時は 1.x.yパッチ バージョンへロールバックし、Issue を報告


まとめ

HtmlAgilityPack は SemVer 2.0 に忠実な “1系” を継続しつつ、

  • MINOR で新機能/環境サポート、

  • PATCH で安定性向上、

  • MAJOR で将来の大規模刷新を計画
    という明確なポリシーを採用しています。
    GitHub Releases・NuGet・自動アップデータを活用して 最新リリースを追跡し、
    上記チェックリストで安全にライブラリを更新してください。

ChatGPT4o 生成日:2025/06/23