Bug 2246975

Summary: python-sphinx-tabs fails to build with Sphinx 7.2.6 on Fedora Rawhide (40+)
Product: [Fedora] Fedora Reporter: Karolina Surma <ksurma>
Component: python-sphinx-tabsAssignee: Richard Shaw <hobbes1069>
Status: CLOSED ERRATA QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 40CC: hobbes1069
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-sphinx-tabs-3.4.7-1.fc40 python-sphinx-tabs-3.4.7-1.fc41 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-10-24 01:28:08 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2232469    

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.