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

Bug#1001677: Comments regarding pytest-order_1.0.0-1_amd64.changes



On Sun, Jan 16, 2022 at 05:33:14AM -0800, Felix Lechner wrote:
> Hi,
> 
> On Sun, Jan 16, 2022 at 2:27 AM Julian Gilbey <jdg@debian.org> wrote:
> >
> > *If* the consensus is that py3versions -r is wrong, then we should
> > probably have a lintian check for it: py3versions -r (and variants
> > such as -rv and -vr) without a corresponding X-Python3-Version field
> > should give a lintian warning, and py3versions -s with an
> > X-Python3-Version field should do so likewise.
> 
> For reference, here is Lintian's current code examining the use of
> 'py3versions' in tests. [1]
> 
> Kind regards
> Felix Lechner
> 
> [1] https://salsa.debian.org/lintian/lintian/-/blob/master/lib/Lintian/Check/Testsuite.pm#L289-309

Thanks Felix, that's really helpful!

So perhaps another clause or two, something along the lines of the
following, would be good?  (This is not working code; I don't know all
the ins and outs of lintian's library to make it work.  Also, these
should probably be warnings rather than hints.)

    $x_python3_depend_field_present = [boolean specifying whether
        X-Python3-Depend field is present in debian/control];

    $self->pointed_hint(
        'runtime-test-file-uses-requested-python-versions-without-x-python3-depend',
        $pointer,
        $command
    )
    if $options =~ /\s(?:-\w*r|--requested)/
    && !$x_python3_depend_field_present;

    $self->pointed_hint(
        'runtime-test-file-uses-supported-python-versions-with-x-python3-depend',
        $pointer,
        $command
    )
    if $options =~ /\s(?:-\w*s|--supported)/
    && $x_python3_depend_field_present;

There are obviously still a bunch of debian/test/* files which have
different options:

* some use -d (which does make sense, but may not be the best thing to
  do in a debian/test/* file, as it will miss advanced warning of
  breakages on newer versions of python)
* some use -i (which is picked up by the existing tests)
* lots use -r (see earlier discussion)
* lots use -s (which is generally fine), though some of these also use
  2>/dev/null, which is not a good idea

And a couple don't follow the standard coding pattern:

* tap.py 3.1-1 has:
: ${PYVERSIONS:=py3versions}
for python in $($PYVERSIONS --supported); do

I'm unclear what is gained by thinking that the environment might
override PYVERSIONS.

* csound 6.16.2~dfsg-1 has:
    # By default, test on all versions
    versions="-r"
    if [ "$2" = default ] ; then
        versions="-d"
    fi
    for py in $(py3versions $versions 2>/dev/null) ; do

Finally, confget 4.1.0-1 tests for the presence of py3versions before
using it, which is just unnecessary (but thankfully doesn't mess up
the existing lintian test).

Best wishes,

   Julian


Reply to: