代码之家  ›  专栏  ›  技术社区  ›  Norman Ramsey

管理相关阴谋集团包的最佳实践是什么?

  •  5
  • Norman Ramsey  · 技术社区  · 14 年前

    我正在开发一个用Haskell编写的基于数据流的优化库。现在看来,图书馆可能要分成两部分:

    • 核心 具有最小构建依赖性的片段;调用它 hoopl-core .

    • 满的 一块,叫它 hoopl 可能对预打印程序、快速检查等包有额外的依赖关系。

    其思想是格拉斯哥haskell编译器将只依赖于 霍普尔铁芯 这样就不会太难引导编译器。其他编译器将得到额外的好处 霍普尔 . 包裹 霍普尔 将取决于 霍普尔铁芯 .

    Debian包工具可以从一个源代码树构建多个包。不幸地 Cabal has not yet reached that level of sophistication . 但是必须有其他的库或应用程序设计人员有类似的问题(例如,一个包用于核心库,另一个用于命令行接口,另一个用于GUI接口)。

    当前使用cabal构建和管理多个相关haskell包的最佳实践是什么?

    2 回复  |  直到 14 年前
        1
  •  3
  •   Simon Marlow    14 年前

    我会把这两个包放在不同的子目录中,然后 Makefile 就这样:

    .PHONY: all hoopl hoop-core
    all : hoopl
    
    hoopl : hoopl-core
           cd hoopl && cabal build && cabal register --inplace
    
    hoopl-core
           cd hoopl-core && cabal build && cabal register --inplace
    

    这假设您已经通过首先构建Hoopl核心并注册它来引导进程。( --inplace )然后建造 hoopl . 您可以使用makefile实现更多的自动化。

    如您所知,当我们想要为GHC提供类似的功能时,我们编写了自己的构建系统;-)我不建议这样做。从技术上讲,我认为可以从GHC构建系统中提取所需的部分,并构建一个可重用的框架,尽管……

        2
  •  2
  •   Ganesh Sittampalam    14 年前

    将这两个包放入源代码管理报告的单独子目录中,并使用两个单独的cabal文件。

    确保在移动文件时使用源代码管理系统的移动操作,以便它正确跟踪历史记录。