Bug#1042630: sphinxcontrib-bibtex: FTBFS with Sphinx 7.1, docutils 0.20: dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.11 returned exit code 13

Lucas Nussbaum lucas at debian.org
Sun Jul 30 19:29:59 BST 2023


Source: sphinxcontrib-bibtex
Version: 2.5.0-1
Severity: important
Tags: ftbfs
User: python-modules-team at lists.alioth.debian.org
Usertags: sphinx7.1

Hi,

sphinxcontrib-bibtex fails to build with Sphinx 7.1 and docutils 0.20, both of which
are currently available in experimental.

Relevant part (hopefully):
> make[2]: Entering directory '/<<PKGBUILDDIR>>/doc'
> sphinx-build -b html -d _build/doctrees   . _build/html
> Running Sphinx v7.1.1
> making output directory... done
> loading intersphinx inventory from /usr/share/doc/python3-doc/html/objects.inv...
> loading intersphinx inventory from /usr/share/doc/sphinx-doc/html/objects.inv...
> building [mo]: targets for 0 po files that are out of date
> writing output... 
> building [html]: targets for 17 source files that are out of date
> updating environment: [new config] 17 added, 0 changed, 0 removed
> reading sources... [  6%] api
> reading sources... [ 12%] api/bibfile
> reading sources... [ 18%] api/directives
> reading sources... [ 24%] api/domains
> reading sources... [ 29%] api/interface
> reading sources... [ 35%] api/nodes
> reading sources... [ 41%] api/plugin
> reading sources... [ 47%] api/pybtex
> reading sources... [ 53%] api/referencing
> reading sources... [ 59%] api/roles
> reading sources... [ 65%] api/transforms
> reading sources... [ 71%] changes
> reading sources... [ 76%] index
> reading sources... [ 82%] license
> reading sources... [ 88%] quickstart
> reading sources... [ 94%] related
> reading sources... [100%] usage
> 
> looking for now-outdated files... none found
> pickling environment... done
> checking consistency... done
> preparing documents... done
> copying assets... copying static files... done
> copying extra files... done
> done
> writing output... [  6%] api
> writing output... [ 12%] api/bibfile
> writing output... [ 18%] api/directives
> writing output... [ 24%] api/domains
> writing output... [ 29%] api/interface
> writing output... [ 35%] api/nodes
> writing output... [ 41%] api/plugin
> writing output... [ 47%] api/pybtex
> writing output... [ 53%] api/referencing
> writing output... [ 59%] api/roles
> writing output... [ 65%] api/transforms
> writing output... [ 71%] changes
> writing output... [ 76%] index
> writing output... [ 82%] license
> writing output... [ 88%] quickstart
> writing output... [ 94%] related
> writing output... [100%] usage
> 
> generating indices... genindex py-modindex done
> highlighting module code... [  4%] pybtex.style.template
> highlighting module code... [  9%] sphinxcontrib.bibtex
> highlighting module code... [ 13%] sphinxcontrib.bibtex.bibfile
> highlighting module code... [ 17%] sphinxcontrib.bibtex.directives
> highlighting module code... [ 22%] sphinxcontrib.bibtex.domain
> highlighting module code... [ 26%] sphinxcontrib.bibtex.foot_directives
> highlighting module code... [ 30%] sphinxcontrib.bibtex.foot_domain
> highlighting module code... [ 35%] sphinxcontrib.bibtex.foot_roles
> highlighting module code... [ 39%] sphinxcontrib.bibtex.nodes
> highlighting module code... [ 43%] sphinxcontrib.bibtex.plugin
> highlighting module code... [ 48%] sphinxcontrib.bibtex.richtext
> highlighting module code... [ 52%] sphinxcontrib.bibtex.roles
> highlighting module code... [ 57%] sphinxcontrib.bibtex.style.names.last
> highlighting module code... [ 61%] sphinxcontrib.bibtex.style.referencing
> highlighting module code... [ 65%] sphinxcontrib.bibtex.style.referencing.author_year
> highlighting module code... [ 70%] sphinxcontrib.bibtex.style.referencing.basic_author_year
> highlighting module code... [ 74%] sphinxcontrib.bibtex.style.referencing.basic_label
> highlighting module code... [ 78%] sphinxcontrib.bibtex.style.referencing.extra_author
> highlighting module code... [ 83%] sphinxcontrib.bibtex.style.referencing.extra_label
> highlighting module code... [ 87%] sphinxcontrib.bibtex.style.referencing.extra_year
> highlighting module code... [ 91%] sphinxcontrib.bibtex.style.referencing.label
> highlighting module code... [ 96%] sphinxcontrib.bibtex.style.template
> highlighting module code... [100%] sphinxcontrib.bibtex.transforms
> 
> writing additional pages... search done
> dumping search index in English (code: en)... done
> dumping object inventory... done
> build succeeded.
> 
> The HTML pages are in _build/html.
> 
> Build finished. The HTML pages are in _build/html.
> make[2]: Leaving directory '/<<PKGBUILDDIR>>/doc'
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
>    dh_auto_test -O--buildsystem=pybuild
> I: pybuild base:240: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_sphinxcontrib.bibtex/build; python3.11 -m pytest "-k not test_citation_rinoh"
> ============================= test session starts ==============================
> platform linux -- Python 3.11.4, pytest-7.4.0, pluggy-1.2.0
> rootdir: /<<PKGBUILDDIR>>
> configfile: pytest.ini
> collected 92 items / 2 deselected / 90 selected
> 
> test/test_autodoc.py .F.                                                 [  3%]
> test/test_backrefs.py .                                                  [  4%]
> test/test_bibfiles.py .........                                          [ 14%]
> test/test_bibliography.py ............F....F                             [ 34%]
> test/test_citation.py .................                                  [ 53%]
> test/test_debug.py ....                                                  [ 57%]
> test/test_duplicate.py ......                                            [ 64%]
> test/test_filter.py ....                                                 [ 68%]
> test/test_footcite.py ..                                                 [ 71%]
> test/test_latex.py ..                                                    [ 73%]
> test/test_list.py ....                                                   [ 77%]
> test/test_natbib.py ......                                               [ 84%]
> test/test_numpydoc.py F                                                  [ 85%]
> test/test_parallel.py .                                                  [ 86%]
> test/test_plugin.py ...                                                  [ 90%]
> test/test_root_doc.py .                                                  [ 91%]
> test/test_sphinx.py .                                                    [ 92%]
> test/test_style.py .....                                                 [ 97%]
> test/test_template.py ..                                                 [100%]
> 
> =================================== FAILURES ===================================
> _________________________________ test_autodoc _________________________________
> 
> app = <SphinxTestApp buildername='html'>
> warning = <_io.StringIO object at 0x7f4eee350040>
> 
>     @pytest.mark.sphinx('html', testroot='autodoc')
>     def test_autodoc(app, warning) -> None:
>         app.build()
>         assert not warning.getvalue()
>         output = (app.outdir / "doc_cite.html").read_text()
>         labels = ['One', 'Two', 'Thr', 'Fou', 'Fiv', 'Six', 'Sev', 'Eig', 'Nin',
>                   'Ten', 'Ele']
>         titles = ['Een', 'Twee', 'Drie', 'Vier', 'Vijf', 'Zes', 'Zeven', 'Acht',
>                   'Negen', 'Tien', 'Elf']
>         for label, title in zip(labels, titles):
>             assert len(html_citation_refs_single(label=label).findall(output)) == 1
>             assert len(html_citations(label=label).findall(output)) == 1
>             match_ref = html_citation_refs_single(label=label).search(output)
>             match = html_citations(label=label).search(output)
>             assert match_ref
>             assert match
>             assert match_ref.group('refid') == match.group('id_')
>             assert title in match.group('text')
>             assert match_ref.group('id_') == match.group('backref')
>         output2 = (app.outdir / "doc_footcite.html").read_text()
>         assert len(html_footnote_refs().findall(output2)) == 11
>         for title in titles:
>             text = ".*" + title + ".*"
> >           assert len(html_footnotes(text=text).findall(output2)) == 1
> E           assert 0 == 1
> E            +  where 0 = len([])
> E            +    where [] = <built-in method findall of re.Pattern object at 0x3a0b620>('<!DOCTYPE html>\n\n<html lang="en">\n  <head>\n    <meta charset="utf-8" />\n    <meta name="viewport" content="width...ources/doc_footcite.rst.txt"\n          rel="nofollow">Page source</a>\n    </div>\n\n    \n\n    \n  </body>\n</html>')
> E            +      where <built-in method findall of re.Pattern object at 0x3a0b620> = re.compile('<aside class="footnote brackets" id="(?P<id_>[a-z][-?a-z0-9]*)" role="note">\\s*<span class="label"><span class="fn-bracket">\\[</span>(?:<a role="doc-backlink" href="#(?P<backref>[a-z][-?a-z0-9]*)">).findall
> E            +        where re.compile('<aside class="footnote brackets" id="(?P<id_>[a-z][-?a-z0-9]*)" role="note">\\s*<span class="label"><span class="fn-bracket">\\[</span>(?:<a role="doc-backlink" href="#(?P<backref>[a-z][-?a-z0-9]*)">) = html_footnotes(text='.*Een.*')
> 
> test/test_autodoc.py:48: AssertionError
> --------------------------- Captured stdout teardown ---------------------------
> # testroot: root
> # builder: html
> # srcdir: /tmp/pytest-of-user42/pytest-5/autodoc
> # outdir: /tmp/pytest-of-user42/pytest-5/autodoc/_build/html
> # status: 
> Running Sphinx v7.1.1
> checking bibtex cache... out of date
> parsing bibtex file /tmp/pytest-of-user42/pytest-5/autodoc/test.bib... parsed 11 entries
> building [mo]: targets for 0 po files that are out of date
> writing output... 
> building [html]: targets for 3 source files that are out of date
> updating environment: [new config] 3 added, 0 changed, 0 removed
> reading sources... [ 33%] doc_cite
> reading sources... [ 67%] doc_footcite
> reading sources... [100%] index
> 
> looking for now-outdated files... none found
> pickling environment... done
> checking consistency... done
> preparing documents... done
> copying assets... copying static files... done
> copying extra files... done
> done
> writing output... [ 33%] doc_cite
> writing output... [ 67%] doc_footcite
> writing output... [100%] index
> 
> generating indices... genindex py-modindex done
> writing additional pages... search done
> dumping search index in English (code: en)... done
> dumping object inventory... done
> build succeeded.
> 
> The HTML pages are in ../../../../../../tmp/pytest-of-user42/pytest-5/autodoc/_build/html.
> 
> # warning: 
> 
> _________________________ test_bibliography_multi_foot _________________________
> 
> app = <SphinxTestApp buildername='html'>
> warning = <_io.StringIO object at 0x7f4eececdea0>
> 
>     @pytest.mark.sphinx('html', testroot='bibliography_multi_foot')
>     def test_bibliography_multi_foot(app, warning) -> None:
>         app.build()
>         assert not warning.getvalue()
>         output = (app.outdir / "index.html").read_text(encoding='utf-8')
>         assert output.count('<p class="rubric"') == 3
> >       assert len(re.findall(
>             html_footnotes(id_="footcite-2009-mandel"), output)) == 1
> E       assert 0 == 1
> E        +  where 0 = len([])
> E        +    where [] = <function findall at 0x7f4ef0113f60>(re.compile('<aside class="footnote brackets" id="(?P<id_>footcite-2009-mandel)" role="note">\\s*<span class="label"><span class="fn-bracket">\\[</span>(?:<a role="doc-backlink" href="#(?P<backref>[a-z][-?a-z0-9]), '<!DOCTYPE html>\n\n<html lang="en">\n  <head>\n    <meta charset="utf-8" />\n    <meta name="viewport" content="width...ref="_sources/index.rst.txt"\n          rel="nofollow">Page source</a>\n    </div>\n\n    \n\n    \n  </body>\n</html>')
> E        +      where <function findall at 0x7f4ef0113f60> = re.findall
> E        +      and   re.compile('<aside class="footnote brackets" id="(?P<id_>footcite-2009-mandel)" role="note">\\s*<span class="label"><span class="fn-bracket">\\[</span>(?:<a role="doc-backlink" href="#(?P<backref>[a-z][-?a-z0-9]) = html_footnotes(id_='footcite-2009-mandel')
> 
> test/test_bibliography.py:167: AssertionError
> --------------------------- Captured stdout teardown ---------------------------
> # testroot: root
> # builder: html
> # srcdir: /tmp/pytest-of-user42/pytest-5/bibliography_multi_foot
> # outdir: /tmp/pytest-of-user42/pytest-5/bibliography_multi_foot/_build/html
> # status: 
> Running Sphinx v7.1.1
> checking bibtex cache... out of date
> parsing bibtex file /tmp/pytest-of-user42/pytest-5/bibliography_multi_foot/test.bib... parsed 3 entries
> building [mo]: targets for 0 po files that are out of date
> writing output... 
> building [html]: targets for 1 source files that are out of date
> updating environment: [new config] 1 added, 0 changed, 0 removed
> reading sources... [100%] index
> 
> looking for now-outdated files... none found
> pickling environment... done
> checking consistency... done
> preparing documents... done
> copying assets... copying static files... done
> copying extra files... done
> done
> writing output... [100%] index
> 
> generating indices... genindex done
> writing additional pages... search done
> dumping search index in English (code: en)... done
> dumping object inventory... done
> build succeeded.
> 
> The HTML pages are in ../../../../../../tmp/pytest-of-user42/pytest-5/bibliography_multi_foot/_build/html.
> 
> # warning: 
> 
> _________________________ test_bibliography_custom_ids _________________________
> 
> app = <SphinxTestApp buildername='html'>
> warning = <_io.StringIO object at 0x7f4eed341f30>
> 
>     @pytest.mark.sphinx('html', testroot='bibliography_custom_ids')
>     def test_bibliography_custom_ids(app, warning) -> None:
>         app.build()
>         assert not warning.getvalue()
>         output = (app.outdir / "index.html").read_text(encoding='utf-8')
>         assert ' id="bibliography-id-1"' in output
>         assert ' id="bibliography-id-2"' in output
>         assert ' id="footbibliography-id-1"' in output
>         assert ' id="footbibliography-id-2"' in output
>         match1 = html_citations(text='.*Evensen.*').search(output)
>         match2 = html_citations(text='.*Mandel.*').search(output)
>         match3 = html_citations(text='.*Lorenc.*').search(output)
>         assert match1 is not None
>         assert match2 is not None
>         assert match3 is not None
>         assert match1.group('id_') == 'cite-id-1-2003-evensen'
>         assert match2.group('id_') == 'cite-id-1-2009-mandel'
>         assert match3.group('id_') == 'cite-id-2-1986-lorenc'
>         match1 = html_footnotes(text='.*Evensen.*').search(output)
>         match2 = html_footnotes(text='.*Mandel.*').search(output)
>         match3 = html_footnotes(text='.*Lorenc.*').search(output)
> >       assert match1 is not None
> E       assert None is not None
> 
> test/test_bibliography.py:265: AssertionError
> --------------------------- Captured stdout teardown ---------------------------
> # testroot: root
> # builder: html
> # srcdir: /tmp/pytest-of-user42/pytest-5/bibliography_custom_ids
> # outdir: /tmp/pytest-of-user42/pytest-5/bibliography_custom_ids/_build/html
> # status: 
> Running Sphinx v7.1.1
> checking bibtex cache... out of date
> parsing bibtex file /tmp/pytest-of-user42/pytest-5/bibliography_custom_ids/test.bib... parsed 3 entries
> building [mo]: targets for 0 po files that are out of date
> writing output... 
> building [html]: targets for 1 source files that are out of date
> updating environment: [new config] 1 added, 0 changed, 0 removed
> reading sources... [100%] index
> 
> looking for now-outdated files... none found
> pickling environment... done
> checking consistency... done
> preparing documents... done
> copying assets... copying static files... done
> copying extra files... done
> done
> writing output... [100%] index
> 
> generating indices... genindex done
> writing additional pages... search done
> dumping search index in English (code: en)... done
> dumping object inventory... done
> build succeeded.
> 
> The HTML pages are in ../../../../../../tmp/pytest-of-user42/pytest-5/bibliography_custom_ids/_build/html.
> 
> # warning: 
> 
> ________________________________ test_numpydoc _________________________________
> 
> app = <SphinxTestApp buildername='html'>
> warning = <_io.StringIO object at 0x7f4eed777400>
> 
>     @pytest.mark.numpydoc
>     @pytest.mark.sphinx(
>         'html', testroot='autodoc',
>         confoverrides={
>             'extensions': ['sphinxcontrib.bibtex', 'numpydoc'],
>             'numpydoc_class_members_toctree': False,
>         })
>     def test_numpydoc(app, warning) -> None:
>         app.build()
>         assert not warning.getvalue()
>         output = (app.outdir / "doc_cite.html").read_text()
>         labels = ['One', 'Two', 'Thr', 'Fou', 'Fiv', 'Six', 'Sev', 'Eig', 'Nin',
>                   'Ten', 'Ele']
>         titles = ['Een', 'Twee', 'Drie', 'Vier', 'Vijf', 'Zes', 'Zeven', 'Acht',
>                   'Negen', 'Tien', 'Elf']
>         for label, title in zip(labels, titles):
>             assert len(html_citation_refs(label=label).findall(output)) == 1
>             assert len(html_citations(label=label).findall(output)) == 1
>             match_ref = html_citation_refs(label=label).search(output)
>             match = html_citations(label=label).search(output)
>             assert match_ref
>             assert match
>             assert match_ref.group('refid') == match.group('id_')
>             assert title in match.group('text')
>         output2 = (app.outdir / "doc_footcite.html").read_text()
>         assert len(html_footnote_refs().findall(output2)) == 11
>         for title in titles:
>             text = ".*" + title + ".*"
> >           assert len(html_footnotes(text=text).findall(output2)) == 1
> E           assert 0 == 1
> E            +  where 0 = len([])
> E            +    where [] = <built-in method findall of re.Pattern object at 0x3a0b620>('<!DOCTYPE html>\n\n<html lang="en">\n  <head>\n    <meta charset="utf-8" />\n    <meta name="viewport" content="width...ources/doc_footcite.rst.txt"\n          rel="nofollow">Page source</a>\n    </div>\n\n    \n\n    \n  </body>\n</html>')
> E            +      where <built-in method findall of re.Pattern object at 0x3a0b620> = re.compile('<aside class="footnote brackets" id="(?P<id_>[a-z][-?a-z0-9]*)" role="note">\\s*<span class="label"><span class="fn-bracket">\\[</span>(?:<a role="doc-backlink" href="#(?P<backref>[a-z][-?a-z0-9]*)">).findall
> E            +        where re.compile('<aside class="footnote brackets" id="(?P<id_>[a-z][-?a-z0-9]*)" role="note">\\s*<span class="label"><span class="fn-bracket">\\[</span>(?:<a role="doc-backlink" href="#(?P<backref>[a-z][-?a-z0-9]*)">) = html_footnotes(text='.*Een.*')
> 
> test/test_numpydoc.py:35: AssertionError
> --------------------------- Captured stdout teardown ---------------------------
> # testroot: root
> # builder: html
> # srcdir: /tmp/pytest-of-user42/pytest-5/autodoc
> # outdir: /tmp/pytest-of-user42/pytest-5/autodoc/_build/html
> # status: 
> Running Sphinx v7.1.1
> loading pickled environment... checking bibtex cache... up to date
> done
> [autosummary] generating autosummary for: doc_cite.rst, doc_footcite.rst, index.rst
> building [mo]: targets for 0 po files that are out of date
> writing output... 
> building [html]: targets for 3 source files that are out of date
> updating environment: [extensions changed ('2')] 3 added, 0 changed, 0 removed
> reading sources... [ 33%] doc_cite
> reading sources... [ 67%] doc_footcite
> reading sources... [100%] index
> 
> looking for now-outdated files... none found
> pickling environment... done
> checking consistency... done
> preparing documents... done
> copying assets... copying static files... done
> copying extra files... done
> done
> writing output... [ 33%] doc_cite
> writing output... [ 67%] doc_footcite
> writing output... [100%] index
> 
> generating indices... genindex py-modindex done
> writing additional pages... search done
> dumping search index in English (code: en)... done
> dumping object inventory... done
> build succeeded.
> 
> The HTML pages are in ../../../../../../tmp/pytest-of-user42/pytest-5/autodoc/_build/html.
> 
> # warning: 
> 
> =============================== warnings summary ===============================
> ../../../../../../usr/lib/python3/dist-packages/babel/messages/catalog.py:13
>   /usr/lib/python3/dist-packages/babel/messages/catalog.py:13: DeprecationWarning: 'cgi' is deprecated and slated for removal in Python 3.13
>     from cgi import parse_header
> 
> ../../../../../../usr/lib/python3/dist-packages/pybtex/plugin/__init__.py:26
>   /usr/lib/python3/dist-packages/pybtex/plugin/__init__.py:26: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
>     import pkg_resources
> 
> .pybuild/cpython3_3.11_sphinxcontrib.bibtex/build/test/test_bibliography.py::test_bibliography_header
> .pybuild/cpython3_3.11_sphinxcontrib.bibtex/build/test/test_bibliography.py::test_bibliography_header
> .pybuild/cpython3_3.11_sphinxcontrib.bibtex/build/test/test_bibliography.py::test_bibliography_empty_no_header
> .pybuild/cpython3_3.11_sphinxcontrib.bibtex/build/test/test_bibliography.py::test_bibliography_empty_no_header
> .pybuild/cpython3_3.11_sphinxcontrib.bibtex/build/test/test_bibliography.py::test_bibliography_multi_foot
>   /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_sphinxcontrib.bibtex/build/sphinxcontrib/bibtex/domain.py:224: DeprecationWarning: The frontend.OptionParser class will be replaced by a subclass of argparse.ArgumentParser in Docutils 0.21 or later.
>     settings = docutils.frontend.OptionParser(
> 
> .pybuild/cpython3_3.11_sphinxcontrib.bibtex/build/test/test_bibliography.py: 345 warnings
>   /usr/lib/python3.11/optparse.py:1000: DeprecationWarning: The frontend.Option class will be removed in Docutils 0.21 or later.
>     option = self.option_class(*args, **kwargs)
> 
> .pybuild/cpython3_3.11_sphinxcontrib.bibtex/build/test/test_natbib.py::test_natbib
> .pybuild/cpython3_3.11_sphinxcontrib.bibtex/build/test/test_natbib.py::test_natbib
>   /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_sphinxcontrib.bibtex/build/test/natbib.py:411: DeprecationWarning: nodes.Text: initialization argument "rawsource" is ignored and will be removed in Docutils 2.0.
>     refnode += nodes.Text(url, url)
> 
> -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
> =========================== short test summary info ============================
> FAILED test/test_autodoc.py::test_autodoc - assert 0 == 1
> FAILED test/test_bibliography.py::test_bibliography_multi_foot - assert 0 == 1
> FAILED test/test_bibliography.py::test_bibliography_custom_ids - assert None ...
> FAILED test/test_numpydoc.py::test_numpydoc - assert 0 == 1
> ========== 4 failed, 86 passed, 2 deselected, 354 warnings in 14.31s ===========
> E: pybuild pybuild:388: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_sphinxcontrib.bibtex/build; python3.11 -m pytest "-k not test_citation_rinoh"
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.11 returned exit code 13


The full build log is available from:
http://qa-logs.debian.net/2023/07/30/exp/sphinxcontrib-bibtex_2.5.0-1_unstable_sphinx-exp.log

Please see [1] for Sphinx changelog and [2] for Docutils changelog.

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

Some notable changes in Sphinx 6 and Sphinx 7:

- Sphinx no longer includes jquery.js and underscore.js by default.
  Please use python3-sphinxcontrib.jquery package if you are using a custom
  template and it still needs jquery.

- The setup.py build_sphinx command was removed. Please instead call
  sphinx-build or "python3 -m sphinx" directly.

- For packages using the extlinks extension, the caption should contain
  exactly one "%s" placeholder (if caption is not None).

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

[1]: https://www.sphinx-doc.org/en/master/changes.html
[2]: https://repo.or.cz/docutils.git/blob/refs/tags/docutils-0.20.1:/RELEASE-NOTES.txt
[3]: https://www.sphinx-doc.org/en/master/extdev/deprecated.html#dev-deprecated-apis

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=sphinx7.1;users=python-modules-team@lists.alioth.debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=sphinx7.1&fusertaguser=python-modules-team@lists.alioth.debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results

If you reassign this bug to another package, please marking it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects



More information about the debian-science-maintainers mailing list