in reply to cpan smokers, PREREQ_PM, and PDL dependency

Personally, I've ditched the idea of having "one central version" and have an (identical) $VERSION in every module of a distribution. I use Perl::Version resp. the perl-reversion script there to bump the version number in all module files at once.

Replies are listed 'Best First'.
Re^2: cpan smokers, PREREQ_PM, and PDL dependency (perl-reversion)
by toolic (Bishop) on Nov 19, 2015 at 17:33 UTC
    UPDATE: I think I have a patch which works...

    Thanks for showing me perl-reversion! It's nice, but I can't convince it to replace the version in one of my t/*.t test files. I'm using the format straight out of Test::More:
    BEGIN { use_ok('Some::Module', 1.02) }

    I don't see any relevant RT issues open for it. I'll keep staring at the code to figure out why, but if you happen to know of a workaround, please let me know.

      I don't think it looks for arbitrary numbers. Reading through the source, it seems to look for things like VERSION followed by something that looks like a version number.

      I guess a good workaround could be to use:

      BEGIN { my $VERSION; $VERSION = 1.02; use_ok('Some::Module', 1.02); };

      ... but then, I'm not sure what the use of use_ok is anyway. The test will crash if use_ok fails, but if it fails, there is little sense to continue anyway :)

        Thanks for the reply. I looked at other open patches, and I think I created one for myself:
        sub version_re_test { my $ver_re = shift; return qr{ ^ ( .*? use_ok .*? ) $ver_re ( .* \s*) \z }x; }
        I'll test it out, and if it works, I might upload it to RT. Yeah, I'm wondering if use_ok adds any value myself. I thought this was the standard way to test the VERSION variable. Is there another standard way?
      Just tell reversion where to search:
      perl-reversion .

      If it finds too much, be more specific about the version you want to change:

      perl-reversion --current 1.02 --bump

      Or search only some directories

      perl-reversion t lib

      etc.

      ($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,
Re^2: cpan smokers, PREREQ_PM, and PDL dependency
by Anonymous Monk on Nov 19, 2015 at 16:14 UTC
    thanks, that's a good tip for consistent versioning which would at least allow PREREQ_PM to specify the "real" PDL-linked dependency, not sure it would help with the compilation/linking issue though, which is hard to test (indirectly via cpan smokers) without uploading a ton of miniscule changes to CPAN.

      I don't know if this'll help at all with your wanting to do incremental testing, but I started using Travis CI for build tests prior to uploading to CPAN to let a wider range of test platforms have at it. In doing this, I minimize to the best of my ability not uploading something to the CPAN that will fail because of something stupid, making publicly available a broken module, and taxing the CPAN Testers for nothing.

      Just put your code on Github, sign up for Travis-CI, create a .travis.yml file in your distribution's root directory (example contents below), and then with every push, you get testing on a wide range of perl versions, across Mac and Linux (no Windows unfortunately... I have two Strawberry Perl VMs I test my modules on manually prior to upload to CPAN).

      This is an exact working copy/paste of a .travis.yml file from one of my modules.

      language: perl perl: - "blead" - "5.22" - "5.20" - "5.18" - "5.16" - "5.14" - "5.12" - "5.10" os: - linux before_install: - git clone git://github.com/travis-perl/helpers ~/travis-perl-helpe +rs - source ~/travis-perl-helpers/init - build-perl - perl -V - build-dist - cd $BUILD_DIR # $BUILD_DIR is set by the build-dist co +mmand install: - cpan-install --deps # installs prereqs, including recommends - cpan-install --coverage # installs coverage prereqs, if enabled before_script: - coverage-setup script: - perl Makefile.PL # or Build.PL if it exists - make # or ./Build - make test after_success: - coverage-report

      Here's an example Travis report on one of my modules. You can then drill down to each version of perl to see the test results themselves.

      oops; apologies - the anon post was me --moocow