On Jul 5, 2008, at 7:58 AM, Barbie wrote:

On Fri, Jul 04, 2008 at 10:02:24PM -0400, James E Keenan wrote:
David Cantrell wrote:
On Tue, Jun 17, 2008 at 09:40:02PM -0400, David Golden wrote:

There also seem to be some things in ~/tmp/
That's on linux. It's worse on Win32. Lots of stuff winds up dumped
in c:\.  In one case, I think there were several thousand tiny
directories.

On *nix I periodically clean out several hundred files from /tmp.
I assume that they're created by File::Temp.


In the course of my testing of Parrot's configuration and build tools, I have had *many* occasions to create temporary files and directories. At one point last year I got complaints. We found that code like this did
the trick:

use File::Temp qw( tempdir tempfile );
my $tdir = tempdir( CLEANUP => 1 );
my ( $tmpfile, $fname ) = tempfile( UNLINK => 1 );

Since these are functions from a core module, there is no excuse for any CPAN author not to use them with these cleanup options. (I'd say that
proper cleanup of temp files created during testing should be a
'kwalitee' metric -- but I don't want to get into that argument!)

Funny you should mention that. I've been slowly working through the
rewrite of YACSmoke. One of the aspects that I've been thinking about is having CPAN Testers run the often disputed "pod.t" and "podcover.t" type
tests.

Yecch! I particularly dislike the pod.t and podcover.t tests. I specifically do not include them as default selections in ExtUtils::ModuleMaker.

[snip]


However, the major problem I can see with that is if a distribution is
well respected, but fails these tests. I can see a huge backlash.

Starting with me.

The CPAN distro of which I am most proud and for which I get the most positive feedback is List-Compare. But for years this distro got red marks in the CPANTS columns for those two tests. Why? Because instead of organizing the POD with the subroutine names as "=head" or "=item" elements, I organized it by the way humans would pose a question, e.g., "How do I get the intersection of more than two sets?" Those tests -- more likely podcover.t -- refused to recognize that I had written documentation which, if printed, would run to more than twenty pages.

Apart from these objections, to include pod.t and podcover.t in CPAN Testers would constitute scope creep. As I see it, automated CPAN testing exists first and foremost to provide module authors with immediate feedback on these questions:

* Were we able to download your distro from the CPAN and prepare it to run? * Were we able to build it successfully with either ExtUtils::MakeMaker or Module::Build?
*  Which tests, if any, did it fail?

Now, as the point of this thread is to prevent garbage from getting on the machines of CPAN testers, you could argue that a fourth question should be:

*  If the distro needs to clean up after itself, does it do so?

But once you start adding "kwalitee" features, you diverge from your core mission in a misguided attempt to be all things to all people.

Please don't do it!

Thank you very much.

Jim Keenan

Reply via email to