我目前正在开发一个项目,使用另一个部门开发的框架作为基础。我们目前正在为我们的部门引入质量标准(最后,耶!),但目前不可能将这些质量标准引入其他部门。因此,我们正在努力克服一个持续不变的目标,而不是稳定的API或稳定的版本,这至少是压力。如何管理Perl模块依赖关系?
由于我们试图首先解决问题,所以我们希望尽可能保证自己能够抵挡“上游”a.k.a.框架代码中的更改。我们设想了硬件模块依赖关系:
- 仅使用特定版本范围的框架模块,在代码中定义。
- 使用单元测试检查来确保所有必需的版本仍然可用。
- 每个版本范围扩展需要对框架代码进行同行评审。
这是迄今为止的计划。现在的问题:
- 明智吗?如果没有,还有其他想法?
- 如何在Perl中实现这个?使用
use Module
,我们只能定义应该使用的最低版本代码。
CPAN不稳定,因为你不能阻止任何人做任何事情。一个特定的模块可能完全没有bug,但即使是一个接口更改也可能会破坏依赖它的代码。罪魁祸首是CPAN工具链的设计,其中最新的版本是客户端试图安装的版本。 – 2009-07-31 17:27:07