SemVerとCalVerの使い分け

セマンティックバージョニングとカレンダーバージョニング、どっちを選ぶべき?

プロジェクトのバージョニング戦略について、SemVer(セマンティックバージョニング)とCalVer(カレンダーバージョニング)の使い分けをメモ。

セマンティックバージョニング(SemVer)

    1.2.3
│ │ └─ PATCH: バグ修正
│ └─── MINOR: 後方互換性のある機能追加
└───── MAJOR: 後方互換性のない変更
  

適用ケース

  • ライブラリ・SDK: APIの互換性が重要
  • パッケージ: npmやpipでの依存関係管理
  • エンタープライズソフト: 安定性重視

メリット

  • 👍 互換性が明確
  • 👍 依存関係管理に適している
  • 👍 開発者にとって分かりやすい

カレンダーバージョニング(CalVer)

    2025.1.0
│    │ └─ PATCH: 修正版
│    └─── MINOR: 月(リリース時期)
└──────── MAJOR: 年
  

適用ケース

  • アプリケーション: 継続的にアップデートされるもの
  • Webサービス: 時系列での進捗が重要
  • 個人プロジェクト: シンプルで分かりやすい

メリット

  • 👍 いつリリースされたかが一目瞭然
  • 👍 長期間のプロジェクトに適している
  • 👍 技術スタック変更でも継続可能

実際の選び方

プロジェクト種類推奨理由
OSS ライブラリSemVerAPI互換性が重要
WebアプリCalVerリリース時期が重要
企業システムSemVer安定性・互換性重視
個人ブログCalVerシンプルで管理しやすい

このブログの場合

このブログではCalVerを採用しました:

    v2025.1   # 初回リリース
v2025.3   # 春の大型アップデート
v2026.1   # 技術スタック変更予定
  

採用理由

  1. 継続性: 技術変更があっても番号が続く
  2. 分かりやすさ: いつのバージョンか分かる
  3. シンプル: 互換性より開発の進捗を重視

参考リンク

バージョニング戦略は、プロジェクトの性質に合わせて選ぶのが一番大事ですね。