Changelog
### 7.1.1
```
=====================================
Bugs fixed
----------
* 11514: Fix ``SOURCE_DATE_EPOCH`` in multi-line copyright footer.
Patch by Bénédikt Tran.
```
### 7.1.0
```
=====================================
Incompatible changes
--------------------
* Releases are no longer signed, given the `change in PyPI policy`_.
.. _change in PyPI policy: https://blog.pypi.org/posts/2023-05-23-removing-pgp/
Deprecated
----------
* 11412: Emit warnings on using a deprecated Python-specific index entry type
(namely, ``module``, ``keyword``, ``operator``, ``object``, ``exception``,
``statement``, and ``builtin``) in the :rst:dir:`index` directive, and
set the removal version to Sphinx 9. Patch by Adam Turner.
Features added
--------------
* 11415: Add a checksum to JavaScript and CSS asset URIs included within
generated HTML, using the CRC32 algorithm.
* :meth:`~sphinx.application.Sphinx.require_sphinx` now allows the version
requirement to be specified as ``(major, minor)``.
* 11011: Allow configuring a line-length limit for object signatures, via
:confval:`maximum_signature_line_length` and the domain-specific variants.
If the length of the signature (in characters) is greater than the configured
limit, each parameter in the signature will be split to its own logical line.
This behaviour may also be controlled by options on object description
directives, for example :rst:dir:`py:function:single-line-parameter-list`.
Patch by Thomas Louf, Adam Turner, and Jean-François B.
* 10983: Support for multiline copyright statements in the footer block.
Patch by Stefanie Molin
* ``sphinx.util.display.status_iterator`` now clears the current line
with ANSI control codes, rather than overprinting with space characters.
* 11431: linkcheck: Treat SSL failures as broken links.
Patch by Bénédikt Tran
* 11157: Keep the ``translated`` attribute on translated nodes.
* 11451: Improve the traceback displayed when using :option:`sphinx-build -T`
in parallel builds. Patch by Bénédikt Tran
* 11324: linkcheck: Use session-basd HTTP requests.
* 11438: Add support for the :rst:dir:`py:class` and :rst:dir:`py:function`
directives for PEP 695 (generic classes and functions declarations) and
PEP 696 (default type parameters). Multi-line support (11011) is enabled
for type parameters list and can be locally controlled on object description
directives, e.g., :rst:dir:`py:function:single-line-type-parameter-list`.
Patch by Bénédikt Tran.
* 11484: linkcheck: Allow HTML anchors to be ignored on a per-URL basis
via :confval:`linkcheck_anchors_ignore_for_url` while
still checking the validity of the page itself.
Patch by Bénédikt Tran
* 1246: Add translation progress statistics and inspection support,
via a new substitution (``|translation progress|``) and a new
configuration variable (:confval:`translation_progress_classes`).
These enable determining the percentage of translated elements within
a document, and the remaining translated and untranslated elements.
Bugs fixed
----------
* Restored the ``footnote-reference`` class that has been removed in
the latest (unreleased) version of Docutils.
* 11486: Use :rfc:`8081` font file MIME types in the EPUB builder.
Using the correct MIME type will prevent warnings from ``epubcheck``
and will generate a valid EPUB.
* 11435: Use microsecond-resolution timestamps for outdated file detection
in ``BuildEnvironment.get_outdated_files``.
* 11437: Top-level headings starting with a reStructuredText role
now render properly when :confval:`rst_prolog` is set.
Previously, a file starting with the below would have
improperly rendered due to where the prologue text
was inserted into the document.
.. code:: rst
:mod:`lobster` -- The lobster module
====================================
...
Patch by Bénédikt Tran.
* 11337: Fix a ``MemoryError`` in ``sphinx.ext.intersphinx`` when using ``None``
or ``typing.*`` as inline type references. Patch by Bénédikt Tran (picnixz)
Testing
-------
* 11345: Always delete ``docutils.conf`` in test directories when running
``SphinxTestApp.cleanup()``.
```
### 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
This PR updates Sphinx from 3.0.4 to 7.1.1.
Changelog
### 7.1.1 ``` ===================================== Bugs fixed ---------- * 11514: Fix ``SOURCE_DATE_EPOCH`` in multi-line copyright footer. Patch by Bénédikt Tran. ``` ### 7.1.0 ``` ===================================== Incompatible changes -------------------- * Releases are no longer signed, given the `change in PyPI policy`_. .. _change in PyPI policy: https://blog.pypi.org/posts/2023-05-23-removing-pgp/ Deprecated ---------- * 11412: Emit warnings on using a deprecated Python-specific index entry type (namely, ``module``, ``keyword``, ``operator``, ``object``, ``exception``, ``statement``, and ``builtin``) in the :rst:dir:`index` directive, and set the removal version to Sphinx 9. Patch by Adam Turner. Features added -------------- * 11415: Add a checksum to JavaScript and CSS asset URIs included within generated HTML, using the CRC32 algorithm. * :meth:`~sphinx.application.Sphinx.require_sphinx` now allows the version requirement to be specified as ``(major, minor)``. * 11011: Allow configuring a line-length limit for object signatures, via :confval:`maximum_signature_line_length` and the domain-specific variants. If the length of the signature (in characters) is greater than the configured limit, each parameter in the signature will be split to its own logical line. This behaviour may also be controlled by options on object description directives, for example :rst:dir:`py:function:single-line-parameter-list`. Patch by Thomas Louf, Adam Turner, and Jean-François B. * 10983: Support for multiline copyright statements in the footer block. Patch by Stefanie Molin * ``sphinx.util.display.status_iterator`` now clears the current line with ANSI control codes, rather than overprinting with space characters. * 11431: linkcheck: Treat SSL failures as broken links. Patch by Bénédikt Tran * 11157: Keep the ``translated`` attribute on translated nodes. * 11451: Improve the traceback displayed when using :option:`sphinx-build -T` in parallel builds. Patch by Bénédikt Tran * 11324: linkcheck: Use session-basd HTTP requests. * 11438: Add support for the :rst:dir:`py:class` and :rst:dir:`py:function` directives for PEP 695 (generic classes and functions declarations) and PEP 696 (default type parameters). Multi-line support (11011) is enabled for type parameters list and can be locally controlled on object description directives, e.g., :rst:dir:`py:function:single-line-type-parameter-list`. Patch by Bénédikt Tran. * 11484: linkcheck: Allow HTML anchors to be ignored on a per-URL basis via :confval:`linkcheck_anchors_ignore_for_url` while still checking the validity of the page itself. Patch by Bénédikt Tran * 1246: Add translation progress statistics and inspection support, via a new substitution (``|translation progress|``) and a new configuration variable (:confval:`translation_progress_classes`). These enable determining the percentage of translated elements within a document, and the remaining translated and untranslated elements. Bugs fixed ---------- * Restored the ``footnote-reference`` class that has been removed in the latest (unreleased) version of Docutils. * 11486: Use :rfc:`8081` font file MIME types in the EPUB builder. Using the correct MIME type will prevent warnings from ``epubcheck`` and will generate a valid EPUB. * 11435: Use microsecond-resolution timestamps for outdated file detection in ``BuildEnvironment.get_outdated_files``. * 11437: Top-level headings starting with a reStructuredText role now render properly when :confval:`rst_prolog` is set. Previously, a file starting with the below would have improperly rendered due to where the prologue text was inserted into the document. .. code:: rst :mod:`lobster` -- The lobster module ==================================== ... Patch by Bénédikt Tran. * 11337: Fix a ``MemoryError`` in ``sphinx.ext.intersphinx`` when using ``None`` or ``typing.*`` as inline type references. Patch by Bénédikt Tran (picnixz) Testing ------- * 11345: Always delete ``docutils.conf`` in test directories when running ``SphinxTestApp.cleanup()``. ``` ### 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