2017-04-17 12 views
0

通常、.cabalファイルに新しい依存関係を追加するとき、私は依存している新しいライブラリのバージョンを指定します。しかし、stackは、ライブラリのcuratedセットで動作し、.cabalファイルでパッケージのバージョンを指定することが理にかなっているのだろうかと思います。私の推測では、ltsのバージョンをstack.yamlに指定すれば十分です。Cabal + Stack:Cabalファイルのパッケージバージョンを指定する

答えて

5

.cabalファイルにパッケージのバージョンを指定することが理にかなっているのでしょうか。

これは完全にあなたに依存します。その特定のスタックレゾルバにないパッケージバージョン を指定すると、 はバージョン管理を調整するというエラーをスローします。

私の推測では、stack.yamlにltsバージョンを指定すれば十分でしょう。

プライベートパッケージの場合、それは問題ではなく、私はそこに任意のバージョン境界を置くことを好まない。しかし、それが最終的にHackageに公開する予定のものであれば、私は通常CI system like Travisを使用して、いくつかのテストでそれを正しく取得できます。実際には、私はスタックのガイドがそのようなことをお勧めしていると思います。

+0

私はほぼ一年後、これを検討しています。 'cabal'(または' hpack'?)ファイルの上限と下限は、公開しようとしているパッケージのすべての依存性に対してPVPが上限と下限を必要とするようにパッケージを公開するときに必要です。 –

+0

@DamianNadalesいいえ、必要ありません。 PVPの姿勢は、さまざまな人々の意見が異なれば議論の余地があります。 – Sibi

+0

しかし、[パッケージをhackageにアップロードする方法についての説明](https://hackage.haskell.org/upload)は、「すべてのパッケージはHaskellのパッケージバージョンポリシー(PVP)に従うべき」というPVPを参照しています。パッケージ作成者が必ずしもそのページの指示に従うとは限りませんか? –

関連する問題