Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Fixing broken CPAN modules without author cooperation

by cavac (Parson)
on Apr 26, 2012 at 16:23 UTC ( [id://967397]=perlquestion: print w/replies, xml ) Need Help??

cavac has asked for the wisdom of the Perl Monks concerning the following question:

As i develop relatively big and complex projects, i find myself more and more in an awkward position: Often, the "perfekt" CPAN module for a job has a critical (but easy to fix) bug. Otherwise it would work just as required.

If the modules author can be contacted and is willing to fix the problem, everything is fine. But often, these are older modules the original author is not interested in them anymore. Sometimes, the required bugfixes are documented in years-old open bugtracker ticket.

So, how to proceed? Of course, i could always try and contact the original author and ask him/her if i could take over that module. That could take - in some cases - months. And at the end, i would be stuck with the maintenance of the module. That's not ideal in every case.

I could upload a patched, renamed version of the module. I've done this today. While it has the effect of bringing a fixed version nearly instantly to other users, it clutters the namespace and confuses other users. And i'm stuck with maintaining the module... again.

I've also done the third option once, writing a module that patches other modules (in my case, it also added some functionality). But in this case i'm not only stuck with maintaining the module, i also have to constantly track if the other modules get updated and patch my autopatcher to keep everything working.

The last option, "hostile takeover", e.g. asking the admins to transfer that namespace to me after a prolonged silence from the original author: Not worth trying except in very extrem cases. It takes forever, the original author won't like it if (s)he ever finds out.

So, what do you think? What are the best options? How do you deal with such a situation?

"You have reached the Monastery. All our helpdesk monks are busy at the moment. Please press "1" to instantly donate 10 currency units for a good cause or press "2" to hang up. Or you can dial "12" to get connected directly to second level support."
  • Comment on Fixing broken CPAN modules without author cooperation

Replies are listed 'Best First'.
Re: Fixing broken CPAN modules without author cooperation
by BrowserUk (Patriarch) on Apr 26, 2012 at 16:29 UTC

    Fix it and upload an "unauthorised" version.

    1. You get what you need.
    2. You've 'done your bit', by sharing the fix with the rest of the community.
    3. You throw the onus on how to proceed from there, back on the maintainer.

    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

    The start of some sanity?

Re: Fixing broken CPAN modules without author cooperation (upload)
by tye (Sage) on Apr 26, 2012 at 16:37 UTC

    Upload a fixed instance of the module under the same name and with an incremented version number. It will be glaringly labeled "*UNAUTHORIZED*" and not fully indexed. But it is still available for download and adds to the demonstration of how CPAN currently stressing ownership far above collaboration interferes constantly with getting CPAN modules improved. Maybe those with the power to make even minor changes to how the CPAN infrastructure works will eventually respond to tons of "unauthorized" improvements being uploaded. So far, they seem pronouncedly uninterested in even acknowledging the problem.

    - tye        

Re: Fixing broken CPAN modules without author cooperation
by salva (Canon) on Apr 27, 2012 at 07:22 UTC
    Of course, i could always try and contact the original author and ask him/her if i could take over that module.

    You could try? this is the first thing you should do!!!

    Most authors would be delighted by somebody taking over their abandoned modules and it requires very little effort on your side, just writing a polite email.

    A reply falls below the community's threshold of quality. You may see it by logging in.
Re: Fixing broken CPAN modules without author cooperation
by stevieb (Canon) on Apr 26, 2012 at 20:07 UTC

    I've asked this question here before. If you've taken the normal approaches, send an email to modules@perl.org. State the name of the module in your subject, along with a brief snip about how you have a fix for it.

    In the body, clearly state what you've done to try to contact the author and how it failed (bounce etc) and how long you've been trying to get the software fix. The PAUSE people will give you 'maintainer' rights on the software after they verify your claims. Then you can upload the software with the same name into your PAUSE space and new users will automagically download your version.

    You can feel good about this, as you've covered all of your bases... publicly in this case. If the original author returns, you know you were professional about the situation, and hopefully they'll either give you ownership, or incorporate your work into the project.

    Update: email once, wait a couple days. If you hear nothing by then, email again. Those monitoring modules@ have lives too. They will get back to you though. Promise.

    Update/Edit: PAUSE takeover FAQ. I believe I also got the email address wrong originally. According to the above link, it is modules at perl.org and not @cpan.org as I originally had.

Re: Fixing broken CPAN modules without author cooperation
by grantm (Parson) on Apr 28, 2012 at 05:18 UTC

    I'm sorry but I really don't understand why people are suggesting an unauthorised upload. If you supply a patch in an RT queue then your fix is available to anyone who wants it regardless of whether the maintainer applies it. It's not uncommon for example for Perl modules in Debian to be built from the official release with selected patches added.

    If the maintainer has abandoned the distribution you either care enough to adopt it and continue maintenance or you don't. Uploading an unauthorised and unmaintained module really doesn't help anyone.

      Uploading an unauthorised and unmaintained module really doesn't help anyone.

      Sure it does, it removes the hassle of having to sift through the bug reports, locate and apply patches

      It is like an actual branch/fork, rather than a patch file

Re: Fixing broken CPAN modules without author cooperation
by JavaFan (Canon) on Apr 27, 2012 at 11:11 UTC
    I could upload a patched, renamed version of the module. I've done this today. While it has the effect of bringing a fixed version nearly instantly to other users, it clutters the namespace and confuses other users.
    I don't buy the "it clutters the namespace" argument. If everyone would use that, noone will upload a new module -- they all "clutter the namespace" in the same way.

    As for confusing other users, why? Do you use confusing names? Do you write gibberish in your README? What is it what you do to confuse people? Really, CPAN is full of modules X that use module Y, Z and W. That doesn't seem to confuse people, so I'm curious, what do you do to make it confusing?

    There's little difference between a module Foo::Bar::Baz that uses the functionality of Foo::Bar, extends the functionality of Foo::Bar, is a wrapper with a different API around Foo::Bar, does some aspects of Foo::Bar differently, or works around a bug in Foo::Bar.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://967397]
Approved by BrowserUk
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (3)
As of 2024-04-24 02:11 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found