Skip to content

Documentation build fails on Python 3.13 #1872

Description

@mdickinson

In #1871 I attempted to updated the Python version used for building documentation from Python 3.10 to Python 3.13. That caused the doc build to fail (likely because of changes in the version of Sphinx or some other package rather than directly because of the Python version change).

Failing run: https://github.com/enthought/traits/actions/runs/20310589245/job/58340371045

Output:

Running Sphinx v9.0.4
loading translations [en]... done
making output directory... done
Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`.
[autosummary] generating autosummary for: changelog.rst, index.rst, traits_api_reference/base_trait_handler.rst, traits_api_reference/constants.rst, traits_api_reference/ctrait.rst, traits_api_reference/ctraits.rst, traits_api_reference/editor_factories.rst, traits_api_reference/has_traits.rst, traits_api_reference/index.rst, traits_api_reference/interface_checker.rst, ..., traits_user_manual/debugging.rst, traits_user_manual/deferring.rst, traits_user_manual/defining.rst, traits_user_manual/index.rst, traits_user_manual/installation.rst, traits_user_manual/internals.rst, traits_user_manual/intro.rst, traits_user_manual/listening.rst, traits_user_manual/notification.rst, traits_user_manual/testing.rst
loading intersphinx inventory 'pyface' from https://docs.enthought.com/pyface/objects.inv ...
loading intersphinx inventory 'python' from https://docs.python.org/3/objects.inv ...
loading intersphinx inventory 'traitsui' from https://docs.enthought.com/traitsui/objects.inv ...
building [mo]: targets for 0 po files that are out of date
writing output... 
building [html]: targets for 46 source files that are out of date
updating environment: [new config] 46 added, 0 changed, 0 removed
reading sources... [  2%] changelog
reading sources... [  4%] index
reading sources... [  7%] traits_api_reference/base_trait_handler
reading sources... [  9%] traits_api_reference/constants
reading sources... [ 11%] traits_api_reference/ctrait
reading sources... [ 13%] traits_api_reference/ctraits
reading sources... [ 15%] traits_api_reference/editor_factories
reading sources... [ 17%] traits_api_reference/has_traits
reading sources... [ 20%] traits_api_reference/index
reading sources... [ 22%] traits_api_reference/interface_checker
reading sources... [ 24%] traits_api_reference/trait_base
reading sources... [ 26%] traits_api_reference/trait_converters
reading sources... [ 28%] traits_api_reference/trait_dict_object
reading sources... [ 30%] traits_api_reference/trait_errors
reading sources... [ 33%] traits_api_reference/trait_factory
reading sources... [ 35%] traits_api_reference/trait_handler
reading sources... [ 37%] traits_api_reference/trait_handlers
reading sources... [ 39%] traits_api_reference/trait_list_object
reading sources... [ 41%] traits_api_reference/trait_notifiers
reading sources... [ 43%] traits_api_reference/trait_numeric
reading sources... [ 46%] traits_api_reference/trait_set_object
reading sources... [ 48%] traits_api_reference/trait_type
reading sources... [ 50%] traits_api_reference/trait_types
reading sources... [ 52%] traits_api_reference/traits
reading sources... [ 54%] traits_api_reference/traits.adaptation
reading sources... [ 57%] traits_api_reference/traits.etsconfig
reading sources... [ 59%] traits_api_reference/traits.observation
reading sources... [ 61%] traits_api_reference/traits.testing
reading sources... [ 63%] traits_api_reference/traits.util
reading sources... [ 65%] traits_api_reference/traits_listener
reading sources... [ 67%] traits_api_reference/version
reading sources... [ 70%] traits_tutorial/index
reading sources... [ 72%] traits_tutorial/introduction
reading sources... [ 74%] traits_user_manual/advanced
reading sources... [ 76%] traits_user_manual/appendix
reading sources... [ 78%] traits_user_manual/custom
reading sources... [ 80%] traits_user_manual/debugging
reading sources... [ 83%] traits_user_manual/deferring
reading sources... [ 85%] traits_user_manual/defining
reading sources... [ 87%] traits_user_manual/index
reading sources... [ 89%] traits_user_manual/installation
reading sources... [ 91%] traits_user_manual/internals
reading sources... [ 93%] traits_user_manual/intro
reading sources... [ 96%] traits_user_manual/listening
reading sources... [ 98%] traits_user_manual/notification
reading sources... [100%] traits_user_manual/testing
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
copying assets... 
copying downloadable files... [ 14%] ../../examples/introduction/0_introduction.py
copying downloadable files... [ 29%] ../../examples/introduction/1_validation.py
copying downloadable files... [ 43%] ../../examples/introduction/2_initialization.py
copying downloadable files... [ 57%] ../../examples/introduction/3_observation.py
copying downloadable files... [ 71%] ../../examples/introduction/4_properties.py
copying downloadable files... [ 86%] ../../examples/introduction/5_documentation.py
copying downloadable files... [100%] ../../examples/introduction/6_visualization.py
copying static files... 
Writing evaluated template result to /home/runner/work/traits/traits/docs/build/_static/language_data.js
Writing evaluated template result to /home/runner/work/traits/traits/docs/build/_static/basic.css
Writing evaluated template result to /home/runner/work/traits/traits/docs/build/_static/documentation_options.js
Writing evaluated template result to /home/runner/work/traits/traits/docs/build/_static/enthought.css
Writing evaluated template result to /home/runner/work/traits/traits/docs/build/_static/copybutton.js
copying static files: done
copying extra files... 
copying extra files: done
copying assets: done

Theme error!

Versions
========

* Platform:         linux; (Linux-6.11.0-1018-azure-x86_64-with-glibc2.39)
* Python version:   3.13.11 (CPython)
* Sphinx version:   9.0.4
* Docutils version: 0.22.3
* Jinja2 version:   3.1.6
* Pygments version: 2.19.2

Last Messages
=============

    Writing evaluated template result to /home/runner/work/traits/traits/docs/build/_static/enthought.css
    Writing evaluated template result to /home/runner/work/traits/traits/docs/build/_static/copybutton.js
    copying static files: done
    copying extra files...
    copying extra files: done
    copying assets: done

    writing output... [  2%]
    changelog

Loaded Extensions
=================

* sphinx.ext.mathjax (9.0.4)
* alabaster (1.0.0)
* sphinxcontrib.applehelp (2.0.0)
* sphinxcontrib.devhelp (2.0.0)
* sphinxcontrib.htmlhelp (2.1.0)
* sphinxcontrib.serializinghtml (2.0.0)
* sphinxcontrib.qthelp (2.0.0)
* sphinx.ext.autodoc (9.0.4)
* sphinx.ext.autosummary (9.0.4)
* sphinx.ext.coverage (9.0.4)
* sphinx.ext.githubpages (9.0.4)
* sphinx.ext.intersphinx (9.0.4)
* sphinx.ext.napoleon (9.0.4)
* sphinx.ext.viewcode (9.0.4)
* sphinx_copybutton (0.5.2)
* traits.util.trait_documenter (unknown version)

Traceback
=========

      File "/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/sphinx/builders/html/__init__.py", line 1229, in handle_page
        raise ThemeError(msg) from exc
    sphinx.errors.ThemeError: An error happened in rendering the page changelog.
    Reason: TypeError("argument of type '_CascadingStyleSheet' is not iterable")


The full traceback has been saved in:
/tmp/sphinx-err-5b2s48rk.log

To report this error to the developers, please open an issue at <https://github.com/sphinx-doc/sphinx/issues/>. Thanks!
Please also report this if it was a user error, so that a better error message can be provided next time.
writing output... [  2%] changelog
Error: Process completed with exit code 2.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions