如何在CPAN上更新其他人的模块?

smi*_*ith 13 perl cpan module

我从CPAN下载了一些模块并添加了额外的功能.我可以在CPAN上发布最新的模块吗?如果是的话,我该怎么做?有可能吗?我应该联系编写原始模块的人吗?有人可以帮助更新这个特定模块的程序吗?

bri*_*foy 20

除非您是共同维护者,否则您将无法将模块上传和索引为同名.将它作为一个不同的名称上传对社区来说效率不高,因为现在有两个(或更多)略有不同的版本.

  • 联系作者
  • 将补丁提交到模块的RT队列(或其在文档中指定的问题跟踪器)
  • 如果它在Github上,请分叉项目,进行更改,然后提交拉取请求

如果作者没有反应(这意味着没有回复,而不是否定回应),我们就有办法传递被遗弃模块的维护.我们非常缓慢地采用这个过程,因为我们希望给原始作者或当前维护者一个机会做出回应.有些人可能会在工作,度假等方面淹没.但是,大多数情况都很好.


您可以将任何您喜欢的内容上传到PAUSE,但如果您不是某种维护者,则PAUSE不会将其编入索引.它仍将显示在您的CPAN帐户中,人们仍然可以通过CPAN网站下载它,但CPAN客户端将无法看到它(因为它们根据索引工作).一些搜索网站会将其显示为"未经授权的发布".


Dav*_*idO 15

盲目地上传一个你已经添加了功能的模块与它所基于的模块名称相同是无益的(它有时发生并经常造成混乱).但是你确实有一些有用的选项:

首先,您可以联系模块的作者或维护者,通过电子邮件发送差异或补丁,显示您希望添加的内容.请务必提供相关文档,并解释您的理由.

可能是模块作者将接受补丁并将其应用于模块本身的更新.或者可能是通过防止爬行特征,作者/维护者拒绝升级的功能,这会引导您进入第二种选择.

第二个选项是获取您自己的PAUSE帐户,以及子类或以其他方式扩展模块.但是一定要给它自己的新模块名称,完整的文档,并且可能在文档中有一个解释,这是xyz模块的扩展,具有以下附加功能......如果你正在扩展Math :: BigInt,你可能会称之为Math :: BigInt :: Frobcinate(仅举例).

当您尝试与模块作者联系时,请耐心等待.有时需要一段时间才能让事情顺利进行.


too*_*lic 10

我建议您尝试联系作者.

此外,您可以通过rt.cpan.org将模块更改上传为补丁; CPAN上的模块网站应该有一个链接.请参阅CPAN FAQ:如何报告/修复模块/脚本中的错误? 此跟踪系统用于您的请求,而不仅仅用于报告错误.