Haskell stack.yaml文件是否应该签入版本控制?

Haskell stack.yaml文件是否应该签入版本控制?,haskell,haskell-stack,Haskell,Haskell Stack,我对这个文件很陌生,不知道是git提交还是.git忽略那个文件 这两种选择的含义是什么?我认为您应该提交stack.yaml,因为这样可以更容易地以可复制的方式构建包。如果您的存储库是公共的,并且您在stack.yaml中使用了更奇特的额外dep(指向Git存储库的指针、源代码树中的辅助阴谋包等),那么这一点尤其重要 一个补充的观察结果是,即使我们正在使用stack,我们仍然应该为.cabal文件中的依赖项提供合理的版本边界,否则会使不使用stack或拥有一组不同于由stack.yaml指定的包

我对这个文件很陌生,不知道是
git提交
还是
.git忽略
那个文件


这两种选择的含义是什么?

我认为您应该提交
stack.yaml
,因为这样可以更容易地以可复制的方式构建包。如果您的存储库是公共的,并且您在
stack.yaml
中使用了更奇特的额外dep(指向Git存储库的指针、源代码树中的辅助阴谋包等),那么这一点尤其重要


一个补充的观察结果是,即使我们正在使用stack,我们仍然应该为.cabal文件中的依赖项提供合理的版本边界,否则会使不使用stack或拥有一组不同于由
stack.yaml

指定的包的人的生活更加艰难。yaml有一大堆(并非总是必需的)字段,例如对于一致构建非常重要的额外依赖项。登记

只要确保除了从stack init获得的内容之外,您没有编辑stack.yaml,那么您还可以吗?
stack.yaml.lock
?也应该提交吗?@davidA这些文件包含用于指定如何构建包的补充信息,因此提交它们是有意义的。(另见。)