diff --git a/pygments.patch b/pygments.patch new file mode 100644 index 0000000..081c351 --- /dev/null +++ b/pygments.patch @@ -0,0 +1,224 @@ +From 5ff3740063c1ac57f17ecd697bcd06cc1de4e75c Mon Sep 17 00:00:00 2001 +From: Adam Turner <9087854+aa-turner@users.noreply.github.com> +Date: Mon, 6 Jan 2025 06:56:10 +0000 +Subject: [PATCH] Adapt tests for Pygments 2.19 + +--- + tests/test_builders/test_build_html_code.py | 8 +++++++- + tests/test_builders/test_build_latex.py | 9 +++++++-- + tests/test_directives/test_directive_code.py | 15 +++++++++++++-- + tests/test_extensions/test_ext_viewcode.py | 8 +++++++- + tests/test_highlighting.py | 2 +- + tests/test_intl/test_intl.py | 15 +++++++++++++-- + 6 files changed, 48 insertions(+), 9 deletions(-) + +Index: sphinx-8.1.3/tests/test_builders/test_build_html_code.py +=================================================================== +--- sphinx-8.1.3.orig/tests/test_builders/test_build_html_code.py ++++ sphinx-8.1.3/tests/test_builders/test_build_html_code.py +@@ -1,3 +1,4 @@ ++import pygments + import pytest + + +@@ -32,11 +33,16 @@ def test_html_codeblock_linenos_style_in + + @pytest.mark.sphinx('html', testroot='reST-code-role') + def test_html_code_role(app): ++ if tuple(map(int, pygments.__version__.split('.')[:2])) >= (2, 19): ++ sp = ' ' ++ else: ++ sp = ' ' ++ + app.build() + content = (app.outdir / 'index.html').read_text(encoding='utf8') + + common_content = ( +- 'def foo' ++ f'def{sp}foo' + '(' + '1 ' + '+ ' +Index: sphinx-8.1.3/tests/test_builders/test_build_latex.py +=================================================================== +--- sphinx-8.1.3.orig/tests/test_builders/test_build_latex.py ++++ sphinx-8.1.3/tests/test_builders/test_build_latex.py +@@ -8,6 +8,7 @@ from pathlib import Path + from shutil import copyfile + from subprocess import CalledProcessError + ++import pygments + import pytest + + from sphinx.builders.latex import default_latex_documents +@@ -2127,12 +2128,16 @@ def test_latex_container(app): + + @pytest.mark.sphinx('latex', testroot='reST-code-role') + def test_latex_code_role(app): ++ if tuple(map(int, pygments.__version__.split('.')[:2])) >= (2, 19): ++ sp = r'\PYG{+w}{ }' ++ else: ++ sp = ' ' ++ + app.build() + content = (app.outdir / 'projectnamenotset.tex').read_text(encoding='utf8') + + common_content = ( +- r'\PYG{k}{def} ' +- r'\PYG{n+nf}{foo}' ++ r'\PYG{k}{def}' + sp + r'\PYG{n+nf}{foo}' + r'\PYG{p}{(}' + r'\PYG{l+m+mi}{1} ' + r'\PYG{o}{+} ' +Index: sphinx-8.1.3/tests/test_directives/test_directive_code.py +=================================================================== +--- sphinx-8.1.3.orig/tests/test_directives/test_directive_code.py ++++ sphinx-8.1.3/tests/test_directives/test_directive_code.py +@@ -2,6 +2,7 @@ + + import os.path + ++import pygments + import pytest + from docutils import nodes + +@@ -393,6 +394,11 @@ def test_literal_include_block_start_wit + + @pytest.mark.sphinx('html', testroot='directive-code') + def test_literal_include_linenos(app): ++ if tuple(map(int, pygments.__version__.split('.')[:2])) >= (2, 19): ++ sp = ' ' ++ else: ++ sp = ' ' ++ + app.build(filenames=[app.srcdir / 'linenos.rst']) + html = (app.outdir / 'linenos.html').read_text(encoding='utf8') + +@@ -410,7 +416,7 @@ def test_literal_include_linenos(app): + + # :lines: 5-9 + assert ( +- '5class ' ++ f'5class{sp}' + 'Foo:' + ) in html + +@@ -560,12 +566,17 @@ def test_code_block_highlighted(app): + + @pytest.mark.sphinx('html', testroot='directive-code') + def test_linenothreshold(app): ++ if tuple(map(int, pygments.__version__.split('.')[:2])) >= (2, 19): ++ sp = ' ' ++ else: ++ sp = ' ' ++ + app.build(filenames=[app.srcdir / 'linenothreshold.rst']) + html = (app.outdir / 'linenothreshold.html').read_text(encoding='utf8') + + # code-block using linenothreshold + assert ( +- '1class ' ++ f'1class{sp}' + 'Foo:' + ) in html + +Index: sphinx-8.1.3/tests/test_extensions/test_ext_viewcode.py +=================================================================== +--- sphinx-8.1.3.orig/tests/test_extensions/test_ext_viewcode.py ++++ sphinx-8.1.3/tests/test_extensions/test_ext_viewcode.py +@@ -6,6 +6,7 @@ import re + import shutil + from typing import TYPE_CHECKING + ++import pygments + import pytest + + if TYPE_CHECKING: +@@ -13,6 +14,11 @@ if TYPE_CHECKING: + + + def check_viewcode_output(app: SphinxTestApp) -> str: ++ if tuple(map(int, pygments.__version__.split('.')[:2])) >= (2, 19): ++ sp = ' ' ++ else: ++ sp = ' ' ++ + warnings = re.sub(r'\\+', '/', app.warning.getvalue()) + assert re.findall( + r"index.rst:\d+: WARNING: Object named 'func1' not found in include " +@@ -41,7 +47,7 @@ def check_viewcode_output(app: SphinxTes + '[docs]\n' + ) in result + assert '@decorator\n' in result +- assert 'class Class1:\n' in result ++ assert f'class{sp}Class1:\n' in result + assert ' """\n' in result + assert ' this is Class1\n' in result + assert ' """\n' in result +Index: sphinx-8.1.3/tests/test_highlighting.py +=================================================================== +--- sphinx-8.1.3.orig/tests/test_highlighting.py ++++ sphinx-8.1.3/tests/test_highlighting.py +@@ -10,7 +10,7 @@ from pygments.token import Name, Text + + from sphinx.highlighting import PygmentsBridge + +-if tuple(map(int, pygments.__version__.split('.')))[:2] < (2, 18): ++if tuple(map(int, pygments.__version__.split('.')[:2])) < (2, 18): + from pygments.formatter import Formatter + + Formatter.__class_getitem__ = classmethod(lambda cls, name: cls) # type: ignore[attr-defined] +Index: sphinx-8.1.3/tests/test_intl/test_intl.py +=================================================================== +--- sphinx-8.1.3.orig/tests/test_intl/test_intl.py ++++ sphinx-8.1.3/tests/test_intl/test_intl.py +@@ -10,6 +10,7 @@ import shutil + import time + from io import StringIO + ++import pygments + import pytest + from babel.messages import mofile, pofile + from babel.messages.catalog import Catalog +@@ -1473,6 +1474,11 @@ def test_xml_strange_markup(app): + @pytest.mark.sphinx('html', testroot='intl') + @pytest.mark.test_params(shared_result='test_intl_basic') + def test_additional_targets_should_not_be_translated(app): ++ if tuple(map(int, pygments.__version__.split('.')[:2])) >= (2, 19): ++ sp = ' ' ++ else: ++ sp = ' ' ++ + app.build() + # [literalblock.txt] + result = (app.outdir / 'literalblock.html').read_text(encoding='utf8') +@@ -1511,7 +1517,7 @@ def test_additional_targets_should_not_b + # doctest block should not be translated but be highlighted + expected_expr = ( + """>>> """ +- """import sys """ ++ f"""import{sp}sys """ + """# sys importing""" + ) + assert_count(expected_expr, result, 1) +@@ -1556,6 +1562,11 @@ def test_additional_targets_should_not_b + }, + ) + def test_additional_targets_should_be_translated(app): ++ if tuple(map(int, pygments.__version__.split('.')[:2])) >= (2, 19): ++ sp = ' ' ++ else: ++ sp = ' ' ++ + app.build() + # [literalblock.txt] + result = (app.outdir / 'literalblock.html').read_text(encoding='utf8') +@@ -1605,7 +1616,7 @@ def test_additional_targets_should_be_tr + # doctest block should not be translated but be highlighted + expected_expr = ( + """>>> """ +- """import sys """ ++ f"""import{sp}sys """ + """# SYS IMPORTING""" + ) + assert_count(expected_expr, result, 1) diff --git a/python-Sphinx.changes b/python-Sphinx.changes index bb3e668..81e807e 100644 --- a/python-Sphinx.changes +++ b/python-Sphinx.changes @@ -1,3 +1,159 @@ +------------------------------------------------------------------- +Fri Jan 17 11:52:23 UTC 2025 - Markéta Machová + +- Add pygments.patch to fix tests with Pygments 2.19 + +------------------------------------------------------------------- +Wed Nov 20 17:51:19 UTC 2024 - Dirk Müller + +- update to 8.1.3: + * #13013: Restore support for :func:`!cut_lines` with no object + type. Patch by Adam Turner. + * #13012: Expose :exc:`sphinx.errors.ExtensionError` in + sphinx.util for backwards compatibility. This will be removed + in Sphinx 9, as exposing the exception in sphinx.util was + never intentional. :exc:`!ExtensionError` has been part of + sphinx.errors since Sphinx 0.9. Patch by Adam Turner. + * #13006: Use the preferred https://www.cve.org/ URL for the + :rst:role:`:cve: ` role. Patch by Hugo van Kemenade. + * #13007: LaTeX: Improve resiliency when the required + fontawesome or fontawesome5 packages are not installed. Patch + by Jean-François B. + * #12756: Add lower-bounds to the sphinxcontrib-* dependencies. + Patch by Adam Turner. + * #12833: Update the LaTeX parskip package from 2001 to 2018. + Patch by Jean-François B. + * #12763: Remove unused internal class sphinx.util.Tee. Patch + by Adam Turner. + * #12822: LaTeX: for Unicode engines, the :ref:`fvset` default + is changed to '\fvset{fontsize=auto}' from + '\fvset{fontsize=\small}'. Code-blocks are unchanged as + FreeMono is now loaded with Scale=0.9. An adjustment to + existing projects is needed only if they used a custom + :ref:`fontpkg` configuration and did not set :ref:`fvset`. + Patch by Jean-François B. + * #12875: Disable smartquotes for languages: zh_CN and zh_TW by + default. Patch by A. Rafey Khan. + * #12762: Deprecate sphinx.util.import_object. Use + :py:func:`importlib.import_module` instead. Patch by Adam + Turner. + * #12766: Deprecate sphinx.util.FilenameUniqDict and + sphinx.util.DownloadFiles. Patch by Adam Turner. + * #11328: Mention evaluation of templated content during + production of static output files. Patch by James Addison. + * #12704: LaTeX: make :dudir:`contents `, + :dudir:`topic`, and :dudir:`sidebar` directives separately + customizable for PDF output. Patch by Jean-François B. and + Bénédikt Tran. + * #12474: Support type-dependent search result highlighting via + CSS. Patch by Tim Hoffmann. + * #12652: LaTeX: Add :confval:`math_numsep` support to latex + builder. Patch by Thomas Fanning and Jean-François B. + * #12743: No longer exit on the first warning when + :option:`--fail-on-warning ` + is used. Instead, exit with a non-zero status if any warnings + were generated during the build. Patch by Adam Turner. + * #12743: Add :option:`sphinx-build --exception-on-warning`, to + raise an exception when warnings are emitted during the + build. Patch by Adam Turner and Jeremy Maitin-Shepard. + * #12907: Add :confval:`html_last_updated_use_utc` to allow + using universal time (GMT/UTC) instead of local time for the + date-time supplied to :confval:`html_last_updated_fmt`. Patch + by Adam Turner. + * #12910: Copyright entries now support the '%Y' placeholder to + substitute the current year. This is helpful for reducing the + reliance on Python modules such as :py:mod:`time` or + :py:mod:`datetime` in :file:`conf.py`. See :ref:`the docs + ` for further detail. Patch by Adam Turner. + * #11781: Add roles for referencing CVEs (:rst:role:`:cve: + `) and CWEs (:rst:role:`:cwe: `). Patch by Hugo van + Kemenade. + * #11809: Improve the formatting for RFC section anchors. Patch + by Jakub Stasiak and Adam Turner. + * #12852: Support a :attr:`.Builder.supported_linkcode` + attribute for builders to enable use of + :mod:`sphinx.ext.linkcode`-generated references. Patch by + James Knight. + * #12949: Print configuration options that differ from the + pickled environment. This can be helpful in diagnosing the + cause of a full rebuild. Patch by Adam Turner. + * #12514: intersphinx: fix the meaning of a negative value for + :confval:`intersphinx_cache_limit`. Patch by Shengyu Zhang. + * #12722: LaTeX: avoid TeX reporting Overfull \hbox from too + long strings in a codeline when the problem has actually been + solved thanks to :ref:`latexsphinxsetupforcewraps`. Patch by + Jean-François B. + * #12730: The UnreferencedFootnotesDetector transform has been + improved to more consistently detect unreferenced footnotes. + Note, the priority of the transform has been changed from 200 + to 622, so that it now runs after the docutils Footnotes + resolution transform. Patch by Chris Sewell. + * #12778: LaTeX: let :ref:`'sphinxsetup' ` + div.topic_box-shadow key if used with only one dimension set + both x-offset and y-offset as per documentation. Patch by + Jean-François B. + * #12587: Do not warn when potential ambiguity detected during + Intersphinx resolution occurs due to duplicate targets that + differ case-insensitively. Patch by James Addison. + * #12639: Fix singular and plural search results text. Patch by + Hugo van Kemenade. + * #12645: Correctly support custom gettext output templates. + Patch by Jeremy Bowman. + * #12717: LaTeX: let :option:`-q ` (quiet) + option for :program:`sphinx-build -M latexpdf` or + :program:`make latexpdf` (O=-q) get passed to + :program:`latexmk`. Let :option:`-Q ` + (silent) apply as well to the PDF build phase. Patch by Jean- + François B. + * #12744: LaTeX: Classes injected by a custom interpreted text + role now give rise to nested \DUrole's, rather than a single + one with comma separated classes. Patch by Jean-François B. + * #12831: LaTeX: avoid large voids sometimes occurring at page + bottoms. Patch by Jean-François B. + * #11970, #12551: singlehtml builder: make target URIs to be + same-document references in the sense of :rfc:`RFC 3986, §4.4 + <3986#section-4.4>`, e.g., index.html#foo becomes #foo. + (note: continuation of a partial fix added in Sphinx 7.3.0) + Patch by James Addison (with reference to prior work by Eric + Norige). + * #12735: Fix PEP 695 generic classes LaTeX output formatting. + Patch by Jean-François B. and Bénédikt Tran. + * #12782: intersphinx: fix double forward slashes when + generating the inventory file URL (user-defined base URL of + an intersphinx project are left untouched even if they end + with double forward slashes). Patch by Bénédikt Tran. + * #12796: Enable parallel reading if requested, even if there + are fewer than 6 documents. Patch by Matthias Geier. + * #12844: Restore support for :noindex: for the + :rst:dir:`js:module` and :rst:dir:`py:module` directives. + Patch by Stephen Finucane. + * #12916: Restore support for custom templates named with the + legacy _t suffix during apidoc RST rendering (regression in + 7.4.0). Patch by James Addison. + * #12451: Only substitute copyright notice years with values + from SOURCE_DATE_EPOCH for entries that match the current + system clock year, and disallow substitution of future years. + Patch by James Addison and Adam Turner. + * #12905: intersphinx: fix flipped use of + :confval:`intersphinx_cache_limit`, which always kept the + cache for positive values, and always refreshed it for + negative ones. Patch by Nico Madysa. + * #12888: Add a warning when document is included in multiple + toctrees and ensure deterministic resolution of global + toctree in parallel builds by choosing the lexicographically + greatest parent document. Patch by A. Rafey Khan + * #12995: Significantly improve performance when building the + search index for Chinese languages. Patch by Adam Turner. + * #12767: :py:meth:`.Builder.write` is typed as final, meaning + that the :event:`write-started` event may be relied upon by + extensions. A new :py:meth:`.Builder.write_documents` method + has been added to control how documents are written. This is + intended for builders that do not output a file for each + document. Patch by Adam Turner. + * #12141: Migrate from the deprecated karma JavaScript test + framework to the actively-maintained jasmine framework. Test + coverage is unaffected. Patch by James Addison. + ------------------------------------------------------------------- Sun Sep 1 14:31:32 UTC 2024 - Christoph G diff --git a/python-Sphinx.spec b/python-Sphinx.spec index 6b0b599..1ea2d56 100644 --- a/python-Sphinx.spec +++ b/python-Sphinx.spec @@ -1,7 +1,7 @@ # # spec file for package python-Sphinx # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -26,7 +26,7 @@ %endif %{?sle15_python_module_pythons} Name: python-Sphinx%{psuffix} -Version: 8.0.2 +Version: 8.1.3 Release: 0 Summary: Python documentation generator License: BSD-2-Clause @@ -42,6 +42,8 @@ Source3: requests.inv Source4: readthedocs.inv Source5: update-intersphinx.sh Source99: python-Sphinx.keyring +# PATCH-FIX-UPSTREAM https://github.com/sphinx-doc/sphinx/commit/5ff3740063c1ac57f17ecd697bcd06cc1de4e75c Adapt tests for Pygments 2.19 +Patch: pygments.patch BuildRequires: %{python_module base} BuildRequires: %{python_module flit-core} BuildRequires: %{python_module pip} @@ -61,23 +63,19 @@ Requires: python-imagesize Requires: python-packaging Requires: python-requests >= 2.5.0 Requires: python-snowballstemmer >= 1.1 -Requires: python-sphinx_rtd_theme Requires: python-sphinxcontrib-applehelp Requires: python-sphinxcontrib-devhelp Requires: python-sphinxcontrib-htmlhelp >= 2.0.0 Requires: python-sphinxcontrib-jsmath Requires: python-sphinxcontrib-qthelp >= 1.0.2 Requires: python-sphinxcontrib-serializinghtml >= 1.1.9 -Requires: python-sphinxcontrib-websupport Requires(post): update-alternatives Requires(postun): update-alternatives Recommends: python-SQLAlchemy >= 0.9 Recommends: python-Sphinx-doc-man Recommends: python-Whoosh >= 2.0 +Suggests: python-sphinx_rtd_theme BuildArch: noarch -%if 0%{?python_version_nodots} < 310 -Requires: python-importlib-metadata >= 4.4 -%endif %if %{with test} BuildRequires: %{python_module Cython} BuildRequires: %{python_module Sphinx = %{version}} diff --git a/python3.inv b/python3.inv index 7800b4a..989d1dc 100644 --- a/python3.inv +++ b/python3.inv @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:47e85ad1d3fc4c379ec26262ad14d475df7d29c47eeb6d9fd350a2e52ef08ed2 -size 133169 +oid sha256:598ad1ec233664ebd19d2e703bedb6832c0bc2cf47ae07b6d5c44dc814d02bda +size 138527 diff --git a/readthedocs.inv b/readthedocs.inv index 6e149f0..1e32728 100644 --- a/readthedocs.inv +++ b/readthedocs.inv @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:59eb0c9a25e3facf8b32c303e139fd920133b666259bc633bbb86139d3bbccf0 -size 25610 +oid sha256:3508dae5ee03891797df9df88cbc9c580f0a543eac4f90e1948943fec0dbab17 +size 26715 diff --git a/requests.inv b/requests.inv index 92954dd..7ab42e3 100644 Binary files a/requests.inv and b/requests.inv differ diff --git a/sphinx-8.0.2.tar.gz b/sphinx-8.0.2.tar.gz deleted file mode 100644 index 2482362..0000000 --- a/sphinx-8.0.2.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0cce1ddcc4fd3532cf1dd283bc7d886758362c5c1de6598696579ce96d8ffa5b -size 8189041 diff --git a/sphinx-8.1.3.tar.gz b/sphinx-8.1.3.tar.gz new file mode 100644 index 0000000..24015b3 --- /dev/null +++ b/sphinx-8.1.3.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927 +size 8184611