On Mon, 5 Dec 2016 18:04:38 +0100 chrysn <chr...@fsfe.org> wrote: > Hello Ghis, > > On Mon, Dec 05, 2016 at 02:14:56PM +0000, Ghislain Vaillant wrote: > > The build FTBFS due to a failed query on html5lib at test time. Since the > > prov module does not explicitly depend on the latter, it had to be missing > > transitively from rdflib. > > > > Upon inspection of the packaging repository, I noticed that html5lib is > > listed as recommends and that automatic dependency resolution via dh-python > > is explicitly disabled. > > rdflib is usually well usable without the html5lib module, there *should* > be just the RDFa and microdata extraction affected; that does sound like > a legit case for 'Recommends' to me. The source code is explicitly > prepared to only fail on html5lib import errors if that functionality is > actually required. The presence of requirements.py?.txt seems to be only > due to the lack of Depends/Recommends distinction in the Python tools.
Perhaps upstream should have made it extras_require instead. But as of today, marking html5lib as Recommends is doing more damage than good for reverse dependencies. Besides, it is not as if python-html5lib was pulling a significant amount of install overhead. IMO, the benefits of marking it Recommends are very much questionable at this point. > I had a look at the prov package and `uscan`ed the latest upstream > version into it. Were RDFa or microdata examples in the tests, I'd have > said that you should probably build-depend on html5lib (for the tests > depend on it), but the tests actually don't look like it. Anyhow, I > failed to build the package even before it came to the unit tests due to > the keepalive dependency. The dependency on keepalive is pulled transitively by sparqlwrapper. All python-prov is asking for is a sane dependency on rdflib. But because of the broken chains of dependencies: - prov -> rdflib -X> html5lib and - prov -> rdflib -> sparqlwrapper -X> keepalive The package will FTBFS if the tests are enabled with the current status of rdflib and sparqlwrapper. Honestly, I don't have time to investigate which dependencies are soft or hard. I just trust upstream did their homework and hope maintainers of my build dependencies followed the same packaging principles. Please seriously reconsider the situation of rdflib. For sparqlwrapper, the dependency on keepalive is indeed very soft (as I pointed out in #846871) and could be patched out with the proposed fix (also in the bug report). Cheers, Ghis