我正在使用stack
在Haskell中构建一个项目,并且需要更新我的项目所依赖的库之一-让我们将其命名为otherlib
。
我分叉了otherlib
并进行了必要的更改,增加了版本号(我们称之为0.9.1版),并使用cabal
(该项目使用的版本)进行了构建,并且运行cabal install otherlib
将修改后的版本放入本地缓存。现在,我想尽可能合理地将其包含在自己的项目中。
我对otherlib
所做的更改是(IMO)相当合理的,一旦创建PR,维护者就有机会接受更改。但与此同时,我有一个版本不在stack
的解决方案集中。
在我的otherlib-0.9.1
依赖项中包含package.yaml
无效,也没有将其添加到我的stack.yaml
的{{1}}中。
是否有很好的设置方法?
答案 0 :(得分:4)
您可以在stack.yaml的ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
中指定Git存储库(及其修订版)。
下面是the document的示例:
extra-deps
仅当存储库包含多个软件包(例如yesodweb)时,才需要注意extra-deps:
- git: git@github.com:yesodweb/wai
commit: 2f8a8e1b771829f4a8a77c0111352ce45a14c30f
subdirs:
- auto-update
- wai
。
答案 1 :(得分:0)
除了yuji-yamamoto正确正确的答案外,我还发现我也可以从otherlib
目录建立符号链接,直接将其链接到我自己项目的基本目录中,并将其名称添加到packages
中的stack.yaml
。具体来说,修改后的部分将显示为:
packages:
- .
- otherlib-0.9.1
..,目录本身也称为otherlib-0.9.1
。
在其他liblib在本地文件系统之外的任何地方仍不可用的情况下,此解决方案将起作用。