我目前正在使用由另一部门开发的框架为基础开发的项目.我们目前在我们部门推出质量标准(最后是yay!),但目前不可能向其他部门介绍这些标准.因此,我们正在努力反对一个不断变化的目标,而不需要API稳定性或稳定的释放,这至少是至关重要的.
由于我们首先尝试解决问题,所以我们希望尽可能保护自己,只要它符合“上游”a.k.a.框架代码的变化.我们设想了硬件依赖关系:
>仅使用代码中定义的框架模块的某些版本范围.
>使用单元测试检查,以确保所有必需的版本仍然可用.
>需要对框架代码进行同行评审的每个版本范围扩展.
这是迄今为止的计划.现在的问题:
>是明智的吗?如果没有,其他任何想法?
>如何在perl中实现?使用使用模块我们只能定义最低版本的代码应该使用.
解决方法
这是一个非常明智的计划,我通过一个私人的CPAN类型的存储库来实现,我一直称之为“DPAN”.您可以从真正的CPAN(或BackPAN)中选择所需的发行版和版本,并从中创建自己的存储库.您的CPAN客户端仅指向此存储库,有效地将版本冻结到您想要的位置.您只需要升级即可.
此外,DPAN允许您轻松添加自己的本地私人代码,但是可以修改第三方软件包以解决其安装问题等.我在2009年夏季版的The Perl Review中有一个完整的理由.你也可以在YAPC ::俄罗斯的Creating Your Own CPAN演讲中看到我的幻灯片.
如果您对这种解决方案感兴趣,请查看我的MyCPAN::App::DPAN模块.它需要一个发行版的目录,并为你休息.您指向您的CPAN客户端(并确保它不会连接到互联网),就是这样.
一旦您可以制作自己的存储库,就可以轻松制作测试库.转储您想要升级的版本,在测试服务器上部署代码,并收集结果.如果不喜欢结果,可以轻松地更改存储库.
我的DPAN工作中的下一个重要步骤是使用现有的Perl安装,以及可能安装的任何模块,并创建可为您提供安装状态的存储库.我有我需要做的所有主要工作,但是我已经有点忙了,几个客户正在运行的第一个位.
如果您想了解更多有关这些内容的信息,请告诉我们.