Bug 2246947

Summary: python-Traits fails to build with Sphinx 7.2.6 on Fedora Rawhide (40+)
Product: [Fedora] Fedora Reporter: Karolina Surma <ksurma>
Component: python-TraitsAssignee: Orion Poplawski <orion>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: igor.raits, orion
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-Traits-6.4.3-1.fc40 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-01-30 04:51:58 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:51:29 UTC
python-Traits fails to build with Sphinx 7.2.6 on Fedora Rawhide (40+).

The issue detected:
```
ERROR: test_abbreviated_annotations (traits.util.tests.test_trait_documenter.TestTraitDocumenter.test_abbreviated_annotations)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/traits-6.4.2/build/lib.linux-x86_64-cpython-312/traits/util/tests/test_trait_documenter.py", line 147, in test_abbreviated_annotations
    with self.create_directive() as directive:
  File "/usr/lib64/python3.12/contextlib.py", line 137, in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/traits-6.4.2/build/lib.linux-x86_64-cpython-312/traits/util/tests/test_trait_documenter.py", line 226, in create_directive
    app = SphinxTestApp(srcdir=path(tmpdir))
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/sphinx/testing/util.py", line 105, in __init__
    outdir.mkdir(parents=True, exist_ok=True)
    ^^^^^^^^^^^^
AttributeError: 'path' object has no attribute 'mkdir'. Did you mean: 'isdir'?

======================================================================
ERROR: test_can_document_member (traits.util.tests.test_trait_documenter.TestTraitDocumenter.test_can_document_member)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/traits-6.4.2/build/lib.linux-x86_64-cpython-312/traits/util/tests/test_trait_documenter.py", line 177, in test_can_document_member
    with self.create_directive() as directive:
  File "/usr/lib64/python3.12/contextlib.py", line 137, in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/traits-6.4.2/build/lib.linux-x86_64-cpython-312/traits/util/tests/test_trait_documenter.py", line 226, in create_directive
    app = SphinxTestApp(srcdir=path(tmpdir))
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/sphinx/testing/util.py", line 105, in __init__
    outdir.mkdir(parents=True, exist_ok=True)
    ^^^^^^^^^^^^
AttributeError: 'path' object has no attribute 'mkdir'. Did you mean: 'isdir'?

----------------------------------------------------------------------
Ran 1648 tests in 38.014s

FAILED (errors=2, skipped=5)
```

From Sphinx' changelog: #11526: Deprecate sphinx.testing.path. Use os.path or pathlib instead.
https://www.sphinx-doc.org/en/master/changes.html

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

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 Karolina Surma 2023-11-02 10:56:32 UTC
It seems that the upstream version 6.4.3 contains a fix for this issue.