Bringing Old Modules Up To Modern Specification
While working on Pinto, I discovered that a fair number of distributions on CPAN have invalid or incomplete metadata. This makes it hard for the toolchain (Pinto especially) to fully utilize them.
Usually the offenses are pretty minor -- misspelled or missing keys in the META files, or a non-parsable version number. Some of us have probably made local patches of these distributions to fix those problems. But there's no reason everyone should have to do it.
So I had an idea -- what if there was a secondary public CPAN where folks could contribute patched versions of these older distributions? Read the rest of the story here:
I like this idea. Anything to improve the quality of CPAN without breaking the community of CPAN is a good thing.
Are there going to be more than one patch per dist? Could the patch consist only of the META.{yml/json} file instead of the entire dist? Might make it easier for authors to accept the change to their meta file. Would adding Cpanfile be a good thing for those modules that don't specify all their dependencies or recommendations?
> Are there going to be more than one patch per dist?
Possibly. We'll cross that bridge when we get to it.
> Could the patch consist only of the META.{yml/json} file instead of the entire dist? Might make it easier for authors to accept the change to their meta file.
I suppose so, if that's the only thing that needs changing. At this point I'll take whatever people give me.
But this doesn't require any kind of approval from the author. These patched distributions are not invading their namespaces on PAUSE nor violating their copyrights. I'm simply providing a place where the community can park them.
> Would adding Cpanfile be a good thing for those modules that don't specify all their dependencies or recommendations?
Maybe. I don't know a lot about the cpanfile so I'll have to study that more. But the META files are the most "official" way to do things. Fixing those would provide the most benefit to the widest audience.
My dream job would be to fix these sorts of things in CPAN. I should get back to that with the MyCPAN stuff.
CPAN.pm has an interesting and very powerful way to deal with this and Andreas seems to know just about every oddity in every module ever released. The distroprefs feature has a way to patch distributions on the fly, and well as do many other things that make it possible for CPAN.pm to install things most other clients would barf on.
Hop to it then ;-) Here is a list of dists that have invalid metadata (i.e. CPAN::Meta::Converter can't upgrade to current spec):
https://gist.github.com/thaljef/5274300
There are 565 dists on that list. And that covers about 75% of BackPAN. I'm still indexing the rest.
Well, "job" is the key part there. That's how I'd like to make money. So far no one is paying for that sort of thing.
How many of those dists are the latest releases? Ideally the original authors should fix and re-release.. which many would do if they were informed of the issue.
Scripting up an email to send to bug-$dist@rt.cpan.org would be straight-forward.
I suspect most of those are not latest releases. But if I find one that is, I'll contact the author.