#64 [WIP] Update to 7.3.7
Opened 19 days ago by ksurma. Modified 15 days ago
rpms/ ksurma/python-sphinx 7.3.7  into  rawhide

file modified
+1
@@ -46,3 +46,4 @@ 

  /Sphinx-7.0.1.tar.gz

  /sphinx-7.1.2.tar.gz

  /sphinx-7.2.6.tar.gz

+ /sphinx-7.3.7.tar.gz

@@ -1,25 +1,25 @@ 

- From 9699465414515f0eba76d05069e755b5bcf34eef Mon Sep 17 00:00:00 2001

+ From b74128966fe4edf77a0c3a7936f6a6216833c9ed Mon Sep 17 00:00:00 2001

  From: Karolina Surma <ksurma@redhat.com>

- Date: Mon, 15 Jan 2024 16:19:32 +0100

+ Date: Thu, 25 Apr 2024 15:58:03 +0200

  Subject: [PATCH] Make the first party extensions optional, add [extensions]

   extra

  

  

  Co-authored-by: Miro HronĨok <miro@hroncok.cz>

  ---

-  pyproject.toml               | 33 +++++++++++++++++++++++++++------

-  sphinx/application.py        |  6 +++---

-  sphinx/registry.py           |  9 ++++++---

-  sphinx/testing/fixtures.py   |  6 ++++++

-  tests/test_api_translator.py |  2 ++

-  tests/test_build_html.py     |  3 +++

-  6 files changed, 47 insertions(+), 12 deletions(-)

+  pyproject.toml                               | 33 ++++++++++++++++----

+  sphinx/application.py                        |  6 ++--

+  sphinx/registry.py                           |  9 ++++--

+  sphinx/testing/fixtures.py                   |  7 +++++

+  tests/test_builders/test_build_html_maths.py |  3 ++

+  tests/test_writers/test_api_translator.py    |  2 ++

+  6 files changed, 48 insertions(+), 12 deletions(-)

  

  diff --git a/pyproject.toml b/pyproject.toml

- index 8f93701..41c28c5 100644

+ index 8aa49aa..10fa20e 100644

  --- a/pyproject.toml

  +++ b/pyproject.toml

- @@ -55,12 +55,6 @@ classifiers = [

+ @@ -56,12 +56,6 @@ classifiers = [

       "Topic :: Utilities",

   ]

   dependencies = [
@@ -31,8 +31,8 @@ 

  -    "sphinxcontrib-qthelp",

       "Jinja2>=3.0",

       "Pygments>=2.14",

-      "docutils>=0.18.1,<0.21",

- @@ -76,8 +70,35 @@ dependencies = [

+      "docutils>=0.18.1,<0.22",

+ @@ -78,8 +72,35 @@ dependencies = [

   dynamic = ["version"]

   

   [project.optional-dependencies]
@@ -69,10 +69,10 @@ 

   lint = [

       "flake8>=3.5.0",

  diff --git a/sphinx/application.py b/sphinx/application.py

- index d5fbaa9..b030dab 100644

+ index 7d16d9a..2a71074 100644

  --- a/sphinx/application.py

  +++ b/sphinx/application.py

- @@ -226,7 +226,7 @@ class Sphinx:

+ @@ -222,7 +222,7 @@ class Sphinx:

           # load all built-in extension modules, first-party extension modules,

           # and first-party themes

           for extension in builtin_extensions:
@@ -81,7 +81,7 @@ 

   

           # load all user-given extension modules

           for extension in self.config.extensions:

- @@ -395,7 +395,7 @@ class Sphinx:

+ @@ -391,7 +391,7 @@ class Sphinx:

   

       # ---- general extensibility interface -------------------------------------

   
@@ -90,7 +90,7 @@ 

           """Import and setup a Sphinx extension module.

   

           Load the extension given by the module *name*.  Use this if your

- @@ -403,7 +403,7 @@ class Sphinx:

+ @@ -399,7 +399,7 @@ class Sphinx:

           called twice.

           """

           logger.debug('[app] setting up extension: %r', extname)
@@ -100,10 +100,10 @@ 

       @staticmethod

       def require_sphinx(version: tuple[int, int] | str) -> None:

  diff --git a/sphinx/registry.py b/sphinx/registry.py

- index 501661d..96d4554 100644

+ index 7887858..ca95960 100644

  --- a/sphinx/registry.py

  +++ b/sphinx/registry.py

- @@ -430,7 +430,7 @@ class SphinxComponentRegistry:

+ @@ -436,7 +436,7 @@ class SphinxComponentRegistry:

       def add_html_theme(self, name: str, theme_path: str) -> None:

           self.html_themes[name] = theme_path

   
@@ -112,7 +112,7 @@ 

           """Load a Sphinx extension."""

           if extname in app.extensions:  # already loaded

               return

- @@ -446,9 +446,12 @@ class SphinxComponentRegistry:

+ @@ -452,9 +452,12 @@ class SphinxComponentRegistry:

               try:

                   mod = import_module(extname)

               except ImportError as err:
@@ -125,24 +125,25 @@ 

  -                                     err) from err

  +                raise ExtensionError(msg % extname, err) from err

   

-              setup = getattr(mod, 'setup', None)

+              setup: _ExtensionSetupFunc | None = getattr(mod, 'setup', None)

               if setup is None:

  diff --git a/sphinx/testing/fixtures.py b/sphinx/testing/fixtures.py

- index 0cc4882..f57f709 100644

+ index 6e1a122..f3fe743 100644

  --- a/sphinx/testing/fixtures.py

  +++ b/sphinx/testing/fixtures.py

- @@ -22,6 +22,7 @@ DEFAULT_ENABLED_MARKERS = [

-          'sphinx(builder, testroot=None, freshenv=False, confoverrides=None, tags=None,'

-          ' docutilsconf=None, parallel=0): arguments to initialize the sphinx test application.'

+ @@ -31,6 +31,7 @@ DEFAULT_ENABLED_MARKERS = [

+          'keep_going=False, builddir=None, docutils_conf=None'

+          '): arguments to initialize the sphinx test application.'

       ),

  +    'sphinxcontrib(...): required sphinxcontrib.* extensions',

       'test_params(shared_result=...): test parameters.',

   ]

   

- @@ -67,6 +68,11 @@ def app_params(request: Any, test_params: dict, shared_result: SharedResult,

+ @@ -80,6 +81,12 @@ def app_params(

+      Parameters that are specified by 'pytest.mark.sphinx' for

       sphinx.application.Sphinx initialization

       """

-  

+ +

  +    # ##### process pytest.mark.sphinxcontrib

  +    for info in reversed(list(request.node.iter_markers("sphinxcontrib"))):

  +        for arg in info.args:
@@ -150,32 +151,12 @@ 

  +

       # ##### process pytest.mark.sphinx

   

-      pargs = {}

- diff --git a/tests/test_api_translator.py b/tests/test_api_translator.py

- index 9f2bd44..81575b7 100644

- --- a/tests/test_api_translator.py

- +++ b/tests/test_api_translator.py

- @@ -36,6 +36,7 @@ def test_singlehtml_set_translator_for_singlehtml(app, status, warning):

-      assert translator_class.__name__ == 'ConfSingleHTMLTranslator'

-  

-  

- +@pytest.mark.sphinxcontrib('serializinghtml')

-  @pytest.mark.sphinx('pickle', testroot='api-set-translator')

-  def test_pickle_set_translator_for_pickle(app, status, warning):

-      translator_class = app.builder.get_translator_class()

- @@ -43,6 +44,7 @@ def test_pickle_set_translator_for_pickle(app, status, warning):

-      assert translator_class.__name__ == 'ConfPickleTranslator'

-  

-  

- +@pytest.mark.sphinxcontrib('serializinghtml')

-  @pytest.mark.sphinx('json', testroot='api-set-translator')

-  def test_json_set_translator_for_json(app, status, warning):

-      translator_class = app.builder.get_translator_class()

- diff --git a/tests/test_build_html.py b/tests/test_build_html.py

- index 07f101d..c512a33 100644

- --- a/tests/test_build_html.py

- +++ b/tests/test_build_html.py

- @@ -1544,6 +1544,7 @@ def test_html_math_renderer_is_imgmath(app, status, warning):

+      pargs: dict[int, Any] = {}

+ diff --git a/tests/test_builders/test_build_html_maths.py b/tests/test_builders/test_build_html_maths.py

+ index 900846b..664c86e 100644

+ --- a/tests/test_builders/test_build_html_maths.py

+ +++ b/tests/test_builders/test_build_html_maths.py

+ @@ -20,6 +20,7 @@ def test_html_math_renderer_is_imgmath(app, status, warning):

       assert app.builder.math_renderer_name == 'imgmath'

   

   
@@ -183,7 +164,7 @@ 

   @pytest.mark.sphinx('html', testroot='basic',

                       confoverrides={'extensions': ['sphinxcontrib.jsmath',

                                                     'sphinx.ext.imgmath']})

- @@ -1564,6 +1565,7 @@ def test_html_math_renderer_is_duplicated2(app, status, warning):

+ @@ -40,6 +41,7 @@ def test_html_math_renderer_is_duplicated2(app, status, warning):

       assert app.builder.math_renderer_name == 'imgmath'  # The another one is chosen

   

   
@@ -191,7 +172,7 @@ 

   @pytest.mark.sphinx('html', testroot='basic',

                       confoverrides={'extensions': ['sphinxcontrib.jsmath',

                                                     'sphinx.ext.imgmath'],

- @@ -1572,6 +1574,7 @@ def test_html_math_renderer_is_chosen(app, status, warning):

+ @@ -48,6 +50,7 @@ def test_html_math_renderer_is_chosen(app, status, warning):

       assert app.builder.math_renderer_name == 'imgmath'

   

   
@@ -199,6 +180,26 @@ 

   @pytest.mark.sphinx('html', testroot='basic',

                       confoverrides={'extensions': ['sphinxcontrib.jsmath',

                                                     'sphinx.ext.mathjax'],

+ diff --git a/tests/test_writers/test_api_translator.py b/tests/test_writers/test_api_translator.py

+ index 9f2bd44..81575b7 100644

+ --- a/tests/test_writers/test_api_translator.py

+ +++ b/tests/test_writers/test_api_translator.py

+ @@ -36,6 +36,7 @@ def test_singlehtml_set_translator_for_singlehtml(app, status, warning):

+      assert translator_class.__name__ == 'ConfSingleHTMLTranslator'

+  

+  

+ +@pytest.mark.sphinxcontrib('serializinghtml')

+  @pytest.mark.sphinx('pickle', testroot='api-set-translator')

+  def test_pickle_set_translator_for_pickle(app, status, warning):

+      translator_class = app.builder.get_translator_class()

+ @@ -43,6 +44,7 @@ def test_pickle_set_translator_for_pickle(app, status, warning):

+      assert translator_class.__name__ == 'ConfPickleTranslator'

+  

+  

+ +@pytest.mark.sphinxcontrib('serializinghtml')

+  @pytest.mark.sphinx('json', testroot='api-set-translator')

+  def test_json_set_translator_for_json(app, status, warning):

+      translator_class = app.builder.get_translator_class()

  -- 

- 2.43.0

+ 2.44.0

  

file modified
+15 -34
@@ -14,14 +14,12 @@ 

  

  # Build without BuildRequires ImageMagick, to skip imgconverter tests

  %bcond imagemagick_tests %{undefined rhel}

- # Same for filelock -- we don't want it in RHEL just to run a handful of tests here

- %bcond filelock_tests %{undefined rhel}

  

  # During texlive updates, sometimes the latex environment is unstable

  %bcond latex_tests 1

  

  Name:       python-sphinx

- %global     general_version 7.2.6

+ %global     general_version 7.3.7

  #global     prerel ...

  %global     upstream_version %{general_version}%{?prerel}

  Version:    %{general_version}%{?prerel:~%{prerel}}
@@ -38,7 +36,7 @@ 

  

  # Allow extra themes to exist. We pull in python3-sphinx-theme-alabaster

  # which causes that test to fail.

- Patch:      sphinx-test_theming.diff

+ Patch:      sphinx-test_theming.patch

  

  # Make the first party extensions optional

  # This removes the runtime dependencies on:
@@ -56,10 +54,6 @@ 

  # https://github.com/sphinx-doc/sphinx/pull/11747

  Patch:      Make-the-first-party-extensions-optional.patch

  

- # Fix the expected test docstring to match output in Python 3.11.7, 3.12.1 and later

- # Proposed upstream.

- Patch:      https://github.com/sphinx-doc/sphinx/pull/11774.patch

- 

  BuildArch:     noarch

  

  BuildRequires: make
@@ -154,6 +148,11 @@ 

  %package -n python%{python3_pkgversion}-sphinx

  Summary:       Python documentation generator

  

+ # This is a part of test dependencies but it's also needed by Sphinx plugins

+ # to run their test suites

+ # https://github.com/sphinx-doc/sphinx/issues/12339

+ Requires:      python%{python3_pkgversion}-defusedxml

+ 

  Recommends:    graphviz

  Recommends:    ImageMagick

  
@@ -268,23 +267,6 @@ 

  rm tests/test_ext_imgconverter.py

  %endif

  

- %if %{without filelock_tests}

- sed -i '/filelock/d' pyproject.toml

- rm tests/test_build_linkcheck.py tests/test_ext_intersphinx.py

- %endif

- 

- %if %{defined rhel}

- # unwanted dependency in RHEL, https://bugzilla.redhat.com/show_bug.cgi?id=1945182

- sed -i '/html5lib/d' pyproject.toml

- %endif

- 

- # Sphinx' tests import from each other, this feature is not supported by

- # the 'importlib' import mode in pytest. Upstream mitigates this by invoking

- # `python -m pytest` rather than `pytest` directly, but in the context of the

- # RPM build we explicitly want to test the installed library rather than the

- # one from PWD.

- # https://github.com/sphinx-doc/sphinx/issues/11740

- sed -i '/"--import-mode=importlib",/d' pyproject.toml

  

  %generate_buildrequires

  %pyproject_buildrequires -r %{?with_tests:-x test}
@@ -364,14 +346,13 @@ 

  # Currently, all linkcheck tests and test_latex_images need internet

  # test_build_latex_doc needs internet to download pictures,

  # but fails also with it enabled, we decided to skip it entirely

- # In RHEL builds, skip tests which use html5lib (excluded above)

  %pytest \

  %if %{defined rhel}

-     --ignore tests/test_build_html.py \

-     --ignore tests/test_build_latex.py \

-     --ignore tests/test_build_texinfo.py \

-     --ignore tests/test_domain_std.py \

-     --ignore tests/test_smartquotes.py \

+     --ignore tests/test_builders/test_build_html.py \

+     --ignore tests/test_builders/test_build_latex.py \

+     --ignore tests/test_builders/test_build_texinfo.py \

+     --ignore tests/test_domains/test_domain_std.py \

+     --ignore tests/test_markup/test_smartquotes.py \

  %endif

  %if %{without internet}

      -k "not linkcheck and not test_latex_images and not test_build_latex_doc" \
@@ -381,8 +362,8 @@ 

  

  

  %files -n python%{python3_pkgversion}-sphinx -f sphinx.lang

- %license LICENSE

- %doc AUTHORS CHANGES EXAMPLES README.rst

+ %license LICENSE.rst

+ %doc README.rst

  %{_bindir}/sphinx-*

  %{python3_sitelib}/sphinx/

  %dir %{python3_sitelib}/sphinxcontrib/
@@ -398,7 +379,7 @@ 

  

  

  %files doc

- %license LICENSE

+ %license LICENSE.rst

  %doc html

  

  

file modified
+1 -1
@@ -1,1 +1,1 @@ 

- SHA512 (sphinx-7.2.6.tar.gz) = 9a42e38c3c54429cc008b58892297ade4ccdd67561ee671e42a1fae976955895bb5383d58cb66a4f9f7edd1cc50dc2d1f083efeef036eac9fffc205979d3ccbc

+ SHA512 (sphinx-7.3.7.tar.gz) = f450eaaa26a0989e9065174e23488a7f647221750238516c5d06d403540eb4277fd480f03857d24acb6b7335458ae4535ad1ad533eff6d3bbba5521d9a6deb14

@@ -1,12 +0,0 @@ 

- diff -ru Sphinx-1.7.6/tests/test_theming.py Sphinx-1.7.6_patched/tests/test_theming.py

- --- Sphinx-1.7.6/tests/test_theming.py	2018-07-16 11:24:40.000000000 +0200

- +++ Sphinx-1.7.6_patched/tests/test_theming.py	2018-07-20 15:17:35.049263077 +0200

- @@ -25,7 +25,7 @@

-          themes.append('alabaster')

-  

-      # test Theme class API

- -    assert set(app.registry.html_themes.keys()) == set(themes)

- +    assert set(app.registry.html_themes.keys()) >= set(themes)

-      assert app.registry.html_themes['test-theme'] == str(app.srcdir / 'test_theme' / 'test-theme')

-      assert app.registry.html_themes['ziptheme'] == str(app.srcdir / 'ziptheme.zip')

-      assert app.registry.html_themes['staticfiles'] == str(app.srcdir / 'test_theme' / 'staticfiles')

@@ -0,0 +1,25 @@ 

+ From 57433d8036ab1e88ad7d6c4c1a45e438f722e276 Mon Sep 17 00:00:00 2001

+ From: Karolina Surma <ksurma@redhat.com>

+ Date: Thu, 25 Apr 2024 16:07:56 +0200

+ Subject: [PATCH] Patch test_theming to accomodate for Fedora-added theme

+ 

+ ---

+  tests/test_theming/test_theming.py | 2 +-

+  1 file changed, 1 insertion(+), 1 deletion(-)

+ 

+ diff --git a/tests/test_theming/test_theming.py b/tests/test_theming/test_theming.py

+ index 867f8a0..281bb45 100644

+ --- a/tests/test_theming/test_theming.py

+ +++ b/tests/test_theming/test_theming.py

+ @@ -50,7 +50,7 @@ def test_theme_api(app, status, warning):

+      ]

+  

+      # test Theme class API

+ -    assert set(app.registry.html_themes.keys()) == set(themes)

+ +    assert set(app.registry.html_themes.keys()) >= set(themes)

+      assert app.registry.html_themes['test-theme'] == str(

+          app.srcdir / 'test_theme' / 'test-theme'

+      )

+ -- 

+ 2.44.0

+ 

no initial comment

Build failed. More information on how to proceed and troubleshoot errors available at https://fedoraproject.org/wiki/Zuul-based-ci
https://fedora.softwarefactory-project.io/zuul/buildset/6968e246e539498f838ce4a1b8da9121

rebased onto 7289812

15 days ago

rebased onto 4483ad8

15 days ago

Build failed. More information on how to proceed and troubleshoot errors available at https://fedoraproject.org/wiki/Zuul-based-ci
https://fedora.softwarefactory-project.io/zuul/buildset/a96178a2d3b04194a80c4d5329cd9747