rjeschmi / Archive-BagIt

Archive-BagIt repository for CPAN module
3 stars 1 forks source link

Experimental keys on scalar is now forbidden #9

Open eserte opened 8 years ago

eserte commented 8 years ago

Test suite fails with perl 5.23.x:

#   Failed test 'Archive/BagIt/Fast.pm loaded ok'
#   at t/00-compile.t line 40.
#          got: '512'
#     expected: '0'
Experimental keys on scalar is now forbidden at /tmpfs/.cpan-build/2015083021/Archive-BagIt-0.052-NxRX3q/blib/lib/Archive/BagIt/Fast.pm line 30.
Compilation failed in require at -e line 1.
# Looks like you failed 1 test of 4.
t/00-compile.t ..... 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/4 subtests 
RussellMcOrmond commented 6 years ago

As I expected, I see the same issue on 5.024002 , which I was hoping to be able to upgrade toward. I'm curious if you worked around or created a patch for this specific issue? If not, I'll look into this in more detail.

eserte commented 6 years ago

No patch from me, at least I don't see anything in my distroprefs collection.

RussellMcOrmond commented 6 years ago

I've created a pull request which at least allows this package to be built and pass tests. We are likely to continue to run within an Ubuntu 14.04 Docker image, so maybe @eserte will be able to test in his environment.

What I did to build:

I created an Ubuntu image, first using 16.04 and then using 17.10 to test building and running the tests.

russell@russell-desktop:~/git/Archive-BagIt$ cat ~/docker/make-perl/Dockerfile 
# 16.04
#FROM ubuntu:xenial-20171114

#17.10
FROM ubuntu:artful-20171116

RUN useradd -u 1104 -g users -m russell && echo "America/Toronto" >/etc/timezone && \
    apt-get update && apt-get install -y build-essential cpanminus dh-dist-zilla git && apt-get clean

# Needed by Archive-BagIt
RUN cpanm -n Devel::Cover Path::Class inc::Module::Install::DSL Module::Manifest Test::DistManifest  Text::Diff Data::Printer IO::AIO String::CRC32 Dist::Zilla::PluginBundle::Author::DOHERTY && rm -rf /root/.cpanm || (cat /root/.cpanm/work/*/build.log && exit 1)

WORKDIR ~russell/
USER russell

I then checked out a fork of Archive-BagIt, made the changes indicated in the pull request https://github.com/rjeschmi/Archive-BagIt/pull/10 , and ran the following Docker command.

russell@russell-desktop:~/git/Archive-BagIt$ docker run -v "/home/russell/git/Archive-BagIt:/Archive-BagIt" make-perl:latest /bin/bash -c "cd /Archive-BagIt ; V=0.053.3 dzil build ; cd Archive-BagIt-0.053.3; perl Makefile.PL ; make test"
[@Author::DOHERTY] Releasing to CPAN
[DZ] beginning to build Archive-BagIt
[@Filter/OurPkgVersion] Skipping: "lib/Archive/BagIt/Plugin/Algorithm/MD5.pm" has no "# VERSION" comment
[@Filter/OurPkgVersion] Skipping: "lib/Archive/BagIt/Plugin/Manifest/MD5.pm" has no "# VERSION" comment
[@Filter/OurPkgVersion] Skipping: "lib/Archive/BagIt/Role/Algorithm.pm" has no "# VERSION" comment
[@Filter/OurPkgVersion] Skipping: "lib/Archive/BagIt/Role/Manifest.pm" has no "# VERSION" comment
[@Filter/OurPkgVersion] Skipping: "lib/Archive/BagIt/Role/Plugin.pm" has no "# VERSION" comment
[@Filter/CopyFilesFromBuild] Cannot copy Build.PL from build: file does not exist at /usr/lib/x86_64-linux-gnu/perl5/5.26/Moose/Meta/Method/Delegation.pm line 110.
[@Filter/GitHub::Meta] Getting GitHub repository info
[DZ] guessing dist's main_module is lib/Archive/BagIt.pm
[@Filter/PodWeaver] [@Author::DOHERTY/Name] couldn't find abstract in lib/Archive/BagIt.pm
[@Filter/PodWeaver] [@Author::DOHERTY/Name] couldn't find abstract in lib/Archive/BagIt/Base.pm
[@Filter/PodWeaver] [@Author::DOHERTY/Name] couldn't find abstract in lib/Archive/BagIt/DotBagIt.pm
[@Filter/PodWeaver] [@Author::DOHERTY/Name] couldn't find abstract in lib/Archive/BagIt/Fast.pm
[@Filter/PodWeaver] [@Author::DOHERTY/Name] couldn't find abstract in lib/Archive/BagIt/Role/Manifest.pm
[@Filter/PodWeaver] [@Author::DOHERTY/Name] couldn't find abstract in lib/Archive/BagIt/Role/Plugin.pm
[DZ] writing Archive-BagIt in Archive-BagIt-0.053.3
[@Filter/CopyFilesFromBuild] Cannot copy Build.PL from build: file does not exist
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Archive::BagIt
Writing MYMETA.yml and MYMETA.json
cp lib/Archive/BagIt/Fast.pm blib/lib/Archive/BagIt/Fast.pm
cp lib/Archive/BagIt/Plugin/Manifest/MD5.pm blib/lib/Archive/BagIt/Plugin/Manifest/MD5.pm
cp lib/Archive/BagIt/DotBagIt.pm blib/lib/Archive/BagIt/DotBagIt.pm
cp lib/Archive/BagIt/Base.pm blib/lib/Archive/BagIt/Base.pm
cp lib/Archive/BagIt/Plugin/Algorithm/MD5.pm blib/lib/Archive/BagIt/Plugin/Algorithm/MD5.pm
cp lib/Archive/BagIt/Role/Plugin.pm blib/lib/Archive/BagIt/Role/Plugin.pm
cp lib/Archive/BagIt/Role/Algorithm.pm blib/lib/Archive/BagIt/Role/Algorithm.pm
cp lib/Archive/BagIt.pm blib/lib/Archive/BagIt.pm
cp lib/Archive/BagIt/Role/Manifest.pm blib/lib/Archive/BagIt/Role/Manifest.pm
PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00-compile.t ..... ok
# Testing Archive::BagIt 0.053.3, Perl 5.026000, /usr/bin/perl
t/00-load.t ........ ok
\ [
    [0] "md5",
    [1] "sha1"
]
\ [
    [0] "src/src_bag/manifest-md5.txt"
]
"src/src_bag"
"src/src_bag"
\ [
    [0] "src/src_bag/tagmanifest-md5.txt"
]
\ {
    data/1   "b026324c6904b2a9cb4b88d6d61c81d1",
    data/2   "26ab0db90d72e28ad0ba1e22ee510510"
}
\ {
    bag-info.txt       "6d6676c7f9222055b6a7a7170cb41a85",
    bagit.txt          "ace0ef9419c8edbe164a888d4e4ab7ee",
    manifest-md5.txt   "a0102163f032041a5cfd5e05d4424e16"
}
t/base.t ........... ok
t/boilerplate.t .... ok
t/dotbagit.t ....... ok
t/manifest.t ....... skipped: Author tests not required for installation
t/payload_files.t .. ok
t/pod-coverage.t ... skipped: Test::Pod::Coverage 1.08 required for testing POD coverage
t/pod.t ............ ok
All tests successful.

Test Summary Report
-------------------
t/boilerplate.t  (Wstat: 0 Tests: 2 Failed: 0)
  TODO passed:   1-2
Files=9, Tests=48,  2 wallclock secs ( 0.04 usr  0.01 sys +  2.06 cusr  0.25 csys =  2.36 CPU)
Result: PASS
russell@russell-desktop:~/git/Archive-BagIt$ 

I can then make and use the resulting dist file in building our environments. I only just added the updated library, and will report back if there are issues. These are running in Ubuntu 14.04 with the older Perl, so won't be specifically testing this issue.

eserte commented 6 years ago

b562a18bd81484005fa36e7ec5af30385f439b5d looks good, I checked it with perl 5.26.0

RussellMcOrmond commented 6 years ago

Just a note that according to http://cpantesters.org/author/R/RJESCHMI.html that Archive-BagIt 0.053.3 passes tests on all the servers that have tested (the other testers run an older version of Perl which this package indicates isn't new enough).

This isn't to say that a bug that wasn't tested for doesn't exist, but that this specific compilation problem has now been confirmed to have been fixed.