言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

Hakell Cabal で使われる Package のバージョン番号の付け方要点

  • バージョン番号は少なくとも A.B.C のように三つの数字に点を挟む。C の後に点に続いて追加要素があっても良い。
    • 例えば 2.1.0.4 の場合は A=2, B=1, C=0 とみなす。
  • バージョン番号の新旧関係は Data.Version.Version で定義されている。2.1.1 > 2.1
  • A.B はメジャーバージョン番号と呼ぶ
  • C はマイナーバージョン番号と呼ぶ
  • 以下のルールでバージョン番号を更新する。
    • API が削除されたり変更されると A.B のメジャーバージョンを上げる。
    • API が追加されただけの場合はメジャーバージョンはそのままで C のマイナーバージョンを上げる。この場合後方互換性がある。
    • API が同じ時はメジャーバージョンもマイナーバージョンもそのまま。他の部分(四番目以降の数字)は変えても良い。

参考: http://www.haskell.org/haskellwiki/Package_versioning_policy

The following packages are likely to be broken by the reinstalls が出てしまった場合の対処法

依存している package のどれかのバージョンダウン (reinstall) が必要な時に出る(?)、新しいバージョンでも動くように .cabal の build-depends 条件を変える。