0
通常,當向.cabal
文件添加新的依賴項時,我指定了我依賴的新庫的版本。然而stack
與一組策略庫一起工作,我想知道指定.cabal
文件中的軟件包版本是否有意義。我的猜測是在stack.yaml
中指定lts
版本就足夠了。Cabal + Stack:指定cabal文件中的軟件包版本
通常,當向.cabal
文件添加新的依賴項時,我指定了我依賴的新庫的版本。然而stack
與一組策略庫一起工作,我想知道指定.cabal
文件中的軟件包版本是否有意義。我的猜測是在stack.yaml
中指定lts
版本就足夠了。Cabal + Stack:指定cabal文件中的軟件包版本
我想知道在.cabal文件中指定包版本是否有意義。
完全取決於你。如果您指定的包版本號爲 不在該特定的堆棧解析器中,則Stack將 拋出一個錯誤,指出您要調整版本控制。
我的猜測是在stack.yaml中指定lts版本就足夠了。
對於私人包裹,它並不重要,我不喜歡把任何版本的邊界放在那裏。但是如果我最終打算在Hackage上發佈,我通常會使用CI system like Travis,並通過一些測試來獲得正確的界限。事實上,我認爲堆棧指南推薦了這樣的東西。
我正在檢討這一近一年後,的確如此。發佈軟件包時需要'cabal'(或'hpack'?)文件的上下限,以便PVP對每個要發佈的軟件包的每個依賴項都要求上限和下限。 –
@DamianNadales不,不需要。 PVP的立場是有爭議的,在不同的民族之間有不同的意見。 – Sibi
但[關於如何上傳一個包到hackage的說明](https://hackage.haskell.org/upload)是指PVP說「所有包都應遵循Haskell的包版本策略(PVP)」。這是否意味着軟件包作者不一定遵循該頁面上的說明? –