【发布时间】:2012-03-27 02:56:03
【问题描述】:
我从 CPAN 下载了一些模块并添加了额外的功能。我可以在 CPAN 上发布最新的模块吗?如果是,我该怎么做?有可能吗?我应该联系编写原始模块的人吗?有人可以帮助了解更新此特定模块的过程吗?
【问题讨论】:
-
您对哪个模块感兴趣?作者是谁?
我从 CPAN 下载了一些模块并添加了额外的功能。我可以在 CPAN 上发布最新的模块吗?如果是,我该怎么做?有可能吗?我应该联系编写原始模块的人吗?有人可以帮助了解更新此特定模块的过程吗?
【问题讨论】:
除非您是共同维护者,否则您将无法上传和索引同名模块。由于现在有两个(或更多)略有不同的版本,因此以不同的名称上传它对社区来说效率不高。
如果作者没有回应(意思是没有回应,不是否定回应),我们有办法pass on maintainership of abandoned modules。我们采取这个过程非常缓慢,因为我们希望给原作者或当前维护者每一个机会做出回应。有些人可能会忙于工作、度假等。但是,大多数情况都很好。
您可以将任何您喜欢的内容上传到 PAUSE,但如果您不是某种维护者,PAUSE 不会将其编入索引。它仍然会显示在您的 CPAN 帐户中,人们仍然可以通过 CPAN 网站下载它,但 CPAN 客户端不会看到它(因为它们根据索引工作)。一些搜索网站会将其显示为“未经授权的发布”。
【讨论】:
盲目地以与其所基于的模块相同的名称上传已添加功能的模块是无益的(有时会发生并且经常会造成混乱)。但是您确实有一些有用的选择:
首先,您可以联系模块的作者或维护者,通过电子邮件发送差异或补丁来显示您希望添加的内容。请务必同时提供相关文件,并解释您的理由。
模块作者可能会接受补丁并将其应用于自己的模块更新。或者,作者/维护者为了防止功能蔓延,拒绝了升级后的功能,从而导致您选择第二种选择。
第二种选择是获取您自己的 PAUSE 帐户,并继承或扩展模块。但是一定要给它你自己的新模块名称,完整的文档,并且可能在文档中解释这是 xyz 模块的扩展,具有以下附加功能......如果你正在扩展 Math::BigInt,你可能称之为 Math::BigInt::Frobcinate(只是一个例子)。
当您尝试与模块作者联系时,请耐心等待。有时需要一段时间才能让事情顺其自然。
【讨论】:
我建议您尝试联系作者。
此外,您可以通过rt.cpan.org 将模块更改作为补丁上传; CPAN 上应该有来自模块网站的链接。请参阅CPAN FAQ: How do I report/fix a bug in a module/script? 此跟踪系统用于处理您的请求,而不仅仅是报告错误。
【讨论】: