Commit Graph

20050 Commits

Author SHA1 Message Date
James Addison
94f4afafa5
Add a missing word in `doc/development/theming.rst` (#11301) 2023-04-07 20:59:27 +01:00
James Addison
5d13215b58
Support and prefer `.jinja to _t` for static templates (#11165)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2023-04-07 18:07:15 +01:00
James Addison
f82c3c9912
Disable localisation when `SOURCE_DATE_EPOCH` is set (#10949)
This commit disables Sphinx's localisation features when reproducible
builds are requested, as determined by a non-empty SOURCE_DATE_EPOCH_
environment variable.

The `Reproducible Builds`_ project aims to provide confidence to
consumers of packaged software that the artefacts they're downloading
and installing have not been altered by the environment they were
built in, and can be replicated at a later date if required.

Builds of localised documentation using Sphinx currently account for
a large category of reproducible build testing failures, because the
builders intentionally use varying environment locales at build-time.
This can affect the contents of the ``objects.inv`` file.

During investigation, it turned out that many ``gettext``-localised
values (particularly in Python modules under ``sphinx.domains``) were
being translated at module-load-time and would not subsequently be
re-localised.

This creates two unusual effects:

1. Attempting to write a test case to build the same application in
   two different languages was not initially possible, as the
   first-loaded translation catalogue (as found in the 
   ``sphinx.locale.translators`` global variable) would remain in-use
   for subsequent application builds under different locales.

2. Localisation of strings could vary depending on whether the
   relevant modules were loaded before or after the resource
   catalogues were populated.

We fix this by performing all translations lazily so that module
imports can occur in any order and localisation of inventory entries
should occur only when translations of those items are requested.

Localisation can then be disabled by configuring the ``gettext``
language to the ISO-639-3 'undetermined' code (``'und'``), as this
should not have an associated translation catalogue. We also want to
prevent ``gettext`` from  attempting to determine the host's locale
from environment variables (including ``LANGUAGE``).

.. _SOURCE_DATE_EPOCH: https://reproducible-builds.org/docs/source-date-epoch/
.. _Reproducible Builds: https://www.reproducible-builds.org/
2023-04-07 17:49:36 +01:00
picnixz
4659fc21a9
Fix translator class check in `SigElementFallbackTransform` (#11283) 2023-04-07 00:28:48 +01:00
James Reinders
063c2e3fbe
Ensure arguments to `PIL.Image.resize()` are integers (#11288)
Update ``copy_image_files_pil`` so that the computation of ``nh`` is
always an integer, as otherwise some calls to ``PIL.Image.resize()``
fail as floats are not allowed

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2023-04-06 23:51:18 +01:00
Jens Hedegaard Nielsen
3edae68904
autosummary: Support documenting inherited attributes (#10691)
The current implementation of ``import_ivar_by_name`` filters
attributes if the name of the object that the attribute belongs to
does not match the object being documented. However, for inherited
attributes this is not the case. Filtering only on the attribute name
seems to resolve the issue. It is not clear to me if there are any
unwanted sideeffects of this and we should filter on the list of
qualnames for the object and all its super classes (if any).

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2023-04-06 23:33:43 +01:00
Adam Turner
7ecf037280 Enable 'nit-picky mode' for Sphinx's documentation
Fix several reference errors throughout the documentation and set
``nitpick_ignore`` in ``doc/conf.py``.
2023-04-06 23:11:39 +01:00
panhongtao
b2349254fc
Prefer `importlib.metadata` from Python 3.10 onwards (#11270)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2023-04-06 23:06:01 +01:00
picnixz
aba392d87f
Support type comments in `PropertyDocumenter` (#11298) 2023-04-06 22:56:17 +01:00
Martin Liška
26eb2ef7c4
Clean up the CNAME file in `sphinx.ext.githubpages` (#11295)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2023-04-06 22:46:50 +01:00
Martin Liška
c1c2d758c9
Fix instability in `test_ext_viewcode` (#11297)
Use ``freshenv`` argument and remove ``outdir`` for one test
as the previous one can leave an unexpected leftover.
2023-04-06 22:40:33 +01:00
Martin Liška
f25a36d056
Fix instability in `test_build_epub` (#11296)
Some tests need ``app.builder.build_all`` in order to have complete rebuild.
2023-04-06 22:33:20 +01:00
Martin Liška
a80e3fd377
Use a shared file-system lock in `create_server` (#11294)
With parallel run of tests, one gets "Address already in use" errors
as all tests attempt to bind to the same port. Fix it with a shared
file-system lock.

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2023-04-06 22:24:49 +01:00
Clément Pinard
9299003d40
Autosummary: Extend `__all__` members to template rendering (#10811)
When ``False``, the ``autosummary_ignore_module_all`` option adds
members to the module's members entry that will be used for autodoc,
but otherwise ignores it. As such, if a class is available in the 
``__all__``, it won't be generated.

This commit aims to extend the ``__all__`` handling not only to
members, but also to corresponding attribute types (function,
classes, exceptions, modules)

The ``imported_members`` option is set to ``True`` if the object has
an ``__all__`` member and ``autosummary_ignore_module_all`` is ``False``
2023-04-06 00:02:37 +01:00
Adam Turner
52a099b7ec Resolve lint errors from Ruff 0.0.261 2023-04-05 14:19:43 +01:00
Martin Liška
2932bacac4
Only use `_write_doc_doctree_cache` in serial mode (#11290)
When using multiple processes, the content of
``self.env._write_doc_doctree_cache`` is not synchronised with the
main process, meaning we can only use it in serial mode.

Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2023-04-05 14:03:34 +01:00
Martin Liška
fc4fead40d
Allow parallel execution of tests in `test_search` (#11292)
Add various ``app.builder.build_all()`` calls.
2023-04-05 13:54:09 +01:00
Martin Liška
8e26d78b79
Remove hidden state from `test_nosearch` (#11291)
Currently, ``test_nosearch`` depends on ``html_search_language='de'``
from a previous test and thus fails if run individually.

Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2023-04-05 13:43:24 +01:00
Adam Turner
4a3febb69a
Add an option for displaying short `Literal` types (#11109)
The new ``python_display_short_literal_types`` configuration option
for the ``py`` domain controls display of PEP 586 ``Literal`` types.
The 'short' format is inspired by PEP 604, using the bitwise OR operator
to distinguish the possible legal values for the argument.
2023-04-05 13:07:25 +01:00
Adam Turner
609b2f2650 Add entries to the `.git-blame-ignore-revs` file 2023-04-04 22:06:49 +01:00
Adam Turner
098799b33e Add `.git-blame-ignore-revs` file 2023-04-04 22:06:49 +01:00
Adam Turner
9b0c73d70e Re-combine `CHANGES and CHANGES.old`
The separation made pre-Sphinx 1.0 changes harder to find from the
online documentation, and offered little benefit in terms of file
length given that CHANGES was already near 7,500 lines long. Perhaps
a future change could be to split CHANGES by version, similar to
Python's "What's New".
2023-04-04 22:06:49 +01:00
Adam Turner
9b4a895ad7 Use literal syntax in `CHANGES.old` 2023-04-04 22:06:27 +01:00
Adam Turner
ad98c72290 Remove 'Previous versions' section in CHANGES 2023-04-04 19:03:30 +01:00
Adam Turner
961f96de7a Use the `:dudir:` role with explicit titles 2023-04-04 18:34:58 +01:00
Jean-François B
126737c3cd Add unit test for issue #11110 as fixed by #11113 2023-04-03 18:26:34 +02:00
Jean-François B
e1b15a5c11 Update doc and CHANGES for PR #11281 2023-04-03 11:12:41 +02:00
Jean-François B
a2ec68fa72 Update CHANGES for PR #11110 2023-04-03 11:11:19 +02:00
Dimitar Dimitrov
be65c8313c
support for imgmath_latex=tectonic (#11281)
* add rudimentary support for using tectonic with imgmath

* fix typo

* addressing PR comment

* revert changes to preview.tex_t; add dvips by default for SVG

* bugfix
2023-04-03 10:11:06 +02:00
Jean-François B
39fa276b36 Update CHANGES for PR #11113 2023-04-03 08:47:39 +02:00
aaron-cooper
0eeb34caf8
Consider duplicate names when using image post transforms (#11113)
Closes: #11110
2023-04-03 08:44:20 +02:00
Jean-François B
6809ca7d04 Fix error message wording in builders/latex/transforms.py
And make it and the two other ones there translatable strings.
Using .format for the f-string.
2023-04-01 00:02:18 +02:00
Jean-François B
40ec190353 Update CHANGES for PR #11276
The initial formulation was wrong, as the bug did not break PDF
builds, but created wrong links
2023-03-31 19:31:35 +02:00
Jean-François B
89a4cdb673 Let the #11276 test actually be one which would have failed earlier 2023-03-31 19:27:54 +02:00
Adam Turner
15553da9c8 Resolve lint errors from Ruff 0.0.260 2023-03-31 17:52:51 +01:00
Adam Turner
f019b89c05 Run Ruff linting with a known-to-work version
This means that CI tests will only fail if the 'known good' version
fails. If the latest version of Ruff fails, perhaps due to new
checks, CI will not fail overall, but the failures from the latest
version will be reported.
2023-03-31 17:52:29 +01:00
Jean-François B
1397cb90f4 Update CHANGES
This is only to relaunch Windows CI which has a problem seen already in
the past with test_gettext_dont_rebuild_mo.  I don't understand why this
happens on Windows and can't test directly on Windows.
2023-03-31 18:38:04 +02:00
Jean-François B
8f6ad4a3e5 Fix #11274: external links may break PDF build if under \sphinxupquote 2023-03-31 18:19:35 +02:00
Jean-François B
8f1698f7db Ignore SIM910 for time being to appease flake8-simplify 0.20.0 2023-03-31 17:36:47 +02:00
Jean-François B
3e6d56adc0 Pin to ruff==0.0.259 (provisory)
This is because I would like CI to succeed for a while in order to merge
some LaTeX patch.
2023-03-31 17:18:29 +02:00
Jean-François B
8f9bac9c4f LaTeX: rename `\sphinxnotetitle into \sphinxstylenotetitle` (etc)
Follow-up to #11266.  Using \sphinxstyle prefix looked a posteriori
better, for coherency, although it is a bit long.
2023-03-27 15:21:06 +02:00
Jean-François B
64bf782d60 Update CHANGES 2023-03-27 12:25:44 +02:00
Jean-François B
7cdd9b2679 LaTeX: let \sphinxremovefinalcolon work also if no colon in input 2023-03-27 12:21:26 +02:00
Dimitri Papadopoulos
669bcc0a19
Fix typos found by codespell 2023-03-27 07:22:07 +02:00
Jean-François B
7144f4924a LaTeX: add \sphinxnotetitle et al.
In passing I reverted some deprecation I had added at 6bf40599e to some
internals of the sphinxadmonition environment, as it does not look that
pressing anyhow and the redundant namings of two colors in particular
may nevertheless prove useful to user \renewcommand's, as they avoid to
have to refer to \spx@noticetype.
2023-03-26 23:57:04 +02:00
Jean-François B
a7949d4290 LaTeX: let mark-up for seealso directive use explicit colon (fix #11264) 2023-03-26 23:57:04 +02:00
Jean-François B
321f886097 Provis. ignore onerror depr. warn when install. DocUtils with 3.12-dev 2023-03-26 23:52:55 +02:00
Hugo van Kemenade
318914fff2
Fix syntax in `:manpage:` role example (#11249) 2023-03-24 01:36:58 +00:00
Adam Turner
c7d7f2951d Remove `sphinx.locale.setlocale` 2023-03-24 01:30:44 +00:00
Adam Turner
7d928b3e79 Increase `test_linkcheck` timeouts 2023-03-24 01:07:25 +00:00