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
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. :/
* 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.
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