Skip to content

Sphinx 7.1.0 broke "python-docs-theme" #11519

@ThimoNeubauer

Description

@ThimoNeubauer

Describe the bug

Since the release of Sphinx 7.1.0 we've been seeing

Theme error:
An error happened in rendering the page index.
Reason: OSError(22, 'Invalid argument')

in many of our projects. We're using the "python-docs-theme" which might be the trigger here. A colleague reported seeing the same error with "alabaster" though.

How to Reproduce

This is the (abbreviated) log of a reproducer:

PS E:\temp> py -3 -m virtualenv Sphinx
created virtual environment CPython3.11.4.final.0-64 in 764ms
  creator CPython3Windows(dest=E:\temp\Sphinx, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\TNR1\AppData\Local\pypa\virtualenv)
    added seed packages: pip==23.0.1, setuptools==67.6.0, wheel==0.40.0
  activators BashActivator,BatchActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
PS E:\temp> .\Sphinx\Scripts\pip install sphinx python-docs-theme
Collecting sphinx
  Using cached sphinx-7.1.0-py3-none-any.whl (3.2 MB)
Collecting python-docs-theme
  Using cached python_docs_theme-2023.5-py3-none-any.whl (17 kB)

... blah blah blah ...

PS E:\temp> cd .\Sphinx\
PS E:\temp\Sphinx> .\Scripts\sphinx-quickstart.exe --sep --project foo --author foo --quiet

Finished: An initial directory structure has been created.

You should now populate your master file E:\temp\Sphinx\source\index.rst and create other documentation
source files. Use the Makefile to build the docs, like so:
   make builder
where "builder" is one of the supported builders, e.g. html, latex or linkcheck.

PS E:\temp\Sphinx> .\Scripts\sphinx-build.exe -D html_theme=python_docs_theme source build
Running Sphinx v7.1.0
building [mo]: targets for 0 po files that are out of date
writing output...
building [html]: targets for 1 source files that are out of date
updating environment: [new config] 1 added, 0 changed, 0 removed
reading sources... [100%] index
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
copying assets... copying static files... done
copying extra files... done
done
writing output... [100%] index
Theme error:
An error happened in rendering the page index.
Reason: OSError(22, 'Invalid argument')
PS E:\temp\Sphinx>

To verify that this is indeed a regression:

PS E:\temp> py -3 -m virtualenv OldSphinx
created virtual environment CPython3.11.4.final.0-64 in 403ms
  creator CPython3Windows(dest=E:\temp\OldSphinx, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\TNR1\AppData\Local\pypa\virtualenv)
    added seed packages: pip==23.0.1, setuptools==67.6.0, wheel==0.40.0
  activators BashActivator,BatchActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
PS E:\temp> cd .\OldSphinx\
PS E:\temp\OldSphinx> .\Scripts\pip install 'sphinx<7.1.0' python-docs-theme
Collecting sphinx<7.1.0
  Using cached sphinx-7.0.1-py3-none-any.whl (3.0 MB)
Collecting python-docs-theme
  Using cached python_docs_theme-2023.5-py3-none-any.whl (17 kB)

... blah blah blah ...

PS E:\temp\OldSphinx> .\Scripts\sphinx-quickstart.exe --sep --project foo --author foo --quiet

Finished: An initial directory structure has been created.

You should now populate your master file E:\temp\OldSphinx\source\index.rst and create other documentation
source files. Use the Makefile to build the docs, like so:
   make builder
where "builder" is one of the supported builders, e.g. html, latex or linkcheck.

PS E:\temp\OldSphinx> .\Scripts\sphinx-build.exe -D html_theme=python_docs_theme source build
Running Sphinx v7.0.1
building [mo]: targets for 0 po files that are out of date
writing output...
building [html]: targets for 1 source files that are out of date
updating environment: [new config] 1 added, 0 changed, 0 removed
reading sources... [100%] index
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [100%] index
generating indices... genindex done
writing additional pages... search done
copying static files... done
copying extra files... done
dumping search index in English (code: en)... done
dumping object inventory... done
build succeeded.

The HTML pages are in build.
PS E:\temp\OldSphinx>

Environment Information

Please paste all output below into the bug report template



Platform:              win32; (Windows-10-10.0.19044-SP0)
Python version:        3.11.4 (tags/v3.11.4:d2340ef, Jun  7 2023, 05:45:37) [MSC v.1934 64 bit (AMD64)])
Python implementation: CPython
Sphinx version:        7.1.0
Docutils version:      0.20.1
Jinja2 version:        3.1.2
Pygments version:      2.15.1

Sphinx extensions

None

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions