#793407 adequate: check perl/python module dependencies

Package:
adequate
Source:
adequate
Description:
Debian package quality testing tool
Submitter:
Andreas Beckmann
Date:
2024-07-26 18:48:04 UTC
Severity:
wishlist
Tags:
#793407#5
Date:
2015-07-23 18:34:00 UTC
From:
To:
Hi,

I don't know if that would be a task for adequate, but we should have
some automated check for perl (and python) modules to see whether their
dependencies are fulfilled.
Seeing https://bugs.debian.org/792934 reminded me about this.
Alternatively we could do something like this in piuparts.

I have no idea how to possibly implement this :-)
For perl the test would be
  perl -e 'use Mod::Ule'
but how to get the proper list of modules?
I suspect there may be (private) backend modules that will fail to load
if used directly (which is not their intended use). But if they are used
through a (public) frontend module will either not be used at all or
only in a non-failing way.

Andreas

#793407#8
Date:
2015-07-24 12:46:17 UTC
From:
To:
Hi Andreas!

* Andreas Beckmann <anbe@debian.org>, 2015-07-23, 20:34:

I don't know either. :)

I started playing with checking Python imports here:
https://github.com/jwilk/adequate-imports

Unfortunately, importing some Python modules have unwanted side effects.
For example:

"import antigravity" spawns a web browser.

"import quodlibet.commands" segfaults.

"import imdb.locale.generatepot" calls sys.exit().

"import pychecker2.VariableChecks" fails;
but "import pychecker.checker; import pychecker2.VariableChecks" starts
checking your code. oO


And there are lots of false positives where a small part of package X
requires package Y, which is not installed. :/

#793407#11
Date:
2015-07-26 13:38:29 UTC
From:
To:
* Jakub Wilk <jwilk@debian.org>, 2015-07-24, 14:46:

I've implemented Perl import checker, too.

DebConf modules were troublesome, because they tried to spawn a
frontend, but I implemented a work-around.

I blacklisted this one.

Filed as #793673.

Now I import each module in a separate process, so this is no longer a
big deal.

I catch SystemExit to work around this.

I don't run into the latter behavior now that I import each module
separately.

#793407#18
Date:
2024-07-26 18:45:28 UTC
From:
To:
hi Andreas,

On Thu Jul 23, 2015 at 8:34 PM CEST, Andreas Beckmann wrote:
[..]

I'd make the case that adequate is not the right place. first of all the task
itself is open-ended (no way to solve it properly, with high confidence), and
second if one were to put effort in addressing it, it'd make sense to do so in a
way that eveyone can use it (rather than implement in adequate just for the sake
of Debian)

thanks,
Serafeim