如何管理 Perl 模块依赖关系?

2023-11-23

我目前正在进行一个项目,该项目使用另一个部门开发的框架作为基础进行开发。我们目前正在我们的部门引入质量标准(终于,耶!),但目前不可能将这些标准引入其他部门。因此,我们面临着一个不断变化的目标,既没有 API 稳定性,也没有稳定的版本,这至少是有压力的。

由于我们试图首先修复问题,因此我们希望确保自己免受“上游”(又称框架代码)变化的影响。我们设想了硬模块依赖关系:

  1. 仅使用代码中定义的框架模块的某些版本范围。
  2. 使用单元测试检查来确保所有必需的版本仍然可用。
  3. 每个版本范围扩展都需要对框架代码进行同行评审。

这就是到目前为止的计划。现在的问题是:

  1. 明智吗?如果没有,还有其他想法吗?
  2. 如何在 Perl 中实现这一点?使用use Module我们只能定义应该使用的最低版本代码。

这是一个非常明智的计划,我通过一个类似 CPAN 的私有存储库(我称之为“DPAN”)来实现它。您可以从真实的 CPAN(或 BackPAN)中选择所需的发行版和版本,并从中创建您自己的存储库。您的 CPAN 客户端仅指向此存储库,从而有效地将版本冻结为您想要的版本。您只需在需要时升级即可。

此外,DPAN 不仅允许您轻松添加自己的本地私有代码,还可以修改第三方软件包以修复其安装问题等。我在 2009 年夏季刊中对这个想法有完整的理由。Perl 评论。您还可以从我的幻灯片中查看我的幻灯片创建您自己的 CPAN在 YAPC::Russia 的演讲。

如果您对此类解决方案感兴趣,请查看我的MyCPAN::应用程序::DPAN模块。它需要一个发行版目录并为您完成其余的工作。您将 CPAN 客户端指向它(并确保它不会连接到互联网),仅此而已。

一旦您可以创建自己的存储库,您就可以轻松创建测试存储库。将您认为要升级的版本转储到其中,将代码部署在测试服务器上,并收集结果。如果您不喜欢结果,可以轻松更改存储库。

我的 DPAN 工作的下一个重要步骤是采用现有的 Perl 安装以及您可能已安装的任何模块,并创建将为您提供安装状态的存储库。我拥有完成这项工作所需的所有主要部分,但我一直忙于让几个客户运行第一部分。

如果您想了解更多有关此内容的信息,请告诉我。 :)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何管理 Perl 模块依赖关系? 的相关文章

随机推荐