Nik*_*nko 11 legacy perl dependencies module
我目前正在使用由另一个部门开发的框架作为基础开发的项目.我们目前正在我们的部门引入质量标准(最后,yay!),但目前无法将这些标准引入其他部门.因此,我们正在努力对抗一个持续不断移动的目标,既没有API稳定性,也没有稳定的释放,这至少是一种压力.
由于我们首先尝试解决问题,因此我们希望确保自己能够抵御"上游"即框架代码的变化.我们设想了硬模块依赖:
到目前为止,这是计划.现在的问题是:
use Module我们只能定义应该使用的最低版本代码.bri*_*foy 15
这是一个非常明智的计划,我通过类似CPAN的私有存储库来实现它,我一直称之为"DPAN".您可以从真实的CPAN(或BackPAN)中选择所需的发行版和版本,并从中创建自己的存储库.您的CPAN客户端仅指向此存储库,有效地将版本冻结到您想要的版本.您只能在需要时升级.
此外,DPAN不仅可以轻松添加您自己的本地私有代码,还可以修改第三方软件包以修复其安装问题等.我在2009年夏季刊中对Perl评论提出了完整的理由..您还可以在YAPC :: Russia的" 创建自己的CPAN"演讲中看到我的幻灯片.
如果您对此类解决方案感兴趣,请查看我的MyCPAN :: App :: DPAN模块.它需要一个发行版目录,并为您完成剩下的工作.您将CPAN客户端指向它(并确保它不会连接到互联网)就是这样.
一旦您可以创建自己的存储库,您就可以轻松地创建一个测试存储库.转储您认为要升级到其中的版本,在测试服务器上部署代码并收集结果.如果您不喜欢结果,则可以轻松更改存储库.
我的DPAN工作的下一个重要步骤是使用您可能安装的任何模块进行现有的Perl安装,并创建可以为您提供安装状态的存储库.我拥有完成这项工作所需的所有主要部分,但我有点忙于让几个客户运行第一部分.
如果你想更多地了解这些内容,请告诉我.:)
虽然我希望 CPAN 比您所依赖的模块更稳定,但让我问一个类似的问题:您将如何保护自己免受 CPAN 模块中意外更改的影响?
一种答案是:您可以下载该模块并在测试环境中将代码回归到该模块。
在这里可以使用同样的方法吗?您是否必须指向他们模块的“实时”副本,或者您可以指向您自己的副本吗?