我对软件包的依赖关系如何影响将其包含在Stackage LTS中感到有些困惑;具体来说,如果
从LTS-X.Y打包A not in LTS-X.Y,尤其是
答案 0 :(得分:1)
是的,对于给定Stackage快照中的每个包,其所有传递依赖项也都在快照中。此外,仅当软件包的维护者同意对其依赖项保持最新时,才包含软件包。 the README on github中对此有更多详细信息。 excerpt:
答案 1 :(得分:1)
我将复制/粘贴my answer on github
是否必须排除包装A?
否,不必排除它。原因如下:
即使排除B的唯一原因是由于测试套件的依赖性
在这种情况下,我们可以将B添加到构建计划中,并在skipped-tests
部分下进行标记,以避免引入其测试套件依赖项。 LTS和每夜快照都是如此。
(但是,更可取的做法是纠正B的依赖关系问题,以便可以运行测试套件。)
为进一步澄清,回应@bergey的回答:
仅当软件包的维护者同意对其依赖项进行更新时才包含软件包
这仅适用于包含显式的软件包。有些软件包是传递依赖,隐式包含在它们中,不一定必须遵循严格的标准。 (但是,将来,我们可以消除隐式包含的概念,而显式地包含所有包。)
即使它的 test suite 或它的 benchmarks 与snapsnot具有不兼容的依赖关系约束,也可以进行例外处理,以便包括一个包。
当然,首选的方法是不必进行此类例外,我们鼓励所有维护人员保持其所有构建目标为最新。
最后,请允许我指出,这个问题可能更适合the stackage mailing list,因为该问题没有得到很好的宣传或利用。