python-matplotlib fails to build with Sphinx 7.x in Fedora 39 (currently Rawhide). The issue detected - 6 tests fail ________________________________ test_tinypages ________________________________ [gw0] linux -- Python 3.12.0 /usr/bin/python3 tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_tinypages0') def test_tinypages(tmp_path): shutil.copytree(Path(__file__).parent / 'tinypages', tmp_path, dirs_exist_ok=True) html_dir = tmp_path / '_build' / 'html' img_dir = html_dir / '_images' doctree_dir = tmp_path / 'doctrees' # Build the pages with warnings turned into errors cmd = [sys.executable, '-msphinx', '-W', '-b', 'html', '-d', str(doctree_dir), str(Path(__file__).parent / 'tinypages'), str(html_dir)] # On CI, gcov emits warnings (due to agg headers being included with the # same name in multiple extension modules -- but we don't care about their # coverage anyways); hide them using GCOV_ERROR_FILE. proc = Popen( cmd, stdout=PIPE, stderr=PIPE, universal_newlines=True, env={**os.environ, "MPLBACKEND": "", "GCOV_ERROR_FILE": os.devnull}) out, err = proc.communicate() # Build the pages with warnings turned into errors > build_sphinx_html(tmp_path, doctree_dir, html_dir) ../../BUILDROOT/python-matplotlib-3.7.2-1.fc39.x86_64/usr/lib64/python3.12/site-packages/matplotlib/tests/test_sphinxext.py:53: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ source_dir = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_tinypages0') doctree_dir = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_tinypages0/doctrees') html_dir = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_tinypages0/_build/html') extra_args = [] def build_sphinx_html(source_dir, doctree_dir, html_dir, extra_args=None): # Build the pages with warnings turned into errors extra_args = [] if extra_args is None else extra_args cmd = [sys.executable, '-msphinx', '-W', '-b', 'html', '-d', str(doctree_dir), str(source_dir), str(html_dir), *extra_args] proc = Popen(cmd, stdout=PIPE, stderr=PIPE, universal_newlines=True, env={**os.environ, "MPLBACKEND": ""}) out, err = proc.communicate() assert proc.returncode == 0, \ f"sphinx build failed with stdout:\n{out}\nstderr:\n{err}\n" if err: > pytest.fail(f"sphinx build emitted the following warnings:\n{err}") E Failed: sphinx build emitted the following warnings: E /usr/lib/python3.12/site-packages/sphinxcontrib/applehelp/__init__.py:24: RemovedInSphinx80Warning: The alias 'sphinx.util.SkipProgressMessage' is deprecated, use 'sphinx.util.display.SkipProgressMessage' instead. Check CHANGES for Sphinx API modifications. E from sphinx.util import SkipProgressMessage, progress_message E /usr/lib/python3.12/site-packages/sphinxcontrib/applehelp/__init__.py:24: RemovedInSphinx80Warning: The alias 'sphinx.util.progress_message' is deprecated, use 'sphinx.http_date.epoch_to_rfc1123' instead. Check CHANGES for Sphinx API modifications. E from sphinx.util import SkipProgressMessage, progress_message E /usr/lib/python3.12/site-packages/sphinxcontrib/htmlhelp/__init__.py:26: RemovedInSphinx80Warning: The alias 'sphinx.util.progress_message' is deprecated, use 'sphinx.http_date.epoch_to_rfc1123' instead. Check CHANGES for Sphinx API modifications. E from sphinx.util import progress_message ../../BUILDROOT/python-matplotlib-3.7.2-1.fc39.x86_64/usr/lib64/python3.12/site-packages/matplotlib/tests/test_sphinxext.py:29: Failed _______________________ test_plot_html_show_source_link ________________________ [gw0] linux -- Python 3.12.0 /usr/bin/python3 tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_plot_html_show_source_lin0') def test_plot_html_show_source_link(tmp_path): parent = Path(__file__).parent shutil.copyfile(parent / 'tinypages/conf.py', tmp_path / 'conf.py') shutil.copytree(parent / 'tinypages/_static', tmp_path / '_static') doctree_dir = tmp_path / 'doctrees' (tmp_path / 'index.rst').write_text(""" .. plot:: plt.plot(range(2)) """) # Make sure source scripts are created by default html_dir1 = tmp_path / '_build' / 'html1' > build_sphinx_html(tmp_path, doctree_dir, html_dir1) ../../BUILDROOT/python-matplotlib-3.7.2-1.fc39.x86_64/usr/lib64/python3.12/site-packages/matplotlib/tests/test_sphinxext.py:133: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ source_dir = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_plot_html_show_source_lin0') doctree_dir = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_plot_html_show_source_lin0/doctrees') html_dir = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_plot_html_show_source_lin0/_build/html1') extra_args = [] def build_sphinx_html(source_dir, doctree_dir, html_dir, extra_args=None): # Build the pages with warnings turned into errors extra_args = [] if extra_args is None else extra_args cmd = [sys.executable, '-msphinx', '-W', '-b', 'html', '-d', str(doctree_dir), str(source_dir), str(html_dir), *extra_args] proc = Popen(cmd, stdout=PIPE, stderr=PIPE, universal_newlines=True, env={**os.environ, "MPLBACKEND": ""}) out, err = proc.communicate() assert proc.returncode == 0, \ f"sphinx build failed with stdout:\n{out}\nstderr:\n{err}\n" if err: > pytest.fail(f"sphinx build emitted the following warnings:\n{err}") E Failed: sphinx build emitted the following warnings: E /usr/lib/python3.12/site-packages/sphinxcontrib/applehelp/__init__.py:24: RemovedInSphinx80Warning: The alias 'sphinx.util.SkipProgressMessage' is deprecated, use 'sphinx.util.display.SkipProgressMessage' instead. Check CHANGES for Sphinx API modifications. E from sphinx.util import SkipProgressMessage, progress_message E /usr/lib/python3.12/site-packages/sphinxcontrib/applehelp/__init__.py:24: RemovedInSphinx80Warning: The alias 'sphinx.util.progress_message' is deprecated, use 'sphinx.http_date.epoch_to_rfc1123' instead. Check CHANGES for Sphinx API modifications. E from sphinx.util import SkipProgressMessage, progress_message E /usr/lib/python3.12/site-packages/sphinxcontrib/htmlhelp/__init__.py:26: RemovedInSphinx80Warning: The alias 'sphinx.util.progress_message' is deprecated, use 'sphinx.http_date.epoch_to_rfc1123' instead. Check CHANGES for Sphinx API modifications. E from sphinx.util import progress_message ../../BUILDROOT/python-matplotlib-3.7.2-1.fc39.x86_64/usr/lib64/python3.12/site-packages/matplotlib/tests/test_sphinxext.py:29: Failed ________________________ test_show_source_link_true[0] _________________________ [gw0] linux -- Python 3.12.0 /usr/bin/python3 tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_show_source_link_true_0_0') plot_html_show_source_link = 0 @pytest.mark.parametrize('plot_html_show_source_link', [0, 1]) def test_show_source_link_true(tmp_path, plot_html_show_source_link): # Test that a source link is generated if :show-source-link: is true, # whether or not plot_html_show_source_link is true. parent = Path(__file__).parent shutil.copyfile(parent / 'tinypages/conf.py', tmp_path / 'conf.py') shutil.copytree(parent / 'tinypages/_static', tmp_path / '_static') doctree_dir = tmp_path / 'doctrees' (tmp_path / 'index.rst').write_text(""" .. plot:: :show-source-link: true plt.plot(range(2)) """) html_dir = tmp_path / '_build' / 'html' > build_sphinx_html(tmp_path, doctree_dir, html_dir, extra_args=[ '-D', f'plot_html_show_source_link={plot_html_show_source_link}']) ../../BUILDROOT/python-matplotlib-3.7.2-1.fc39.x86_64/usr/lib64/python3.12/site-packages/matplotlib/tests/test_sphinxext.py:158: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ source_dir = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_show_source_link_true_0_0') doctree_dir = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_show_source_link_true_0_0/doctrees') html_dir = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_show_source_link_true_0_0/_build/html') extra_args = ['-D', 'plot_html_show_source_link=0'] def build_sphinx_html(source_dir, doctree_dir, html_dir, extra_args=None): # Build the pages with warnings turned into errors extra_args = [] if extra_args is None else extra_args cmd = [sys.executable, '-msphinx', '-W', '-b', 'html', '-d', str(doctree_dir), str(source_dir), str(html_dir), *extra_args] proc = Popen(cmd, stdout=PIPE, stderr=PIPE, universal_newlines=True, env={**os.environ, "MPLBACKEND": ""}) out, err = proc.communicate() assert proc.returncode == 0, \ f"sphinx build failed with stdout:\n{out}\nstderr:\n{err}\n" if err: > pytest.fail(f"sphinx build emitted the following warnings:\n{err}") E Failed: sphinx build emitted the following warnings: E /usr/lib/python3.12/site-packages/sphinxcontrib/applehelp/__init__.py:24: RemovedInSphinx80Warning: The alias 'sphinx.util.SkipProgressMessage' is deprecated, use 'sphinx.util.display.SkipProgressMessage' instead. Check CHANGES for Sphinx API modifications. E from sphinx.util import SkipProgressMessage, progress_message E /usr/lib/python3.12/site-packages/sphinxcontrib/applehelp/__init__.py:24: RemovedInSphinx80Warning: The alias 'sphinx.util.progress_message' is deprecated, use 'sphinx.http_date.epoch_to_rfc1123' instead. Check CHANGES for Sphinx API modifications. E from sphinx.util import SkipProgressMessage, progress_message E /usr/lib/python3.12/site-packages/sphinxcontrib/htmlhelp/__init__.py:26: RemovedInSphinx80Warning: The alias 'sphinx.util.progress_message' is deprecated, use 'sphinx.http_date.epoch_to_rfc1123' instead. Check CHANGES for Sphinx API modifications. E from sphinx.util import progress_message ../../BUILDROOT/python-matplotlib-3.7.2-1.fc39.x86_64/usr/lib64/python3.12/site-packages/matplotlib/tests/test_sphinxext.py:29: Failed ________________________ test_show_source_link_true[1] _________________________ [gw0] linux -- Python 3.12.0 /usr/bin/python3 tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_show_source_link_true_1_0') plot_html_show_source_link = 1 @pytest.mark.parametrize('plot_html_show_source_link', [0, 1]) def test_show_source_link_true(tmp_path, plot_html_show_source_link): # Test that a source link is generated if :show-source-link: is true, # whether or not plot_html_show_source_link is true. parent = Path(__file__).parent shutil.copyfile(parent / 'tinypages/conf.py', tmp_path / 'conf.py') shutil.copytree(parent / 'tinypages/_static', tmp_path / '_static') doctree_dir = tmp_path / 'doctrees' (tmp_path / 'index.rst').write_text(""" .. plot:: :show-source-link: true plt.plot(range(2)) """) html_dir = tmp_path / '_build' / 'html' > build_sphinx_html(tmp_path, doctree_dir, html_dir, extra_args=[ '-D', f'plot_html_show_source_link={plot_html_show_source_link}']) ../../BUILDROOT/python-matplotlib-3.7.2-1.fc39.x86_64/usr/lib64/python3.12/site-packages/matplotlib/tests/test_sphinxext.py:158: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ source_dir = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_show_source_link_true_1_0') doctree_dir = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_show_source_link_true_1_0/doctrees') html_dir = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_show_source_link_true_1_0/_build/html') extra_args = ['-D', 'plot_html_show_source_link=1'] def build_sphinx_html(source_dir, doctree_dir, html_dir, extra_args=None): # Build the pages with warnings turned into errors extra_args = [] if extra_args is None else extra_args cmd = [sys.executable, '-msphinx', '-W', '-b', 'html', '-d', str(doctree_dir), str(source_dir), str(html_dir), *extra_args] proc = Popen(cmd, stdout=PIPE, stderr=PIPE, universal_newlines=True, env={**os.environ, "MPLBACKEND": ""}) out, err = proc.communicate() assert proc.returncode == 0, \ f"sphinx build failed with stdout:\n{out}\nstderr:\n{err}\n" if err: > pytest.fail(f"sphinx build emitted the following warnings:\n{err}") E Failed: sphinx build emitted the following warnings: E /usr/lib/python3.12/site-packages/sphinxcontrib/applehelp/__init__.py:24: RemovedInSphinx80Warning: The alias 'sphinx.util.SkipProgressMessage' is deprecated, use 'sphinx.util.display.SkipProgressMessage' instead. Check CHANGES for Sphinx API modifications. E from sphinx.util import SkipProgressMessage, progress_message E /usr/lib/python3.12/site-packages/sphinxcontrib/applehelp/__init__.py:24: RemovedInSphinx80Warning: The alias 'sphinx.util.progress_message' is deprecated, use 'sphinx.http_date.epoch_to_rfc1123' instead. Check CHANGES for Sphinx API modifications. E from sphinx.util import SkipProgressMessage, progress_message E /usr/lib/python3.12/site-packages/sphinxcontrib/htmlhelp/__init__.py:26: RemovedInSphinx80Warning: The alias 'sphinx.util.progress_message' is deprecated, use 'sphinx.http_date.epoch_to_rfc1123' instead. Check CHANGES for Sphinx API modifications. E from sphinx.util import progress_message ../../BUILDROOT/python-matplotlib-3.7.2-1.fc39.x86_64/usr/lib64/python3.12/site-packages/matplotlib/tests/test_sphinxext.py:29: Failed ________________________ test_show_source_link_false[0] ________________________ [gw0] linux -- Python 3.12.0 /usr/bin/python3 tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_show_source_link_false_0_0') plot_html_show_source_link = 0 @pytest.mark.parametrize('plot_html_show_source_link', [0, 1]) def test_show_source_link_false(tmp_path, plot_html_show_source_link): # Test that a source link is NOT generated if :show-source-link: is false, # whether or not plot_html_show_source_link is true. parent = Path(__file__).parent shutil.copyfile(parent / 'tinypages/conf.py', tmp_path / 'conf.py') shutil.copytree(parent / 'tinypages/_static', tmp_path / '_static') doctree_dir = tmp_path / 'doctrees' (tmp_path / 'index.rst').write_text(""" .. plot:: :show-source-link: false plt.plot(range(2)) """) html_dir = tmp_path / '_build' / 'html' > build_sphinx_html(tmp_path, doctree_dir, html_dir, extra_args=[ '-D', f'plot_html_show_source_link={plot_html_show_source_link}']) ../../BUILDROOT/python-matplotlib-3.7.2-1.fc39.x86_64/usr/lib64/python3.12/site-packages/matplotlib/tests/test_sphinxext.py:178: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ source_dir = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_show_source_link_false_0_0') doctree_dir = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_show_source_link_false_0_0/doctrees') html_dir = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_show_source_link_false_0_0/_build/html') extra_args = ['-D', 'plot_html_show_source_link=0'] def build_sphinx_html(source_dir, doctree_dir, html_dir, extra_args=None): # Build the pages with warnings turned into errors extra_args = [] if extra_args is None else extra_args cmd = [sys.executable, '-msphinx', '-W', '-b', 'html', '-d', str(doctree_dir), str(source_dir), str(html_dir), *extra_args] proc = Popen(cmd, stdout=PIPE, stderr=PIPE, universal_newlines=True, env={**os.environ, "MPLBACKEND": ""}) out, err = proc.communicate() assert proc.returncode == 0, \ f"sphinx build failed with stdout:\n{out}\nstderr:\n{err}\n" if err: > pytest.fail(f"sphinx build emitted the following warnings:\n{err}") E Failed: sphinx build emitted the following warnings: E /usr/lib/python3.12/site-packages/sphinxcontrib/applehelp/__init__.py:24: RemovedInSphinx80Warning: The alias 'sphinx.util.SkipProgressMessage' is deprecated, use 'sphinx.util.display.SkipProgressMessage' instead. Check CHANGES for Sphinx API modifications. E from sphinx.util import SkipProgressMessage, progress_message E /usr/lib/python3.12/site-packages/sphinxcontrib/applehelp/__init__.py:24: RemovedInSphinx80Warning: The alias 'sphinx.util.progress_message' is deprecated, use 'sphinx.http_date.epoch_to_rfc1123' instead. Check CHANGES for Sphinx API modifications. E from sphinx.util import SkipProgressMessage, progress_message E /usr/lib/python3.12/site-packages/sphinxcontrib/htmlhelp/__init__.py:26: RemovedInSphinx80Warning: The alias 'sphinx.util.progress_message' is deprecated, use 'sphinx.http_date.epoch_to_rfc1123' instead. Check CHANGES for Sphinx API modifications. E from sphinx.util import progress_message ../../BUILDROOT/python-matplotlib-3.7.2-1.fc39.x86_64/usr/lib64/python3.12/site-packages/matplotlib/tests/test_sphinxext.py:29: Failed ________________________ test_show_source_link_false[1] ________________________ [gw0] linux -- Python 3.12.0 /usr/bin/python3 tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_show_source_link_false_1_0') plot_html_show_source_link = 1 @pytest.mark.parametrize('plot_html_show_source_link', [0, 1]) def test_show_source_link_false(tmp_path, plot_html_show_source_link): # Test that a source link is NOT generated if :show-source-link: is false, # whether or not plot_html_show_source_link is true. parent = Path(__file__).parent shutil.copyfile(parent / 'tinypages/conf.py', tmp_path / 'conf.py') shutil.copytree(parent / 'tinypages/_static', tmp_path / '_static') doctree_dir = tmp_path / 'doctrees' (tmp_path / 'index.rst').write_text(""" .. plot:: :show-source-link: false plt.plot(range(2)) """) html_dir = tmp_path / '_build' / 'html' > build_sphinx_html(tmp_path, doctree_dir, html_dir, extra_args=[ '-D', f'plot_html_show_source_link={plot_html_show_source_link}']) ../../BUILDROOT/python-matplotlib-3.7.2-1.fc39.x86_64/usr/lib64/python3.12/site-packages/matplotlib/tests/test_sphinxext.py:178: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ source_dir = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_show_source_link_false_1_0') doctree_dir = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_show_source_link_false_1_0/doctrees') html_dir = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_show_source_link_false_1_0/_build/html') extra_args = ['-D', 'plot_html_show_source_link=1'] def build_sphinx_html(source_dir, doctree_dir, html_dir, extra_args=None): # Build the pages with warnings turned into errors extra_args = [] if extra_args is None else extra_args cmd = [sys.executable, '-msphinx', '-W', '-b', 'html', '-d', str(doctree_dir), str(source_dir), str(html_dir), *extra_args] proc = Popen(cmd, stdout=PIPE, stderr=PIPE, universal_newlines=True, env={**os.environ, "MPLBACKEND": ""}) out, err = proc.communicate() assert proc.returncode == 0, \ f"sphinx build failed with stdout:\n{out}\nstderr:\n{err}\n" if err: > pytest.fail(f"sphinx build emitted the following warnings:\n{err}") E Failed: sphinx build emitted the following warnings: E /usr/lib/python3.12/site-packages/sphinxcontrib/applehelp/__init__.py:24: RemovedInSphinx80Warning: The alias 'sphinx.util.SkipProgressMessage' is deprecated, use 'sphinx.util.display.SkipProgressMessage' instead. Check CHANGES for Sphinx API modifications. E from sphinx.util import SkipProgressMessage, progress_message E /usr/lib/python3.12/site-packages/sphinxcontrib/applehelp/__init__.py:24: RemovedInSphinx80Warning: The alias 'sphinx.util.progress_message' is deprecated, use 'sphinx.http_date.epoch_to_rfc1123' instead. Check CHANGES for Sphinx API modifications. E from sphinx.util import SkipProgressMessage, progress_message E /usr/lib/python3.12/site-packages/sphinxcontrib/htmlhelp/__init__.py:26: RemovedInSphinx80Warning: The alias 'sphinx.util.progress_message' is deprecated, use 'sphinx.http_date.epoch_to_rfc1123' instead. Check CHANGES for Sphinx API modifications. E from sphinx.util import progress_message For the logs from testing build attempts, see: https://copr.fedorainfracloud.org/coprs/ksurma/doc-stack/package/python-matplotlib/ You can test you package in mock running: $ mock -r fedora-rawhide-x86_64 --addrepo=https://download.copr.fedorainfracloud.org/results/ksurma/doc-stack/fedora-rawhide-x86_64/ --no-clean your.src.rpm $ mock -r fedora-rawhide-x86_64 --addrepo=https://download.copr.fedorainfracloud.org/results/ksurma/doc-stack/fedora-rawhide-x86_64/ shell We'd like to include Sphinx 7 in Fedora 39. Let us know here if you have any questions. Thank you!
These errors appear to be caused by warnings in outdated applehelp and htmlhelp extensions.
FEDORA-2023-b15b98de2e has been submitted as an update to Fedora 40. https://bodhi.fedoraproject.org/updates/FEDORA-2023-b15b98de2e
FEDORA-2023-b15b98de2e has been pushed to the Fedora 40 stable repository. If problem still persists, please make note of it in this bug report.