SemVerとCalVerの使い分け
セマンティックバージョニングとカレンダーバージョニング、どっちを選ぶべき?
プロジェクトのバージョニング戦略について、SemVer(セマンティックバージョニング)とCalVer(カレンダーバージョニング)の使い分けをメモ。
セマンティックバージョニング(SemVer)
1.2.3
│ │ └─ PATCH: バグ修正
│ └─── MINOR: 後方互換性のある機能追加
└───── MAJOR: 後方互換性のない変更
適用ケース
- ライブラリ・SDK: APIの互換性が重要
- パッケージ: npmやpipでの依存関係管理
- エンタープライズソフト: 安定性重視
メリット
- 👍 互換性が明確
- 👍 依存関係管理に適している
- 👍 開発者にとって分かりやすい
カレンダーバージョニング(CalVer)
2025.1.0
│ │ └─ PATCH: 修正版
│ └─── MINOR: 月(リリース時期)
└──────── MAJOR: 年
適用ケース
- アプリケーション: 継続的にアップデートされるもの
- Webサービス: 時系列での進捗が重要
- 個人プロジェクト: シンプルで分かりやすい
メリット
- 👍 いつリリースされたかが一目瞭然
- 👍 長期間のプロジェクトに適している
- 👍 技術スタック変更でも継続可能
実際の選び方
プロジェクト種類 | 推奨 | 理由 |
---|---|---|
OSS ライブラリ | SemVer | API互換性が重要 |
Webアプリ | CalVer | リリース時期が重要 |
企業システム | SemVer | 安定性・互換性重視 |
個人ブログ | CalVer | シンプルで管理しやすい |
このブログの場合
このブログではCalVerを採用しました:
v2025.1 # 初回リリース
v2025.3 # 春の大型アップデート
v2026.1 # 技術スタック変更予定
採用理由
- 継続性: 技術変更があっても番号が続く
- 分かりやすさ: いつのバージョンか分かる
- シンプル: 互換性より開発の進捗を重視
参考リンク
バージョニング戦略は、プロジェクトの性質に合わせて選ぶのが一番大事ですね。