# # spec file for package python-Sphinx # # Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define oldpython python %global flavor %{nil} %if "%{flavor}" == "test" %define psuffix -test %bcond_without test %else %define psuffix %{nil} %bcond_with test %endif %define skip_python2 1 Name: python-Sphinx%{psuffix} Version: 3.0.4 Release: 1.1 Summary: Python documentation generator License: BSD-2-Clause Group: Development/Languages/Python URL: http://sphinx-doc.org Source: https://files.pythonhosted.org/packages/source/S/Sphinx/Sphinx-%{version}.tar.gz Source1: https://files.pythonhosted.org/packages/source/S/Sphinx/Sphinx-%{version}.tar.gz.asc Source2: python3.inv Source99: python-Sphinx-rpmlintrc BuildRequires: %{python_module base} BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: python-rpm-macros # workaround for suboptimal CentOS-7 project config #!BuildIgnore: texinfo Requires: python-Babel >= 1.3 Requires: python-Jinja2 >= 2.3 Requires: python-Pygments >= 2.1 Requires: python-alabaster >= 0.7 Requires: python-docutils >= 0.12 Requires: python-imagesize Requires: python-requests >= 2.5.0 Requires: python-setuptools Requires: python-snowballstemmer >= 1.1 Requires: python-sphinx_rtd_theme Requires: python-sphinxcontrib-applehelp Requires: python-sphinxcontrib-devhelp Requires: python-sphinxcontrib-htmlhelp Requires: python-sphinxcontrib-jsmath Requires: python-sphinxcontrib-qthelp Requires: python-sphinxcontrib-serializinghtml Requires: python-sphinxcontrib-websupport Requires(post): update-alternatives Requires(postun): update-alternatives Recommends: python-SQLAlchemy >= 0.9 Recommends: python-Sphinx-doc-man Recommends: python-Whoosh >= 2.0 BuildArch: noarch %if %{with test} BuildRequires: %{python_module Cython} BuildRequires: %{python_module Sphinx = %{version}} BuildRequires: %{python_module Sphinx-latex = %{version}} BuildRequires: %{python_module doc} BuildRequires: %{python_module html5lib} BuildRequires: %{python_module mypy} BuildRequires: %{python_module pytest} BuildRequires: %{python_module sphinxcontrib-websupport} BuildRequires: %{python_module testsuite} BuildRequires: %{python_module typed-ast} BuildRequires: ImageMagick %endif %python_subpackages %description Sphinx is a tool that facilitates creating documentation for Python projects (or other documents consisting of multiple reStructuredText sources). It was originally created for the Python documentation, and supports Python project documentation well, but C/C++ is likewise supported. Sphinx uses reStructuredText as its markup language. Sphinx draws from the parsing and translating suite, the Docutils. %package latex Summary: Sphinx packages for LaTeX Group: Productivity/Publishing/TeX/Base Requires: python-Sphinx = %{version} Requires: texlive-dvipng Requires: texlive-gnu-freefont Requires: texlive-latex Requires: texlive-latexmk Requires: texlive-makeindex Requires: texlive-metafont Requires: texlive-pdftex Requires: tex(8r.enc) Requires: tex(alltt.sty) Requires: tex(amsfonts.sty) Requires: tex(amsmath.sty) Requires: tex(amssymb.sty) Requires: tex(amsthm.sty) Requires: tex(anyfontsize.sty) Requires: tex(array.sty) Requires: tex(article.cls) Requires: tex(atbegshi.sty) Requires: tex(babel.sty) Requires: tex(bm.sty) Requires: tex(capt-of.sty) Requires: tex(cmap.sty) Requires: tex(color.sty) Requires: tex(colortbl.sty) Requires: tex(dvipdfmx.def) Requires: tex(english.ldf) Requires: tex(eqparbox.sty) Requires: tex(fancybox.sty) Requires: tex(fancyhdr.sty) Requires: tex(fancyvrb.sty) Requires: tex(float.sty) Requires: tex(fncychap.sty) Requires: tex(fontenc.sty) Requires: tex(footnote.sty) Requires: tex(framed.sty) Requires: tex(graphics.sty) Requires: tex(graphicx.sty) Requires: tex(hypcap.sty) Requires: tex(hyperref.sty) Requires: tex(ifthen.sty) Requires: tex(inputenc.sty) Requires: tex(longtable.sty) Requires: tex(luatex85.sty) Requires: tex(makeidx.sty) Requires: tex(multirow.sty) Requires: tex(needspace.sty) Requires: tex(newfloat.sty) Requires: tex(palatino.sty) Requires: tex(parskip.sty) Requires: tex(pcrr.tfm) Requires: tex(pdftex.def) Requires: tex(pdftex.map) Requires: tex(phvr.tfm) Requires: tex(polyglossia.sty) Requires: tex(pplr.tfm) Requires: tex(preview.sty) Requires: tex(ptmr.tfm) Requires: tex(pzcmi.tfm) Requires: tex(tabulary.sty) Requires: tex(textcomp.sty) Requires: tex(threeparttable.sty) Requires: tex(times.sty) Requires: tex(titlesec.sty) Requires: tex(upquote.sty) Requires: tex(utf8.def) Requires: tex(utf8x.def) Requires: tex(varwidth.sty) Requires: tex(wrapfig.sty) %description latex Sphinx is a tool that facilitates creating documentation for Python projects (or other documents consisting of multiple reStructuredText sources). This package contains the LaTeX components for python-Sphinx. %package -n python-Sphinx-doc Summary: Man files for python-Sphinx Group: Documentation/Other Requires: python3-Sphinx = %{version} %description -n python-Sphinx-doc Sphinx is a tool that facilitates creating documentation for Python projects (or other documents consisting of multiple reStructuredText sources). It was originally created for the Python documentation, and supports Python project documentation well, but C/C++ is likewise supported. Sphinx uses reStructuredText as its markup language. Sphinx draws from the parsing and translating suite, the Docutils. This package contains the documentation for Sphinx. %package -n python-Sphinx-doc-man Summary: Man files for python-Sphinx Group: Documentation/Man Requires: python3-Sphinx = %{version} Requires(post): update-alternatives Requires(postun): update-alternatives Supplements: python3-Sphinx Obsoletes: %{python_module Sphinx-doc-man-common <= %{version}} %description -n python-Sphinx-doc-man Sphinx is a tool that facilitates creating documentation for Python projects (or other documents consisting of multiple reStructuredText sources). This package contains the manual pages for the Sphinx executables. %package -n python-Sphinx-doc-html Summary: HTML Documentation for python-Sphinx Group: Documentation/HTML Provides: %{python_module Sphinx-doc-html = %{version}} %description -n python-Sphinx-doc-html Sphinx is a tool that facilitates creating documentation for Python projects (or other documents consisting of multiple reStructuredText sources). This package contains the HTML documentation for Sphinx. %prep %setup -q -n Sphinx-%{version} sed -i 's/\r$//' sphinx/themes/basic/static/jquery.js # Fix wrong end-of-line encoding %build %python_build %if %{with test} mkdir build.doc # get its intersphinx_inventroy from python3-doc # instead of via network from https://docs.python.org/3/objects.inv # https://github.com/sphinx-doc/sphinx/pull/7616 %if %{python3_version_nodots} <= 36 # python3-doc 3.6.5-lp151.5.4 from Leap 15.1 # doesn't have one necessary entry in python3.inv # so use a copy from version 3.8.2-3.1 from Tumbleweed cp %{SOURCE2} doc/python3.inv %else %python_expand cp %{_defaultdocdir}/%{$python_prefix}/html/objects.inv doc/%{$python_prefix}.inv %endif %python_expand sed -i -e "s/\(intersphinx_mapping = ..python.: (.https:..docs.python.org.3.., \)None\()}\)/\1'%{$python_prefix}.inv'\2/g" doc/conf.py # fix file not found error sed -i -e 's/.. include:: ...CODE_OF_CONDUCT//g' doc/code_of_conduct.rst %python_exec setup.py build_sphinx && rm build/sphinx/html/.buildinfo %python_exec setup.py build_sphinx -b man mv build/sphinx/{html,man} build.doc/ %endif %install %if ! %{with test} %python_install %python_clone -a %{buildroot}%{_bindir}/sphinx-apidoc %python_clone -a %{buildroot}%{_bindir}/sphinx-autogen %python_clone -a %{buildroot}%{_bindir}/sphinx-build %python_clone -a %{buildroot}%{_bindir}/sphinx-quickstart %python_expand mkdir -p %{buildroot}%{$python_sitelib}/sphinxcontrib %python_expand %fdupes %{buildroot}%{$python_sitelib} %find_lang sphinx %else mkdir -p %{buildroot}%{_docdir}/python-Sphinx/ mv build.doc/html %{buildroot}%{_docdir}/python-Sphinx/ mkdir -p %{buildroot}%{_mandir}/man1 mv build.doc/man/sphinx-all.1 %{buildroot}%{_mandir}/man1/sphinx-all.1 mv build.doc/man/sphinx-apidoc.1 %{buildroot}%{_mandir}/man1/sphinx-apidoc.1 mv build.doc/man/sphinx-build.1 %{buildroot}%{_mandir}/man1/sphinx-build.1 mv build.doc/man/sphinx-quickstart.1 %{buildroot}%{_mandir}/man1/sphinx-quickstart.1 %endif # Always deduplicate %python_expand %fdupes %{buildroot}%{$python_sitelib} %if ! %{with test} %post %{python_install_alternative sphinx-apidoc sphinx-autogen sphinx-build sphinx-quickstart} %postun %python_uninstall_alternative sphinx-apidoc %endif %check %if %{with test} export LC_ALL="C.utf8" %pytest tests -k 'not (linkcheck or test_latex_images)' %endif %if ! %{with test} %files %{python_files} -f sphinx.lang %license LICENSE %doc AUTHORS CHANGES README.rst %python_alternative %{_bindir}/sphinx-apidoc %python_alternative %{_bindir}/sphinx-autogen %python_alternative %{_bindir}/sphinx-build %python_alternative %{_bindir}/sphinx-quickstart %{python_sitelib}/sphinx/ %exclude %{python_sitelib}/sphinx/texinputs/ %{python_sitelib}/Sphinx-%{version}-py*.egg-info %dir %{python_sitelib}/sphinxcontrib %files %{python_files latex} %license LICENSE %doc AUTHORS %{python_sitelib}/sphinx/texinputs/ %endif %if %{with test} %files -n python-Sphinx-doc-man %license LICENSE %doc AUTHORS %{_mandir}/man1/sphinx-all.1%{?ext_man} %{_mandir}/man1/sphinx-apidoc.1%{?ext_man} %{_mandir}/man1/sphinx-build.1%{?ext_man} %{_mandir}/man1/sphinx-quickstart.1%{?ext_man} %files -n python-Sphinx-doc-html %license LICENSE %doc AUTHORS %dir %{_docdir}/python-Sphinx/ %{_docdir}/python-Sphinx/html/ %endif %changelog * Sat May 30 2020 Arun Persaud - update to version 3.0.4: * Bugs fixed + #7567: autodoc: parametrized types are shown twice for generic types + #7637: autodoc: system defined TypeVars are shown in Python 3.9 + #7611: md5 fails when OpenSSL FIPS is enabled + #7626: release package does not contain "CODE_OF_CONDUCT" * Mon May 4 2020 Jan Zerebecki - Add python3.inv as a specific Source. - update to version 3.0.3 * 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 - update to version 3.0.2 * 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 - update to 3.0.1 * 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 - update to version 3.0.0 * Dependencies * 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 * 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. * #7222: ``sphinx.util.inspect.unwrap()`` is renamed to ``unwrap_all()`` * Deprecated * ``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 * #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 * Added ``ObjectDescription.transform_content()``. * Bugs fixed * 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 * #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 - update to version 2.4.4 * Bugs fixed * #7197: LaTeX: platex cause error to build image directive with target url * #7223: Sphinx builds has been slower since 2.4.0 - update to version 2.4.3 * 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 - update to version 2.4.2 * 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 - update to version 2.4.1 * Bugs fixed * #7120: html: crashed when on scaling SVG images which have float dimentions * #7126: autodoc: TypeError: 'getset_descriptor' object is not iterable - update to version 2.4.0 * 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