Bug 2246975 - python-sphinx-tabs fails to build with Sphinx 7.2.6 on Fedora Rawhide (40+)
Summary: python-sphinx-tabs fails to build with Sphinx 7.2.6 on Fedora Rawhide (40+)
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: python-sphinx-tabs
Version: 40
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Richard Shaw
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks: 2232469
TreeView+ depends on / blocked
 
Reported: 2023-10-30 09:43 UTC by Karolina Surma
Modified: 2024-10-26 02:56 UTC (History)
1 user (show)

Fixed In Version: python-sphinx-tabs-3.4.7-1.fc40 python-sphinx-tabs-3.4.7-1.fc41
Clone Of:
Environment:
Last Closed: 2024-10-24 01:28:08 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Karolina Surma 2023-10-30 09:43:50 UTC
python-sphinx-tabs fails to build with Sphinx 7.2.6 on Fedora Rawhide (40+).

The issue detected:
```
_____________ test_conditional_assets_html_assets_policy[no_tabs2] _____________

app = <SphinxTestApp buildername='html'>, docname = 'no_tabs2'
status = <_io.StringIO object at 0x7f8431374b80>
warning = <_io.StringIO object at 0x7f8431374700>
check_build_success = <function check_build_success.<locals>.check at 0x7f8431562520>
get_sphinx_app_doctree = <function get_sphinx_app_doctree.<locals>.read at 0x7f84317ded40>
regress_sphinx_app_output = <function regress_sphinx_app_output.<locals>.read at 0x7f84317dfa60>
check_asset_links = <function check_asset_links.<locals>.check at 0x7f84317dd1c0>

    @pytest.mark.noautobuild
    @pytest.mark.parametrize("docname", ["index", "no_tabs1", "no_tabs2"])
    @pytest.mark.sphinx(testroot="conditionalassets-policy")
    def test_conditional_assets_html_assets_policy(
        app,
        docname,
        status,
        warning,
        check_build_success,
        get_sphinx_app_doctree,
        regress_sphinx_app_output,
        check_asset_links,
    ):
        app.set_html_assets_policy("always")
    
        # Following lines are copied from ``auto_build_and_check`` since we need to
        # set a config in the build object before auto build. Because of this, we
        # need to use ``noautobuild``.
        app.build()
        check_build_success(status, warning)
        get_sphinx_app_doctree(app, regress=True)
>       regress_sphinx_app_output(app)

tests/test_build.py:49: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

app = <SphinxTestApp buildername='html'>, buildername = 'html'
filename = 'index.html', encoding = 'utf-8'

    def read(app, buildername="html", filename="index.html", encoding="utf-8"):
        content = get_sphinx_app_output(app, buildername, filename, encoding)
    
        if buildername == "html":
            soup = BeautifulSoup(content, "html.parser")
    
            # Remove output from ``pygments``, so that test only compares HTML of surrounding tabs
            for div in soup.find_all("div", {"class": "highlight"}):
                div.decompose()
    
            doc_div = soup.findAll("div", {"class": "documentwrapper"})[0]
            doc = doc_div.prettify()
    
        else:
            doc = content
>       file_regression.check(
            doc, extension="." + filename.split(".")[-1], encoding="utf8"
        )
E       AssertionError: FILES DIFFER:
E       /tmp/pytest-of-mockbuild/pytest-0/test_conditional_assets_html_a2/test_build/test_conditional_assets_html_assets_policy_no_tabs2_.html
E       /tmp/pytest-of-mockbuild/pytest-0/test_conditional_assets_html_a2/test_build/test_conditional_assets_html_assets_policy_no_tabs2_.obtained.html
E       HTML DIFF: /tmp/pytest-of-mockbuild/pytest-0/test_conditional_assets_html_a2/test_build/test_conditional_assets_html_assets_policy_no_tabs2_.obtained.diff.html
E       --- 
E       +++ 
E       @@ -18,7 +18,7 @@
E           <section id="fruits">
E            <h1>
E             Fruits
E       -     <a class="headerlink" href="#fruits" title="Permalink to this heading">
E       +     <a class="headerlink" href="#fruits" title="Link to this heading">
E              ¶
E             </a>
E            </h1>
E       @@ -54,7 +54,7 @@
E           <section id="luminaries">
E            <h1>
E             Luminaries
E       -     <a class="headerlink" href="#luminaries" title="Permalink to this heading">
E       +     <a class="headerlink" href="#luminaries" title="Link to this heading">
E              ¶
E             </a>
E            </h1>
E       @@ -82,7 +82,7 @@
E           <section id="code-tabs">
E            <h1>
E             Code Tabs
E       -     <a class="headerlink" href="#code-tabs" title="Permalink to this heading">
E       +     <a class="headerlink" href="#code-tabs" title="Link to this heading">
E              ¶
E             </a>
E            </h1>
E       @@ -182,7 +182,7 @@
E           <section id="group-tabs">
E            <h1>
E             Group Tabs
E       -     <a class="headerlink" href="#group-tabs" title="Permalink to this heading">
E       +     <a class="headerlink" href="#group-tabs" title="Link to this heading">
E              ¶
E             </a>
E            </h1>

tests/conftest.py:100: AssertionError
--------------------------- Captured stdout teardown ---------------------------
# testroot: root
# builder: html
# srcdir: /tmp/pytest-of-mockbuild/pytest-0/conditionalassets-policy
# outdir: /tmp/pytest-of-mockbuild/pytest-0/conditionalassets-policy/_build/html
# status: 
Running Sphinx v7.2.6
loading pickled environment... done
building [mo]: targets for 0 po files that are out of date
writing output... 
building [html]: targets for 0 source files that are out of date
updating environment: 0 added, 0 changed, 0 removed
reading sources... 
looking for now-outdated files... none found
no targets are out of date.
build succeeded.

The HTML pages are in ../../../../tmp/pytest-of-mockbuild/pytest-0/conditionalassets-policy/_build/html.

# warning: 

=========================== short test summary info ============================
FAILED tests/test_build.py::test_conditional_assets_html_assets_policy[index]
FAILED tests/test_build.py::test_conditional_assets_html_assets_policy[no_tabs1]
FAILED tests/test_build.py::test_conditional_assets_html_assets_policy[no_tabs2]
ERROR tests/test_build.py::test_conditional_assets[index] - AssertionError: F...
ERROR tests/test_build.py::test_conditional_assets[no_tabs1] - AssertionError...
ERROR tests/test_build.py::test_conditional_assets[no_tabs2] - AssertionError...
ERROR tests/test_build.py::test_nested_markup - AssertionError: FILES DIFFER:
======= 3 failed, 6 passed, 1 deselected, 42 warnings, 4 errors in 2.14s =======
```

Apparently, the build failures are fixed by the upstream version 3.4.4.


For the logs from testing build attempts, see:
https://copr.fedorainfracloud.org/coprs/ksurma/sphinx-7.2.6/package/python-sphinx-tabs

You can test you package in mock running:

$ mock -r fedora-rawhide-x86_64 --addrepo=https://download.copr.fedorainfracloud.org/results/ksurma/sphinx-7.2.6/fedora-rawhide-x86_64/ --no-clean your.src.rpm
$ mock -r fedora-rawhide-x86_64 --addrepo=https://download.copr.fedorainfracloud.org/results/ksurma/sphinx-7.2.6/fedora-rawhide-x86_64/ shell

We'd like to include Sphinx 7.2.x in Fedora 40.

Let us know here if you have any questions. Thank You!

Comment 1 Richard Shaw 2023-10-30 12:35:58 UTC
Unfortunately 3.4.4 doesn't build in current rawhide so looks like the builds will have to be pushed together.

If you are a proven packager I can push the update but let you do the build in a side tag.

Comment 2 Karolina Surma 2023-11-02 10:53:45 UTC
Yes, I see that 3.4.4 will build fine with Sphinx 7.2.6: https://copr.fedorainfracloud.org/coprs/ksurma/sphinx-7.2.6/build/6590948/

I'm not a proven packager but afaik this only concerns the merging in dist-git, the builds can be triggered by anyone.
I will do the joint update for sphinx and sphinx-tabs if you push the update. Thank you.

Comment 3 Richard Shaw 2023-11-02 12:31:15 UTC
Pushed to dist-git.

Comment 4 Karolina Surma 2023-11-08 10:50:03 UTC
Included in a common update: https://bodhi.fedoraproject.org/updates/FEDORA-2023-1278571c9e

Comment 5 Aoife Moloney 2024-02-15 23:02:36 UTC
This bug appears to have been reported against 'rawhide' during the Fedora Linux 40 development cycle.
Changing version to 40.

Comment 6 Fedora Update System 2024-10-15 15:35:40 UTC
FEDORA-2024-8680c9ca26 (python-sphinx-tabs-3.4.7-1.fc40) has been submitted as an update to Fedora 40.
https://bodhi.fedoraproject.org/updates/FEDORA-2024-8680c9ca26

Comment 7 Fedora Update System 2024-10-15 15:35:41 UTC
FEDORA-2024-485232f2f5 (python-sphinx-tabs-3.4.7-1.fc41) has been submitted as an update to Fedora 41.
https://bodhi.fedoraproject.org/updates/FEDORA-2024-485232f2f5

Comment 8 Fedora Update System 2024-10-16 01:54:34 UTC
FEDORA-2024-8680c9ca26 has been pushed to the Fedora 40 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-8680c9ca26`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-8680c9ca26

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 9 Fedora Update System 2024-10-16 02:02:44 UTC
FEDORA-2024-485232f2f5 has been pushed to the Fedora 41 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-485232f2f5`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-485232f2f5

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 10 Fedora Update System 2024-10-24 01:28:08 UTC
FEDORA-2024-8680c9ca26 (python-sphinx-tabs-3.4.7-1.fc40) has been pushed to the Fedora 40 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 11 Fedora Update System 2024-10-26 02:56:59 UTC
FEDORA-2024-485232f2f5 (python-sphinx-tabs-3.4.7-1.fc41) has been pushed to the Fedora 41 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.