Kitty Hawk moment for CPAN Testers 2.0

Reading time: 2 minutes

It flies! 🔗︎

Not far, not well, and it isn’t ready for passengers, but over the weekend I was able to get CPAN Testers 2.0 off the ground for a few brief moments.

When I  wrote about the Perl QA hackathon, I mentioned that I had been able to take saved CPAN Testers reports and inject them into a locally running Metabase.  To (ab)use my Wright Brothers analogy, if that was ‘gliding’ then this last weekend was the first test of ‘powered flight’ as I got and a modified CPAN::Reporter to successfully send test reports into the local Metabase in the normal course of installing new modules on my development computer.

User profiles 🔗︎

One big change from the earlier attempt is the use of a persistent user profile. Previously, Test::Reporter::Transport::Metabase generated a dummy Metabase profile on the fly from the tester’s email address.  Now, it loads a persistent user profile (a Metabase::User::Profile object from the Metabase-Fact distribution).  For my experiment, this was specified in the transport option in the CPAN::Reporter config file: ((The ‘transport’ option needs to be on one line, but my WP theme seems to have a problem wrapping long lines, darn it!))

transport = Metabase uri http://localhost:3000/ profile

I also made it much easier to generate profiles, by adding a small profile-generating program to the Metabase-Fact distribution:

$ metabase-profile -o /home/david/.cpanreporter/profile.json
Enter full name: David
Enter email address:
Enter password/secret: afasdfasdfa
Writing profile to '/home/david/.cpanreporter/profile.json'

What’s next? 🔗︎

There is still no public Metabase for CPAN Testers, so at this point it remains an interesting experimental flight to prove the concept.  However, I plan to clean up the code a bit and start releasing development versions to CPAN so that the existence of a Metabase-ready CPAN Testers client ratchets up the pressure to get the server side moving forward.

In the meantime, I’m starting to take some of the lessons learned and apply them to work on CPAN::Testers::Client, which will be the unified CPAN Testers 2.0 client to replace CPAN::Reporter and CPANPLUS::Internals::Report.

All of the code for the test flight is unreleased.  However, it is available in several git repositories for those curious enough or foolhardy enough to attempt to repeat this feat. ((In metabase-web/example/cpan-testers, run the program to start up a local metabase in /tmp.  Then install Test::Reporter::Transport::Metabase (and prerequisites) and the dev version of CPAN::Reporter.  Generate and configure a profile as described above, and then good luck!))

•      •      •

If you enjoyed this or have feedback, please let me know by or