带有堆栈的上游开发(多项目开发)的工作流程是什么?

时间:2018-12-16 21:25:20

标签: haskell haskell-stack

高级概述

我正在寻找简单的工作流程,以允许我编辑堆栈项目中库依赖项的源代码,然后在其他一些依赖项目中对其进行测试。更明确地说,这种情况是我正在开发一个依赖于其他Haskell库(B)的Haskell应用程序/库(A),并且我想在测试时尝试向(B)添加功能/错误修复程序(A)在新修改的(B)上。

详细信息

我有一个stack.yaml文件,内容:

resolver: lts-12.22
packages:
- .
nix:
  packages: [gmp, pkgconfig, SDL2, SDL2_image, SDL2_ttf]

我的hico.cabal中的内容多于值得发布的内容,但我认为相关的内容基本上是:

library
  hs-source-dirs:      src
  exposed-modules:     Hico
  other-modules:       Hico.Game
                     , Hico.Config.Cli
                     , Hico.Internal.Types
                     , Hico.Internal.InputHandling
                     , Hico.Types
  build-depends:       base >= 4.7 && < 5
                     , sdl2
                     , sdl2-image
                     , sdl2-ttf
  default-language:    Haskell2010

我希望在文件系统中有sdl2的本地副本,以便可以在hico项目中测试对其的一些更改。

1 个答案:

答案 0 :(得分:1)

  1. 克隆上游项目
  2. 在下游,将本地结帐从(1)添加到stack.yaml中的extra-deps
  3. 破解这两个项目,直到我想分享一些东西
  4. 向上游推至github /任何地方
  5. 在下游编辑stack.yaml,以按提交ID(而不是本地路径)指向github。这样一来,其他人就可以使用与我使用的上游补丁相同的补丁来构建它。
  6. 通过上游项目打开PR,以合并我的更改
  7. 接受PR后,将stack.yaml指向合并结果或Hackage上的已发布版本