如何创建 "cabal.project" 文件?

How to create "cabal.project" file?

我想创建一个 Cabal 项目,可以在同一个项目中包含多个包。当我阅读 Cabal documentation 时,它说必须创建一个“cabal.project”文件。这个文件是手动创建到项目根目录还是有创建它的命令?文档说所有修改都应在“cabal.project.local”文件中进行。这个文件是如何创建的?这是否意味着要创建一个包含多个包的 cabal 项目,必须在同一项目根目录中有一个“cabal.project”文件和一个“cabal.project.local”文件?谢谢

不要想太多。 cabal.project 文件主要是列出一些你想作为一个单元一起构建的包,而不是从 Hackage 中提取它们。所以是的,只需手动创建它。

文档中“所有修改都应在“cabal.project.local”文件中进行”的意思是 cabal.project 应该指定什么是 always需要构建项目(例如根本不在 Hackage 上的包,但直接或作为 Git 子模块包含在您的 repo 中),而如果您只是进行一些调整(例如通过实验测试需要什么进行更改,以便您的包将使用某些 3rd 方依赖项的新版本进行编译,您在考虑提交拉取请求或将其分叉到您自己的 repo 之前已经在本地检查过)然后这应该放在 cabal.project.local 文件。但老实说,您也可以在 cabal.project 中进行更改,然后干脆不 git add 他们.

IMO 制作包 future-proof 的所有实际重要信息都应该驻留在 <i>packagename</i>.cabal 文件中 and/or 一个 stack.yaml 文件,不在 cabal.project.


这里的危险在于,很容易意外地提交只对 already-VCS 文件本地的更改。我总是使用 git add -p 以便在提交之前查看我添加的任何更改。