nanoc のアップデートでちょっと悩む
Created at 2013-05-30 Thu 18:15:23
nanoc をアップデートしようと思ったら、半年の間にバージョンがすごく上がってた。使用中のバージョンは 3.4.3 だが最新版は 3.6.4 だ。リリースノート を参考にして並べるとこんな感じになる。
- 3.4.3 (2012-12-09) <- 使用中のバージョン
- 3.5 (2013-01-27)
- 3.6 (2013-02-24)
- 3.6.1 (2013-02-25)
- 3.6.2 (2013-03-23)
- 3.6.3 (2013-04-24)
- 3.6.4 (2013-05-29) <- 現在の最新バージョン
だいたい月に一度のペースでリリースされてる。活発に活動してる証拠だから、これ自体は悪いことじゃないね。でも、気になるのは互換性の問題。今までのデータが使えないとかないよね?
そのあたりのことを調べていたら nanoc の README.md にバージョニング(バージョン番号の付け方)のことが書いてあった。セマンティック・バージョニング(Semantic Versioning - 以下 SemVer と略す)という手法らしい。
nanoc uses Semantic Versioning.
Source: nanoc/README.md at master · nanoc/nanoc · GitHub
で、SemVer って何よってことでこれも調べる。公式ページは英語(あるいはスペイン語)だが、日本語に訳してくれてる人もいる(エライッ)。
- semver.org(公式サイト)
- 凡人プログラマーの独り言 Semantic Versioning 2.0.0-rc.1の和訳【日本語化】
- Semantic Versioning の日本語訳を公開しました - プリンとコーヒー
日本語訳が二つあるのは、どちらが正確かわからないから。見つけた順に挙げた。どちらも 2.0.0-rc.1 の訳だけど、公式は 2.0.0-rc.2 に上がってる。まあ、たいした違いはないでしょ。気になるなら原文読めってことだ。
日本語訳から重要な部分を引用してみよう。
X.Y.Z (Major.Minor.Patch) というバージョンのフォーマットを検討してください。 API に影響を及ぼさないバグ フィックスではパッチ (patch) バージョンをインクリメントし、後方互換性を持つ API の追加や変更ではマイナー (minor) バージョンをインクリメントし、そして後方互換性を持たない API の変更ではメジャー (major) バージョンをインクリメントします。
Source: Semantic Versioning 2.0.0-rc.1
今回は 3.4.3 から 3.6.4 へのアップデートなのでメジャーバージョンに違いはない。したがって、後方互換性があるということだね。アップデートしても問題はなさそうだ。よかった、よかった。