[Debian-med-packaging] Bug#955056: snakemake: FTBFS with Sphinx 2.4: AttributeError: 'member_descriptor' object has no attribute 'expandtabs'

Lucas Nussbaum lucas at debian.org
Fri Mar 27 14:52:00 GMT 2020


Source: snakemake
Version: 5.10.0-2
Severity: important
Tags: ftbfs
User: python-modules-team at lists.alioth.debian.org
Usertags: sphinx2.4

Hi,

snakemake fails to build with Sphinx 2.4, currently available in
experimental.

Relevant part (hopefully):
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> dh_auto_build
> I: pybuild base:217: /usr/bin/python3 setup.py build 
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/rules.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/executors.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/dag.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/persistence.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/checkpoints.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/parser.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/__main__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/decorators.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/benchmark.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/scheduler.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/logging.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/notebook.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/wrapper.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/workflow.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/script.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/jobs.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/_version.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/io.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/shell.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/gui.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/cwl.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/stats.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/exceptions.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/common.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/output_index.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/resources.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/remote
> copying snakemake/remote/XRootD.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/remote
> copying snakemake/remote/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/remote
> copying snakemake/remote/dropbox.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/remote
> copying snakemake/remote/GS.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/remote
> copying snakemake/remote/NCBI.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/remote
> copying snakemake/remote/S3Mocked.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/remote
> copying snakemake/remote/webdav.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/remote
> copying snakemake/remote/SFTP.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/remote
> copying snakemake/remote/gridftp.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/remote
> copying snakemake/remote/gfal.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/remote
> copying snakemake/remote/AzureStorage.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/remote
> copying snakemake/remote/S3.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/remote
> copying snakemake/remote/EGA.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/remote
> copying snakemake/remote/FTP.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/remote
> copying snakemake/remote/iRODS.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/remote
> copying snakemake/remote/HTTP.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/remote
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/report
> copying snakemake/report/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/report
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/caching
> copying snakemake/caching/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/caching
> copying snakemake/caching/hash.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/caching
> copying snakemake/caching/local.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/caching
> copying snakemake/caching/remote.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/caching
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/deployment
> copying snakemake/deployment/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/deployment
> copying snakemake/deployment/conda.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/deployment
> copying snakemake/deployment/singularity.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/deployment
> copying snakemake/deployment/env_modules.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/deployment
> copying snakemake/report.css -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/jobscript.sh -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/gui.html -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake
> copying snakemake/report/table.html -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/report
> copying snakemake/report/report.html -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/report
> UPDATING /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/_version.py
> set /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/snakemake/_version.py to '5.10.0'
> PATH=/<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/bin:/<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/bin:/<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games \
> PYTHONPATH=/<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_snakemake/build \
> 	python3 setup.py build_sphinx
> running build_sphinx
> Running Sphinx v2.4.3
> making output directory... done
> building [mo]: targets for 0 po files that are out of date
> building [html]: targets for 33 source files that are out of date
> updating environment: [new config] 33 added, 0 changed, 0 removed
> reading sources... [  3%] api_reference/internal/modules
> reading sources... [  6%] api_reference/internal/snakemake
> /usr/lib/python3/dist-packages/sphinx/util/compat.py:30: RemovedInSphinx30Warning: The config variable "source_parsers" is deprecated. Please update your extension for the parser and remove the setting.
>   warnings.warn('The config variable "source_parsers" is deprecated. '
> /usr/lib/python3/dist-packages/sphinx/util/compat.py:36: RemovedInSphinx30Warning: app.add_source_parser() does not support suffix argument. Use app.add_source_suffix() instead.
>   app.add_source_parser(suffix, parser)
> 
> Exception occurred:
>   File "/usr/lib/python3/dist-packages/sphinx/util/docstrings.py", line 24, in prepare_docstring
>     lines = s.expandtabs(tabsize).splitlines()
> AttributeError: 'member_descriptor' object has no attribute 'expandtabs'
> The full traceback has been saved in /tmp/sphinx-err-wxiq7_57.log, if you want to report the issue to the developers.
> Please also report this if it was a user error, so that a better error message can be provided next time.
> A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
> make[1]: *** [debian/rules:35: override_dh_auto_build] Error 1

The full build log is available from:
   http://qa-logs.debian.net/2020/03/26/snakemake_5.10.0-2_unstable_sphinx243.log

Please see [1] for Sphinx changelog, which may give a hint of what changes in
Sphinx caused this error.

Also see [2] for the list of deprecated/removed APIs and possible alternatives
to them.

Sphinx 2.4 is going to be uploaded to unstable in a couple of weeks. When that
happens, the severity of this bug will be bumped to serious.

In case you have questions, please Cc sphinx at packages.debian.org on reply.

[1]: https://www.sphinx-doc.org/en/2.0/changes.html
[2]: https://www.sphinx-doc.org/en/2.0/extdev/deprecated.html#dev-deprecated-apis

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

About the archive rebuild: The rebuild was done on EC2 VM instances from
Amazon Web Services, using a clean, minimal and up-to-date chroot. Every
failed build was retried once to eliminate random failures.



More information about the Debian-med-packaging mailing list