Sphinx

# Sphinx 7.3

## Release 7.3.7 (released Apr 19, 2024)

### Bugs fixed

- #12299: Defer loading themes defined via entry points until their explicit use by the user or a child theme. Patch by Adam Turner.

- #12305: Return the default value for `theme.get_config()` with an unsupported theme configuration section. Patch by Adam Turner.

## Release 7.3.6 (released Apr 17, 2024)

### Bugs fixed

- #12295: Re-export all AST types in the C and C++ domains. Patch by Adam Turner.

- #12295: Re-export various objects from `sphinx.domains.python._annotations` in `sphinx.domains.python`. Patch by Jacob Chesslo and Adam Turner.

## Release 7.3.5 (released Apr 17, 2024)

### Bugs fixed

- #12295: Re-export various objects from `sphinx.domains.python._object` in `sphinx.domains.python`. Patch by Jacob Chesslo and Adam Turner.

## Release 7.3.4 (released Apr 17, 2024)

### Bugs fixed

- Handle cases when `Any` is not an instance of `type`. Patch by Adam Turner.

## Release 7.3.3 (released Apr 17, 2024)

### Bugs fixed

- #12290: Fix a false-positive warning when setting a configuration value with `Any` as the valid type to a type other than the value’s default. Patch by Adam Turner.

## Release 7.3.2 (released Apr 17, 2024)

### Bugs fixed

- Preload all themes defined via entry points. Patch by Adam Turner.

- Fix a bad interaction between the `'Furo'` theme and the new-style for configuration values. Patch by Adam Turner.

## Release 7.3.1 (released Apr 17, 2024)

### Dependencies

- Require `tomli` on Python 3.10 and earlier. Patch by Adam Turner.

## Release 7.3.0 (released Apr 16, 2024)

### Dependencies

- #11858: Increase the minimum supported version of Alabaster to 0.7.14. Patch by Adam Turner.

- #11411: Support Docutils 0.21. Patch by Adam Turner.

- #12012: Use `types-docutils` instead of `docutils-stubs`.

### Deprecated

- #11693: Support for old-style `Makefile` and `make.bat` output in sphinx-quickstart, and the associated options `-M`, `-m`, `--no-use-make-mode`, and `--use-make-mode`.

- #11285: Direct access to `sphinx.testing.util.SphinxTestApp._status` or `sphinx.testing.util.SphinxTestApp._warning` is deprecated. Use the public properties `sphinx.testing.util.SphinxTestApp.status` and `sphinx.testing.util.SphinxTestApp.warning` instead. Patch by Bénédikt Tran.

- tests: `sphinx.testing.util.strip_escseq()` is deprecated in favour of `sphinx.util.console.strip_colors()`. Patch by Bénédikt Tran.

### Features added

- #12265: Support theme configuration via `theme.toml`.

- #11701: HTML Search: Adopt the new <search> element. Patch by Bénédikt Tran.

- #11776: Add long option names to `sphinx-build`. Patch by Hugo van Kemenade, Adam Turner, Bénédikt Tran, and Ezio Melotti.

- Organise the `sphinx-build` options into groups. Patch by Adam Turner.

- #11855: Defer computation of configuration values. Patch by Adam Turner.

- Add `:no-search:` as an alias of the `:nosearch:` metadata field. Patch by Adam Turner.

- #11803: autodoc: Use an overridden `__repr__()` function in an enum, if defined. Patch by Shengyu Zhang.

- #11825: Allow custom targets in the manpage role. Patch by Nicolas Peugnet.

- #11892: Improved performance when resolving cross references in the C++ domain. Patch by Rouslan Korneychuk.

- #11905: Add a `versionremoved` directive. Patch by Hugo van Kemenade, Adam Turner, and C.A.M. Gerlach.

- #11981: Improve rendering of signatures using `slice` syntax, e.g., `def foo(arg: np.float64[:,:]) -> None: ...`.

- The manpage builder now adds OSC 8 anchors to hyperlinks, using the groff device control command.

- #11015: Change the text of the `versionadded` directive from `New in [...]` to `Added in [...]`. Patch by Bénédikt Tran.

- #12131: Added `show_warning_types` configuration option. Patch by Chris Sewell.

- #12193: Improve `external` warnings for unknown roles. In particular, suggest related role names if an object type is mistakenly used. Patch by Chris Sewell.

- Add public type alias `sphinx.util.typing.ExtensionMetadata`. This can be used by extension developers to annotate the return type of their `setup` function. Patch by Chris Sewell.

### Bugs fixed

- #11668: Raise a useful error when `theme.conf` is missing. Patch by Vinay Sajip.

- #11622: Ensure that the order of keys in `searchindex.js` is deterministic. Patch by Pietro Albini.

- #11617: ANSI control sequences are stripped from the output when writing to a warnings file with `-w`. Patch by Bénédikt Tran.

- #11666: Skip all hidden directories in `CatalogRepository.pofiles`. Patch by Aryaz Eghbali.

- #9686: html builder: Fix MathJax lazy loading when equations appear in titles. Patch by Bénédikt Tran.

- #11483: singlehtml builder: Fix MathJax lazy loading when the index does not contain any math equations. Patch by Bénédikt Tran.

- #11697: HTML Search: add ‘noindex’ meta robots tag. Patch by James Addison.

- #11678: Fix a possible `ZeroDivisionError` in `sphinx.ext.coverage`. Patch by Stephen Finucane.

- #11756: LaTeX: build error with recent TeXLive due to missing `substitutefont` package (triggered if using `fontenc` with `T2A` option and document language is not a Cyrillic one). Patch by Jean-François B.

- #11675: Fix rendering of progression bars in environments that do not support ANSI control sequences. Patch by Bénédikt Tran.

- #11861: Whitelist more types with an incorrect `__module__` attribute. Patch by Adam Turner.

- #11715: Apply `tls_verify` and `tls_cacerts` config to `ImageDownloader`. Patch by Nick Touran.

- Allow hyphens in group names for `productionlist` cross-references. Patch by Adam Turner.

- #11433: Added the `linkcheck_allow_unauthorized` configuration option. Set this option to `False` to report HTTP 401 (unauthorized) server responses as broken. Patch by James Addison.

- #11868: linkcheck: added a distinct `timeout` reporting status code. This can be enabled by setting `linkcheck_report_timeouts_as_broken` to `False`. Patch by James Addison.

- #11869: Refresh the documentation for the `linkcheck_timeout` setting. Patch by James Addison.

- #11874: Configure a default 30-second value for `linkcheck_timeout`. Patch by James Addison.

- #11886: Print the Jinja2 template path chain in `TemplateNotFound` exceptions. Patch by Colin Marquardt.

- #11598: Do not use query components in URLs for assets in EPUB rendering. Patch by David Runge.

- #11904: Support unary subtraction when parsing annotations. Patch by James Addison.

- #11925: Blacklist the `sphinxprettysearchresults` extension; the functionality it provides was merged into Sphinx v2.0.0. Patch by James Addison.

- #11917: Fix rendering of annotated inherited members for Python 3.9. Patch by Janet Carson.

- #11935: C Domain: Fix namespace-pop context. Patch by Frank Dana.

- #11923: Avoid zombie processes when parallel builds fail. Patch by Felix von Drigalski.

- #11353: Support enumeration classes inheriting from mixin or data types. Patch by Bénédikt Tran.

- #11962: Fix target resolution when using `:paramtype:` fields. Patch by Bénédikt Tran.

- #11944: Use anchor in search preview. Patch by Will Lachance.

- #12008: Fix case-sensitive lookup of `std:label` names in intersphinx inventory. Patch by Michael Goerz.

- #11958: HTML Search: Fix partial matches overwriting full matches. Patch by William Lachance.

- #11959: Fix multiple term matching when word appears in both title and document. Patch by Will Lachance.

- #11474: Fix doctrees caching causing files not be rebuilt in some cases, e.g., when `numfig` is `True`. Patch by Bénédikt Tran.

- #11278: autodoc: Fix rendering of `functools.singledispatchmethod` combined with `@classmethod`. Patch by Bénédikt Tran.

- #11894: Do not add checksums to css files if building using the htmlhelp builder. Patch by reduerK akiM.

- #12052: Remove `<script>` and `<style>` tags from the content of search result summary snippets. Patch by James Addison.

- #11578: HTML Search: Order non-main index entries after other results. Patch by Brad King.

- #12147: autosummary: Fix a bug whereby the wrong file extension may be used, when multiple suffixes are specified in `source_suffix`. Patch by Sutou Kouhei.

- #10786: improve the error message when a file to be copied (e.g., an asset) is removed during Sphinx execution. Patch by Bénédikt Tran.

- #12040: HTML Search: Ensure that document titles that are partially-matched by the user search query are included in search results. Patch by James Addison.

- #11970: singlehtml builder: make target URIs to be same-document references in the sense of RFC 3986, §4.4, e.g., `index.html#foo` becomes `#foo`. Patch by Eric Norige.

- #12271: Partially revert Docutils’ r9562 to fix EPUB files. Patch by Adam Turner.

- #12253: Escape reserved path characters in the remote images post-transform download cache. Patch by James Addison and Adam Turner.

### Testing

- Reorganise tests into directories. Patch by Adam Turner.

- Clean up global state in `SphinxTestApp`. Patch by Adam Turner.

- #11285: `pytest.mark.sphinx()` and `sphinx.testing.util.SphinxTestApp` accept warningiserror, keep_going and verbosity as keyword arguments. Patch by Bénédikt Tran.

- #11285: `sphinx.testing.util.SphinxTestApp` status and warning arguments are checked to be `io.StringIO` objects (the public API incorrectly assumed this without checking it). Patch by Bénédikt Tran.

- Report the result of `test_run_epubcheck` as `skipped` instead of `success` when either Java or `epubcheck` are not available.

- Use dynamic allocation of unused port numbers for the test HTTP(S) servers. As a side-effect, this removes the need for test server lockfiles, meaning that any remaining `tests/test-server.lock` files can safely be deleted.