首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Stack是如何决定依赖关系的?

Stack是如何决定依赖关系的?
EN

Stack Overflow用户
提问于 2018-10-18 16:36:30
回答 1查看 49关注 0票数 0

我刚刚制作了叉子来修复html-导管中的一个bug,我的模板库依赖于这个bug。我维护了一个依赖于模板库的应用程序。

因此,我用stack.yaml指向分叉:

代码语言:javascript
复制
extra-deps:
  [...]
  - git: https://github.com/emhoracek/xml.git
    commit: 3e1bd12882d7c452d76e39e1db1b95577f38d4d7
    subdirs:
       - xml-conduit
       - html-conduit

并编写了一个测试,以确保更新该依赖项修复了错误。它做到了!耶。

然后,我更新了我的应用程序,指向更新的模板库:

代码语言:javascript
复制
packages:
  [...]
  - location:
      git: https://github.com/positiondev/larceny
      commit: ba743c58ff4ac2606f67336e5e557deacb416ed8
    extra-dep: true

我检查了一下是否修复了我的应用程序中的bug,但是它没有,直到我把我的html-conduit叉添加到我的应用程序的附加程序中,它仍然有这个bug。

到底怎么回事?为什么Stack在决定应用程序应该使用哪个版本时,不使用我的库的stack.yaml中指定的stack.yaml版本?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-18 17:48:02

任何stack命令都只引用一个stack.yaml文件--一个位于当前目录中的文件,或者可能是某个父目录。您所依赖的库不需要有一个stack.yaml文件,如果它存在,它将被忽略。

这使版本规范保持简单。对于两个stack.yaml文件请求同一个库的不同版本的情况,没有任何规则可供处理,因为任何构建都不会参考两个stack.yaml文件。

另一方面,会查询每个库的.cabal文件,因此如果某些.cabal文件需要一个stack.yaml没有指定版本的库,或者如果.cabal中的版本界限与stack.yaml中的特定版本不匹配,那么在构建的早期就会出现错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52878734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档