Changelog
### 7.0.1
```
=====================================
Dependencies
------------
* 11411: Support `Docutils 0.20`_. Patch by Adam Turner.
.. _Docutils 0.20: https://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-20-2023-05-04
Bugs fixed
----------
* 11418: Clean up remaining references to ``sphinx.setup_command``
following the removal of support for setuptools.
Patch by Willem Mulder.
```
### 7.0.0
```
=====================================
Incompatible changes
--------------------
* 11359: Remove long-deprecated aliases for ``MecabSplitter`` and
``DefaultSplitter`` in ``sphinx.search.ja``.
* 11360: Remove deprecated ``make_old_id`` functions in domain object
description classes.
* 11363: Remove the Setuptools integration (``build_sphinx`` hook in
``setup.py``).
* 11364: Remove deprecated ``sphinx.ext.napoleon.iterators`` module.
* 11365: Remove support for the ``jsdump`` format in ``sphinx.search``.
* 11366: Make ``locale`` a required argument to
``sphinx.util.i18n.format_date()``.
* 11370: Remove deprecated ``sphinx.util.stemmer`` module.
* 11371: Remove deprecated ``sphinx.pycode.ast.parse()`` function.
* 11372: Remove deprecated ``sphinx.io.read_doc()`` function.
* 11373: Removed deprecated ``sphinx.util.get_matching_files()`` function.
* 11378: Remove deprecated ``sphinx.util.docutils.is_html5_writer_available()``
function.
* 11379: Make the ``env`` argument to ``Builder`` subclasses required.
* 11380: autosummary: Always emit grouped import exceptions.
* 11381: Remove deprecated ``style`` key for HTML templates.
* 11382: Remove deprecated ``sphinx.writers.latex.LaTeXTranslator.docclasses``
attribute.
* 11383: Remove deprecated ``sphinx.builders.html.html5_ready`` and
``sphinx.builders.html.HTMLTranslator`` attributes.
* 11385: Remove support for HTML 4 output.
```
### 6.2.1
```
=====================================
Bugs fixed
----------
* 11355: Revert the default type of :confval:`nitpick_ignore` and
:confval:`nitpick_ignore_regex` to ``list``.
```
### 6.2.0
```
=====================================
Dependencies
------------
* Require Docutils 0.18.1 or greater.
Incompatible changes
--------------------
* LaTeX: removal of some internal TeX ``\dimen`` registers (not previously
publicly documented) as per 5.1.0 code comments in ``sphinx.sty``:
``\sphinxverbatimsep``, ``\sphinxverbatimborder``, ``\sphinxshadowsep``,
``\sphinxshadowsize``, and ``\sphinxshadowrule``. (refs: 11105)
* Remove ``.egg`` support from pycode ``ModuleAnalyser``; Python eggs are a
now-obsolete binary distribution format
* 11089: Remove deprecated code in ``sphinx.builders.linkcheck``.
Patch by Daniel Eades
* Remove internal-only ``sphinx.locale.setlocale``
Deprecated
----------
* 11247: Deprecate the legacy ``intersphinx_mapping`` format
* ``sphinx.util.osutil.cd`` is deprecated in favour of ``contextlib.chdir``.
Features added
--------------
* 11277: :rst:dir:`autoproperty` allows the return type to be specified as
a type comment (e.g., `` type: () -> int``). Patch by Bénédikt Tran
* 10811: Autosummary: extend ``__all__`` to imported members for template rendering
when option ``autosummary_ignore_module_all`` is set to ``False``. Patch by
Clement Pinard
* 11147: Add a ``content_offset`` parameter to ``nested_parse_with_titles()``,
allowing for correct line numbers during nested parsing.
Patch by Jeremy Maitin-Shepard
* Update to Unicode CLDR 42
* Add a ``--jobs`` synonym for ``-j``. Patch by Hugo van Kemenade
* LaTeX: a command ``\sphinxbox`` for styling text elements with a (possibly
rounded) box, optional background color and shadow, has been added.
See :ref:`sphinxbox`. (refs: 11224)
* LaTeX: add ``\sphinxstylenotetitle``, ..., ``\sphinxstylewarningtitle``, ...,
for an extra layer of mark-up freeing up ``\sphinxstrong`` for other uses.
See :ref:`latex-macros`. (refs: 11267)
* LaTeX: :dudir:`note`, :dudir:`hint`, :dudir:`important` and :dudir:`tip` can
now each be styled as the other admonitions, i.e. possibly with a background
color, individual border widths and paddings, possibly rounded corners, and
optional shadow. See :ref:`additionalcss`. (refs: 11234)
* LaTeX: admonitions and :dudir:`topic` (and
:dudir:`contents <table-of-contents>`) directives, and not only
:rst:dir:`code-block`, support ``box-decoration-break=slice``.
* LaTeX: let rounded boxes support up to 4 distinct border-widths (refs: 11243)
* LaTeX: new options ``noteTextColor``, ``noteTeXextras`` et al.
See :ref:`additionalcss`.
* LaTeX: support elliptical corners in rounded boxes. (refs: 11254)
* 11150: Include source location in highlighting warnings, when lexing fails.
Patch by Jeremy Maitin-Shepard
* 11281: Support for :confval:`imgmath_latex` ``= 'tectonic'`` or
``= 'xelatex'``. Patch by Dimitar Dimitrov
* 11109, 9643: Add :confval:`python_display_short_literal_types` option for
condensed rendering of ``Literal`` types.
Bugs fixed
----------
* 11079: LaTeX: figures with align attribute may disappear and strangely impact
following lists
* 11093: LaTeX: fix "multiply-defined references" PDF build warnings when one or
more reST labels directly precede an :rst:dir:`py:module` or :rst:dir:`automodule`
directive. Patch by Bénédikt Tran (picnixz)
* 11110: LaTeX: Figures go missing from latex pdf if their files have the same
base name and they use a post transform. Patch by aaron-cooper
* LaTeX: fix potential color leak from shadow to border of rounded boxes, if
shadow color is set but border color is not
* LaTeX: fix unintended 1pt upwards vertical shift of code blocks frames
respective to contents (when using rounded corners)
* 11235: LaTeX: added ``\color`` in topic (or admonition) contents may cause color
leak to the shadow and border at a page break
* 11264: LaTeX: missing space before colon after "Voir aussi" for :rst:dir:`seealso`
directive in French
* 11268: LaTeX: longtable with left alignment breaks out of current list
indentation context in PDF. Thanks to picnixz.
* 11274: LaTeX: external links are not properly escaped for ``\sphinxupquote``
compatibility
* 11147: Fix source file/line number info in object description content and in
other uses of ``nested_parse_with_titles``. Patch by Jeremy Maitin-Shepard.
* 11192: Restore correct parallel search index building.
Patch by Jeremy Maitin-Shepard
* Use the new Transifex ``tx`` client
Testing
--------
* Fail testing when any Python warnings are emitted
* Migrate remaining ``unittest.TestCase`` style test functions to pytest style
* Remove tests that rely on setuptools
```
### 6.1.3
```
=====================================
Bugs fixed
----------
* 11116: Reverted to previous Sphinx 5 node copying method
* 11117: Reverted changes to parallel image processing from Sphinx 6.1.0
* 11119: Supress ``ValueError`` in the ``linkcheck`` builder
```
### 6.1.2
```
=====================================
Bugs fixed
----------
* 11101: LaTeX: ``div.topic_padding`` key of sphinxsetup documented at 5.1.0 was
implemented with name ``topic_padding``
* 11099: LaTeX: ``shadowrule`` key of sphinxsetup causes PDF build to crash
since Sphinx 5.1.0
* 11096: LaTeX: ``shadowsize`` key of sphinxsetup causes PDF build to crash
since Sphinx 5.1.0
* 11095: LaTeX: shadow of :dudir:`topic` and :dudir:`contents <table-of-contents>`
boxes not in page margin since Sphinx 5.1.0
* 11100: Fix copying images when running under parallel mode.
```
### 6.1.1
```
=====================================
Bugs fixed
----------
* 11091: Fix ``util.nodes.apply_source_workaround`` for ``literal_block`` nodes
with no source information in the node or the node's parents.
```
### 6.1.0
```
=====================================
Dependencies
------------
* Adopted the `Ruff`_ code linter.
.. _Ruff: https://github.com/charliermarsh/ruff
Incompatible changes
--------------------
* 10979: gettext: Removed support for pluralisation in ``get_translation``.
This was unused and complicated other changes to ``sphinx.locale``.
Deprecated
----------
* ``sphinx.util`` functions:
* Renamed ``sphinx.util.typing.stringify()``
to ``sphinx.util.typing.stringify_annotation()``
* Moved ``sphinx.util.xmlname_checker()``
to ``sphinx.builders.epub3._XML_NAME_PATTERN``
Moved to ``sphinx.util.display``:
* ``sphinx.util.status_iterator``
* ``sphinx.util.display_chunk``
* ``sphinx.util.SkipProgressMessage``
* ``sphinx.util.progress_message``
Moved to ``sphinx.util.http_date``:
* ``sphinx.util.epoch_to_rfc1123``
* ``sphinx.util.rfc1123_to_epoch``
Moved to ``sphinx.util.exceptions``:
* ``sphinx.util.save_traceback``
* ``sphinx.util.format_exception_cut_frames``
Features added
--------------
* Cache doctrees in the build environment during the writing phase.
* Make all writing phase tasks support parallel execution.
* 11072: Use PEP 604 (``X | Y``) display conventions for ``typing.Optional``
and ``typing.Optional`` types within the Python domain and autodoc.
* 10700: autodoc: Document ``typing.NewType()`` types as classes rather than
'data'.
* Cache doctrees between the reading and writing phases.
Bugs fixed
----------
* 10962: HTML: Fix the multi-word key name lookup table.
* Fixed support for Python 3.12 alpha 3 (changes in the ``enum`` module).
* 11069: HTML Theme: Removed outdated "shortcut" link relation keyword.
* 10952: Properly terminate parallel processes on programme interuption.
* 10988: Speed up ``TocTree.resolve()`` through more efficient copying.
* 6744: LaTeX: support for seealso directive should be via an environment
to allow styling.
* 11074: LaTeX: Can't change sphinxnote to use sphinxheavybox starting with
5.1.0
```
### 6.0.1
```
=====================================
Dependencies
------------
* Require Pygments 2.13 or later.
Bugs fixed
----------
* 10944: imgmath: Fix resolving image paths for files in nested folders.
```
### 6.0.0
```
=====================================
Dependencies
------------
* 10468: Drop Python 3.6 support
* 10470: Drop Python 3.7, Docutils 0.14, Docutils 0.15, Docutils 0.16, and
Docutils 0.17 support. Patch by Adam Turner
Incompatible changes
--------------------
* 7405: Removed the jQuery and underscore.js JavaScript frameworks.
These frameworks are no longer be automatically injected into themes from
Sphinx 6.0. If you develop a theme or extension that uses the
``jQuery``, ``$``, or ``$u`` global objects, you need to update your
JavaScript to modern standards, or use the mitigation below.
The first option is to use the sphinxcontrib.jquery_ extension, which has been
developed by the Sphinx team and contributors. To use this, add
``sphinxcontrib.jquery`` to the ``extensions`` list in ``conf.py``, or call
``app.setup_extension("sphinxcontrib.jquery")`` if you develop a Sphinx theme
or extension.
The second option is to manually ensure that the frameworks are present.
To re-add jQuery and underscore.js, you will need to copy ``jquery.js`` and
``underscore.js`` from `the Sphinx repository`_ to your ``static`` directory,
and add the following to your ``layout.html``:
.. code-block:: html+jinja
{%- block scripts %}
<script src="{{ pathto('_static/jquery.js', resource=True) }}"></script>
<script src="{{ pathto('_static/underscore.js', resource=True) }}"></script>
{{ super() }}
{%- endblock %}
.. _sphinxcontrib.jquery: https://github.com/sphinx-contrib/jquery/
Patch by Adam Turner.
* 10471, 10565: Removed deprecated APIs scheduled for removal in Sphinx 6.0. See
:ref:`dev-deprecated-apis` for details. Patch by Adam Turner.
* 10901: C Domain: Remove support for parsing pre-v3 style type directives and
roles. Also remove associated configuration variables ``c_allow_pre_v3`` and
``c_warn_on_allowed_pre_v3``. Patch by Adam Turner.
Features added
--------------
* 10924: LaTeX: adopt better looking defaults for tables and code-blocks.
See :confval:`latex_table_style` and the ``pre_border-radius`` and
``pre_background-TeXcolor`` :ref:`additionalcss` for the former defaults
and how to re-enact them if desired.
Bugs fixed
----------
* 10984: LaTeX: Document :confval:`latex_additional_files` behavior for files
with ``.tex`` extension.
```
### 5.3.0
```
=====================================
* 10759: LaTeX: add :confval:`latex_table_style` and support the
``'booktabs'``, ``'borderless'``, and ``'colorrows'`` styles.
(thanks to Stefan Wiehler for initial pull requests 6666, 6671)
* 10840: One can cross-reference including an option value like ``:option:`--module=foobar,
``:option:`--module[=foobar] or ``:option:`--module foobar.
Patch by Martin Liska.
* 10881: autosectionlabel: Record the generated section label to the debug log.
* 10268: Correctly URI-escape image filenames.
* 10887: domains: Allow sections in all the content of all object description
directives (e.g. :rst:dir:`py:function`). Patch by Adam Turner
```
### 5.2.3
```
=====================================
* 10878: Fix base64 image embedding in ``sphinx.ext.imgmath``
* 10886: Add ``:nocontentsentry:`` flag and global domain table of contents
entry control option. Patch by Adam Turner
```
### 5.2.2
```
=====================================
* 10872: Restore link targets for autodoc modules to the top of content.
Patch by Dominic Davis-Foster.
```
### 5.2.1
```
=====================================
Bugs fixed
----------
* 10861: Always normalise the ``pycon3`` lexer to ``pycon``.
* Fix using ``sphinx.ext.autosummary`` with modules containing titles in the
module-level docstring.
```
### 5.2.0.post0
```
===========================================
* Recreated source tarballs for Debian maintainers.
```
### 5.2.0
```
=====================================
Dependencies
------------
* 10356: Sphinx now uses declarative metadata with ``pyproject.toml`` to
create packages, using PyPA's ``flit`` project as a build backend. Patch by
Adam Turner.
Deprecated
----------
* 10843: Support for HTML 4 output. Patch by Adam Turner.
Features added
--------------
* 10738: napoleon: Add support for docstring types using 'of', like
``type of type``. Example: ``tuple of int``.
* 10286: C++, support requires clauses not just between the template
parameter lists and the declaration.
* 10755: linkcheck: Check the source URL of raw directives that use the ``url``
option.
* 10781: Allow :rst:role:`ref` role to be used with definitions and fields.
* 10717: HTML Search: Increase priority for full title and
subtitle matches in search results
* 10718: HTML Search: Save search result score to the HTML element for debugging
* 10673: Make toctree accept 'genindex', 'modindex' and 'search' docnames
* 6316, 10804: Add domain objects to the table of contents. Patch by Adam Turner
* 6692: HTML Search: Include explicit :rst:dir:`index` directive index entries
in the search index and search results. Patch by Adam Turner
* 10816: imgmath: Allow embedding images in HTML as base64
* 10854: HTML Search: Use browser localstorage for highlight control, stop
storing highlight parameters in URL query strings. Patch by Adam Turner.
Bugs fixed
----------
* 10723: LaTeX: 5.1.0 has made the 'sphinxsetup' ``verbatimwithframe=false``
become without effect.
* 10257: C++, ensure consistent non-specialization template argument
representation.
* 10729: C++, fix parsing of certain non-type template parameter packs.
* 10715: Revert 10520: "Fix" use of sidebar classes in ``agogo.css_t``
```
### 5.1.1
```
=====================================
Bugs fixed
----------
* 10701: Fix ValueError in the new ``deque`` based ``sphinx.ext.napolean``
iterator implementation.
* 10702: Restore compatability with third-party builders.
```
### 5.1.0
```
=====================================
Dependencies
------------
* 10656: Support `Docutils 0.19`_. Patch by Adam Turner.
.. _Docutils 0.19: https://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-19-2022-07-05
Deprecated
----------
* 10467: Deprecated ``sphinx.util.stemmer`` in favour of ``snowballstemmer``.
Patch by Adam Turner.
* 9856: Deprecated ``sphinx.ext.napoleon.iterators``.
Features added
--------------
* 10444: html theme: Allow specifying multiple CSS files through the ``stylesheet``
setting in ``theme.conf`` or by setting ``html_style`` to an iterable of strings.
* 10366: std domain: Add support for emphasising placeholders in :rst:dir:`option`
directives through a new :confval:`option_emphasise_placeholders` configuration
option.
* 10439: std domain: Use the repr of some variables when displaying warnings,
making whitespace issues easier to identify.
* 10571: quickstart: Reduce content in the generated ``conf.py`` file. Patch by
Pradyun Gedam.
* 10648: LaTeX: CSS-named-alike additional :ref:`'sphinxsetup' <latexsphinxsetup>`
keys allow to configure four separate border-widths, four paddings, four
corner radii, a shadow (possibly inset), colours for border, background, shadow
for each of the code-block, topic, attention, caution, danger, error and warning
directives.
* 10655: LaTeX: Explain non-standard encoding in LatinRules.xdy
* 10599: HTML Theme: Wrap consecutive footnotes in an ``<aside>`` element when
using Docutils 0.18 or later, to allow for easier styling. This matches the
behaviour introduced in Docutils 0.19. Patch by Adam Turner.
* 10518: config: Add ``include_patterns`` as the opposite of ``exclude_patterns``.
Patch by Adam Turner.
Bugs fixed
----------
* 10594: HTML Theme: field term colons are doubled if using Docutils 0.18+
* 10596: Build failure if Docutils version is 0.18 (not 0.18.1) due
to missing ``Node.findall()``
* 10506: LaTeX: build error if highlighting inline code role in figure caption
(refs: 10251)
* 10634: Make -P (pdb) option work better with exceptions triggered from events
* 10550: py domain: Fix spurious whitespace in unparsing various operators (``+``,
``-``, ``~``, and ``**``). Patch by Adam Turner (refs: 10551).
* 10460: logging: Always show node source locations as absolute paths.
* HTML Search: HTML tags are displayed as a part of object name
* HTML Search: search snipets should not be folded
* HTML Search: Minor errors are emitted on fetching search snipets
* HTML Search: The markers for header links are shown in the search result
* 10520: HTML Theme: Fix use of sidebar classes in ``agogo.css_t``.
* 6679: HTML Theme: Fix inclusion of hidden toctrees in the agogo theme.
* 10566: HTML Theme: Fix enable_search_shortcuts does not work
* 8686: LaTeX: Text can fall out of code-block at end of page and leave artifact
on next page
* 10633: LaTeX: user injected ``\color`` commands in topic or admonition boxes may
cause color leaks in PDF due to upstream `framed.sty <https://ctan.org/pkg/framed>`_
bug
* 10638: LaTeX: framed coloured boxes in highlighted code (e.g. highlighted
diffs using Pygments style ``'manni'``) inherit thickness of code-block frame
* 10647: LaTeX: Only one ``\label`` is generated for ``desc_signature`` node
even if it has multiple node IDs
* 10579: i18n: UnboundLocalError is raised on translating raw directive
* 9577, 10088: py domain: Fix warning for duplicate Python references when
using ``:any:`` and autodoc.
* 10548: HTML Search: fix minor summary issues.
```
### 5.0.2
```
=====================================
Features added
--------------
* 10523: HTML Theme: Expose the Docutils's version info tuple as a template
variable, ``docutils_version_info``. Patch by Adam Turner.
Bugs fixed
----------
* 10538: autodoc: Inherited class attribute having docstring is documented even
if :confval:`autodoc_inherit_docstring` is disabled
* 10509: autosummary: autosummary fails with a shared library
* 10497: py domain: Failed to resolve strings in Literal. Patch by Adam Turner.
* 10523: HTML Theme: Fix double brackets on citation references in Docutils 0.18+.
Patch by Adam Turner.
* 10534: Missing CSS for nav.contents in Docutils 0.18+. Patch by Adam Turner.
```
### 5.0.1
```
=====================================
Bugs fixed
----------
* 10498: gettext: TypeError is raised when sorting warning messages if a node
has no line number. Patch by Adam Turner.
* 10493: HTML Theme: :dudir:`topic` directive is rendered incorrectly with
Docutils 0.18. Patch by Adam Turner.
* 10495: IndexError is raised for a :rst:role:`kbd` role having a separator.
Patch by Adam Turner.
```
### 5.0.0
```
* 9575: autodoc: The annotation of return value should not be shown when
``autodoc_typehints="description"``
* 9648: autodoc: ``*args`` and ``**kwargs`` entries are duplicated when
``autodoc_typehints="description"``
* 8180: autodoc: Docstring metadata ignored for attributes
* 10443: epub: EPUB builder can't detect the mimetype of .webp file
* 10104: gettext: Duplicated locations are shown if 3rd party extension does
not provide correct information
* 10456: py domain: ``:meta:`` fields are displayed if docstring contains two
or more meta-field
* 9096: sphinx-build: the value of progress bar for paralle build is wrong
* 10110: sphinx-build: exit code is not changed when error is raised on
builder-finished event
```
### 4.5.0
```
=====================================
Incompatible changes
--------------------
* 10112: extlinks: Disable hardcoded links detector by default
* 9993, 10177: std domain: Disallow to refer an inline target via
:rst:role:`ref` role
Deprecated
----------
* ``sphinx.ext.napoleon.docstring.GoogleDocstring._qualify_name()``
Features added
--------------
* 10260: Enable ``FORCE_COLOR`` and ``NO_COLOR`` for terminal colouring
* 10234: autosummary: Add "autosummary" CSS class to summary tables
* 10125: extlinks: Improve suggestion message for a reference having title
* 10112: extlinks: Add :confval:`extlinks_detect_hardcoded_links` to enable
hardcoded links detector feature
* 9494, 9456: html search: Add a config variable
:confval:`html_show_search_summary` to enable/disable the search summaries
* 9337: HTML theme, add option ``enable_search_shortcuts`` that enables :kbd:`/` as
a Quick search shortcut and :kbd:`Esc` shortcut that
removes search highlighting.
* 10107: i18n: Allow to suppress translation warnings by adding ``noqa``
comment to the tail of each translation message
* 10252: C++, support attributes on classes, unions, and enums.
* 10253: :rst:role:`pep` role now generates URLs based on `peps.python.org
<https://peps.python.org>`_
Bugs fixed
----------
* 9876: autodoc: Failed to document an imported class that is built from native
binary module
* 10133: autodoc: Crashed when mocked module is used for type annotation
* 10146: autodoc: :confval:`autodoc_default_options` does not support
``no-value`` option
* 9971: autodoc: TypeError is raised when the target object is annotated by
unhashable object
* 10205: extlinks: Failed to compile regexp on checking hardcoded links
* 10277: html search: Could not search short words (ex. "use")
* 9529: LaTeX: named auto numbered footnote (ex. ``[named]``) that is referred
multiple times was rendered to a question mark
* 9924: LaTeX: multi-line :rst:dir:`cpp:function` directive has big vertical
spacing in Latexpdf
* 10158: LaTeX: excessive whitespace since v4.4.0 for undocumented
variables/structure members
* 10175: LaTeX: named footnote reference is linked to an incorrect footnote if
the name is also used in the different document
* 10269: manpage: Failed to resolve the title of :rst:role:`ref` cross references
* 10179: i18n: suppress "rST localization" warning
* 10118: imgconverter: Unnecessary availablity check is called for remote URIs
* 10181: napoleon: attributes are displayed like class attributes for google
style docstrings when :confval:`napoleon_use_ivar` is enabled
* 10122: sphinx-build: make.bat does not check the installation of sphinx-build
command before showing help
```
### 4.4.0
```
=====================================
Dependencies
------------
* 10007: Use ``importlib_metadata`` for python-3.9 or older
* 10007: Drop ``setuptools``
Features added
--------------
* 9075: autodoc: Add a config variable :confval:`autodoc_typehints_format`
to suppress the leading module names of typehints of function signatures (ex.
``io.StringIO`` -> ``StringIO``)
* 9831: Autosummary now documents only the members specified in a module's
``__all__`` attribute if :confval:`autosummary_ignore_module_all` is set to
``False``. The default behaviour is unchanged. Autogen also now supports
this behavior with the ``--respect-module-all`` switch.
* 9555: autosummary: Improve error messages on failure to load target object
* 9800: extlinks: Emit warning if a hardcoded link is replaceable
by an extlink, suggesting a replacement.
* 9961: html: Support nested <kbd> HTML elements in other HTML builders
* 10013: html: Allow to change the loading method of JS via ``loading_method``
parameter for :meth:`.Sphinx.add_js_file()`
* 9551: html search: "Hide Search Matches" link removes "highlight" parameter
from URL
* 9815: html theme: Wrap sidebar components in div to allow customizing their
layout via CSS
* 9827: i18n: Sort items in glossary by translated terms
* 9899: py domain: Allows to specify cross-reference specifier (``.`` and
``~``) as ``:type:`` option
* 9894: linkcheck: add option ``linkcheck_exclude_documents`` to disable link
checking in matched documents.
* 9793: sphinx-build: Allow to use the parallel build feature in macOS on macOS
and Python3.8+
* 10055: sphinx-build: Create directories when ``-w`` option given
* 9993: std domain: Allow to refer an inline target (ex. ``_`target name)
via :rst:role:`ref` role
* 9981: std domain: Strip value part of the option directive from general index
* 9391: texinfo: improve variable in ``samp`` role
* 9578: texinfo: Add :confval:`texinfo_cross_references` to disable cross
references for readability with standalone readers
* 9822 (and 9062), add new Intersphinx role :rst:role:`external` for explict
lookup in the external projects, without resolving to the local project.
Bugs fixed
----------
* 9866: autodoc: doccomment for the imported class was ignored
* 9883: autodoc: doccomment for the alias to mocked object was ignored
* 9908: autodoc: debug message is shown on building document using NewTypes
with Python 3.10
* 9968: autodoc: instance variables are not shown if __init__ method has
position-only-arguments
* 9194: autodoc: types under the "typing" module are not hyperlinked
* 10009: autodoc: Crashes if target object raises an error on getting docstring
* 10058: autosummary: Imported members are not shown when
``autodoc_class_signature = 'separated'``
* 9947: i18n: topic directive having a bullet list can't be translatable
* 9878: mathjax: MathJax configuration is placed after loading MathJax itself
* 9932: napoleon: empty "returns" section is generated even if no description
* 9857: Generated RFC links use outdated base url
* 9909: HTML, prevent line-wrapping in literal text.
* 10061: html theme: Configuration values added by themes are not be able to
override from conf.py
* 10073: imgconverter: Unnecessary availablity check is called for "data" URIs
* 9925: LaTeX: prohibit also with ``'xelatex'`` line splitting at dashes of
inline and parsed literals
* 9944: LaTeX: extra vertical whitespace for some nested declarations
* 9940: LaTeX: Multi-function declaration in Python domain has cramped
vertical spacing in latexpdf output
* 10015: py domain: types under the "typing" module are not hyperlinked defined
at info-field-list
* 9390: texinfo: Do not emit labels inside footnotes
* 9413: xml: Invalid XML was generated when cross referencing python objects
* 9979: Error level messages were displayed as warning messages
* 10057: Failed to scan documents if the project is placed onto the root
directory
* 9636: code-block: ``:dedent:`` without argument did strip newlines
```
### 4.3.2
```
=====================================
Bugs fixed
----------
* 9917: C and C++, parse fundamental types no matter the order of simple type
specifiers.
```
### 4.3.1
```
=====================================
Features added
--------------
* 9864: mathjax: Support chnaging the loading method of MathJax to "defer" via
:confval:`mathjax_options`
Bugs fixed
----------
* 9838: autodoc: AttributeError is raised on building document for functions
decorated by functools.lru_cache
* 9879: autodoc: AttributeError is raised on building document for an object
having invalid __doc__ attribute
* 9844: autodoc: Failed to process a function wrapped with functools.partial if
:confval:`autodoc_preserve_defaults` enabled
* 9872: html: Class namespace collision between autodoc signatures and
docutils-0.17
* 9868: imgmath: Crashed if the dvisvgm command failed to convert equation
* 9864: mathjax: Failed to render equations via MathJax v2. The loading method
of MathJax is back to "async" method again
```
### 4.3.0
```
=====================================
Dependencies
------------
* Support Python 3.10
Incompatible changes
--------------------
* 9649: ``searchindex.js``: the embedded data has changed format to allow
objects with the same name in different domains.
* 9672: The rendering of Python domain declarations is implemented
with more docutils nodes to allow better CSS styling.
It may break existing styling.
* 9672: the signature of
``domains.python.PyObject.get_signature_prefix`` has changed to
return a list of nodes instead of a plain string.
* 9695: ``domains.js.JSObject.display_prefix`` has been changed into a method
``get_display_prefix`` which now returns a list of nodes
instead of a plain string.
* 9695: The rendering of Javascript domain declarations is implemented
with more docutils nodes to allow better CSS styling.
It may break existing styling.
* 9450: mathjax: Load MathJax via "defer" strategy
Deprecated
----------
* ``sphinx.ext.autodoc.AttributeDocumenter._datadescriptor``
* ``sphinx.writers.html.HTMLTranslator._fieldlist_row_index``
* ``sphinx.writers.html.HTMLTranslator._table_row_index``
* ``sphinx.writers.html5.HTML5Translator._fieldlist_row_index``
* ``sphinx.writers.html5.HTML5Translator._table_row_index``
Features added
--------------
* 9639: autodoc: Support asynchronous generator functions
* 9664: autodoc: ``autodoc-process-bases`` supports to inject reST snippet as a
base class
* 9691: C, added new info-field ``retval``
for :rst:dir:`c:function` and :rst:dir:`c:macro`.
* C++, added new info-field ``retval`` for :rst:dir:`cpp:function`.
* 9618: i18n: Add :confval:`gettext_allow_fuzzy_translations` to allow "fuzzy"
messages for translation
* 9672: More CSS classes on Python domain descriptions
* 9695: More CSS classes on Javascript domain descriptions
* 9683: Revert the removal of ``add_stylesheet()`` API. It will be kept until
the Sphinx 6.0 release
* 2068, add :confval:`intersphinx_disabled_reftypes` for disabling
interphinx resolution of cross-references that do not have an explicit
inventory specification. Specific types of cross-references can be disabled,
e.g., ``std:doc`` or all cross-references in a specific domain,
e.g., ``std:*``.
* 9623: Allow to suppress "toctree contains reference to excluded document"
warnings using :confval:`suppress_warnings`
Bugs fixed
----------
* 9630: autodoc: Failed to build cross references if :confval:`primary_domain`
is not 'py'
* 9644: autodoc: Crashed on getting source info from problematic object
* 9655: autodoc: mocked object having doc comment is warned unexpectedly
* 9651: autodoc: return type field is not generated even if
:confval:`autodoc_typehints_description_target` is set to "documented" when
its info-field-list contains ``:returns:`` field
* 9657: autodoc: The base class for a subclass of mocked object is incorrect
* 9607: autodoc: Incorrect base class detection for the subclasses of the
generic class
* 9755: autodoc: memory addresses are shown for aliases
* 9752: autodoc: Failed to detect type annotation for slots attribute
* 9756: autodoc: Crashed if classmethod does not have __func__ attribute
* 9757: autodoc: :confval:`autodoc_inherit_docstrings` does not effect to
overridden classmethods
* 9781: autodoc: :confval:`autodoc_preserve_defaults` does not support
hexadecimal numeric
* 9630: autosummary: Failed to build summary table if :confval:`primary_domain`
is not 'py'
* 9670: html: Fix download file with special characters
* 9710: html: Wrong styles for even/odd rows in nested tables
* 9763: html: parameter name and its type annotation are not separated in HTML
* 9649: HTML search: when objects have the same name but in different domains,
return all of them as result instead of just one.
* 7634: intersphinx: references on the file in sub directory are broken
* 9737: LaTeX: hlist is rendered as a list containing "aggedright" text
* 9678: linkcheck: file extension was shown twice in warnings
* 9697: py domain: An index entry with parens was registered for ``py:method``
directive with ``:property:`` option
* 9775: py domain: Literal typehint was converted to a cross reference when
:confval:`autodoc_typehints`\ ``='description'``
* 9708: needs_extension failed to check double-digit version correctly
* 9688: Fix Sphinx patched :dudir:`code` does not recognize ``:class:`` option
* 9733: Fix for logging handler flushing warnings in the middle of the docs
build
* 9656: Fix warnings without subtype being incorrectly suppressed
* Intersphinx, for unresolved references with an explicit inventory,
e.g., ``proj:myFunc``, leave the inventory prefix in the unresolved text.
```
### 4.2.0
```
=====================================
Features added
--------------
* 9445: autodoc: Support class properties
* 9479: autodoc: Emit a warning if target is a mocked object
* 9560: autodoc: Allow to refer NewType instances with module name in Python
3.10 or above
* 9447: html theme: Expose the version of Sphinx in the form of tuple as a
template variable ``sphinx_version_tuple``
* 9594: manpage: Suppress the title of man page if description is empty
* 9445: py domain: :rst:dir:`py:property` directive supports ``:classmethod:``
option to describe the class property
* 9524: test: SphinxTestApp can take ``builddir`` as an argument
* 9535: C and C++, support more fundamental types, including GNU extensions.
Bugs fixed
----------
* 9608: apidoc: apidoc does not generate a module definition for implicit
namespace package
* 9504: autodoc: generate incorrect reference to the parent class if the target
class inherites the class having ``_name`` attribute
* 9537, 9589: autodoc: Some objects under ``typing`` module are not displayed
well with the HEAD of 3.10
* 9487: autodoc: typehint for cached_property is not shown
* 9509: autodoc: AttributeError is raised on failed resolving typehints
* 9518: autodoc: autodoc_docstring_signature does not effect to ``__init__()``
and ``__new__()``
* 9522: autodoc: PEP 585 style typehints having arguments (ex. ``list[int]``)
are not displayed well
* 9481: autosummary: some warnings contain non-existing filenames
* 9568: autosummary: summarise overlined sectioned headings correctly
* 9600: autosummary: Type annotations which contain commas in autosummary table
are not removed completely
* 9481: c domain: some warnings contain non-existing filenames
* 9481: cpp domain: some warnings contain non-existing filenames
* 9456: html search: abbreation marks are inserted to the search result if
failed to fetch the content of the page
* 9617: html search: The JS requirement warning is shown if browser is slow
* 9267: html theme: CSS and JS files added by theme were loaded twice
* 9585: py domain: ``:type:`` option for :rst:dir:`py:property` directive does
not create a hyperlink
* 9576: py domain: Literal typehint was converted to a cross reference
* 9535 comment: C++, fix parsing of defaulted function parameters that are
function pointers.
* 9564: smartquotes: don't adjust typography for text with
language-highlighted ``:code:`` role.
* 9512: sphinx-build: crashed with the HEAD of Python 3.10
```
### 4.1.2
```
=====================================
Incompatible changes
--------------------
* 9435: linkcheck: Disable checking automatically generated anchors on
github.com (ex. anchors in reST/Markdown documents)
Bugs fixed
----------
* 9489: autodoc: Custom types using ``typing.NewType`` are not displayed well
with the HEAD of 3.10
* 9490: autodoc: Some objects under ``typing`` module are not displayed well
with the HEAD of 3.10
* 9436, 9471: autodoc: crashed if ``autodoc_class_signature = "separated"``
* 9456: html search: html_copy_source can't control the search summaries
* 9500: LaTeX: Failed to build Japanese document on Windows
* 9435: linkcheck: Failed to check anchors in github.com
```
### 4.1.1
```
=====================================
Dependencies
------------
* 9434: sphinxcontrib-htmlhelp-2.0.0 or above
* 9434: sphinxcontrib-serializinghtml-1.1.5 or above
Bugs fixed
----------
* 9438: html: HTML logo or Favicon specified as file not being found on output
```
### 4.1.0
```
=====================================
Dependencies
------------
* Support jinja2-3.0
Deprecated
----------
* The ``app`` argument of ``sphinx.environment.BuildEnvironment`` becomes
required
* ``sphinx.application.Sphinx.html_theme``
* ``sphinx.ext.autosummary._app``
* ``sphinx.util.docstrings.extract_metadata()``
Features added
--------------
* 8107: autodoc: Add ``class-doc-from`` option to :rst:dir:`autoclass`
directive to control the content of the specific class like
:confval:`autoclass_content`
* 8588: autodoc: :confval:`autodoc_type_aliases` now supports dotted name. It
allows you to define an alias for a class with module name like
``foo.bar.BazClass``
* 9175: autodoc: Special member is not documented in the module
* 9195: autodoc: The arguments of ``typing.Literal`` are wrongly rendered
* 9185: autodoc: :confval:`autodoc_typehints` allows ``'both'`` setting to
allow typehints to be included both in the signature and description
* 4257: autodoc: Add :confval:`autodoc_class_signature` to separate the class
entry and the definition of ``__init__()`` method
* 8061, 9218: autodoc: Support variable comment for alias classes
* 3014: autodoc: Add :event:`autodoc-process-bases` to modify the base classes
of the class definitions
* 9272: autodoc: Render enum values for the default argument value better
* 9384: autodoc: ``autodoc_typehints='none'`` now erases typehints for
variables, attributes and properties
* 3257: autosummary: Support instance attributes for classes
* 9358: html: Add "heading" role to the toctree items
* 9225: html: Add span tag to the return typehint of method/function
* 9129: html search: Show search summaries when html_copy_source = False
* 9307: html search: Prevent corrections and completions in search field
* 9120: html theme: Eliminate prompt characters of code-block from copyable
text
* 9176: i18n: Emit a debug message if message catalog file not found under
:confval:`locale_dirs`
* 9414: LaTeX: Add xeCJKVerbAddon to default fvset config for Chinese documents
* 9016: linkcheck: Support checking anchors on github.com
* 9016: linkcheck: Add a new event :event:`linkcheck-process-uri` to modify
URIs before checking hyperlinks
* 6525: linkcheck: Add :confval:`linkcheck_allowed_redirects` to mark
hyperlinks that are redirected to expected URLs as "working"
* 1874: py domain: Support union types using ``|`` in info-field-list
* 9268: py domain: :confval:`python_use_unqualified_type_names` supports type
field in info-field-list
* 9097: Optimize the parallel build
* 9131: Add :confval:`nitpick_ignore_regex` to ignore nitpicky warnings using
regular expressions
* 9174: Add ``Sphinx.set_html_assets_policy`` to tell extensions to include
HTML assets in all the pages. Extensions can check this via
``Sphinx.registry.html_assets_policy``
* C++, add support for
- ``inline`` variables,
- ``consteval`` functions,
- ``constinit`` variables,
- ``char8_t``,
- ``explicit(<constant expression>)`` specifier,
- digit separators in literals, and
- constraints in placeholder type specifiers, aka. adjective syntax
(e.g., ``Sortable auto &v``).
* C, add support for digit separators in literals.
* 9166: LaTeX: support containers in LaTeX output
Bugs fixed
----------
* 8872: autodoc: stacked singledispatches are wrongly rendered
* 8597: autodoc: a docsting having metadata only should be treated as
undocumented
* 9185: autodoc: typehints for overloaded functions and methods are inaccurate
* 9250: autodoc: The inherited method not having docstring is wrongly parsed
* 9283: autodoc: autoattribute directive failed to generate document for an
attribute not having any comment
* 9364: autodoc: single element tuple on the default argument value is wrongly
rendered
* 9362: autodoc: AttributeError is raised on processing a subclass of Tuple[()]
* 9404: autodoc: TypeError is raised on processing dict-like object (not a
class) via autoclass directive
* 9317: html: Pushing left key causes visiting the next page at the first page
* 9381: html: URL for html_favicon and html_log does not work
* 9270: html theme : pyramid theme generates incorrect logo links
* 9217: manpage: The name of manpage directory that is generated by
:confval:`man_make_section_directory` is not correct
* 9350: manpage: Fix font isn't reset after keyword at the top of samp role
* 9306: Linkcheck reports broken link when remote server closes the connection
on HEAD request
* 9280: py domain: "exceptions" module is not displayed
* 9418: py domain: a Callable annotation with no parameters
(e.g. ``Callable[[], None])`` will be rendered with a bracket missing
(``Callable[], None]``)
* 9319: quickstart: Make sphinx-quickstart exit when conf.py already exists
* 9387: xml: XML Builder ignores custom visitors
* 9224: ``:param:`` and ``:type:`` fields does not support a type containing
whitespace (ex. ``Dict[str, str]``)
* 8945: when transforming typed fields, call the specified role instead of
making an single xref. For C and C++, use the ``expr`` role for typed fields.
```
### 4.0.3
```
=====================================
Features added
--------------
* C, add C23 keywords ``_Decimal32``, ``_Decimal64``, and ``_Decimal128``.
* 9354: C, add :confval:`c_extra_keywords` to allow user-defined keywords
during parsing.
* Revert the removal of ``sphinx.util:force_decode()`` to become some 3rd party
extensions available again during 5.0
Bugs fixed
----------
* 9330: changeset domain: :rst:dir:`versionchanged` with contents being a list
will cause error during pdf build
* 9313: LaTeX: complex table with merged cells broken since 4.0
* 9305: LaTeX: backslash may cause Improper discretionary list pdf build error
with Japanese engines
* 9354: C, remove special macro names from the keyword list.
See also :confval:`c_extra_keywords`.
* 9322: KeyError is raised on PropagateDescDomain transform
```
### 4.0.2
```
=====================================
Dependencies
------------
* 9216: Support jinja2-3.0
Incompatible changes
--------------------
* 9222: Update Underscore.js to 1.13.1
* 9217: manpage: Stop creating a section directory on build manpage by default
(see :confval:`man_make_section_directory`)
Bugs fixed
----------
* 9210: viewcode: crashed if non importable modules found on parallel build
* 9240: Unknown node error for pending_xref_condition is raised if an extension
that does not support the node installs a missing-reference handler
```
### 4.0.1
```
=====================================
Bugs fixed
----------
* 9189: autodoc: crashed when ValueError is raised on generating signature
from a property of the class
* 9188: autosummary: warning is emitted if list value is set to
autosummary_generate
* 8380: html search: tags for search result are broken
* 9198: i18n: Babel emits errors when running compile_catalog
* 9205: py domain: The :canonical: option causes "more than one target for
cross-reference" warning
* 9201: websupport: UndefinedError is raised: 'css_tag' is undefined
```
### 4.0.0
```
=====================================
Dependencies
------------
```
### 4.0.0b3
```
* 9167: html: Failed to add CSS files to the specific page
```
### 4.0.0b2
```
* C, C++, fix ``KeyError`` when an ``alias`` directive is the first C/C++
directive in a file with another C/C++ directive later.
```
### 4.0.0b1
```
* 8917: autodoc: Raises a warning if function has wrong __globals__ value
* 8415: autodoc: a TypeVar imported from other module is not resolved (in
Python 3.7 or above)
* 8992: autodoc: Failed to resolve types.TracebackType type annotation
* 8905: html: html_add_permalinks=None and html_add_permalinks="" are ignored
* 8380: html search: Paragraphs in search results are not identified as ``<p>``
* 8915: html theme: The translation of sphinx_rtd_theme does not work
* 8342: Emit a warning if a unknown domain is given for directive or role (ex.
``:unknown:doc:``)
* 7241: LaTeX: No wrapping for ``cpp:enumerator``
* 8711: LaTeX: backticks in code-blocks trigger latexpdf build warning (and font
change) with late TeXLive 2019
* 8253: LaTeX: Figures with no size defined get overscaled (compared to images
with size explicitly set in pixels) (fixed for ``'pdflatex'/'lualatex'`` only)
* 8881: LaTeX: The depth of bookmarks panel in PDF is not enough for navigation
* 8874: LaTeX: the fix to two minor Pygments LaTeXFormatter output issues ignore
Pygments style
* 8925: LaTeX: 3.5.0 ``verbatimmaxunderfull`` setting does not work as
expected
* 8980: LaTeX: missing line break in ``\pysigline``
* 8995: LaTeX: legacy ``\pysiglinewithargsret`` does not compute correctly
available horizontal space and should use a ragged right style
* 9009: LaTeX: "release" value with underscore leads to invalid LaTeX
* 8911: C++: remove the longest matching prefix in
:confval:`cpp_index_common_prefix` instead of the first that matches.
* C, properly reject function declarations when a keyword is used
as parameter name.
* 8933: viewcode: Failed to create back-links on parallel build
* 8960: C and C++, fix rendering of (member) function pointer types in
function parameter lists.
* C++, fix linking of names in array declarators, pointer to member
(function) declarators, and in the argument to ``sizeof...``.
* C, fix linking of names in array declarators.
```
### 3.5.5
```
==============================
```
### 3.5.4
```
=====================================
Dependencies
------------
* 9071: Restrict docutils to 0.16
Bugs fixed
----------
* 9078: autodoc: Async staticmethods and classmethods are considered as non
async coroutine-functions with Python3.10
* 8870, 9001, 9051: html theme: The style are not applied with docutils-0.17
- toctree captions
- The content of ``sidebar`` directive
- figures
```
### 3.5.3
```
=====================================
Features added
--------------
* 8959: using UNIX path separator in image directive confuses Sphinx on Windows
```
### 3.5.2
```
=====================================
Bugs fixed
----------
* 8943: i18n: Crashed by broken translation messages in ES, EL and HR
* 8936: LaTeX: A custom LaTeX builder fails with unknown node error
* 8952: Exceptions raised in a Directive cause parallel builds to hang
```
### 3.5.1
```
=====================================
Bugs fixed
----------
* 8883: autodoc: AttributeError is raised on assigning __annotations__ on
read-only class
* 8884: html: minified js stemmers not included in the distributed package
* 8885: html: AttributeError is raised if CSS/JS files are installed via
:confval:`html_context`
* 8880: viewcode: ExtensionError is raised on incremental build after
unparsable python module found
```
### 3.5.0
```
=====================================
Dependencies
------------
* LaTeX: ``multicol`` (it is anyhow a required part of the official latex2e
base distribution)
Incompatible changes
--------------------
* Update Underscore.js to 1.12.0
* 6550: html: The config variable ``html_add_permalinks`` is replaced by
:confval:`html_permalinks` and :confval:`html_permalinks_icon`
Deprecated
----------
* pending_xref node for viewcode extension
* ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.anchors_ignore``
* ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.auth``
* ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.broken``
* ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.good``
* ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.redirected``
* ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.rqueue``
* ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.to_ignore``
* ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.workers``
* ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.wqueue``
* ``sphinx.builders.linkcheck.node_line_or_0()``
* ``sphinx.ext.autodoc.AttributeDocumenter.isinstanceattribute()``
* ``sphinx.ext.autodoc.directive.DocumenterBridge.reporter``
* ``sphinx.ext.autodoc.importer.get_module_members()``
* ``sphinx.ext.autosummary.generate._simple_info()``
* ``sphinx.ext.autosummary.generate._simple_warn()``
* ``sphinx.writers.html.HTMLTranslator.permalink_text``
* ``sphinx.writers.html5.HTML5Translator.permalink_text``
Features added
--------------
* 8022: autodoc: autodata and autoattribute directives does not show right-hand
value of the variable if docstring contains ``:meta hide-value:`` in
info-field-list
* 8514: autodoc: Default values of overloaded functions are taken from actual
implementation if they're ellipsis
* 8775: autodoc: Support type union operator (PEP-604) in Python 3.10 or above
* 8297: autodoc: Allow to extend :confval:`autodoc_default_options` via
directive options
* 759: autodoc: Add a new configuration :confval:`autodoc_preserve_defaults` as
an experimental feature. It preserves the default argument values of
functions in source code and keep them not evaluated for readability.
* 8619: html: kbd role generates customizable HTML tags for compound keys
* 8634: html: Allow to change the order of JS/CSS via ``priority`` parameter
for :meth:`.Sphinx.add_js_file()` and :meth:`.Sphinx.add_css_file()`
* 6241: html: Allow to add JS/CSS files to the specific page when an extension
calls ``app.add_js_file()`` or ``app.add_css_file()`` on
:event:`html-page-context` event
* 6550: html: Allow to use HTML permalink texts via
:confval:`html_permalinks_icon`
* 1638: html: Add permalink icons to glossary terms
* 8868: html search: performance issue with massive lists
* 8867: html search: Update JavaScript stemmer code to the latest version of
Snowball (v2.1.0)
* 8852: i18n: Allow to translate heading syntax in MyST-Parser
* 8649: imgconverter: Skip availability check if builder supports the image
type
* 8573: napoleon: Allow to change the style of custom sections using
:confval:`napoleon_custom_sections`
* 8004: napoleon: Type definitions in Google style docstrings are rendered as
references when :confval:`napoleon_preprocess_types` enabled
* 6241: mathjax: Include mathjax.js only on the document using equations
* 8775: py domain: Support type union operator (PEP-604)
* 8651: std domain: cross-reference for a rubric having inline item is broken
* 7642: std domain: Optimize case-insensitive match of term
* 8681: viewcode: Support incremental build
* 8132: Add :confval:`project_copyright` as an alias of :confval:`copyright`
* 207: Now :confval:`highlight_language` supports multiple languages
* 2030: :rst:dir:`code-block` and :rst:dir:`literalinclude` supports automatic
dedent via no-argument ``:dedent:`` option
* C++, also hyperlink operator overloads in expressions and alias declarations.
* 8247: Allow production lists to refer to tokens from other production groups
* 8813: Show what extension (or module) caused it on errors on event handler
* 8213: C++: add ``maxdepth`` option to :rst:dir:`cpp:alias` to insert nested
declarations.
* C, add ``noroot`` option to :rst:dir:`c:alias` to render only nested
declarations.
* C++, add ``noroot`` option to :rst:dir:`cpp:alias` to render only nested
declarations.
Bugs fixed
----------
* 8727: apidoc: namespace module file is not generated if no submodules there
* 741: autodoc: inherited-members doesn't work for instance attributes on super
class
* 8592: autodoc: ``:meta public:`` does not effect to variables
* 8594: autodoc: empty __all__ attribute is ignored
* 8315: autodoc: Failed to resolve struct.Struct type annotation
* 8652: autodoc: All variable comments in the module are ignored if the module
contains invalid type comments
* 8693: autodoc: Default values for overloaded functions are rendered as string
* 8134: autodoc: crashes when mocked decorator takes arguments
* 8800: autodoc: Uninitialized attributes in superclass are recognized as
undocumented
* 8655: autodoc: Failed to generate document if target module contains an
object that raises an exception on ``hasattr()``
* 8306: autosummary: mocked modules are documented as empty page when using
:recursive: option
* 8232: graphviz: Image node is not rendered if graph file is in subdirectory
* 8618: html: kbd role produces incorrect HTML when compound-key separators (-,
+ or ^) are used as keystrokes
* 8629: html: A type warning for html_use_opensearch is shown twice
* 8714: html: kbd role with "Caps Lock" rendered incorrectly
* 8123: html search: fix searching for terms containing + (Requires a custom
search language that does not split on +)
* 8665: html theme: Could not override globaltoc_maxdepth in theme.conf
* 8446: html: consecutive spaces are displayed as single space
* 8745: i18n: crashes with KeyError when translation message adds a new auto
footnote reference
* 4304: linkcheck: Fix race condition that could lead to checking the
availability of the same URL twice
* 8791: linkcheck: The docname for each hyperlink is not displayed
* 7118: sphinx-quickstart: questionare got Mojibake if libreadline unavailable
* 8094: texinfo: image files on the different directory with document are not
copied
* 8782: todo: Cross references in todolist get broken
* 8720: viewcode: module pages are generated for epub on incremental build
* 8704: viewcode: anchors are generated in incremental build after singlehtml
* 8756: viewcode: highlighted code is generated even if not referenced
* 8671: :confval:`highlight_options` is not working
* 8341: C, fix intersphinx lookup types for names in declarations.
* C, C++: in general fix intersphinx and role lookup types.
* 8683: :confval:`html_last_updated_fmt` does not support UTC offset (%z)
* 8683: :confval:`html_last_updated_fmt` generates wrong time zone for %Z
* 1112: ``download`` role creates duplicated copies when relative path is
specified
* 2616 (fifth item): LaTeX: footnotes from captions are not clickable,
and for manually numbered footnotes only first one with same number is
an hyperlink
* 7576: LaTeX with French babel and memoir crash: "Illegal parameter number
in definition of ``\FNHprefntext``"
* 8055: LaTeX (docs): A potential display bug with the LaTeX generation step
in Sphinx (how to generate one-column index)
* 8072: LaTeX: Directive :rst:dir:`hlist` not implemented in LaTeX
* 8214: LaTeX: The :rst:role:`index` role and the glossary generate duplicate
entries in the LaTeX index (if both used for same term)
* 8735: LaTeX: wrong internal links in pdf to captioned code-blocks when
:confval:`numfig` is not True
* 8442: LaTeX: some indexed terms are ignored when using xelatex engine
(or pdflatex and :confval:`latex_use_xindy` set to True) with memoir class
* 8750: LaTeX: URLs as footnotes fail to show in PDF if originating from
inside function type signatures
* 8780: LaTeX: long words in narrow columns may not be hyphenated
* 8788: LaTeX: ``\titleformat`` last argument in sphinx.sty should be
bracketed, not braced (and is anyhow not needed)
* 8849: LaTex: code-block printed out of margin (see the opt-in LaTeX syntax
boolean :ref:`verbatimforcewraps <latexsphinxsetupforcewraps>` for use via
the :ref:`'sphinxsetup' <latexsphinxsetup>` key of ``latex_elements``)
* 8183: LaTeX: Remove substitution_reference nodes from doctree only on LaTeX
builds
* 8865: LaTeX: Restructure the index nodes inside title nodes only on LaTeX
builds
* 8796: LaTeX: potentially critical low level TeX coding mistake has gone
unnoticed so far
* C, :rst:dir:`c:alias` skip symbols without explicit declarations
instead of crashing.
* C, :rst:dir:`c:alias` give a warning when the root symbol is not declared.
* C, ``expr`` role should start symbol lookup in the current scope.
```
### 3.4.3
```
=====================================
Bugs fixed
----------
* 8655: autodoc: Failed to generate document if target module contains an
object that raises an exception on ``hasattr()``
```
### 3.4.2
```
=====================================
Bugs fixed
----------
* 8164: autodoc: Classes that inherit mocked class are not documented
* 8602: autodoc: The ``autodoc-process-docstring`` event is emitted to the
non-datadescriptors unexpectedly
* 8616: autodoc: AttributeError is raised on non-class object is passed to
autoclass directive
```
### 3.4.1
```
=====================================
Bugs fixed
----------
* 8559: autodoc: AttributeError is raised when using forward-reference type
annotations
* 8568: autodoc: TypeError is raised on checking slots attribute
* 8567: autodoc: Instance attributes are incorrectly added to Parent class
* 8566: autodoc: The ``autodoc-process-docstring`` event is emitted to the
alias classes unexpectedly
* 8583: autodoc: Unnecessary object comparison via ``__eq__`` method
* 8565: linkcheck: Fix PriorityQueue crash when link tuples are not
comparable
```
### 3.4.0
```
=====================================
Incompatible changes
--------------------
* 8105: autodoc: the signature of class constructor will be shown for decorated
classes, not a signature of decorator
Deprecated
----------
* The ``follow_wrapped`` argument of ``sphinx.util.inspect.signature()``
* The ``no_docstring`` argument of
``sphinx.ext.autodoc.Documenter.add_content()``
* ``sphinx.ext.autodoc.Documenter.get_object_members()``
* ``sphinx.ext.autodoc.DataDeclarationDocumenter``
* ``sphinx.ext.autodoc.GenericAliasDocumenter``
* ``sphinx.ext.autodoc.InstanceAttributeDocumenter``
* ``sphinx.ext.autodoc.SlotsAttributeDocumenter``
* ``sphinx.ext.autodoc.TypeVarDocumenter``
* ``sphinx.ext.autodoc.importer._getannotations()``
* ``sphinx.ext.autodoc.importer._getmro()``
* ``sphinx.pycode.ModuleAnalyzer.parse()``
* ``sphinx.util.osutil.movefile()``
* ``sphinx.util.requests.is_ssl_error()``
Features added
--------------
* 8119: autodoc: Allow to determine whether a member not included in
``__all__`` attribute of the module should be documented or not via
:event:`autodoc-skip-member` event
* 8219: autodoc: Parameters for generic class are not shown when super class is
a generic class and show-inheritance option is given (in Python 3.7 or above)
* autodoc: Add ``Documenter.config`` as a shortcut to access the config object
* autodoc: Add Optional[t] to annotation of function and method if a default
value equal to None is set.
* 8209: autodoc: Add ``:no-value:`` option to :rst:dir:`autoattribute` and
:rst:dir:`autodata` directive to suppress the default value of the variable
* 8460: autodoc: Support custom types defined by typing.NewType
* 8285: napoleon: Add :confval:`napoleon_attr_annotations` to merge type hints
on source code automatically if any type is specified in docstring
* 8236: napoleon: Support numpydoc's "Receives" section
* 6914: Add a new event :event:`warn-missing-reference` to custom warning
messages when failed to resolve a cross-reference
* 6914: Emit a detailed warning when failed to resolve a ``:ref:`` reference
* 6629: linkcheck: The builder now handles rate limits. See
:confval:`linkcheck_rate_limit_timeout` for details.
Bugs fixed
----------
* 7613: autodoc: autodoc does not respect __signature__ of the class
* 4606: autodoc: the location of the warning is incorrect for inherited method
* 8105: autodoc: the signature of class constructor is incorrect if the class
is decorated
* 8434: autodoc: :confval:`autodoc_type_aliases` does not effect to variables
and attributes
* 8443: autodoc: autodata directive can't create document for PEP-526 based
type annotated variables
* 8443: autodoc: autoattribute directive can't create document for PEP-526
based uninitialized variables
* 8480: autodoc: autoattribute could not create document for __slots__
attributes
* 8503: autodoc: autoattribute could not create document for a GenericAlias as
class attributes correctly
* 8534: autodoc: autoattribute could not create document for a commented
attribute in alias class
* 8452: autodoc: autodoc_type_aliases doesn't work when autodoc_typehints is
set to "description"
* 8541: autodoc: autodoc_type_aliases doesn't work for the type annotation to
instance attributes
* 8460: autodoc: autodata and autoattribute directives do not display type
information of TypeVars
* 8493: autodoc: references to builtins not working in class aliases
* 8522: autodoc: ``__bool__`` method could be called
* 8067: autodoc: A typehint for the instance variable having type_comment on
super class is not displayed
* 8545: autodoc: a __slots__ attribute is not documented even having docstring
* 741: autodoc: inherited-members doesn't work for instance attributes on super
class
* 8477: autosummary: non utf-8 reST files are generated when template contains
multibyte characters
* 8501: autosummary: summary extraction splits text after "el at." unexpectedly
* 8524: html: Wrong url_root has been generated on a document named "index"
* 8419: html search: Do not load ``language_data.js`` in non-search pages
* 8549: i18n: ``-D gettext_compact=0`` is no longer working
* 8454: graphviz: The layout option for graph and digraph directives don't work
* 8131: linkcheck: Use GET when HEAD requests cause Too Many Redirects, to
accommodate infinite redirect loops on HEAD
* 8437: Makefile: ``make clean`` with empty BUILDDIR is dangerous
* 8365: py domain: ``:type:`` and ``:rtype:`` gives false ambiguous class
lookup warnings
* 8352: std domain: Failed to parse an option that starts with bracket
* 8519: LaTeX: Prevent page brake in the middle of a seealso
* 8520: C, fix copying of AliasNode.
```
### 3.3.1
```
=====================================
Bugs fixed
----------
* 8372: autodoc: autoclass directive became slower than Sphinx 3.2
* 7727: autosummary: raise PycodeError when documenting python package
without __init__.py
* 8350: autosummary: autosummary_mock_imports causes slow down builds
* 8364: C, properly initialize attributes in empty symbols.
* 8399: i18n: Put system locale path after the paths specified by configuration
```
### 3.3.0
```
=====================================
Deprecated
----------
* ``sphinx.builders.latex.LaTeXBuilder.usepackages``
* ``sphinx.builders.latex.LaTeXBuilder.usepackages_afger_hyperref``
* ``sphinx.ext.autodoc.SingledispatchFunctionDocumenter``
* ``sphinx.ext.autodoc.SingledispatchMet
This PR pins sphinx to the latest release 7.0.1.
Changelog
### 7.0.1 ``` ===================================== Dependencies ------------ * 11411: Support `Docutils 0.20`_. Patch by Adam Turner. .. _Docutils 0.20: https://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-20-2023-05-04 Bugs fixed ---------- * 11418: Clean up remaining references to ``sphinx.setup_command`` following the removal of support for setuptools. Patch by Willem Mulder. ``` ### 7.0.0 ``` ===================================== Incompatible changes -------------------- * 11359: Remove long-deprecated aliases for ``MecabSplitter`` and ``DefaultSplitter`` in ``sphinx.search.ja``. * 11360: Remove deprecated ``make_old_id`` functions in domain object description classes. * 11363: Remove the Setuptools integration (``build_sphinx`` hook in ``setup.py``). * 11364: Remove deprecated ``sphinx.ext.napoleon.iterators`` module. * 11365: Remove support for the ``jsdump`` format in ``sphinx.search``. * 11366: Make ``locale`` a required argument to ``sphinx.util.i18n.format_date()``. * 11370: Remove deprecated ``sphinx.util.stemmer`` module. * 11371: Remove deprecated ``sphinx.pycode.ast.parse()`` function. * 11372: Remove deprecated ``sphinx.io.read_doc()`` function. * 11373: Removed deprecated ``sphinx.util.get_matching_files()`` function. * 11378: Remove deprecated ``sphinx.util.docutils.is_html5_writer_available()`` function. * 11379: Make the ``env`` argument to ``Builder`` subclasses required. * 11380: autosummary: Always emit grouped import exceptions. * 11381: Remove deprecated ``style`` key for HTML templates. * 11382: Remove deprecated ``sphinx.writers.latex.LaTeXTranslator.docclasses`` attribute. * 11383: Remove deprecated ``sphinx.builders.html.html5_ready`` and ``sphinx.builders.html.HTMLTranslator`` attributes. * 11385: Remove support for HTML 4 output. ``` ### 6.2.1 ``` ===================================== Bugs fixed ---------- * 11355: Revert the default type of :confval:`nitpick_ignore` and :confval:`nitpick_ignore_regex` to ``list``. ``` ### 6.2.0 ``` ===================================== Dependencies ------------ * Require Docutils 0.18.1 or greater. Incompatible changes -------------------- * LaTeX: removal of some internal TeX ``\dimen`` registers (not previously publicly documented) as per 5.1.0 code comments in ``sphinx.sty``: ``\sphinxverbatimsep``, ``\sphinxverbatimborder``, ``\sphinxshadowsep``, ``\sphinxshadowsize``, and ``\sphinxshadowrule``. (refs: 11105) * Remove ``.egg`` support from pycode ``ModuleAnalyser``; Python eggs are a now-obsolete binary distribution format * 11089: Remove deprecated code in ``sphinx.builders.linkcheck``. Patch by Daniel Eades * Remove internal-only ``sphinx.locale.setlocale`` Deprecated ---------- * 11247: Deprecate the legacy ``intersphinx_mapping`` format * ``sphinx.util.osutil.cd`` is deprecated in favour of ``contextlib.chdir``. Features added -------------- * 11277: :rst:dir:`autoproperty` allows the return type to be specified as a type comment (e.g., `` type: () -> int``). Patch by Bénédikt Tran * 10811: Autosummary: extend ``__all__`` to imported members for template rendering when option ``autosummary_ignore_module_all`` is set to ``False``. Patch by Clement Pinard * 11147: Add a ``content_offset`` parameter to ``nested_parse_with_titles()``, allowing for correct line numbers during nested parsing. Patch by Jeremy Maitin-Shepard * Update to Unicode CLDR 42 * Add a ``--jobs`` synonym for ``-j``. Patch by Hugo van Kemenade * LaTeX: a command ``\sphinxbox`` for styling text elements with a (possibly rounded) box, optional background color and shadow, has been added. See :ref:`sphinxbox`. (refs: 11224) * LaTeX: add ``\sphinxstylenotetitle``, ..., ``\sphinxstylewarningtitle``, ..., for an extra layer of mark-up freeing up ``\sphinxstrong`` for other uses. See :ref:`latex-macros`. (refs: 11267) * LaTeX: :dudir:`note`, :dudir:`hint`, :dudir:`important` and :dudir:`tip` can now each be styled as the other admonitions, i.e. possibly with a background color, individual border widths and paddings, possibly rounded corners, and optional shadow. See :ref:`additionalcss`. (refs: 11234) * LaTeX: admonitions and :dudir:`topic` (and :dudir:`contents <table-of-contents>`) directives, and not only :rst:dir:`code-block`, support ``box-decoration-break=slice``. * LaTeX: let rounded boxes support up to 4 distinct border-widths (refs: 11243) * LaTeX: new options ``noteTextColor``, ``noteTeXextras`` et al. See :ref:`additionalcss`. * LaTeX: support elliptical corners in rounded boxes. (refs: 11254) * 11150: Include source location in highlighting warnings, when lexing fails. Patch by Jeremy Maitin-Shepard * 11281: Support for :confval:`imgmath_latex` ``= 'tectonic'`` or ``= 'xelatex'``. Patch by Dimitar Dimitrov * 11109, 9643: Add :confval:`python_display_short_literal_types` option for condensed rendering of ``Literal`` types. Bugs fixed ---------- * 11079: LaTeX: figures with align attribute may disappear and strangely impact following lists * 11093: LaTeX: fix "multiply-defined references" PDF build warnings when one or more reST labels directly precede an :rst:dir:`py:module` or :rst:dir:`automodule` directive. Patch by Bénédikt Tran (picnixz) * 11110: LaTeX: Figures go missing from latex pdf if their files have the same base name and they use a post transform. Patch by aaron-cooper * LaTeX: fix potential color leak from shadow to border of rounded boxes, if shadow color is set but border color is not * LaTeX: fix unintended 1pt upwards vertical shift of code blocks frames respective to contents (when using rounded corners) * 11235: LaTeX: added ``\color`` in topic (or admonition) contents may cause color leak to the shadow and border at a page break * 11264: LaTeX: missing space before colon after "Voir aussi" for :rst:dir:`seealso` directive in French * 11268: LaTeX: longtable with left alignment breaks out of current list indentation context in PDF. Thanks to picnixz. * 11274: LaTeX: external links are not properly escaped for ``\sphinxupquote`` compatibility * 11147: Fix source file/line number info in object description content and in other uses of ``nested_parse_with_titles``. Patch by Jeremy Maitin-Shepard. * 11192: Restore correct parallel search index building. Patch by Jeremy Maitin-Shepard * Use the new Transifex ``tx`` client Testing -------- * Fail testing when any Python warnings are emitted * Migrate remaining ``unittest.TestCase`` style test functions to pytest style * Remove tests that rely on setuptools ``` ### 6.1.3 ``` ===================================== Bugs fixed ---------- * 11116: Reverted to previous Sphinx 5 node copying method * 11117: Reverted changes to parallel image processing from Sphinx 6.1.0 * 11119: Supress ``ValueError`` in the ``linkcheck`` builder ``` ### 6.1.2 ``` ===================================== Bugs fixed ---------- * 11101: LaTeX: ``div.topic_padding`` key of sphinxsetup documented at 5.1.0 was implemented with name ``topic_padding`` * 11099: LaTeX: ``shadowrule`` key of sphinxsetup causes PDF build to crash since Sphinx 5.1.0 * 11096: LaTeX: ``shadowsize`` key of sphinxsetup causes PDF build to crash since Sphinx 5.1.0 * 11095: LaTeX: shadow of :dudir:`topic` and :dudir:`contents <table-of-contents>` boxes not in page margin since Sphinx 5.1.0 * 11100: Fix copying images when running under parallel mode. ``` ### 6.1.1 ``` ===================================== Bugs fixed ---------- * 11091: Fix ``util.nodes.apply_source_workaround`` for ``literal_block`` nodes with no source information in the node or the node's parents. ``` ### 6.1.0 ``` ===================================== Dependencies ------------ * Adopted the `Ruff`_ code linter. .. _Ruff: https://github.com/charliermarsh/ruff Incompatible changes -------------------- * 10979: gettext: Removed support for pluralisation in ``get_translation``. This was unused and complicated other changes to ``sphinx.locale``. Deprecated ---------- * ``sphinx.util`` functions: * Renamed ``sphinx.util.typing.stringify()`` to ``sphinx.util.typing.stringify_annotation()`` * Moved ``sphinx.util.xmlname_checker()`` to ``sphinx.builders.epub3._XML_NAME_PATTERN`` Moved to ``sphinx.util.display``: * ``sphinx.util.status_iterator`` * ``sphinx.util.display_chunk`` * ``sphinx.util.SkipProgressMessage`` * ``sphinx.util.progress_message`` Moved to ``sphinx.util.http_date``: * ``sphinx.util.epoch_to_rfc1123`` * ``sphinx.util.rfc1123_to_epoch`` Moved to ``sphinx.util.exceptions``: * ``sphinx.util.save_traceback`` * ``sphinx.util.format_exception_cut_frames`` Features added -------------- * Cache doctrees in the build environment during the writing phase. * Make all writing phase tasks support parallel execution. * 11072: Use PEP 604 (``X | Y``) display conventions for ``typing.Optional`` and ``typing.Optional`` types within the Python domain and autodoc. * 10700: autodoc: Document ``typing.NewType()`` types as classes rather than 'data'. * Cache doctrees between the reading and writing phases. Bugs fixed ---------- * 10962: HTML: Fix the multi-word key name lookup table. * Fixed support for Python 3.12 alpha 3 (changes in the ``enum`` module). * 11069: HTML Theme: Removed outdated "shortcut" link relation keyword. * 10952: Properly terminate parallel processes on programme interuption. * 10988: Speed up ``TocTree.resolve()`` through more efficient copying. * 6744: LaTeX: support for seealso directive should be via an environment to allow styling. * 11074: LaTeX: Can't change sphinxnote to use sphinxheavybox starting with 5.1.0 ``` ### 6.0.1 ``` ===================================== Dependencies ------------ * Require Pygments 2.13 or later. Bugs fixed ---------- * 10944: imgmath: Fix resolving image paths for files in nested folders. ``` ### 6.0.0 ``` ===================================== Dependencies ------------ * 10468: Drop Python 3.6 support * 10470: Drop Python 3.7, Docutils 0.14, Docutils 0.15, Docutils 0.16, and Docutils 0.17 support. Patch by Adam Turner Incompatible changes -------------------- * 7405: Removed the jQuery and underscore.js JavaScript frameworks. These frameworks are no longer be automatically injected into themes from Sphinx 6.0. If you develop a theme or extension that uses the ``jQuery``, ``$``, or ``$u`` global objects, you need to update your JavaScript to modern standards, or use the mitigation below. The first option is to use the sphinxcontrib.jquery_ extension, which has been developed by the Sphinx team and contributors. To use this, add ``sphinxcontrib.jquery`` to the ``extensions`` list in ``conf.py``, or call ``app.setup_extension("sphinxcontrib.jquery")`` if you develop a Sphinx theme or extension. The second option is to manually ensure that the frameworks are present. To re-add jQuery and underscore.js, you will need to copy ``jquery.js`` and ``underscore.js`` from `the Sphinx repository`_ to your ``static`` directory, and add the following to your ``layout.html``: .. code-block:: html+jinja {%- block scripts %} <script src="{{ pathto('_static/jquery.js', resource=True) }}"></script> <script src="{{ pathto('_static/underscore.js', resource=True) }}"></script> {{ super() }} {%- endblock %} .. _sphinxcontrib.jquery: https://github.com/sphinx-contrib/jquery/ Patch by Adam Turner. * 10471, 10565: Removed deprecated APIs scheduled for removal in Sphinx 6.0. See :ref:`dev-deprecated-apis` for details. Patch by Adam Turner. * 10901: C Domain: Remove support for parsing pre-v3 style type directives and roles. Also remove associated configuration variables ``c_allow_pre_v3`` and ``c_warn_on_allowed_pre_v3``. Patch by Adam Turner. Features added -------------- * 10924: LaTeX: adopt better looking defaults for tables and code-blocks. See :confval:`latex_table_style` and the ``pre_border-radius`` and ``pre_background-TeXcolor`` :ref:`additionalcss` for the former defaults and how to re-enact them if desired. Bugs fixed ---------- * 10984: LaTeX: Document :confval:`latex_additional_files` behavior for files with ``.tex`` extension. ``` ### 5.3.0 ``` ===================================== * 10759: LaTeX: add :confval:`latex_table_style` and support the ``'booktabs'``, ``'borderless'``, and ``'colorrows'`` styles. (thanks to Stefan Wiehler for initial pull requests 6666, 6671) * 10840: One can cross-reference including an option value like ``:option:`--module=foobar, ``:option:`--module[=foobar] or ``:option:`--module foobar. Patch by Martin Liska. * 10881: autosectionlabel: Record the generated section label to the debug log. * 10268: Correctly URI-escape image filenames. * 10887: domains: Allow sections in all the content of all object description directives (e.g. :rst:dir:`py:function`). Patch by Adam Turner ``` ### 5.2.3 ``` ===================================== * 10878: Fix base64 image embedding in ``sphinx.ext.imgmath`` * 10886: Add ``:nocontentsentry:`` flag and global domain table of contents entry control option. Patch by Adam Turner ``` ### 5.2.2 ``` ===================================== * 10872: Restore link targets for autodoc modules to the top of content. Patch by Dominic Davis-Foster. ``` ### 5.2.1 ``` ===================================== Bugs fixed ---------- * 10861: Always normalise the ``pycon3`` lexer to ``pycon``. * Fix using ``sphinx.ext.autosummary`` with modules containing titles in the module-level docstring. ``` ### 5.2.0.post0 ``` =========================================== * Recreated source tarballs for Debian maintainers. ``` ### 5.2.0 ``` ===================================== Dependencies ------------ * 10356: Sphinx now uses declarative metadata with ``pyproject.toml`` to create packages, using PyPA's ``flit`` project as a build backend. Patch by Adam Turner. Deprecated ---------- * 10843: Support for HTML 4 output. Patch by Adam Turner. Features added -------------- * 10738: napoleon: Add support for docstring types using 'of', like ``type of type``. Example: ``tuple of int``. * 10286: C++, support requires clauses not just between the template parameter lists and the declaration. * 10755: linkcheck: Check the source URL of raw directives that use the ``url`` option. * 10781: Allow :rst:role:`ref` role to be used with definitions and fields. * 10717: HTML Search: Increase priority for full title and subtitle matches in search results * 10718: HTML Search: Save search result score to the HTML element for debugging * 10673: Make toctree accept 'genindex', 'modindex' and 'search' docnames * 6316, 10804: Add domain objects to the table of contents. Patch by Adam Turner * 6692: HTML Search: Include explicit :rst:dir:`index` directive index entries in the search index and search results. Patch by Adam Turner * 10816: imgmath: Allow embedding images in HTML as base64 * 10854: HTML Search: Use browser localstorage for highlight control, stop storing highlight parameters in URL query strings. Patch by Adam Turner. Bugs fixed ---------- * 10723: LaTeX: 5.1.0 has made the 'sphinxsetup' ``verbatimwithframe=false`` become without effect. * 10257: C++, ensure consistent non-specialization template argument representation. * 10729: C++, fix parsing of certain non-type template parameter packs. * 10715: Revert 10520: "Fix" use of sidebar classes in ``agogo.css_t`` ``` ### 5.1.1 ``` ===================================== Bugs fixed ---------- * 10701: Fix ValueError in the new ``deque`` based ``sphinx.ext.napolean`` iterator implementation. * 10702: Restore compatability with third-party builders. ``` ### 5.1.0 ``` ===================================== Dependencies ------------ * 10656: Support `Docutils 0.19`_. Patch by Adam Turner. .. _Docutils 0.19: https://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-19-2022-07-05 Deprecated ---------- * 10467: Deprecated ``sphinx.util.stemmer`` in favour of ``snowballstemmer``. Patch by Adam Turner. * 9856: Deprecated ``sphinx.ext.napoleon.iterators``. Features added -------------- * 10444: html theme: Allow specifying multiple CSS files through the ``stylesheet`` setting in ``theme.conf`` or by setting ``html_style`` to an iterable of strings. * 10366: std domain: Add support for emphasising placeholders in :rst:dir:`option` directives through a new :confval:`option_emphasise_placeholders` configuration option. * 10439: std domain: Use the repr of some variables when displaying warnings, making whitespace issues easier to identify. * 10571: quickstart: Reduce content in the generated ``conf.py`` file. Patch by Pradyun Gedam. * 10648: LaTeX: CSS-named-alike additional :ref:`'sphinxsetup' <latexsphinxsetup>` keys allow to configure four separate border-widths, four paddings, four corner radii, a shadow (possibly inset), colours for border, background, shadow for each of the code-block, topic, attention, caution, danger, error and warning directives. * 10655: LaTeX: Explain non-standard encoding in LatinRules.xdy * 10599: HTML Theme: Wrap consecutive footnotes in an ``<aside>`` element when using Docutils 0.18 or later, to allow for easier styling. This matches the behaviour introduced in Docutils 0.19. Patch by Adam Turner. * 10518: config: Add ``include_patterns`` as the opposite of ``exclude_patterns``. Patch by Adam Turner. Bugs fixed ---------- * 10594: HTML Theme: field term colons are doubled if using Docutils 0.18+ * 10596: Build failure if Docutils version is 0.18 (not 0.18.1) due to missing ``Node.findall()`` * 10506: LaTeX: build error if highlighting inline code role in figure caption (refs: 10251) * 10634: Make -P (pdb) option work better with exceptions triggered from events * 10550: py domain: Fix spurious whitespace in unparsing various operators (``+``, ``-``, ``~``, and ``**``). Patch by Adam Turner (refs: 10551). * 10460: logging: Always show node source locations as absolute paths. * HTML Search: HTML tags are displayed as a part of object name * HTML Search: search snipets should not be folded * HTML Search: Minor errors are emitted on fetching search snipets * HTML Search: The markers for header links are shown in the search result * 10520: HTML Theme: Fix use of sidebar classes in ``agogo.css_t``. * 6679: HTML Theme: Fix inclusion of hidden toctrees in the agogo theme. * 10566: HTML Theme: Fix enable_search_shortcuts does not work * 8686: LaTeX: Text can fall out of code-block at end of page and leave artifact on next page * 10633: LaTeX: user injected ``\color`` commands in topic or admonition boxes may cause color leaks in PDF due to upstream `framed.sty <https://ctan.org/pkg/framed>`_ bug * 10638: LaTeX: framed coloured boxes in highlighted code (e.g. highlighted diffs using Pygments style ``'manni'``) inherit thickness of code-block frame * 10647: LaTeX: Only one ``\label`` is generated for ``desc_signature`` node even if it has multiple node IDs * 10579: i18n: UnboundLocalError is raised on translating raw directive * 9577, 10088: py domain: Fix warning for duplicate Python references when using ``:any:`` and autodoc. * 10548: HTML Search: fix minor summary issues. ``` ### 5.0.2 ``` ===================================== Features added -------------- * 10523: HTML Theme: Expose the Docutils's version info tuple as a template variable, ``docutils_version_info``. Patch by Adam Turner. Bugs fixed ---------- * 10538: autodoc: Inherited class attribute having docstring is documented even if :confval:`autodoc_inherit_docstring` is disabled * 10509: autosummary: autosummary fails with a shared library * 10497: py domain: Failed to resolve strings in Literal. Patch by Adam Turner. * 10523: HTML Theme: Fix double brackets on citation references in Docutils 0.18+. Patch by Adam Turner. * 10534: Missing CSS for nav.contents in Docutils 0.18+. Patch by Adam Turner. ``` ### 5.0.1 ``` ===================================== Bugs fixed ---------- * 10498: gettext: TypeError is raised when sorting warning messages if a node has no line number. Patch by Adam Turner. * 10493: HTML Theme: :dudir:`topic` directive is rendered incorrectly with Docutils 0.18. Patch by Adam Turner. * 10495: IndexError is raised for a :rst:role:`kbd` role having a separator. Patch by Adam Turner. ``` ### 5.0.0 ``` * 9575: autodoc: The annotation of return value should not be shown when ``autodoc_typehints="description"`` * 9648: autodoc: ``*args`` and ``**kwargs`` entries are duplicated when ``autodoc_typehints="description"`` * 8180: autodoc: Docstring metadata ignored for attributes * 10443: epub: EPUB builder can't detect the mimetype of .webp file * 10104: gettext: Duplicated locations are shown if 3rd party extension does not provide correct information * 10456: py domain: ``:meta:`` fields are displayed if docstring contains two or more meta-field * 9096: sphinx-build: the value of progress bar for paralle build is wrong * 10110: sphinx-build: exit code is not changed when error is raised on builder-finished event ``` ### 4.5.0 ``` ===================================== Incompatible changes -------------------- * 10112: extlinks: Disable hardcoded links detector by default * 9993, 10177: std domain: Disallow to refer an inline target via :rst:role:`ref` role Deprecated ---------- * ``sphinx.ext.napoleon.docstring.GoogleDocstring._qualify_name()`` Features added -------------- * 10260: Enable ``FORCE_COLOR`` and ``NO_COLOR`` for terminal colouring * 10234: autosummary: Add "autosummary" CSS class to summary tables * 10125: extlinks: Improve suggestion message for a reference having title * 10112: extlinks: Add :confval:`extlinks_detect_hardcoded_links` to enable hardcoded links detector feature * 9494, 9456: html search: Add a config variable :confval:`html_show_search_summary` to enable/disable the search summaries * 9337: HTML theme, add option ``enable_search_shortcuts`` that enables :kbd:`/` as a Quick search shortcut and :kbd:`Esc` shortcut that removes search highlighting. * 10107: i18n: Allow to suppress translation warnings by adding ``noqa`` comment to the tail of each translation message * 10252: C++, support attributes on classes, unions, and enums. * 10253: :rst:role:`pep` role now generates URLs based on `peps.python.org <https://peps.python.org>`_ Bugs fixed ---------- * 9876: autodoc: Failed to document an imported class that is built from native binary module * 10133: autodoc: Crashed when mocked module is used for type annotation * 10146: autodoc: :confval:`autodoc_default_options` does not support ``no-value`` option * 9971: autodoc: TypeError is raised when the target object is annotated by unhashable object * 10205: extlinks: Failed to compile regexp on checking hardcoded links * 10277: html search: Could not search short words (ex. "use") * 9529: LaTeX: named auto numbered footnote (ex. ``[named]``) that is referred multiple times was rendered to a question mark * 9924: LaTeX: multi-line :rst:dir:`cpp:function` directive has big vertical spacing in Latexpdf * 10158: LaTeX: excessive whitespace since v4.4.0 for undocumented variables/structure members * 10175: LaTeX: named footnote reference is linked to an incorrect footnote if the name is also used in the different document * 10269: manpage: Failed to resolve the title of :rst:role:`ref` cross references * 10179: i18n: suppress "rST localization" warning * 10118: imgconverter: Unnecessary availablity check is called for remote URIs * 10181: napoleon: attributes are displayed like class attributes for google style docstrings when :confval:`napoleon_use_ivar` is enabled * 10122: sphinx-build: make.bat does not check the installation of sphinx-build command before showing help ``` ### 4.4.0 ``` ===================================== Dependencies ------------ * 10007: Use ``importlib_metadata`` for python-3.9 or older * 10007: Drop ``setuptools`` Features added -------------- * 9075: autodoc: Add a config variable :confval:`autodoc_typehints_format` to suppress the leading module names of typehints of function signatures (ex. ``io.StringIO`` -> ``StringIO``) * 9831: Autosummary now documents only the members specified in a module's ``__all__`` attribute if :confval:`autosummary_ignore_module_all` is set to ``False``. The default behaviour is unchanged. Autogen also now supports this behavior with the ``--respect-module-all`` switch. * 9555: autosummary: Improve error messages on failure to load target object * 9800: extlinks: Emit warning if a hardcoded link is replaceable by an extlink, suggesting a replacement. * 9961: html: Support nested <kbd> HTML elements in other HTML builders * 10013: html: Allow to change the loading method of JS via ``loading_method`` parameter for :meth:`.Sphinx.add_js_file()` * 9551: html search: "Hide Search Matches" link removes "highlight" parameter from URL * 9815: html theme: Wrap sidebar components in div to allow customizing their layout via CSS * 9827: i18n: Sort items in glossary by translated terms * 9899: py domain: Allows to specify cross-reference specifier (``.`` and ``~``) as ``:type:`` option * 9894: linkcheck: add option ``linkcheck_exclude_documents`` to disable link checking in matched documents. * 9793: sphinx-build: Allow to use the parallel build feature in macOS on macOS and Python3.8+ * 10055: sphinx-build: Create directories when ``-w`` option given * 9993: std domain: Allow to refer an inline target (ex. ``_`target name) via :rst:role:`ref` role * 9981: std domain: Strip value part of the option directive from general index * 9391: texinfo: improve variable in ``samp`` role * 9578: texinfo: Add :confval:`texinfo_cross_references` to disable cross references for readability with standalone readers * 9822 (and 9062), add new Intersphinx role :rst:role:`external` for explict lookup in the external projects, without resolving to the local project. Bugs fixed ---------- * 9866: autodoc: doccomment for the imported class was ignored * 9883: autodoc: doccomment for the alias to mocked object was ignored * 9908: autodoc: debug message is shown on building document using NewTypes with Python 3.10 * 9968: autodoc: instance variables are not shown if __init__ method has position-only-arguments * 9194: autodoc: types under the "typing" module are not hyperlinked * 10009: autodoc: Crashes if target object raises an error on getting docstring * 10058: autosummary: Imported members are not shown when ``autodoc_class_signature = 'separated'`` * 9947: i18n: topic directive having a bullet list can't be translatable * 9878: mathjax: MathJax configuration is placed after loading MathJax itself * 9932: napoleon: empty "returns" section is generated even if no description * 9857: Generated RFC links use outdated base url * 9909: HTML, prevent line-wrapping in literal text. * 10061: html theme: Configuration values added by themes are not be able to override from conf.py * 10073: imgconverter: Unnecessary availablity check is called for "data" URIs * 9925: LaTeX: prohibit also with ``'xelatex'`` line splitting at dashes of inline and parsed literals * 9944: LaTeX: extra vertical whitespace for some nested declarations * 9940: LaTeX: Multi-function declaration in Python domain has cramped vertical spacing in latexpdf output * 10015: py domain: types under the "typing" module are not hyperlinked defined at info-field-list * 9390: texinfo: Do not emit labels inside footnotes * 9413: xml: Invalid XML was generated when cross referencing python objects * 9979: Error level messages were displayed as warning messages * 10057: Failed to scan documents if the project is placed onto the root directory * 9636: code-block: ``:dedent:`` without argument did strip newlines ``` ### 4.3.2 ``` ===================================== Bugs fixed ---------- * 9917: C and C++, parse fundamental types no matter the order of simple type specifiers. ``` ### 4.3.1 ``` ===================================== Features added -------------- * 9864: mathjax: Support chnaging the loading method of MathJax to "defer" via :confval:`mathjax_options` Bugs fixed ---------- * 9838: autodoc: AttributeError is raised on building document for functions decorated by functools.lru_cache * 9879: autodoc: AttributeError is raised on building document for an object having invalid __doc__ attribute * 9844: autodoc: Failed to process a function wrapped with functools.partial if :confval:`autodoc_preserve_defaults` enabled * 9872: html: Class namespace collision between autodoc signatures and docutils-0.17 * 9868: imgmath: Crashed if the dvisvgm command failed to convert equation * 9864: mathjax: Failed to render equations via MathJax v2. The loading method of MathJax is back to "async" method again ``` ### 4.3.0 ``` ===================================== Dependencies ------------ * Support Python 3.10 Incompatible changes -------------------- * 9649: ``searchindex.js``: the embedded data has changed format to allow objects with the same name in different domains. * 9672: The rendering of Python domain declarations is implemented with more docutils nodes to allow better CSS styling. It may break existing styling. * 9672: the signature of ``domains.python.PyObject.get_signature_prefix`` has changed to return a list of nodes instead of a plain string. * 9695: ``domains.js.JSObject.display_prefix`` has been changed into a method ``get_display_prefix`` which now returns a list of nodes instead of a plain string. * 9695: The rendering of Javascript domain declarations is implemented with more docutils nodes to allow better CSS styling. It may break existing styling. * 9450: mathjax: Load MathJax via "defer" strategy Deprecated ---------- * ``sphinx.ext.autodoc.AttributeDocumenter._datadescriptor`` * ``sphinx.writers.html.HTMLTranslator._fieldlist_row_index`` * ``sphinx.writers.html.HTMLTranslator._table_row_index`` * ``sphinx.writers.html5.HTML5Translator._fieldlist_row_index`` * ``sphinx.writers.html5.HTML5Translator._table_row_index`` Features added -------------- * 9639: autodoc: Support asynchronous generator functions * 9664: autodoc: ``autodoc-process-bases`` supports to inject reST snippet as a base class * 9691: C, added new info-field ``retval`` for :rst:dir:`c:function` and :rst:dir:`c:macro`. * C++, added new info-field ``retval`` for :rst:dir:`cpp:function`. * 9618: i18n: Add :confval:`gettext_allow_fuzzy_translations` to allow "fuzzy" messages for translation * 9672: More CSS classes on Python domain descriptions * 9695: More CSS classes on Javascript domain descriptions * 9683: Revert the removal of ``add_stylesheet()`` API. It will be kept until the Sphinx 6.0 release * 2068, add :confval:`intersphinx_disabled_reftypes` for disabling interphinx resolution of cross-references that do not have an explicit inventory specification. Specific types of cross-references can be disabled, e.g., ``std:doc`` or all cross-references in a specific domain, e.g., ``std:*``. * 9623: Allow to suppress "toctree contains reference to excluded document" warnings using :confval:`suppress_warnings` Bugs fixed ---------- * 9630: autodoc: Failed to build cross references if :confval:`primary_domain` is not 'py' * 9644: autodoc: Crashed on getting source info from problematic object * 9655: autodoc: mocked object having doc comment is warned unexpectedly * 9651: autodoc: return type field is not generated even if :confval:`autodoc_typehints_description_target` is set to "documented" when its info-field-list contains ``:returns:`` field * 9657: autodoc: The base class for a subclass of mocked object is incorrect * 9607: autodoc: Incorrect base class detection for the subclasses of the generic class * 9755: autodoc: memory addresses are shown for aliases * 9752: autodoc: Failed to detect type annotation for slots attribute * 9756: autodoc: Crashed if classmethod does not have __func__ attribute * 9757: autodoc: :confval:`autodoc_inherit_docstrings` does not effect to overridden classmethods * 9781: autodoc: :confval:`autodoc_preserve_defaults` does not support hexadecimal numeric * 9630: autosummary: Failed to build summary table if :confval:`primary_domain` is not 'py' * 9670: html: Fix download file with special characters * 9710: html: Wrong styles for even/odd rows in nested tables * 9763: html: parameter name and its type annotation are not separated in HTML * 9649: HTML search: when objects have the same name but in different domains, return all of them as result instead of just one. * 7634: intersphinx: references on the file in sub directory are broken * 9737: LaTeX: hlist is rendered as a list containing "aggedright" text * 9678: linkcheck: file extension was shown twice in warnings * 9697: py domain: An index entry with parens was registered for ``py:method`` directive with ``:property:`` option * 9775: py domain: Literal typehint was converted to a cross reference when :confval:`autodoc_typehints`\ ``='description'`` * 9708: needs_extension failed to check double-digit version correctly * 9688: Fix Sphinx patched :dudir:`code` does not recognize ``:class:`` option * 9733: Fix for logging handler flushing warnings in the middle of the docs build * 9656: Fix warnings without subtype being incorrectly suppressed * Intersphinx, for unresolved references with an explicit inventory, e.g., ``proj:myFunc``, leave the inventory prefix in the unresolved text. ``` ### 4.2.0 ``` ===================================== Features added -------------- * 9445: autodoc: Support class properties * 9479: autodoc: Emit a warning if target is a mocked object * 9560: autodoc: Allow to refer NewType instances with module name in Python 3.10 or above * 9447: html theme: Expose the version of Sphinx in the form of tuple as a template variable ``sphinx_version_tuple`` * 9594: manpage: Suppress the title of man page if description is empty * 9445: py domain: :rst:dir:`py:property` directive supports ``:classmethod:`` option to describe the class property * 9524: test: SphinxTestApp can take ``builddir`` as an argument * 9535: C and C++, support more fundamental types, including GNU extensions. Bugs fixed ---------- * 9608: apidoc: apidoc does not generate a module definition for implicit namespace package * 9504: autodoc: generate incorrect reference to the parent class if the target class inherites the class having ``_name`` attribute * 9537, 9589: autodoc: Some objects under ``typing`` module are not displayed well with the HEAD of 3.10 * 9487: autodoc: typehint for cached_property is not shown * 9509: autodoc: AttributeError is raised on failed resolving typehints * 9518: autodoc: autodoc_docstring_signature does not effect to ``__init__()`` and ``__new__()`` * 9522: autodoc: PEP 585 style typehints having arguments (ex. ``list[int]``) are not displayed well * 9481: autosummary: some warnings contain non-existing filenames * 9568: autosummary: summarise overlined sectioned headings correctly * 9600: autosummary: Type annotations which contain commas in autosummary table are not removed completely * 9481: c domain: some warnings contain non-existing filenames * 9481: cpp domain: some warnings contain non-existing filenames * 9456: html search: abbreation marks are inserted to the search result if failed to fetch the content of the page * 9617: html search: The JS requirement warning is shown if browser is slow * 9267: html theme: CSS and JS files added by theme were loaded twice * 9585: py domain: ``:type:`` option for :rst:dir:`py:property` directive does not create a hyperlink * 9576: py domain: Literal typehint was converted to a cross reference * 9535 comment: C++, fix parsing of defaulted function parameters that are function pointers. * 9564: smartquotes: don't adjust typography for text with language-highlighted ``:code:`` role. * 9512: sphinx-build: crashed with the HEAD of Python 3.10 ``` ### 4.1.2 ``` ===================================== Incompatible changes -------------------- * 9435: linkcheck: Disable checking automatically generated anchors on github.com (ex. anchors in reST/Markdown documents) Bugs fixed ---------- * 9489: autodoc: Custom types using ``typing.NewType`` are not displayed well with the HEAD of 3.10 * 9490: autodoc: Some objects under ``typing`` module are not displayed well with the HEAD of 3.10 * 9436, 9471: autodoc: crashed if ``autodoc_class_signature = "separated"`` * 9456: html search: html_copy_source can't control the search summaries * 9500: LaTeX: Failed to build Japanese document on Windows * 9435: linkcheck: Failed to check anchors in github.com ``` ### 4.1.1 ``` ===================================== Dependencies ------------ * 9434: sphinxcontrib-htmlhelp-2.0.0 or above * 9434: sphinxcontrib-serializinghtml-1.1.5 or above Bugs fixed ---------- * 9438: html: HTML logo or Favicon specified as file not being found on output ``` ### 4.1.0 ``` ===================================== Dependencies ------------ * Support jinja2-3.0 Deprecated ---------- * The ``app`` argument of ``sphinx.environment.BuildEnvironment`` becomes required * ``sphinx.application.Sphinx.html_theme`` * ``sphinx.ext.autosummary._app`` * ``sphinx.util.docstrings.extract_metadata()`` Features added -------------- * 8107: autodoc: Add ``class-doc-from`` option to :rst:dir:`autoclass` directive to control the content of the specific class like :confval:`autoclass_content` * 8588: autodoc: :confval:`autodoc_type_aliases` now supports dotted name. It allows you to define an alias for a class with module name like ``foo.bar.BazClass`` * 9175: autodoc: Special member is not documented in the module * 9195: autodoc: The arguments of ``typing.Literal`` are wrongly rendered * 9185: autodoc: :confval:`autodoc_typehints` allows ``'both'`` setting to allow typehints to be included both in the signature and description * 4257: autodoc: Add :confval:`autodoc_class_signature` to separate the class entry and the definition of ``__init__()`` method * 8061, 9218: autodoc: Support variable comment for alias classes * 3014: autodoc: Add :event:`autodoc-process-bases` to modify the base classes of the class definitions * 9272: autodoc: Render enum values for the default argument value better * 9384: autodoc: ``autodoc_typehints='none'`` now erases typehints for variables, attributes and properties * 3257: autosummary: Support instance attributes for classes * 9358: html: Add "heading" role to the toctree items * 9225: html: Add span tag to the return typehint of method/function * 9129: html search: Show search summaries when html_copy_source = False * 9307: html search: Prevent corrections and completions in search field * 9120: html theme: Eliminate prompt characters of code-block from copyable text * 9176: i18n: Emit a debug message if message catalog file not found under :confval:`locale_dirs` * 9414: LaTeX: Add xeCJKVerbAddon to default fvset config for Chinese documents * 9016: linkcheck: Support checking anchors on github.com * 9016: linkcheck: Add a new event :event:`linkcheck-process-uri` to modify URIs before checking hyperlinks * 6525: linkcheck: Add :confval:`linkcheck_allowed_redirects` to mark hyperlinks that are redirected to expected URLs as "working" * 1874: py domain: Support union types using ``|`` in info-field-list * 9268: py domain: :confval:`python_use_unqualified_type_names` supports type field in info-field-list * 9097: Optimize the parallel build * 9131: Add :confval:`nitpick_ignore_regex` to ignore nitpicky warnings using regular expressions * 9174: Add ``Sphinx.set_html_assets_policy`` to tell extensions to include HTML assets in all the pages. Extensions can check this via ``Sphinx.registry.html_assets_policy`` * C++, add support for - ``inline`` variables, - ``consteval`` functions, - ``constinit`` variables, - ``char8_t``, - ``explicit(<constant expression>)`` specifier, - digit separators in literals, and - constraints in placeholder type specifiers, aka. adjective syntax (e.g., ``Sortable auto &v``). * C, add support for digit separators in literals. * 9166: LaTeX: support containers in LaTeX output Bugs fixed ---------- * 8872: autodoc: stacked singledispatches are wrongly rendered * 8597: autodoc: a docsting having metadata only should be treated as undocumented * 9185: autodoc: typehints for overloaded functions and methods are inaccurate * 9250: autodoc: The inherited method not having docstring is wrongly parsed * 9283: autodoc: autoattribute directive failed to generate document for an attribute not having any comment * 9364: autodoc: single element tuple on the default argument value is wrongly rendered * 9362: autodoc: AttributeError is raised on processing a subclass of Tuple[()] * 9404: autodoc: TypeError is raised on processing dict-like object (not a class) via autoclass directive * 9317: html: Pushing left key causes visiting the next page at the first page * 9381: html: URL for html_favicon and html_log does not work * 9270: html theme : pyramid theme generates incorrect logo links * 9217: manpage: The name of manpage directory that is generated by :confval:`man_make_section_directory` is not correct * 9350: manpage: Fix font isn't reset after keyword at the top of samp role * 9306: Linkcheck reports broken link when remote server closes the connection on HEAD request * 9280: py domain: "exceptions" module is not displayed * 9418: py domain: a Callable annotation with no parameters (e.g. ``Callable[[], None])`` will be rendered with a bracket missing (``Callable[], None]``) * 9319: quickstart: Make sphinx-quickstart exit when conf.py already exists * 9387: xml: XML Builder ignores custom visitors * 9224: ``:param:`` and ``:type:`` fields does not support a type containing whitespace (ex. ``Dict[str, str]``) * 8945: when transforming typed fields, call the specified role instead of making an single xref. For C and C++, use the ``expr`` role for typed fields. ``` ### 4.0.3 ``` ===================================== Features added -------------- * C, add C23 keywords ``_Decimal32``, ``_Decimal64``, and ``_Decimal128``. * 9354: C, add :confval:`c_extra_keywords` to allow user-defined keywords during parsing. * Revert the removal of ``sphinx.util:force_decode()`` to become some 3rd party extensions available again during 5.0 Bugs fixed ---------- * 9330: changeset domain: :rst:dir:`versionchanged` with contents being a list will cause error during pdf build * 9313: LaTeX: complex table with merged cells broken since 4.0 * 9305: LaTeX: backslash may cause Improper discretionary list pdf build error with Japanese engines * 9354: C, remove special macro names from the keyword list. See also :confval:`c_extra_keywords`. * 9322: KeyError is raised on PropagateDescDomain transform ``` ### 4.0.2 ``` ===================================== Dependencies ------------ * 9216: Support jinja2-3.0 Incompatible changes -------------------- * 9222: Update Underscore.js to 1.13.1 * 9217: manpage: Stop creating a section directory on build manpage by default (see :confval:`man_make_section_directory`) Bugs fixed ---------- * 9210: viewcode: crashed if non importable modules found on parallel build * 9240: Unknown node error for pending_xref_condition is raised if an extension that does not support the node installs a missing-reference handler ``` ### 4.0.1 ``` ===================================== Bugs fixed ---------- * 9189: autodoc: crashed when ValueError is raised on generating signature from a property of the class * 9188: autosummary: warning is emitted if list value is set to autosummary_generate * 8380: html search: tags for search result are broken * 9198: i18n: Babel emits errors when running compile_catalog * 9205: py domain: The :canonical: option causes "more than one target for cross-reference" warning * 9201: websupport: UndefinedError is raised: 'css_tag' is undefined ``` ### 4.0.0 ``` ===================================== Dependencies ------------ ``` ### 4.0.0b3 ``` * 9167: html: Failed to add CSS files to the specific page ``` ### 4.0.0b2 ``` * C, C++, fix ``KeyError`` when an ``alias`` directive is the first C/C++ directive in a file with another C/C++ directive later. ``` ### 4.0.0b1 ``` * 8917: autodoc: Raises a warning if function has wrong __globals__ value * 8415: autodoc: a TypeVar imported from other module is not resolved (in Python 3.7 or above) * 8992: autodoc: Failed to resolve types.TracebackType type annotation * 8905: html: html_add_permalinks=None and html_add_permalinks="" are ignored * 8380: html search: Paragraphs in search results are not identified as ``<p>`` * 8915: html theme: The translation of sphinx_rtd_theme does not work * 8342: Emit a warning if a unknown domain is given for directive or role (ex. ``:unknown:doc:``) * 7241: LaTeX: No wrapping for ``cpp:enumerator`` * 8711: LaTeX: backticks in code-blocks trigger latexpdf build warning (and font change) with late TeXLive 2019 * 8253: LaTeX: Figures with no size defined get overscaled (compared to images with size explicitly set in pixels) (fixed for ``'pdflatex'/'lualatex'`` only) * 8881: LaTeX: The depth of bookmarks panel in PDF is not enough for navigation * 8874: LaTeX: the fix to two minor Pygments LaTeXFormatter output issues ignore Pygments style * 8925: LaTeX: 3.5.0 ``verbatimmaxunderfull`` setting does not work as expected * 8980: LaTeX: missing line break in ``\pysigline`` * 8995: LaTeX: legacy ``\pysiglinewithargsret`` does not compute correctly available horizontal space and should use a ragged right style * 9009: LaTeX: "release" value with underscore leads to invalid LaTeX * 8911: C++: remove the longest matching prefix in :confval:`cpp_index_common_prefix` instead of the first that matches. * C, properly reject function declarations when a keyword is used as parameter name. * 8933: viewcode: Failed to create back-links on parallel build * 8960: C and C++, fix rendering of (member) function pointer types in function parameter lists. * C++, fix linking of names in array declarators, pointer to member (function) declarators, and in the argument to ``sizeof...``. * C, fix linking of names in array declarators. ``` ### 3.5.5 ``` ============================== ``` ### 3.5.4 ``` ===================================== Dependencies ------------ * 9071: Restrict docutils to 0.16 Bugs fixed ---------- * 9078: autodoc: Async staticmethods and classmethods are considered as non async coroutine-functions with Python3.10 * 8870, 9001, 9051: html theme: The style are not applied with docutils-0.17 - toctree captions - The content of ``sidebar`` directive - figures ``` ### 3.5.3 ``` ===================================== Features added -------------- * 8959: using UNIX path separator in image directive confuses Sphinx on Windows ``` ### 3.5.2 ``` ===================================== Bugs fixed ---------- * 8943: i18n: Crashed by broken translation messages in ES, EL and HR * 8936: LaTeX: A custom LaTeX builder fails with unknown node error * 8952: Exceptions raised in a Directive cause parallel builds to hang ``` ### 3.5.1 ``` ===================================== Bugs fixed ---------- * 8883: autodoc: AttributeError is raised on assigning __annotations__ on read-only class * 8884: html: minified js stemmers not included in the distributed package * 8885: html: AttributeError is raised if CSS/JS files are installed via :confval:`html_context` * 8880: viewcode: ExtensionError is raised on incremental build after unparsable python module found ``` ### 3.5.0 ``` ===================================== Dependencies ------------ * LaTeX: ``multicol`` (it is anyhow a required part of the official latex2e base distribution) Incompatible changes -------------------- * Update Underscore.js to 1.12.0 * 6550: html: The config variable ``html_add_permalinks`` is replaced by :confval:`html_permalinks` and :confval:`html_permalinks_icon` Deprecated ---------- * pending_xref node for viewcode extension * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.anchors_ignore`` * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.auth`` * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.broken`` * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.good`` * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.redirected`` * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.rqueue`` * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.to_ignore`` * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.workers`` * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.wqueue`` * ``sphinx.builders.linkcheck.node_line_or_0()`` * ``sphinx.ext.autodoc.AttributeDocumenter.isinstanceattribute()`` * ``sphinx.ext.autodoc.directive.DocumenterBridge.reporter`` * ``sphinx.ext.autodoc.importer.get_module_members()`` * ``sphinx.ext.autosummary.generate._simple_info()`` * ``sphinx.ext.autosummary.generate._simple_warn()`` * ``sphinx.writers.html.HTMLTranslator.permalink_text`` * ``sphinx.writers.html5.HTML5Translator.permalink_text`` Features added -------------- * 8022: autodoc: autodata and autoattribute directives does not show right-hand value of the variable if docstring contains ``:meta hide-value:`` in info-field-list * 8514: autodoc: Default values of overloaded functions are taken from actual implementation if they're ellipsis * 8775: autodoc: Support type union operator (PEP-604) in Python 3.10 or above * 8297: autodoc: Allow to extend :confval:`autodoc_default_options` via directive options * 759: autodoc: Add a new configuration :confval:`autodoc_preserve_defaults` as an experimental feature. It preserves the default argument values of functions in source code and keep them not evaluated for readability. * 8619: html: kbd role generates customizable HTML tags for compound keys * 8634: html: Allow to change the order of JS/CSS via ``priority`` parameter for :meth:`.Sphinx.add_js_file()` and :meth:`.Sphinx.add_css_file()` * 6241: html: Allow to add JS/CSS files to the specific page when an extension calls ``app.add_js_file()`` or ``app.add_css_file()`` on :event:`html-page-context` event * 6550: html: Allow to use HTML permalink texts via :confval:`html_permalinks_icon` * 1638: html: Add permalink icons to glossary terms * 8868: html search: performance issue with massive lists * 8867: html search: Update JavaScript stemmer code to the latest version of Snowball (v2.1.0) * 8852: i18n: Allow to translate heading syntax in MyST-Parser * 8649: imgconverter: Skip availability check if builder supports the image type * 8573: napoleon: Allow to change the style of custom sections using :confval:`napoleon_custom_sections` * 8004: napoleon: Type definitions in Google style docstrings are rendered as references when :confval:`napoleon_preprocess_types` enabled * 6241: mathjax: Include mathjax.js only on the document using equations * 8775: py domain: Support type union operator (PEP-604) * 8651: std domain: cross-reference for a rubric having inline item is broken * 7642: std domain: Optimize case-insensitive match of term * 8681: viewcode: Support incremental build * 8132: Add :confval:`project_copyright` as an alias of :confval:`copyright` * 207: Now :confval:`highlight_language` supports multiple languages * 2030: :rst:dir:`code-block` and :rst:dir:`literalinclude` supports automatic dedent via no-argument ``:dedent:`` option * C++, also hyperlink operator overloads in expressions and alias declarations. * 8247: Allow production lists to refer to tokens from other production groups * 8813: Show what extension (or module) caused it on errors on event handler * 8213: C++: add ``maxdepth`` option to :rst:dir:`cpp:alias` to insert nested declarations. * C, add ``noroot`` option to :rst:dir:`c:alias` to render only nested declarations. * C++, add ``noroot`` option to :rst:dir:`cpp:alias` to render only nested declarations. Bugs fixed ---------- * 8727: apidoc: namespace module file is not generated if no submodules there * 741: autodoc: inherited-members doesn't work for instance attributes on super class * 8592: autodoc: ``:meta public:`` does not effect to variables * 8594: autodoc: empty __all__ attribute is ignored * 8315: autodoc: Failed to resolve struct.Struct type annotation * 8652: autodoc: All variable comments in the module are ignored if the module contains invalid type comments * 8693: autodoc: Default values for overloaded functions are rendered as string * 8134: autodoc: crashes when mocked decorator takes arguments * 8800: autodoc: Uninitialized attributes in superclass are recognized as undocumented * 8655: autodoc: Failed to generate document if target module contains an object that raises an exception on ``hasattr()`` * 8306: autosummary: mocked modules are documented as empty page when using :recursive: option * 8232: graphviz: Image node is not rendered if graph file is in subdirectory * 8618: html: kbd role produces incorrect HTML when compound-key separators (-, + or ^) are used as keystrokes * 8629: html: A type warning for html_use_opensearch is shown twice * 8714: html: kbd role with "Caps Lock" rendered incorrectly * 8123: html search: fix searching for terms containing + (Requires a custom search language that does not split on +) * 8665: html theme: Could not override globaltoc_maxdepth in theme.conf * 8446: html: consecutive spaces are displayed as single space * 8745: i18n: crashes with KeyError when translation message adds a new auto footnote reference * 4304: linkcheck: Fix race condition that could lead to checking the availability of the same URL twice * 8791: linkcheck: The docname for each hyperlink is not displayed * 7118: sphinx-quickstart: questionare got Mojibake if libreadline unavailable * 8094: texinfo: image files on the different directory with document are not copied * 8782: todo: Cross references in todolist get broken * 8720: viewcode: module pages are generated for epub on incremental build * 8704: viewcode: anchors are generated in incremental build after singlehtml * 8756: viewcode: highlighted code is generated even if not referenced * 8671: :confval:`highlight_options` is not working * 8341: C, fix intersphinx lookup types for names in declarations. * C, C++: in general fix intersphinx and role lookup types. * 8683: :confval:`html_last_updated_fmt` does not support UTC offset (%z) * 8683: :confval:`html_last_updated_fmt` generates wrong time zone for %Z * 1112: ``download`` role creates duplicated copies when relative path is specified * 2616 (fifth item): LaTeX: footnotes from captions are not clickable, and for manually numbered footnotes only first one with same number is an hyperlink * 7576: LaTeX with French babel and memoir crash: "Illegal parameter number in definition of ``\FNHprefntext``" * 8055: LaTeX (docs): A potential display bug with the LaTeX generation step in Sphinx (how to generate one-column index) * 8072: LaTeX: Directive :rst:dir:`hlist` not implemented in LaTeX * 8214: LaTeX: The :rst:role:`index` role and the glossary generate duplicate entries in the LaTeX index (if both used for same term) * 8735: LaTeX: wrong internal links in pdf to captioned code-blocks when :confval:`numfig` is not True * 8442: LaTeX: some indexed terms are ignored when using xelatex engine (or pdflatex and :confval:`latex_use_xindy` set to True) with memoir class * 8750: LaTeX: URLs as footnotes fail to show in PDF if originating from inside function type signatures * 8780: LaTeX: long words in narrow columns may not be hyphenated * 8788: LaTeX: ``\titleformat`` last argument in sphinx.sty should be bracketed, not braced (and is anyhow not needed) * 8849: LaTex: code-block printed out of margin (see the opt-in LaTeX syntax boolean :ref:`verbatimforcewraps <latexsphinxsetupforcewraps>` for use via the :ref:`'sphinxsetup' <latexsphinxsetup>` key of ``latex_elements``) * 8183: LaTeX: Remove substitution_reference nodes from doctree only on LaTeX builds * 8865: LaTeX: Restructure the index nodes inside title nodes only on LaTeX builds * 8796: LaTeX: potentially critical low level TeX coding mistake has gone unnoticed so far * C, :rst:dir:`c:alias` skip symbols without explicit declarations instead of crashing. * C, :rst:dir:`c:alias` give a warning when the root symbol is not declared. * C, ``expr`` role should start symbol lookup in the current scope. ``` ### 3.4.3 ``` ===================================== Bugs fixed ---------- * 8655: autodoc: Failed to generate document if target module contains an object that raises an exception on ``hasattr()`` ``` ### 3.4.2 ``` ===================================== Bugs fixed ---------- * 8164: autodoc: Classes that inherit mocked class are not documented * 8602: autodoc: The ``autodoc-process-docstring`` event is emitted to the non-datadescriptors unexpectedly * 8616: autodoc: AttributeError is raised on non-class object is passed to autoclass directive ``` ### 3.4.1 ``` ===================================== Bugs fixed ---------- * 8559: autodoc: AttributeError is raised when using forward-reference type annotations * 8568: autodoc: TypeError is raised on checking slots attribute * 8567: autodoc: Instance attributes are incorrectly added to Parent class * 8566: autodoc: The ``autodoc-process-docstring`` event is emitted to the alias classes unexpectedly * 8583: autodoc: Unnecessary object comparison via ``__eq__`` method * 8565: linkcheck: Fix PriorityQueue crash when link tuples are not comparable ``` ### 3.4.0 ``` ===================================== Incompatible changes -------------------- * 8105: autodoc: the signature of class constructor will be shown for decorated classes, not a signature of decorator Deprecated ---------- * The ``follow_wrapped`` argument of ``sphinx.util.inspect.signature()`` * The ``no_docstring`` argument of ``sphinx.ext.autodoc.Documenter.add_content()`` * ``sphinx.ext.autodoc.Documenter.get_object_members()`` * ``sphinx.ext.autodoc.DataDeclarationDocumenter`` * ``sphinx.ext.autodoc.GenericAliasDocumenter`` * ``sphinx.ext.autodoc.InstanceAttributeDocumenter`` * ``sphinx.ext.autodoc.SlotsAttributeDocumenter`` * ``sphinx.ext.autodoc.TypeVarDocumenter`` * ``sphinx.ext.autodoc.importer._getannotations()`` * ``sphinx.ext.autodoc.importer._getmro()`` * ``sphinx.pycode.ModuleAnalyzer.parse()`` * ``sphinx.util.osutil.movefile()`` * ``sphinx.util.requests.is_ssl_error()`` Features added -------------- * 8119: autodoc: Allow to determine whether a member not included in ``__all__`` attribute of the module should be documented or not via :event:`autodoc-skip-member` event * 8219: autodoc: Parameters for generic class are not shown when super class is a generic class and show-inheritance option is given (in Python 3.7 or above) * autodoc: Add ``Documenter.config`` as a shortcut to access the config object * autodoc: Add Optional[t] to annotation of function and method if a default value equal to None is set. * 8209: autodoc: Add ``:no-value:`` option to :rst:dir:`autoattribute` and :rst:dir:`autodata` directive to suppress the default value of the variable * 8460: autodoc: Support custom types defined by typing.NewType * 8285: napoleon: Add :confval:`napoleon_attr_annotations` to merge type hints on source code automatically if any type is specified in docstring * 8236: napoleon: Support numpydoc's "Receives" section * 6914: Add a new event :event:`warn-missing-reference` to custom warning messages when failed to resolve a cross-reference * 6914: Emit a detailed warning when failed to resolve a ``:ref:`` reference * 6629: linkcheck: The builder now handles rate limits. See :confval:`linkcheck_rate_limit_timeout` for details. Bugs fixed ---------- * 7613: autodoc: autodoc does not respect __signature__ of the class * 4606: autodoc: the location of the warning is incorrect for inherited method * 8105: autodoc: the signature of class constructor is incorrect if the class is decorated * 8434: autodoc: :confval:`autodoc_type_aliases` does not effect to variables and attributes * 8443: autodoc: autodata directive can't create document for PEP-526 based type annotated variables * 8443: autodoc: autoattribute directive can't create document for PEP-526 based uninitialized variables * 8480: autodoc: autoattribute could not create document for __slots__ attributes * 8503: autodoc: autoattribute could not create document for a GenericAlias as class attributes correctly * 8534: autodoc: autoattribute could not create document for a commented attribute in alias class * 8452: autodoc: autodoc_type_aliases doesn't work when autodoc_typehints is set to "description" * 8541: autodoc: autodoc_type_aliases doesn't work for the type annotation to instance attributes * 8460: autodoc: autodata and autoattribute directives do not display type information of TypeVars * 8493: autodoc: references to builtins not working in class aliases * 8522: autodoc: ``__bool__`` method could be called * 8067: autodoc: A typehint for the instance variable having type_comment on super class is not displayed * 8545: autodoc: a __slots__ attribute is not documented even having docstring * 741: autodoc: inherited-members doesn't work for instance attributes on super class * 8477: autosummary: non utf-8 reST files are generated when template contains multibyte characters * 8501: autosummary: summary extraction splits text after "el at." unexpectedly * 8524: html: Wrong url_root has been generated on a document named "index" * 8419: html search: Do not load ``language_data.js`` in non-search pages * 8549: i18n: ``-D gettext_compact=0`` is no longer working * 8454: graphviz: The layout option for graph and digraph directives don't work * 8131: linkcheck: Use GET when HEAD requests cause Too Many Redirects, to accommodate infinite redirect loops on HEAD * 8437: Makefile: ``make clean`` with empty BUILDDIR is dangerous * 8365: py domain: ``:type:`` and ``:rtype:`` gives false ambiguous class lookup warnings * 8352: std domain: Failed to parse an option that starts with bracket * 8519: LaTeX: Prevent page brake in the middle of a seealso * 8520: C, fix copying of AliasNode. ``` ### 3.3.1 ``` ===================================== Bugs fixed ---------- * 8372: autodoc: autoclass directive became slower than Sphinx 3.2 * 7727: autosummary: raise PycodeError when documenting python package without __init__.py * 8350: autosummary: autosummary_mock_imports causes slow down builds * 8364: C, properly initialize attributes in empty symbols. * 8399: i18n: Put system locale path after the paths specified by configuration ``` ### 3.3.0 ``` ===================================== Deprecated ---------- * ``sphinx.builders.latex.LaTeXBuilder.usepackages`` * ``sphinx.builders.latex.LaTeXBuilder.usepackages_afger_hyperref`` * ``sphinx.ext.autodoc.SingledispatchFunctionDocumenter`` * ``sphinx.ext.autodoc.SingledispatchMet