gpt4 book ai didi

haskell - 应该如何确定是作为一个包还是多个包发布 Haskell 库?

转载 作者:行者123 更新时间:2023-12-03 14:26:00 25 4
gpt4 key购买 nike

有时,一个项目可以组织为单个包或多个包。当一个人处于这种情况时,应该如何决定哪个选项更好?

最佳答案

有一些直接的缺点将项目分发到多个包中:

  • 构建过程比 cabal build 更复杂
  • 版本和版本号必须协调
  • 用户必须安装并依赖多个包
  • API 文档分散在 hackage

  • 但也有 潜在利益对于仅依赖于包子集的用户:
  • 他们不必下载、编译、链接、安装、信任和许可他们不需要的包中的代码
  • 他们不必下载、...和许可他们不需要的软件包的依赖项
  • 如果他们的名称和元数据特定于单个包,而不是整个项目,他们可以更容易地发现包

  • 即使用户最终依赖于所有软件包,也有一些好处:
  • 不同的包可以有不同的维护者和/或发布时间表

  • 我认为这个决定应该基于你是否认为有用户可以真正实现潜在的好处。所以我想说这个决定主要取决于对以下 的回答。问题 :
  • 项目中是否有一部分比其他部分更改得更频繁?
  • 项目中是否有一部分比其他部分更受信任?
    (例如,核心包和贡献包)
  • 项目中是否有一部分具有许多附加依赖项但并非所有用户都需要?
    (例如,另一个项目的接口(interface))
  • 项目的一部分是否可以独立于整个项目的目的而被重用?
    (例如,主项目中使用的组合库)
  • 项目中是否存在强制用户使用特定许可证(直接或通过依赖项)但并非所有用户都需要的部分?

  • 最后,对于 cabal,在“一个包”和“多个包”之间有一个中间地带,因为一个 cabal 包可以包含一个库和任意数量的可执行文件、测试套件和基准。这涵盖了一个重要的原因,否则会导致拆分包:用户不应该仅仅依靠测试库来使用包。

    关于haskell - 应该如何确定是作为一个包还是多个包发布 Haskell 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18436604/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com