A faster configuration for CPAN::Reporter
The idea of
CPAN::Reporter is great: take advantage of all those daily uses of the
cpan shell to collect reports from a large network of users.
I tried several times to enable
CPAN::Reporter but I always found that it delayed just enough of my workflow that I found it a nuisance. After each test phase, it would start a SMTP connection and send the report. Those 3 or 4 seconds where a bit too much for me.
After a bit of reading I found a good compromise to report my test runs without affecting the performance. The setup is simple: make
CPAN::Reporter write the test results to a directory and create a command to send them later.
To set this up, first you install CPAN::Reporter as usual and then you tweak the configuration to store the reports in a directory. My
~/.cpanreporter/config.ini looks like this:
email_from = "Pedro Melo"
edit_report = no send_report=unknown:yes fail:yes pass:yes na:no transport=File /Users/melo/.cpan/reports
The trick is to use the
File transport. You configure it with the directory where the test reports will be stored. In my case I choose
/Users/melo/.cpan/reports. You need to make sure that directory exists.
From now on, every time you use the
cpan shell to install a module, the test reports will be stored in you test report directory.
How and when you run it is up to you. You can run it manually from time to time, or from a cron, or use something like folder actions to monitor the directory and start the script whenever a new file is placed there. I run it manually for now.
My command line to use the script is this:
x-perl-send-test-reports \ --from email@example.com \ --server smtp.gmail.com \ --transport 'Net::SMTP::TLS User firstname.lastname@example.org Password my_password Port 587' \ ~/.cpan/reports
So one less excuse not to report your test results. If you are not using CPAN::Reporter, start now.