在源代码树中指定版本的最佳/正确做法是什么?我想要的是,例如,将VERSION文件放在源树的顶层,并获取"版本"函数来读取它.
cabal文件中有一个版本部分.是否可以通过"帮助"或"版本"功能从我的源代码中读取它?在一个地方指定版本并使其可用于球形的正确做法是什么?
PS Cabal库中是否有任何功能允许您从cabal文件中提取任何部分并将其显示在源代码中?然后我可以简单地从cabal文件中提取版本部分.
- 更新 -
感谢Thomas对Pathes_x模块的一个很好的了解.只是想补充一点,显然,我不需要在我的cabal文件中添加任何内容.一切都没有它.我需要的就是在你吸气的时候输入Pathes_X.此外,我需要导入Data.Version以获取showVersion函数以正确格式化/打印Version数据类型.所以最后我得到这样的东西:
import Paths_kvman
import Data.Version
runVersion _ = putStrLn ("Version: " ++ (showVersion version))
Run Code Online (Sandbox Code Playgroud)
现在,我需要的是更改cabal文件中的版本号,以便在我的源代码中传播它.正是我需要的.谢谢.
Tho*_*son 22
Cabal会自动为每个名为的包生成一个模块Paths_packagename.只需导入此包并查看version它导出的值.
编辑:例如:
module Data.Blah where
import Paths_t
func :: IO ()
func = print version
Run Code Online (Sandbox Code Playgroud)
并举例说明:
> func
Version {versionBranch = [0,1], versionTags = []}
Run Code Online (Sandbox Code Playgroud)
一定要把Paths_packagename你的Other-Modules小集团文件的部分.