在独立的git存储库中维护/测试(主要是Perl)软件的最佳实践是什么?



我正在重构一个大的(主要是Perl)代码库。与其把所有东西都放到一个巨大的git存储库中,我更愿意把相关的模块和它们的测试分组到单独的git存储库中,并让这些存储库的结构像CPAN发行版一样。

一个问题是,如果每个存储库都有一个不同的CPAN发行树,那么使用子模块似乎很尴尬,因为(为了测试目的)我们真正想要的是在测试中包括每个子模块的"库"。这是一个小问题,我已经意识到各种简单的解决方案("在测试中使用lib…"),但我想知道其他开发人员在类似的情况下是怎么做的,以及什么被认为是最佳实践。

一个更重要的问题是如何处理分支。如果创建了子模块的新分支,然后更新了分支,我如何在超级存储库中测试依赖于该分支的代码?(我可能不一定要对超级存储库进行更改,只是检查对子模块的更改没有破坏任何东西。)

同样的,是否有工具可以跟踪git仓库之间的依赖关系,这样我就可以确定哪些超级仓库需要在一个分支改变依赖关系后进行测试?

由于软件已经准备好了cpan,只需在发行版元文件中声明测试深度。换句话说,考虑的是发行版,而不是存储库/分支。我认为你缺少像CPAN::Mini或DPAN这样的东西,以及打包和注入发行版的过程。

分支应该增加版本号,可能使用下划线数字或使用-TRIAL发行版名称来表示非稳定版本。

可以使用PERL5LIB环境变量来避免在脚本中添加临时的use lib语句。perlrun

最新更新