Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I update someone else's module on CPAN?

Tags:

module

perl

cpan

I downloaded some module from CPAN and added to it extra functionality. Could I post the newest module on the CPAN? If yes, how should I do this? Is it possible at all? Should I contact the person who wrote the original module? Could someone help about the procedure to update this specific module?

like image 376
smith Avatar asked Mar 09 '12 16:03

smith


People also ask

How CPAN works?

CPAN, the Comprehensive Perl Archive Network is the system that makes these available for others to download and install. CPAN uses PAUSE's permissions data to determine if a given release contains unauthorized packages.

How do I remove a CPAN module?

Install App::cpanminus from CPAN (use: cpan App::cpanminus for this). Type cpanm --uninstall Module::Name (note the " m ") to uninstall the module with cpanminus.

What is CPAN command?

Description. The CPAN module automates or at least simplifies the make and install of perl modules and extensions. It includes some primitive searching capabilities and knows how to use Net::FTP, LWP , and certain external download clients to fetch distributions from the net.

What does CPAN consist of?

The Comprehensive Perl Archive Network (CPAN) is a repository of over 250,000 software modules and accompanying documentation for 39,000 distributions, written in the Perl programming language by over 12,000 contributors.


3 Answers

You won't be able to upload and index a module as the same name unless you are a co-maintainer. Uploading it as a different name isn't very productive for the community as there are now two (or more) slightly different versions.

  • Contact the author
  • Submit your patches to the RT queue for the module (or the issue tracker it specifies in its docs)
  • If it's on Github, fork the project, make the change, and submit a pull request

If the author is unresponsive (which means no response, not a negative response), we have ways to pass on maintainership of abandoned modules. We take this process very slowly because we want to give the original author or current maintainer every chance to respond. Some people might be swamped at work, on holiday, and so on. However, most situations turn out very well.


You can upload anything that you like to PAUSE, but if you are not some sort of maintainer, PAUSE won't index it. It will still show up in your CPAN account and people can still download it through the CPAN website, but the CPAN clients won't see it (since they work according to the index). Some of the search sites will show it as an "Unauthorized release".

like image 177
brian d foy Avatar answered Oct 27 '22 02:10

brian d foy


It would be unhelpful to blindly upload a module that you've added functionality to under the same name as the module that it's based on (it happens sometimes and often creates a mess). But you do have options that would be helpful:

First, you could contact the module's author or maintainer, emailing a diff or patch showing what you would like to see added. Be sure to supply relevant documentation as well, and explain your rationale.

It could be that the module author will accept the patch and apply it to an update of the module himself. Or it could be that by way of prevention of creeping featurism, the author/maintainer rejects the upgraded functionality, and that leads you to a second option.

The second option is to get your own PAUSE account, and either subclass or otherwise extend the module. But be sure to give it your own new module name, full documentation, and probably an explanation within the documentation that this is an extension of xyz module with the following additional functionality... If you're extending Math::BigInt, you might call it Math::BigInt::Frobcinate (just an example).

When you do attempt to make contact with the module author, please be patient. Sometimes it takes awhile to let things run their proper course.

like image 15
DavidO Avatar answered Oct 27 '22 02:10

DavidO


I recommend that you attempt to contact the author.

Additionally, you can upload your module changes as a patch via rt.cpan.org; there should be a link from the module's website on CPAN. Refer to the CPAN FAQ: How do I report/fix a bug in a module/script? This tracking system is used for requests such as yours, not just for reporting bugs.

like image 10
toolic Avatar answered Oct 27 '22 02:10

toolic