Bug 2246941

Summary: python-sphinx-design fails to build with Sphinx 7.2.6 on Fedora Rawhide (40+)
Product: [Fedora] Fedora Reporter: Karolina Surma <ksurma>
Component: python-sphinx-designAssignee: Jerry James <loganjerry>
Status: CLOSED ERRATA QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: loganjerry, python-packagers-sig, quantum.analyst
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-sphinx-design-0.5.0-2.fc40 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-10-30 17:52:10 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 08:32:36 UTC
python-sphinx-design fails to build with Sphinx 7.2.6 on Fedora Rawhide (40+).

The issue detected:
```
___________________________ test_sd_hide_title_myst ____________________________

sphinx_builder = <function sphinx_builder.<locals>._create_project at 0x7fa54f54ca40>
file_regression = <pytest_regressions.file_regression.FileRegressionFixture object at 0x7fa54f56f4a0>

    def test_sd_hide_title_myst(
        sphinx_builder: Callable[..., SphinxBuilder], file_regression
    ):
        """Test that the root title is hidden."""
>       builder = sphinx_builder()

tests/test_snippets.py:140: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/conftest.py:78: in _create_project
    app = make_app(
/usr/lib/python3.12/site-packages/sphinx/testing/fixtures.py:183: in make
    app_: Any = SphinxTestApp(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <[AttributeError("'SphinxTestApp' object has no attribute 'builder'") raised in repr()] SphinxTestApp object at 0x7fa54f56c9b0>
buildername = 'html'
srcdir = path('/tmp/pytest-of-mockbuild/pytest-0/test_sd_hide_title_myst0/srcdir')
builddir = path('/tmp/pytest-of-mockbuild/pytest-0/test_sd_hide_title_myst0/srcdir/_build')
freshenv = False, confoverrides = None
status = <_io.StringIO object at 0x7fa54f8153c0>
warning = <_io.StringIO object at 0x7fa54f814580>, tags = None
docutilsconf = None, parallel = 0

    def __init__(
        self,
        buildername: str = 'html',
        srcdir: Path | None = None,
        builddir: Path | None = None,
        freshenv: bool = False,
        confoverrides: dict | None = None,
        status: IO | None = None,
        warning: IO | None = None,
        tags: list[str] | None = None,
        docutilsconf: str | None = None,
        parallel: int = 0,
    ) -> None:
        assert srcdir is not None
    
        self.docutils_conf_path = srcdir / 'docutils.conf'
        if docutilsconf is not None:
            self.docutils_conf_path.write_text(docutilsconf, encoding='utf8')
    
        if builddir is None:
            builddir = srcdir / '_build'
    
        confdir = srcdir
        outdir = builddir.joinpath(buildername)
>       outdir.mkdir(parents=True, exist_ok=True)
E       AttributeError: 'path' object has no attribute 'mkdir'. Did you mean: 'isdir'?

/usr/lib/python3.12/site-packages/sphinx/testing/util.py:105: AttributeError

=========================== short test summary info ============================
FAILED tests/test_snippets.py::test_snippets_rst[tab-sync] - AttributeError: ...
FAILED tests/test_snippets.py::test_snippets_rst[tab-options] - AttributeErro...
FAILED tests/test_snippets.py::test_snippets_rst[tab-code-set] - AttributeErr...
FAILED tests/test_snippets.py::test_snippets_rst[tab-basic] - AttributeError:...
FAILED tests/test_snippets.py::test_snippets_rst[icon-octicon] - AttributeErr...
FAILED tests/test_snippets.py::test_snippets_rst[icon-material-design] - Attr...
FAILED tests/test_snippets.py::test_snippets_rst[icon-fontawesome] - Attribut...
FAILED tests/test_snippets.py::test_snippets_rst[grid-nested] - AttributeErro...
FAILED tests/test_snippets.py::test_snippets_rst[grid-gutter] - AttributeErro...
FAILED tests/test_snippets.py::test_snippets_rst[grid-card] - AttributeError:...
FAILED tests/test_snippets.py::test_snippets_rst[grid-card-columns] - Attribu...
FAILED tests/test_snippets.py::test_snippets_rst[grid-basic] - AttributeError...
FAILED tests/test_snippets.py::test_snippets_rst[dropdown-options] - Attribut...
FAILED tests/test_snippets.py::test_snippets_rst[dropdown-basic] - AttributeE...
FAILED tests/test_snippets.py::test_snippets_rst[div-basic] - AttributeError:...
FAILED tests/test_snippets.py::test_snippets_rst[card-title-link] - Attribute...
FAILED tests/test_snippets.py::test_snippets_rst[card-link] - AttributeError:...
FAILED tests/test_snippets.py::test_snippets_rst[card-images] - AttributeErro...
FAILED tests/test_snippets.py::test_snippets_rst[card-head-foot] - AttributeE...
FAILED tests/test_snippets.py::test_snippets_rst[card-carousel] - AttributeEr...
FAILED tests/test_snippets.py::test_snippets_rst[card-basic] - AttributeError...
FAILED tests/test_snippets.py::test_snippets_rst[button-link] - AttributeErro...
FAILED tests/test_snippets.py::test_snippets_rst[badge-link] - AttributeError...
FAILED tests/test_snippets.py::test_snippets_rst[badge-basic] - AttributeErro...
FAILED tests/test_snippets.py::test_snippets_rst[article-info] - AttributeErr...
FAILED tests/test_snippets.py::test_snippets_myst[tab-sync] - AttributeError:...
FAILED tests/test_snippets.py::test_snippets_myst[tab-options] - AttributeErr...
FAILED tests/test_snippets.py::test_snippets_myst[tab-code-set] - AttributeEr...
FAILED tests/test_snippets.py::test_snippets_myst[tab-basic] - AttributeError...
FAILED tests/test_snippets.py::test_snippets_myst[icon-octicon] - AttributeEr...
FAILED tests/test_snippets.py::test_snippets_myst[icon-material-design] - Att...
FAILED tests/test_snippets.py::test_snippets_myst[icon-fontawesome] - Attribu...
FAILED tests/test_snippets.py::test_snippets_myst[grid-nested] - AttributeErr...
FAILED tests/test_snippets.py::test_snippets_myst[grid-gutter] - AttributeErr...
FAILED tests/test_snippets.py::test_snippets_myst[grid-card] - AttributeError...
FAILED tests/test_snippets.py::test_snippets_myst[grid-card-columns] - Attrib...
FAILED tests/test_snippets.py::test_snippets_myst[grid-basic] - AttributeErro...
FAILED tests/test_snippets.py::test_snippets_myst[dropdown-options] - Attribu...
FAILED tests/test_snippets.py::test_snippets_myst[dropdown-basic] - Attribute...
FAILED tests/test_snippets.py::test_snippets_myst[div-basic] - AttributeError...
FAILED tests/test_snippets.py::test_snippets_myst[card-title-link] - Attribut...
FAILED tests/test_snippets.py::test_snippets_myst[card-link] - AttributeError...
FAILED tests/test_snippets.py::test_snippets_myst[card-images] - AttributeErr...
FAILED tests/test_snippets.py::test_snippets_myst[card-head-foot] - Attribute...
FAILED tests/test_snippets.py::test_snippets_myst[card-carousel] - AttributeE...
FAILED tests/test_snippets.py::test_snippets_myst[card-basic] - AttributeErro...
FAILED tests/test_snippets.py::test_snippets_myst[button-link] - AttributeErr...
FAILED tests/test_snippets.py::test_snippets_myst[badge-link] - AttributeErro...
FAILED tests/test_snippets.py::test_snippets_myst[badge-basic] - AttributeErr...
FAILED tests/test_snippets.py::test_snippets_myst[article-info] - AttributeEr...
FAILED tests/test_snippets.py::test_snippets_rst_post[tab-sync] - AttributeEr...
FAILED tests/test_snippets.py::test_snippets_rst_post[tab-options] - Attribut...
FAILED tests/test_snippets.py::test_snippets_rst_post[tab-code-set] - Attribu...
FAILED tests/test_snippets.py::test_snippets_rst_post[tab-basic] - AttributeE...
FAILED tests/test_snippets.py::test_snippets_rst_post[icon-octicon] - Attribu...
FAILED tests/test_snippets.py::test_snippets_rst_post[icon-material-design]
FAILED tests/test_snippets.py::test_snippets_rst_post[icon-fontawesome] - Att...
FAILED tests/test_snippets.py::test_snippets_rst_post[grid-nested] - Attribut...
FAILED tests/test_snippets.py::test_snippets_rst_post[grid-gutter] - Attribut...
FAILED tests/test_snippets.py::test_snippets_rst_post[grid-card] - AttributeE...
FAILED tests/test_snippets.py::test_snippets_rst_post[grid-card-columns] - At...
FAILED tests/test_snippets.py::test_snippets_rst_post[grid-basic] - Attribute...
FAILED tests/test_snippets.py::test_snippets_rst_post[dropdown-options] - Att...
FAILED tests/test_snippets.py::test_snippets_rst_post[dropdown-basic] - Attri...
FAILED tests/test_snippets.py::test_snippets_rst_post[div-basic] - AttributeE...
FAILED tests/test_snippets.py::test_snippets_rst_post[card-title-link] - Attr...
FAILED tests/test_snippets.py::test_snippets_rst_post[card-link] - AttributeE...
FAILED tests/test_snippets.py::test_snippets_rst_post[card-images] - Attribut...
FAILED tests/test_snippets.py::test_snippets_rst_post[card-head-foot] - Attri...
FAILED tests/test_snippets.py::test_snippets_rst_post[card-carousel] - Attrib...
FAILED tests/test_snippets.py::test_snippets_rst_post[card-basic] - Attribute...
FAILED tests/test_snippets.py::test_snippets_rst_post[button-link] - Attribut...
FAILED tests/test_snippets.py::test_snippets_rst_post[badge-link] - Attribute...
FAILED tests/test_snippets.py::test_snippets_rst_post[badge-basic] - Attribut...
FAILED tests/test_snippets.py::test_snippets_rst_post[article-info] - Attribu...
FAILED tests/test_snippets.py::test_snippets_myst_post[tab-sync] - AttributeE...
FAILED tests/test_snippets.py::test_snippets_myst_post[tab-options] - Attribu...
FAILED tests/test_snippets.py::test_snippets_myst_post[tab-code-set] - Attrib...
FAILED tests/test_snippets.py::test_snippets_myst_post[tab-basic] - Attribute...
FAILED tests/test_snippets.py::test_snippets_myst_post[icon-octicon] - Attrib...
FAILED tests/test_snippets.py::test_snippets_myst_post[icon-material-design]
FAILED tests/test_snippets.py::test_snippets_myst_post[icon-fontawesome] - At...
FAILED tests/test_snippets.py::test_snippets_myst_post[grid-nested] - Attribu...
FAILED tests/test_snippets.py::test_snippets_myst_post[grid-gutter] - Attribu...
FAILED tests/test_snippets.py::test_snippets_myst_post[grid-card] - Attribute...
FAILED tests/test_snippets.py::test_snippets_myst_post[grid-card-columns] - A...
FAILED tests/test_snippets.py::test_snippets_myst_post[grid-basic] - Attribut...
FAILED tests/test_snippets.py::test_snippets_myst_post[dropdown-options] - At...
FAILED tests/test_snippets.py::test_snippets_myst_post[dropdown-basic] - Attr...
FAILED tests/test_snippets.py::test_snippets_myst_post[div-basic] - Attribute...
FAILED tests/test_snippets.py::test_snippets_myst_post[card-title-link] - Att...
FAILED tests/test_snippets.py::test_snippets_myst_post[card-link] - Attribute...
FAILED tests/test_snippets.py::test_snippets_myst_post[card-images] - Attribu...
FAILED tests/test_snippets.py::test_snippets_myst_post[card-head-foot] - Attr...
FAILED tests/test_snippets.py::test_snippets_myst_post[card-carousel] - Attri...
FAILED tests/test_snippets.py::test_snippets_myst_post[card-basic] - Attribut...
FAILED tests/test_snippets.py::test_snippets_myst_post[button-link] - Attribu...
FAILED tests/test_snippets.py::test_snippets_myst_post[badge-link] - Attribut...
FAILED tests/test_snippets.py::test_snippets_myst_post[badge-basic] - Attribu...
FAILED tests/test_snippets.py::test_snippets_myst_post[article-info] - Attrib...
FAILED tests/test_snippets.py::test_sd_hide_title_rst - AttributeError: 'path...
FAILED tests/test_snippets.py::test_sd_hide_title_myst - AttributeError: 'pat...
======================== 102 failed, 1 warning in 2.14s ========================
```

Upstream has fixed the tests: https://github.com/executablebooks/sphinx-design/commit/fa9e3cc5d162fdf3a138bb166992813ea608b2c0


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

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 Fedora Update System 2023-10-30 17:24:28 UTC
FEDORA-2023-1a288e7764 has been submitted as an update to Fedora 40. https://bodhi.fedoraproject.org/updates/FEDORA-2023-1a288e7764

Comment 2 Fedora Update System 2023-10-30 17:52:10 UTC
FEDORA-2023-1a288e7764 has been pushed to the Fedora 40 stable repository.
If problem still persists, please make note of it in this bug report.