Tom*_*han 5 haskell haskell-stack
我对Haskell堆栈很陌生,所以我可能误解了这里的工作原理,但我有一个问题,我已经看过几次了,我想知道我是否会走错路.
简而言之,我有时希望使用版本规格的软件包,其版本低于base我的Stack解析器所包含的版本.
例如,我不能使用lts-12.14 解析器PSQueue-1.1,因为前者包含base-4.11.1,后者需要base >=4 && <4.11.
我发现解决问题的两种方法都是
basemy extra-deps,确保固定版本在我的包允许的范围内; 要么base)这两者都感觉不是最理想的,特别是因为我可能想要使用具有非重叠范围的包(例如一个>=3 && <4.11和一个>=4.11).我意识到使用这样的组合可能会失败,特别是如果它们被锁定在不同的主要版本base(假设base使用semver),但到目前为止我只编写非常小的程序,所以如果它们似乎工作我很即使存在其他未执行的代码路径,这些路径也会在包和版本的特定组合上失败.换句话说:我知道风险 - 但我不能机会,因为我不知道如何.
有没有办法强制Stack允许base比依赖项要求中指定的版本更新的版本?
我想你正在寻找allow-newer- https://docs.haskellstack.org/en/stable/yaml_configuration/#allow-newer
忽略.cabal文件中的版本边界.默认值为false.