[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Request for Review / Upload libtest-fitesque-perl



Been looking into this, and currently in the process of setting up my environment to isolate builds etc. using cowbuilder, but may migrate to Docker down the track.

Will try to complete this ticket ASAP, as it has been too long, then move onto the libintl-perl.
--
Ken Ibbotson
E: keni@computer.org

"Reality is merely an illusion, albeit a very persistent one."
    - Albert Einstein (1879-1955)


On Sat, 28 Nov 2020 at 06:40, gregor herrmann <gregoa@debian.org> wrote:
On Fri, 27 Nov 2020 20:31:10 +1030, Ken Ibbotson wrote:

> Package: libtest-fitesque-perl
> Origin: remote.origin.url="" href="mailto:git@salsa.debian.org" target="_blank">git@salsa.debian.org:
> perl-team/modules/packages/libtest-fitesque-perl.git

What I found:

- Standards-Version should be 4.5.1 as we had a new release of the
  Debian Policy in the meantime.
- You directly changed lib/Test/FITesque.pm to fix the spelling;
  this doesn't work:

   dh_clean
dpkg-source: info: using source format '3.0 (quilt)'
dpkg-source: info: building libtest-fitesque-perl using existing ./libtest-fitesque-perl_0.04.orig.tar.gz
dpkg-source: info: local changes detected, the modified files are:
 libtest-fitesque-perl-0.04/lib/Test/FITesque.pm
dpkg-source: error: aborting due to unexpected upstream changes, see /home/gregoa/tmp/libtest-fitesque-perl_0.04-1.diff.F2KdgZ
dpkg-source: info: you can integrate the local changes with dpkg-source --commit

  And dpkg-source's info is a bit misleading; the clean way to do
  this is to create a quilt patch (and revert the direct changes to
  the file). Besides the quilt manpage etc. there's also
  https://perl-team.pages.debian.net/howto/quilt.html

- After locally reverting 3b9227de2452fd214fb3191dfcf362f8e62a79b9
  (i.e. resetting lib/Test/FITesque.pm), so we get past the
  dpkg-source error, the package doesn't build (in a cowbuilder
  chroot) because the tests fail:

Can't locate Test/Exception.pm in @INC (you may need to install the Test::Exception module) (@INC contains: t/lib /build/libtest-fitesque-perl-0.04/inc /build/libtest-fitesque-perl-0.04/blib/lib /build/libtest-fitesque-perl-0.04/blib/arch /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.32.0 /usr/local/share/perl/5.32.0 /usr/lib/x86_64-linux-gnu/perl5/5.32 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl) at t/01-fixture.t line 8.
BEGIN failed--compilation aborted at t/01-fixture.t line 8.
# Looks like your test exited with 2 before it could output anything.
t/01-fixture.t ....
1..15
Dubious, test returned 2 (wstat 512, 0x200)
Failed 15/15 subtests
Can't locate Test/Exception.pm in @INC (you may need to install the Test::Exception module) (@INC contains: /build/libtest-fitesque-perl-0.04/inc /build/libtest-fitesque-perl-0.04/blib/lib /build/libtest-fitesque-perl-0.04/blib/arch /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.32.0 /usr/local/share/perl/5.32.0 /usr/lib/x86_64-linux-gnu/perl5/5.32 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl) at t/02-test.t line 7.
BEGIN failed--compilation aborted at t/02-test.t line 7.
# Looks like your test exited with 2 before it could output anything.
t/02-test.t .......
1..24
Dubious, test returned 2 (wstat 512, 0x200)
Failed 24/24 subtests
Could not load 'Buddha::TestRun' fixture: Base class package "Class::Data::Inheritable" is empty.
    (Perhaps you need to 'use' the module which defines that package first,
    or make that module available in @INC (@INC contains: t/lib /build/libtest-fitesque-perl-0.04/inc /build/libtest-fitesque-perl-0.04/blib/lib /build/libtest-fitesque-perl-0.04/blib/arch /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.32.0 /usr/local/share/perl/5.32.0 /usr/lib/x86_64-linux-gnu/perl5/5.32 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl).
 at /build/libtest-fitesque-perl-0.04/blib/lib/Test/FITesque/Fixture.pm line 7.
BEGIN failed--compilation aborted at /build/libtest-fitesque-perl-0.04/blib/lib/Test/FITesque/Fixture.pm line 7.
Compilation failed in require at /usr/lib/x86_64-linux-gnu/perl-base/base.pm line 135.
        ...propagated at /usr/lib/x86_64-linux-gnu/perl-base/base.pm line 157.
BEGIN failed--compilation aborted at t/lib/Buddha/TestRun.pm line 5.
Compilation failed in require at /usr/share/perl/5.32/Module/Load.pm line 77.
Can't locate Buddha/TestRun in @INC (@INC contains: t/lib /build/libtest-fitesque-perl-0.04/inc /build/libtest-fitesque-perl-0.04/blib/lib /build/libtest-fitesque-perl-0.04/blib/arch /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.32.0 /usr/local/share/perl/5.32.0 /usr/lib/x86_64-linux-gnu/perl5/5.32 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl) at /usr/share/perl/5.32/Module/Load.pm line 77.
t/03-test-run.t ...
1..2
Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/2 subtests
Can't locate Test/Exception.pm in @INC (you may need to install the Test::Exception module) (@INC contains: /build/libtest-fitesque-perl-0.04/inc /build/libtest-fitesque-perl-0.04/blib/lib /build/libtest-fitesque-perl-0.04/blib/arch /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.32.0 /usr/local/share/perl/5.32.0 /usr/lib/x86_64-linux-gnu/perl5/5.32 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl) at t/04-suite.t line 7.
BEGIN failed--compilation aborted at t/04-suite.t line 7.
# Looks like your test exited with 2 before it could output anything.
t/04-suite.t ......
1..14
Dubious, test returned 2 (wstat 512, 0x200)
Failed 14/14 subtests
Could not load 'Buddha::SuiteRunTest' fixture: Base class package "Class::Data::Inheritable" is empty.
    (Perhaps you need to 'use' the module which defines that package first,
    or make that module available in @INC (@INC contains: t/lib /build/libtest-fitesque-perl-0.04/inc /build/libtest-fitesque-perl-0.04/blib/lib /build/libtest-fitesque-perl-0.04/blib/arch /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.32.0 /usr/local/share/perl/5.32.0 /usr/lib/x86_64-linux-gnu/perl5/5.32 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl).
 at /build/libtest-fitesque-perl-0.04/blib/lib/Test/FITesque/Fixture.pm line 7.
BEGIN failed--compilation aborted at /build/libtest-fitesque-perl-0.04/blib/lib/Test/FITesque/Fixture.pm line 7.
Compilation failed in require at /usr/lib/x86_64-linux-gnu/perl-base/base.pm line 135.
        ...propagated at /usr/lib/x86_64-linux-gnu/perl-base/base.pm line 157.
BEGIN failed--compilation aborted at t/lib/Buddha/SuiteRunTest.pm line 5.
Compilation failed in require at /usr/share/perl/5.32/Module/Load.pm line 77.
Can't locate Buddha/SuiteRunTest in @INC (@INC contains: t/lib /build/libtest-fitesque-perl-0.04/inc /build/libtest-fitesque-perl-0.04/blib/lib /build/libtest-fitesque-perl-0.04/blib/arch /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.32.0 /usr/local/share/perl/5.32.0 /usr/lib/x86_64-linux-gnu/perl5/5.32 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl) at /usr/share/perl/5.32/Module/Load.pm line 77.
t/05-suite-run.t ..
1..1
Dubious, test returned 2 (wstat 512, 0x200)
Failed 1/1 subtests
Could not load 'Buddha::FITesqueFixture' fixture: Base class package "Class::Data::Inheritable" is empty.
    (Perhaps you need to 'use' the module which defines that package first,
    or make that module available in @INC (@INC contains: t/lib t/mock /build/libtest-fitesque-perl-0.04/inc /build/libtest-fitesque-perl-0.04/blib/lib /build/libtest-fitesque-perl-0.04/blib/arch /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.32.0 /usr/local/share/perl/5.32.0 /usr/lib/x86_64-linux-gnu/perl5/5.32 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl).
 at /build/libtest-fitesque-perl-0.04/blib/lib/Test/FITesque/Fixture.pm line 7.
BEGIN failed--compilation aborted at /build/libtest-fitesque-perl-0.04/blib/lib/Test/FITesque/Fixture.pm line 7.
Compilation failed in require at /usr/lib/x86_64-linux-gnu/perl-base/base.pm line 135.
        ...propagated at /usr/lib/x86_64-linux-gnu/perl-base/base.pm line 157.
BEGIN failed--compilation aborted at t/lib/Buddha/FITesqueFixture.pm line 5.
Compilation failed in require at /usr/share/perl/5.32/Module/Load.pm line 77.
Can't locate Buddha/FITesqueFixture in @INC (@INC contains: t/lib t/mock /build/libtest-fitesque-perl-0.04/inc /build/libtest-fitesque-perl-0.04/blib/lib /build/libtest-fitesque-perl-0.04/blib/arch /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.32.0 /usr/local/share/perl/5.32.0 /usr/lib/x86_64-linux-gnu/perl5/5.32 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl) at /usr/share/perl/5.32/Module/Load.pm line 77.
# Looks like your test exited with 2 just after 1.
t/06-fitesque.t ...
1..3
ok 1 - use Test::FITesque;
Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/3 subtests

  So we need Test::Exception ('libtest-exception-perl <!nocheck>') in
  Build-Depends-Indep, and probably Class::Data::Inheritable
  somewhere - ah yes, that's also in Makefile.PL, so
  'libclass-data-inheritable-perl' in Depends and 'libclass-data-inheritable-perl
  <!nocheck>' in Build-Depends-Indep.

  Catching issues like this is simple when building in a chroot
  (sbuild or pbuilder/cowbuilder) which is more than recommended.

- Now the package bugs; let's go to autopkgtests; we see a lintian
  warning after building already:
  W: libtest-fitesque-perl source: team/pkg-perl/testsuite/autopkgtest-needs-use-name
  and indeed, autopkgtest-pkg-perl's use.t is skipped:

autopkgtest [20:58:59]: test autodep8-perl: /usr/share/pkg-perl-autopkgtest/runner runtime-deps
autopkgtest [20:58:59]: test autodep8-perl: [-----------------------
/usr/share/pkg-perl-autopkgtest/runtime-deps.d/use.t .. skipped: can't guess package from META.json or META.yml
Files=1, Tests=0,  1 wallclock secs ( 0.03 usr  0.02 sys +  0.12 cusr  0.03 csys =  0.20 CPU)
Result: NOTESTS
autopkgtest [20:59:00]: test autodep8-perl: -----------------------]
autodep8-perl        PASS (superficial)

  So let's try:
  % mkdir -p debian/tests/pkg-perl
  % echo Test::FITesque > debian/tests/pkg-perl/use-name

  and everything works :)
  For the meaning of these files cf.
  https://perl-team.pages.debian.net/autopkgtest.html

Oh, and a last note: Please don't add a debian/0.04-1 tag. When
changes have to been (like in this case here), the exisiting tag can
be a bit annoying (when it's overwritten and others have already
pulled), that's why the tag is set by the person doing the actual
upload.


This looks a bit overwhelming but I'm suer you'll get into it :)
The package is very untypical; but OTOH you see more exciting things
than in a standard package where dh-make-perl just gets everything
right from the beginning …


As a whish for the future: splitting changes into more and smaller
commits with more descriptive commit messages would help others to
understand what you did. (No problem in this case as all changes are
easy to understand)


Cheers,
gregor

--
 .''`.  https://info.comodo.priv.at -- Debian Developer https://www.debian.org
 : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D  85FA BB3A 6801 8649 AA06
 `. `'  Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe
   `-   NP: Beatles: Fool On The Hill

Reply to: