* copyright.t - Ensures that there is a "Copyright
".([localtime]->[5]+1900) somewhere in every .pm file. Will break 11
months from now.
* distribution.t - Relies on Test::Distribution, which is not in my
prereq list
snipped ones that need your personal files, you are certainly right
there. I wouldn't even include them at all. Put them in the MAKEFILE.SKIP.
* versionsync.t - Checks that the $VERSION is the same in all bin/* and
*.pm files. This test is pointless after release, since it's already
been tested before release
This one you are wrong on. It's important to have this enabled in the
distribution. The reason is the following.
Imagine you add a new module, or remove a module. For various reasons
(often involving things like Class::Autouse recursive loading or
Module::Pluggable or similar things) you can in some cases accidentally
load a module from an old version of the dist installed somewhere else
in @INC.
versionsync.t (or various other implementations of it) is not only
testing that the versions within the dist are synced, but that in
loading your module you aren't ACCIDENTALLY loading something else you
shouldn't be.
I've had it happen 2 or three times in real life now on things like PPI
(which had a huge number of classes which moved a number of times) and
the Email::Send problem that only got fixed a few days ado.
* pod.t - Checks POD validity. This test is pointless after release,
since it's already been tested before release
* pod-coverage.t - Checks POD completeness. This test is pointless
after release, since it's already been tested before release
and one I have not yet employed:
* coverage.t - Ensures that Devel::Cover totals are higher than some
threshold
There is some value in running these in some contexts.
If you look at the way the make/Build system works, you can see it's
designed to encourage free software and distributed development.
Otherwise why would you have a Makefile for everyone that installs a
module that is also capable of doing a new release.
Now personally, with the exception of pod.t I don't even include the
files in my distribution. Those sorts of tests are done by my release tool.
But I'm starting to think that might be wrong...
TEST_AUTHOR or TEST_RELEASE seems like a good idea to me. It doesn't add
anything to the CPAN release infrastructure, and it's easy to implement.
That said, you'd have to manually turn it on when you were releasing,
and then turn if off when installing other people's modules... :/
But I don't know that I like disttest autodetection. I quite like being
able to run the additional tests manually if needed, and not be limited
to only during the disttest process.
Adam K