CPAN is all broken, now

I am not sure whose fault is, but Test::Pod now verifies for characters outside ASCII, and complains a missing =encoding directive. I like this check to be done, but I do not think that breaking half of the CPAN is a good idea. It would be better to just carp for the error, but not make it fail. This would give time to authors to fix their modules. In a later release, this could be a fatal error.

Now, we have Dancer, DBI and a lot of other modules broken, not installing cleanly from CPAN.

13 Comments

As I can see the latest version of Test::Pod is 3 months old. (1.45 released on Mar 09, 2011) Are you sure that's the source of the problems you see?

Oh and Dancer-1.3095 tests pass for me with Test::Pod installed.

That's why it's best to put Test::Pod type stuff in "xt" instead of "t". :-)

Exactly what Toby Inkster said. The problem is running POD syntax tests when you install the module.

Those are clearly author tests, that should be run at release time, not at install time.

Fix the real problem.

If you're looking for someone to blame - I guess that would be me.
Historically both search.cpan.org and metacpan.org have had difficulty displaying non-ASCII data in POD where the author has not specified an encoding. My patch to Pod::Simple targets POD documents that include non-ASCII characters but no =encoding. One part of the patch implements a heuristic to guess the encoding and allow the characters to be rendered properly. The other part generates the parse warning that you're seeing. Both of these changes implement things that have long been documented in the perlpodspec.
As Toby says, the real problem is that some CPAN authors have included POD tests that are run at install time rather than simply as author tests run at release time (I'm probably guilty of this myself).

Test::Pod has always failed on warnings, IIRC. There is just a new warning.

Alberto: The new message from Pod::Simple is just a warning.
The Test::Pod module (which has not been changed) treats any warnings from the POD::Parser as a test failure. This is reasonable in an author-only test but not a test run at install time.

In that case, I would consider your changes to be broken.

See: http://www.cpantesters.org/cpan/report/33267be8-a901-11e1-b995-c5a3320db69d

Now have a look at the POD in that file, it's all ASCII. There is a UTF-8 character in the file, but not in the POD.

That was a bug in the 3.21 release of Pod::Simple and should be fixed in 3.22. I can't tell from that report which version was being used.

Can someone tell me what to roll back so that I can use CPAN again?

What actually changed?

rm'ing Test/Pod.pm makes everything better. Hooray!

Leave a comment

About Alberto Simões

user-pic I blog about Perl. D'uh!