Cabal & Stack 从哪里获取 Hackage 包?

Where do Cabal & Stack fetch Hackage packages from?

我有兴趣为 Hackage 创建一个工具,涉及分析 Hackage 包之间的各种依赖关系。我认为这将涉及下载和同步所有 Hackage 包源的镜像,特别是 *.cabal 文件,我可以在这些文件上 运行 我想到的各种分析。

如何访问 cabal 和 stack 从中获取包的相同存储库? cabal 和 stack 是否有一个 API 用于获取我的程序可以类似地插入的包?

我目前正在开发一个可以轻松(或至少更容易)访问此元数据的库。但是从 Hackage 获取所有包的元数据的基本规则是:

请注意,由于 Hackage 的修订,可能会有多个 cabal 文件具有相同的 name/version 组合(称为包标识符)。