On Thu, Feb 02, 2006 at 10:01:48AM -0800, Tyler MacDonald wrote: I strongly feel that authors should keep everything necessary for their distribution public; either in the CPAN distribution itself, or via a "permanent" publicly available version control system.
Who's to say you won't lose interest in maintaining the module or in perl altogether at some point? Or move to Antarctica and be unable to maintain it? Or have your home/business or wherever your files are kept destroyed in a hurricane or other natural disaster? And, of course, we all will die someday. Some suddenly. I do agree that many (all?) of these tests are irrelevant to someone packaging your distribution. > Chris Dolan <[EMAIL PROTECTED]> wrote: > > * 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 > > * perlcritic.t - Runs Test::Perl::Critic on all .pm files. Will > > fail without my specific $HOME/.perlcriticrc "Test::Perl::Critic allows you to configure Perl::Critic by passing the path to a F<perlcriticrc> file in the C<use> pragma. For example: use Test::Perl::Critic (-profile => 't/perlcriticrc'); all_critic_ok();" Probably you'd like this to keep in sync with any changes to your .perlcriticrc, which may require some changes to your Makefile.PL/ Build.PL. > > and will fail with future, more exhaustive versions of P::C It would be nice if there was some way to indicate which version of P::C was expected to pass, and TODO any newly looked for problems. > > * spelling.t - Runs Test::Spelling. Will fail without my custom > > dictionary There's Test::Spelling::add_stopwords and =for stopwords. These should be used as much as possible instead of adding to your custom dictionary. But at least your custom dictionary is recreatable (because all the needed words are included in your pod :) should someone else pick up maintenance of your distribution. > > * 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 > > * 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 > > Wow, you really *are* exhaustive. How do you find the time to write any > code? ;-) > > Now that I understand exactly what you mean by "author" tests, here's what I > think: Whatever convention you're using, if these tests are only going to > work on your system, then they definately shouldn't be in "t". And since > there's absolutely no value in these types of tests for anybody else except > the module author, there's no real point in having a convention, just stick > 'em anywhere that the make/buildfiles will ignore them. I disagree; presumably anyone running disttest would want these tests run, so they belong in t and named .t, with an appropriate skip_all at the top. Does anyone have a problem with disttest setting PERL_TEST_EXHAUSTIVE? Or a suggestion for a better name? Chris, how are you currently set up to run these tests only when preparing a release?