|Think about Loose Coupling|
Fixing broken CPAN modules without author cooperationby cavac (Chaplain)
|on Apr 26, 2012 at 16:23 UTC||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."