One of the topic which came up several times at the toolchain summit was CPAN distributions without a META.yml or META.json. No metadata make life hard for tools in a number of ways, which isn't good for distributions that somewhere on the CPAN River. Many of these distributions have had RT tickets raised about this issue, but that hasn't really had much effect. So I've an idea for a new approach.

What are some of the problems caused by not have a META file?

Tools can't statically determine the pre-requisites for the distribution

MetaCPAN won't be able to list the distribution's prerequisites

If the distribution has a github repo, MetaCPAN won't list it in the sidebar

Any tools doing static analysis of dependency graphs won't be able to see what distributions are upstream of yours. For example, my code to generate the CPAN River data won't see anything upstream of your dist.

If you want to use something other than RT for bugtracking, then you need to list it in the META file, where RT can find it. Then RT will direct people to your preferred bug tracker.

Instead of saying to the relevant authors and maintainers

Hey, this distribution is a little bit broken!

We should say to them

A few simple changes would make your distribution work better with CPAN tools. We can help you fix it up.

But first we need to work out why some distributions have been released without metadata. To do that I propose that we work with the maintainers of distributions to resolve the issue, and build a record of what was needed.

Based on that we'll be able to provide FAQs to help other authors.

So I'm looking for volunteers prepared to help out. If you'd like to help, send me email (neil at bowers dot com), and I'll assign you a CPAN distribution (via email). I'm picking the distributions that are furthest up river.

The idea is:

You contact the author / maintainer, offering to help them get a release done which has META.yml and META.json

See if there's a github repo, and fork it if there is, otherwise download the tarball from CPAN.

Work out what the problem is and how to fix it.

While you're there, you could check out the dist on CPANTS and address any other issues.

Send a pull request, or patch, or whatever is best for the maintainer.

If you can't track down the maintainer, or the maintainer isn't interested in the dist any more, work through the process of getting co-maint, so you can do a release that has META.yml and META.json

Write up what you did in this google doc. I'll give you edit rights when I assign you a dist.

Once we've done a few of these, we'll create a FAQ. Then we can look at automatically checking all the dists on the River which are missing metadata, and sending an email to the maintainer (and/or raising an RT ticket), with targeted help.

The furthest up-river dist with this problem is Expect. I had email with Dave, the current maintainer, and he was up for it, so I sent him a pull request, and added notes to the google doc. Dave has now released a new version of Expect, which has META.json and META.yml.

The toolchain summit is only possible with the support of sponsors. Thank you to Booking.com, ActiveState, cPanel, FastMail, MaxMind, Perl Careers, MongoDB, SureVoIP, Campus Explorer, Bytemark, CAPSiDE, Charlie Gonzalez, Elastic, OpusVL, Perl Services, Procura, XS4ALL, Oetiker+Partner.

Please enable JavaScript to view the comments powered by Disqus.

Disqus