CPAN Testers Has an API


[Watch this lightning talk on The Perl Conference YouTube channel]

I've been working on the CPAN Testers project since 2015. In all that time, I've been focused on maintenance (which has involved more operations/administration tasks than any actual code changes) and modernization. It's that modernization effort that has led to a new CPAN Testers API.

This new API uses the Mojolicious web framework, along with an OpenAPI schema to expose all of the most useful CPAN Testers data. OpenAPI is a specification for web APIs, and there are tools like Swagger to generate a useful documentation website from your spec, like the CPAN Testers API documentation website.

So, I've used this new API, pulled in a bunch of JavaScript technologies like Vue.js for dynamic content and HighCharts for pretty interactive charts, and created a simple CPAN Testers chart dashboard. This dashboard shows the summary of the reports for the last few versions of a distribution, and if you click on a version bar, you see a summary of that version's reports broken down by OS, and a list of the reports. Clicking on the breakdown pie charts will filter the list below, allowing you to see only the reports you want to see.

As as aside: I've been a web developers since the 90's, but it's only in the last few years that building dynamic web applications has not been a frustrating, awful, lengthy experience. I literally put this dashboard together in 4 hours one night during The Perl Conference 2017 (but, to be fair, I've spent the last 20 years developing the experience to make this web application in 4 hours).

So, you can see how the new CPAN Testers API lets us build useful web applications from the CPAN Testers data. I'd love to see more people writing neat things that use the CPAN Testers data! If you find the API does not have the data you want, you can add it by submitting a patch to the CPAN Testers API project on Github. If you'd like to do something with the CPAN Testers data and can't figure out how, e-mail me or talk to me on IRC #cpantesters-discuss and I can help! If you really like my very small dashboard and would like to make it better, you can contribute to it in the CPAN Testers Web project on Github.

Thanks to Breno de Oliviera and Joel Berger for their help on the API and the JavaScript, and thanks to all the sponsors of the Perl Toolchain Summit for bringing us all together, which makes things like this happen!