我已经完成了基于震动的构建系统的编写,并已进入部署阶段。
是否有关于在Intranet方案中部署基于Shake的构建系统的最佳实践资源?我关注的事情就像5年后复制一个版本,无论是简单的cabal还是堆栈更适合构建构建系统本身,如何跟踪构建系统依赖关系,因为没有互联网访问......
为了重现构建,我正在考虑在标记版本之前生成Makefile(使用我的方法很容易),并使用make
来构建使用最新版本无法构建的点摇动版。这样可以避免在一段时间内将震动本身所使用的所有依赖项存储在副本中,但我想知道是否有更好的方法。
答案 0 :(得分:1)
对于复制构建和构建系统,最好的方法是使用操作系统的虚拟机映像,以及您可能从Web上获取的所有内容 - 例如关于Hackage的Haskell库。这应该给你100%的可重复性,并且与项目/语言无关。
如果你想为Haskell项目避免一个完整的VM,那么下一个最好的东西就是一个stack.yaml
文件,它指定了一个给定的包集,因此完全绑定了每个包的版本,所以将坚持Shake的旧版本。
由于Shake比Make更新,并且有一个更大的API,它不可避免地会比Make更改,并且会有中断意味着你的旧代码将不再无限期地工作(希望很少见,希望很容易修复) 。相比之下,Make几十年来一直非常稳定,因此如果创建起来便宜,Makefile备份可能很有用。