Release 3.2.0 (in development) ============================== Dependencies ------------ Incompatible changes -------------------- Deprecated ---------- Features added -------------- Bugs fixed ---------- * #7715: LaTeX: ``numfig_secnum_depth > 1`` leads to wrong figure links Testing -------- Release 3.1.1 (in development) ============================== Dependencies ------------ Incompatible changes -------------------- Deprecated ---------- Features added -------------- Bugs fixed ---------- * #7811: sphinx.util.inspect causes circular import problem Testing -------- Release 3.1.0 (released Jun 08, 2020) ===================================== Dependencies ------------ * #7746: mathjax: Update to 2.7.5 Incompatible changes -------------------- * #7477: imgconverter: Invoke "magick convert" command by default on Windows Deprecated ---------- * The first argument for sphinx.ext.autosummary.generate.AutosummaryRenderer has been changed to Sphinx object * ``sphinx.ext.autosummary.generate.AutosummaryRenderer`` takes an object type as an argument * The ``ignore`` argument of ``sphinx.ext.autodoc.Documenter.get_doc()`` * The ``template_dir`` argument of ``sphinx.ext.autosummary.generate. AutosummaryRenderer`` * The ``module`` argument of ``sphinx.ext.autosummary.generate. find_autosummary_in_docstring()`` * The ``builder`` argument of ``sphinx.ext.autosummary.generate. generate_autosummary_docs()`` * The ``template_dir`` argument of ``sphinx.ext.autosummary.generate. generate_autosummary_docs()`` * The ``ignore`` argument of ``sphinx.util.docstring.prepare_docstring()`` * ``sphinx.ext.autosummary.generate.AutosummaryRenderer.exists()`` * ``sphinx.util.rpartition()`` Features added -------------- * LaTeX: Make the ``toplevel_sectioning`` setting optional in LaTeX theme * LaTeX: Allow to override papersize and pointsize from LaTeX themes * LaTeX: Add :confval:`latex_theme_options` to override theme options * #7410: Allow to suppress "circular toctree references detected" warnings using :confval:`suppress_warnings` * C, added scope control directives, :rst:dir:`c:namespace`, :rst:dir:`c:namespace-push`, and :rst:dir:`c:namespace-pop`. * #2044: autodoc: Suppress default value for instance attributes * #7473: autodoc: consider a member public if docstring contains ``:meta public:`` in info-field-list * #7487: autodoc: Allow to generate docs for singledispatch functions by py:autofunction * #7143: autodoc: Support final classes and methods * #7384: autodoc: Support signatures defined by ``__new__()``, metaclasses and builtin base classes * #2106: autodoc: Support multiple signatures on docstring * #4422: autodoc: Support GenericAlias in Python 3.7 or above * #3610: autodoc: Support overloaded functions * #7722: autodoc: Support TypeVar * #7466: autosummary: headings in generated documents are not translated * #7490: autosummary: Add ``:caption:`` option to autosummary directive to set a caption to the toctree * #7469: autosummary: Support module attributes * #248, #6040: autosummary: Add ``:recursive:`` option to autosummary directive to generate stub files recursively * #4030: autosummary: Add :confval:`autosummary_context` to add template variables for custom templates * #7530: html: Support nested elements * #7481: html theme: Add right margin to footnote/citation labels * #7482, #7717: html theme: CSS spacing for code blocks with captions and line numbers * #7443: html theme: Add new options :confval:`globaltoc_collapse` and :confval:`globaltoc_includehidden` to control the behavior of globaltoc in sidebar * #7484: html theme: Avoid clashes between sidebar and other blocks * #7476: html theme: Relbar breadcrumb should contain current page * #7506: html theme: A canonical URL is not escaped * #7533: html theme: Avoid whitespace at the beginning of genindex.html * #7541: html theme: Add a "clearer" at the end of the "body" * #7542: html theme: Make admonition/topic/sidebar scrollable * #7543: html theme: Add top and bottom margins to tables * #7695: html theme: Add viewport meta tag for basic theme * #7721: html theme: classic: default codetextcolor/codebgcolor doesn't override Pygments * C and C++: allow semicolon in the end of declarations. * C++, parse parameterized noexcept specifiers. * #7294: C++, parse expressions with user-defined literals. * C++, parse trailing return types. * #7143: py domain: Add ``:final:`` option to :rst:dir:`py:class:`, :rst:dir:`py:exception:` and :rst:dir:`py:method:` directives * #7596: py domain: Change a type annotation for variables to a hyperlink * #7770: std domain: :rst:dir:`option` directive support arguments in the form of ``foo[=bar]`` * #7582: napoleon: a type for attribute are represented like type annotation * #7734: napoleon: overescaped trailing underscore on attribute * #7247: linkcheck: Add :confval:`linkcheck_request_headers` to send custom HTTP headers for specific host * #7792: setuptools: Support ``--verbosity`` option * #7683: Add ``allowed_exceptions`` parameter to ``Sphinx.emit()`` to allow handlers to raise specified exceptions * #7295: C++, parse (trailing) requires clauses. Bugs fixed ---------- * #6703: autodoc: incremental build does not work for imported objects * #7564: autodoc: annotations not to be shown for descriptors * #6588: autodoc: Decorated inherited method has no documentation * #7469: autodoc: The change of autodoc-process-docstring for variables is cached unexpectedly * #7559: autodoc: misdetects a sync function is async * #6857: autodoc: failed to detect a classmethod on Enum class * #7562: autodoc: a typehint contains spaces is wrongly rendered under autodoc_typehints='description' mode * #7551: autodoc: failed to import nested class * #7362: autodoc: does not render correct signatures for built-in functions * #7654: autodoc: ``Optional[Union[foo, bar]]`` is presented as ``Union[foo, bar, None]`` * #7629: autodoc: autofunction emits an unfriendly warning if an invalid object specified * #7650: autodoc: undecorated signature is shown for decorated functions * #7676: autodoc: typo in the default value of autodoc_member_order * #7676: autodoc: wrong value for :member-order: option is ignored silently * #7676: autodoc: member-order="bysource" does not work for C module * #3673: autodoc: member-order="bysource" does not work for a module having __all__ * #7668: autodoc: wrong retann value is passed to a handler of autodoc-proccess-signature * #7711: autodoc: fails with ValueError when processing numpy objects * #7791: autodoc: TypeError is raised on documenting singledispatch function * #7551: autosummary: a nested class is indexed as non-nested class * #7661: autosummary: autosummary directive emits warnings twices if failed to import the target module * #7685: autosummary: The template variable "members" contains imported members even if :confval:`autossummary_imported_members` is False * #7671: autosummary: The location of import failure warning is missing * #7535: sphinx-autogen: crashes when custom template uses inheritance * #7536: sphinx-autogen: crashes when template uses i18n feature * #7781: sphinx-build: Wrong error message when outdir is not directory * #7653: sphinx-quickstart: Fix multiple directory creation for nested relpath * #2785: html: Bad alignment of equation links * #7718: html theme: some themes does not respect background color of Pygments style (agogo, haiku, nature, pyramid, scrolls, sphinxdoc and traditional) * #7544: html theme: inconsistent padding in admonitions * #7581: napoleon: bad parsing of inline code in attribute docstrings * #7628: imgconverter: runs imagemagick once unnecessary for builders not supporting images * #7610: incorrectly renders consecutive backslashes for docutils-0.16 * #7646: handle errors on event handlers * #4187: LaTeX: EN DASH disappears from PDF bookmarks in Japanese documents * #7701: LaTeX: Anonymous indirect hyperlink target causes duplicated labels * #7723: LaTeX: pdflatex crashed when URL contains a single quote * #7756: py domain: The default value for positional only argument is not shown * #7760: coverage: Add :confval:`coverage_show_missing_items` to show coverage result to console * C++, fix rendering and xrefs in nested names explicitly starting in global scope, e.g., ``::A::B``. * C, fix rendering and xrefs in nested names explicitly starting in global scope, e.g., ``.A.B``. * #7763: C and C++, don't crash during display stringification of unary expressions and fold expressions. Release 3.0.5 (in development) ============================== Release 3.0.4 (released May 27, 2020) ===================================== Bugs fixed ---------- * #7567: autodoc: parametrized types are shown twice for generic types * #7637: autodoc: system defined TypeVars are shown in Python 3.9 * #7696: html: Updated jQuery version from 3.4.1 to 3.5.1 for security reasons * #7611: md5 fails when OpenSSL FIPS is enabled * #7626: release package does not contain ``CODE_OF_CONDUCT`` Release 3.0.3 (released Apr 26, 2020) ===================================== Features added -------------- * C, parse array declarators with static, qualifiers, and VLA specification. Bugs fixed ---------- * #7516: autodoc: crashes if target object raises an error on accessing its attributes Release 3.0.2 (released Apr 19, 2020) ===================================== Features added -------------- * C, parse attributes and add :confval:`c_id_attributes` and :confval:`c_paren_attributes` to support user-defined attributes. Bugs fixed ---------- * #7461: py domain: fails with IndexError for empty tuple in type annotation * #7510: py domain: keyword-only arguments are documented as having a default of None * #7418: std domain: :rst:role:`term` role could not match case-insensitively * #7461: autodoc: empty tuple in type annotation is not shown correctly * #7479: autodoc: Sphinx builds has been slower since 3.0.0 on mocking * C++, fix spacing issue in east-const declarations. * #7414: LaTeX: Xindy language options were incorrect * sphinx crashes with ImportError on python3.5.1 Release 3.0.1 (released Apr 11, 2020) ===================================== Incompatible changes -------------------- * #7418: std domain: :rst:dir:`term` role becomes case sensitive Bugs fixed ---------- * #7428: py domain: a reference to class ``None`` emits a nitpicky warning * #7445: py domain: a return annotation ``None`` in the function signature is not converted to a hyperlink when using intersphinx * #7418: std domain: duplication warning for glossary terms is case insensitive * #7438: C++, fix merging overloaded functions in parallel builds. * #7422: autodoc: fails with ValueError when using autodoc_mock_imports * #7435: autodoc: ``autodoc_typehints='description'`` doesn't suppress typehints in signature for classes/methods * #7451: autodoc: fails with AttributeError when an object returns non-string object as a ``__doc__`` member * #7423: crashed when giving a non-string object to logger * #7479: html theme: Do not include xmlns attribute with HTML 5 doctype * #7426: html theme: Escape some links in HTML templates Release 3.0.0 (released Apr 06, 2020) ===================================== Dependencies ------------ 3.0.0b1 * LaTeX: drop dependency on :program:`extractbb` for image inclusion in Japanese documents as ``.xbb`` files are unneeded by :program:`dvipdfmx` since TeXLive2015 (refs: #6189) * babel-2.0 or above is available (Unpinned) Incompatible changes -------------------- 3.0.0b1 * Drop features and APIs deprecated in 1.8.x * #247: autosummary: stub files are overwritten automatically by default. see :confval:`autosummary_generate_overwrite` to change the behavior * #5923: autodoc: the members of ``object`` class are not documented by default when ``:inherited-members:`` and ``:special-members:`` are given. * #6830: py domain: ``meta`` fields in info-field-list becomes reserved. They are not displayed on output document now * #6417: py domain: doctree of desc_parameterlist has been changed. The argument names, annotations and default values are wrapped with inline node * The structure of ``sphinx.events.EventManager.listeners`` has changed * Due to the scoping changes for :rst:dir:`productionlist` some uses of :rst:role:`token` must be modified to include the scope which was previously ignored. * #6903: Internal data structure of Python, reST and standard domains have changed. The node_id is added to the index of objects and modules. Now they contains a pair of docname and node_id for cross reference. * #7276: C++ domain: Non intended behavior is removed such as ``say_hello_`` links to ``.. cpp:function:: say_hello()`` * #7210: js domain: Non intended behavior is removed such as ``parseInt_`` links to ``.. js:function:: parseInt`` * #7229: rst domain: Non intended behavior is removed such as ``numref_`` links to ``.. rst:role:: numref`` * #6903: py domain: Non intended behavior is removed such as ``say_hello_`` links to ``.. py:function:: say_hello()`` * #7246: py domain: Drop special cross reference helper for exceptions, functions and methods * The C domain has been rewritten, with additional directives and roles. The existing ones are now more strict, resulting in new warnings. * The attribute ``sphinx_cpp_tagname`` in the ``desc_signature_line`` node has been renamed to ``sphinx_line_type``. * #6462: double backslashes in domain directives are no longer replaced by single backslashes as default. A new configuration value :confval:`strip_signature_backslash` can be used by users to reenable it. 3.0.0 final * #7222: ``sphinx.util.inspect.unwrap()`` is renamed to ``unwrap_all()`` Deprecated ---------- 3.0.0b1 * ``desc_signature['first']`` * ``sphinx.directives.DescDirective`` * ``sphinx.domains.std.StandardDomain.add_object()`` * ``sphinx.domains.python.PyDecoratorMixin`` * ``sphinx.ext.autodoc.get_documenters()`` * ``sphinx.ext.autosummary.process_autosummary_toc()`` * ``sphinx.parsers.Parser.app`` * ``sphinx.testing.path.Path.text()`` * ``sphinx.testing.path.Path.bytes()`` * ``sphinx.util.inspect.getargspec()`` * ``sphinx.writers.latex.LaTeXWriter.format_docclass()`` Features added -------------- 3.0.0b1 * #247: autosummary: Add :confval:`autosummary_generate_overwrite` to overwrite old stub file * #5923: autodoc: ``:inherited-members:`` option takes a name of anchestor class not to document inherited members of the class and uppers * #6830: autodoc: consider a member private if docstring contains ``:meta private:`` in info-field-list * #7165: autodoc: Support Annotated type (PEP-593) * #2815: autodoc: Support singledispatch functions and methods * #7079: autodoc: :confval:`autodoc_typehints` accepts ``"description"`` configuration. It shows typehints as object description * #7314: apidoc: Propagate ``--maxdepth`` option through package documents * #6558: glossary: emit a warning for duplicated glossary entry * #3106: domain: Register hyperlink target for index page automatically * #6558: std domain: emit a warning for duplicated generic objects * #6830: py domain: Add new event: :event:`object-description-transform` * #6895: py domain: Do not emit nitpicky warnings for built-in types * py domain: Support lambda functions in function signature * #6417: py domain: Allow to make a style for arguments of functions and methods * #7238, #7239: py domain: Emit a warning on describing a python object if the entry is already added as the same name * #7341: py domain: type annotations in singature are converted to cross refs * Support priority of event handlers. For more detail, see :py:meth:`.Sphinx.connect()` * #3077: Implement the scoping for :rst:dir:`productionlist` as indicated in the documentation. * #1027: Support backslash line continuation in :rst:dir:`productionlist`. * #7108: config: Allow to show an error message from conf.py via ``ConfigError`` * #7032: html: :confval:`html_scaled_image_link` will be disabled for images having ``no-scaled-link`` class * #7144: Add CSS class indicating its domain for each desc node * #7211: latex: Use babel for Chinese document when using XeLaTeX * #6672: LaTeX: Support LaTeX Theming (experimental) * #7005: LaTeX: Add LaTeX styling macro for :rst:role:`kbd` role * #7220: genindex: Show "main" index entries at first * #7103: linkcheck: writes all links to ``output.json`` * #7025: html search: full text search can be disabled for individual document using ``:nosearch:`` file-wide metadata * #7293: html search: Allow to override JavaScript splitter via ``SearchLanguage.js_splitter_code`` * #7142: html theme: Add a theme option: ``pygments_dark_style`` to switch the style of code-blocks in dark mode * The C domain has been rewritten adding for example: - Cross-referencing respecting the current scope. - Possible to document anonymous entities. - More specific directives and roles for each type of entitiy, e.g., handling scoping of enumerators. - New role :rst:role:`c:expr` for rendering expressions and types in text. * Added ``SphinxDirective.get_source_info()`` and ``SphinxRole.get_source_info()``. * #7324: sphinx-build: Emit a warning if multiple files having different file extensions for same document found 3.0.0 final * Added ``ObjectDescription.transform_content()``. Bugs fixed ---------- 3.0.0b1 * C++, fix cross reference lookup in certain cases involving function overloads. * #5078: C++, fix cross reference lookup when a directive contains multiple declarations. * C++, suppress warnings for directly dependent typenames in cross references generated automatically in signatures. * #5637: autodoc: Incorrect handling of nested class names on show-inheritance * #7267: autodoc: error message for invalid directive options has wrong location * #7329: autodoc: info-field-list is wrongly generated from type hints into the class description even if ``autoclass_content='class'`` set * #7331: autodoc: a cython-function is not recognized as a function * #5637: inheritance_diagram: Incorrect handling of nested class names * #7139: ``code-block:: guess`` does not work * #7325: html: source_suffix containing dot leads to wrong source link * #7357: html: Resizing SVG image fails with ValueError * #7278: html search: Fix use of ``html_file_suffix`` instead of ``html_link_suffix`` in search results * #7297: html theme: ``bizstyle`` does not support ``sidebarwidth`` * #3842: singlehtml: Path to images broken when master doc is not in source root * #7179: std domain: Fix whitespaces are suppressed on referring GenericObject * #7289: console: use bright colors instead of bold * #1539: C, parse array types. * #2377: C, parse function pointers even in complex types. * #7345: sphinx-build: Sphinx crashes if output directory exists as a file * #7290: sphinx-build: Ignore bdb.BdbQuit when handling exceptions * #6240: napoleon: Attributes and Methods sections ignore :noindex: option 3.0.0 final * #7364: autosummary: crashed when :confval:`autosummary_generate` is False * #7370: autosummary: raises UnboundLocalError when unknown module given * #7367: C++, alternate operator spellings are now supported. * C, alternate operator spellings are now supported. * #7368: C++, comma operator in expressions, pack expansion in template argument lists, and more comprehensive error messages in some cases. * C, C++, fix crash and wrong duplicate warnings related to anon symbols. * #6477: Escape first "!" in a cross reference linking no longer possible * #7219: py domain: The index entry generated by ``py:function`` directive is different with one from ``index`` directive with "builtin" type * #7301: capital characters are not allowed for node_id * #7301: epub: duplicated node_ids are generated * #6564: html: a width of table was ignored on HTML builder * #7401: Incorrect argument is passed for :event:`env-get-outdated` handlers * #7355: autodoc: a signature of cython-function is not recognized well * #7222: autodoc: ``__wrapped__`` functions are not documented correctly * #7409: intersphinx: ValueError is raised when an extension sets up :confval:`intersphinx_mapping` on :event:`config-inited` event * #7343: Sphinx builds has been slower since 2.4.0 on debug mode Release 2.4.4 (released Mar 05, 2020) ===================================== Bugs fixed ---------- * #7197: LaTeX: platex cause error to build image directive with target url * #7223: Sphinx builds has been slower since 2.4.0 Release 2.4.3 (released Feb 22, 2020) ===================================== Bugs fixed ---------- * #7184: autodoc: ``*args`` and ``**kwarg`` in type comments are not handled properly * #7189: autodoc: classmethod coroutines are not detected * #7183: intersphinx: ``:attr:`` reference to property is broken * #6244, #6387: html search: Search breaks/hangs when built with dirhtml builder * #7195: todo: emit doctree-resolved event with non-document node incorrectly Release 2.4.2 (released Feb 19, 2020) ===================================== Bugs fixed ---------- * #7138: autodoc: ``autodoc.typehints`` crashed when variable has unbound object as a value * #7156: autodoc: separator for keyword only arguments is not shown * #7146: autodoc: IndexError is raised on suppressed type_comment found * #7161: autodoc: typehints extension does not support parallel build * #7178: autodoc: TypeError is raised on fetching type annotations * #7151: crashed when extension assigns a value to ``env.indexentries`` * #7170: text: Remove debug print * #7137: viewcode: Avoid to crash when non-python code given Release 2.4.1 (released Feb 11, 2020) ===================================== Bugs fixed ---------- * #7120: html: crashed when on scaling SVG images which have float dimentions * #7126: autodoc: TypeError: 'getset_descriptor' object is not iterable Release 2.4.0 (released Feb 09, 2020) ===================================== Deprecated ---------- * The ``decode`` argument of ``sphinx.pycode.ModuleAnalyzer()`` * ``sphinx.directives.other.Index`` * ``sphinx.environment.temp_data['gloss_entries']`` * ``sphinx.environment.BuildEnvironment.indexentries`` * ``sphinx.environment.collectors.indexentries.IndexEntriesCollector`` * ``sphinx.ext.apidoc.INITPY`` * ``sphinx.ext.apidoc.shall_skip()`` * ``sphinx.io.FiletypeNotFoundError`` * ``sphinx.io.get_filetype()`` * ``sphinx.pycode.ModuleAnalyzer.encoding`` * ``sphinx.roles.Index`` * ``sphinx.util.detect_encoding()`` * ``sphinx.util.get_module_source()`` * ``sphinx.util.inspect.Signature`` * ``sphinx.util.inspect.safe_getmembers()`` * ``sphinx.writers.latex.LaTeXTranslator.settings.author`` * ``sphinx.writers.latex.LaTeXTranslator.settings.contentsname`` * ``sphinx.writers.latex.LaTeXTranslator.settings.docclass`` * ``sphinx.writers.latex.LaTeXTranslator.settings.docname`` * ``sphinx.writers.latex.LaTeXTranslator.settings.title`` * ``sphinx.writers.latex.ADDITIONAL_SETTINGS`` * ``sphinx.writers.latex.DEFAULT_SETTINGS`` * ``sphinx.writers.latex.LUALATEX_DEFAULT_FONTPKG`` * ``sphinx.writers.latex.PDFLATEX_DEFAULT_FONTPKG`` * ``sphinx.writers.latex.XELATEX_DEFAULT_FONTPKG`` * ``sphinx.writers.latex.XELATEX_GREEK_DEFAULT_FONTPKG`` Features added -------------- * #6910: inheritance_diagram: Make the background of diagrams transparent * #6446: duration: Add ``sphinx.ext.durations`` to inspect which documents slow down the build * #6837: LaTeX: Support a nested table * #7115: LaTeX: Allow to override LATEXOPTS and LATEXMKOPTS via environment variable * #6966: graphviz: Support ``:class:`` option * #6696: html: ``:scale:`` option of image/figure directive not working for SVG images (imagesize-1.2.0 or above is required) * #6994: imgconverter: Support illustrator file (.ai) to .png conversion * autodoc: Support Positional-Only Argument separator (PEP-570 compliant) * autodoc: Support type annotations for variables * #2755: autodoc: Add new event: :event:`autodoc-before-process-signature` * #2755: autodoc: Support type_comment style (ex. ``# type: (str) -> str``) annotation (python3.8+ or `typed_ast `_ is required) * #7051: autodoc: Support instance variables without defaults (PEP-526) * #6418: autodoc: Add a new extension ``sphinx.ext.autodoc.typehints``. It shows typehints as object description if ``autodoc_typehints = "description"`` set. This is an experimental extension and it will be integrated into autodoc core in Sphinx-3.0 * SphinxTranslator now calls visitor/departure method for super node class if visitor/departure method for original node class not found * #6418: Add new event: :event:`object-description-transform` * py domain: :rst:dir:`py:data` and :rst:dir:`py:attribute` take new options named ``:type:`` and ``:value:`` to describe its type and initial value * #6785: py domain: ``:py:attr:`` is able to refer properties again * #6772: apidoc: Add ``-q`` option for quiet mode Bugs fixed ---------- * #6925: html: Remove redundant type="text/javascript" from