Commit Graph

4619 Commits

Author SHA1 Message Date
Chris Sewell
49726c28f4 Split `sphinx.ext.intersphinx._load`
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2024-04-25 15:30:55 +01:00
Adam Turner
3b907a1caa Import INVENTORY_FILENAME from canonical location 2024-04-25 13:35:06 +01:00
Benjamin Cabé
a66546895e Properly support WebP in the image converter (#12224)
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2024-04-25 03:43:45 +01:00
Adam Turner
50895827ba Mark `test_restify_Annotated` as an expected failure 2024-04-25 03:07:48 +01:00
Adam Turner
6b70620993 Add a test for `restify(Annotated[...])` 2024-04-24 23:16:22 +01:00
Adam Turner
173b5912e5 linkcheck: Fix test to use dynamic port numbers 2024-04-24 19:36:36 +01:00
Will Lachance
208f4bcb66 HTML Search: Fix removal of unwanted anchor content from search results (#12321) 2024-04-24 19:09:14 +01:00
James Addison
2008aa8c78 linkcheck: Store the original (unquoted) anchor (#12206) 2024-04-24 18:07:31 +00:00
James Addison
9ebc46a74f Remove test result sharing between 'test_html5_output' and 'test_html5_download' (#12119) 2024-04-24 07:45:36 +01:00
James Addison
0806a00f05 Support `.jinja` for theme static templates (#11916)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2024-04-23 10:40:24 +01:00
Adam Turner
5a55856dd1 Properly format `collections.abc.Callable` (#12314) 2024-04-23 08:01:09 +00:00
Nicolas Peugnet
55ca37f684 Add more internationalisation tests (#12277)
- Add test for basic literal block & literalinclude translation
- Add gettext builder test for litteral blocks additional targets
- Add i18n test for xref roles in titles
- Add i18n tests for strange markup
2024-04-23 05:22:43 +01:00
Bénédikt Tran
48a345b7c5 Improve type hints for `sphinx.ext.autodoc.mock` (#12280)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2024-04-22 23:23:57 +01:00
Adam Turner
2361db5748 Enable more Ruff checks 2024-04-22 23:09:01 +01:00
Adam Turner
740b964d45 fixup! Elaborate a little more in the warning message for `config.cache` 2024-04-17 21:50:46 +01:00
Adam Turner
141f3ecdf3 Elaborate a little more in the warning message for `config.cache` 2024-04-17 21:24:11 +01:00
James Addison
943f6fbf9a Fix test expectations for enum rendering on Python 3.12.3 (#12293)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2024-04-17 04:18:52 +01:00
Adam Turner
7bf847d2b9 Fix the valid types check for `Any in sphinx.config` 2024-04-17 02:27:21 +01:00
Adam Turner
09d05a0858 Don't render types with `Optional[...]`
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-04-15 01:35:47 +01:00
James Addison
67303920fe Make the test suite connectivity-agnostic (#12095)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2024-04-12 23:32:12 +01:00
James Addison
532ad0306e linkcheck: Make the new 'timeout' status opt-in (#12023)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-04-12 23:18:22 +01:00
Adam Turner
b30088d68f Bump Ruff to 0.3.7 2024-04-12 21:04:51 +01:00
Adam Turner
44a42d53af Add basic tests for `_ConfigFile` 2024-04-11 19:01:17 +01:00
Adam Turner
8976fa4498 Support `theme.toml` 2024-04-11 19:01:17 +01:00
Adam Turner
6fd8b30043 Parse `theme.conf to a new _ConfigFile` type (#12254) 2024-04-10 00:10:26 +01:00
Adam Turner
3421e5382a Narrow `Generator[T, None, None] types to Iterator[T]` (#12241) 2024-04-09 03:26:44 +01:00
Bénédikt Tran
db4939f007 [misc] update wording of `versionadded to Added in [...]` (#12184)
Motivated by the community feedback, the wording of ``versionadded`` is changed 
from ``New in [...]`` to ``Added in [...]``.
2024-04-05 13:32:55 +02:00
Bénédikt Tran
f7a1397d6c [console] enhance detection and elimination of known ANSI escape sequences (#12216)
This PR improves the logic for detecting and eliminating ANSI color codes and other escape sequences introduced by Sphinx. ANSI escape sequences that are not natively known to Sphinx are not eliminated (e.g., VT100-specific functions).
2024-04-04 12:35:38 +02:00
James Addison
df3cde65fa [tests] linkcheck: bind each test HTTP server to a unique port per-testcase (#12126)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-04-04 11:25:53 +02:00
Chris Sewell
430866e029 👌 Add warning log for config values that cannot be cached (#12203)
As a user and/or extension developer, it can be a source of confusion when,
on performing a `sphinx-build` for a cached project, 
an unchanged configuration variable is always marked as changed (triggering a full rebuild).

This is often due to the variable being an unpicklable value,
which is silently omitted from the cache (i.e. the `environment.pickle`).

This commit introduces a specific warning for when a configuration variable is omitted from the cache,
allowing users to understand the root of the problem.
2024-03-27 12:59:24 +01:00
Chris Sewell
448cb9931d 🔧 CI: fix Python 3.13 tests (#12210) 2024-03-27 12:45:24 +01:00
James Addison
bfce4f54b0 [HTML search] include partially-matched document titles in search results (#12041)
Co-authored-by: William Lachance <wlach@protonmail.com>
2024-03-26 12:18:26 +01:00
Chris Sewell
04bd0df100 👌 Improve external role warnings (and revert object fallback) (#12193)
The key issue this commit seeks to address, is that existing tools / documentation often lead users to mistakenly use object types and not role names, a classic example being `function` not `func`

Previously, the warning message for using e.g. `` external:function`target` `` (with `py` as the default domain), would be:

```
WARNING: role for external cross-reference not found: function
```

This gives no information to the user on how to fix the issue, even though there is actually quite an easy fix

This commit adds logic to create more specific / helpful warning messages, e.g.

```
WARNING: role for external cross-reference not found in domains 'py', 'std': 'function' (perhaps you meant one of: 'py:func', 'py:obj')
```

This goes through the same original logic but, if the role is not found, it will look if the role name is actually an available object type on the domain(s), and then suggest its related roles.

This commit also reverts #12133, which provided a (silent) fallback to auto convert an object type to a role name.
2024-03-25 14:39:51 +01:00
James Addison
0ef96a7d52 [tests] fix flakiness of `test_linkcheck_exclude_documents` (#12189) 2024-03-25 11:48:03 +01:00
Bénédikt Tran
f26d492d6d [config] protect `is_serializable` against circular references (#12196) 2024-03-25 11:19:02 +01:00
Bénédikt Tran
885818bb7f [tests] move utilities and static data into dedicated modules and remove `html5lib` (#12173)
Since #12168, HTML files are now XML compliant, hence ``html5lib`` is no more needed as a testing dependencies.
2024-03-25 11:03:44 +01:00
Bénédikt Tran
f24eef7b6b [cleanup] deprecate `sphinx.testing.util.strip_escseq in favor of sphinx.util.console.strip_colors` (#12186) 2024-03-24 00:43:54 +01:00
Bénédikt Tran
d91ba115bd Verify that an asset file to be copied exists (#12183) 2024-03-23 14:57:32 +01:00
Chris Sewell
66fa790b3a [tests] Add basic build test for all builtin themes (#12168)
Add `tests/test_theming/test_theming.py::test_theme_builds`, which is a parametrized test against all builtin sphinx HTML themes, that tests:

1. that the themes builds without warnings for a basic project, and
2. that all `.html` files it produces are valid XML (see https://html.spec.whatwg.org/)

https://pypi.org/project/defusedxml/ was added to the test dependencies, in order to safely parse the XML

This required one fix for `sphinx/themes/basic/search.html`, and one for `sphinx/themes/bizstyle/layout.html`

Also, `tests/test_theming` was removed from the `ruff format` exclude list
2024-03-22 12:57:34 +01:00
danieleades
6c92c5c0f3 [lint] bump ruff version (#12170)
Co-authored-by: daniel.eades <daniel.eades@seebyte.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-03-22 10:33:42 +01:00
James Addison
4eede5c534 [tests] Increase timeouts for linkcheck build tests. (#12166)
This is an attempt to resolve intermittent failures of the linkcheck tests currently occuring on the GitHub CI
2024-03-21 21:46:27 +01:00
James Addison
d7c94d1696 [cleanup] test utils: more concise BaseHTTPRequestHandler references. (#12158) 2024-03-21 15:08:49 +01:00
Bénédikt Tran
da0733b338 [autodoc] fix rendering of enumerations inheriting from mixin and data types (#11596) 2024-03-21 12:36:36 +01:00
James Addison
078a80a42d [refactor] test utils: simplify signatures and remove from ruff exclusion list. (#12155)
Apply some small method-signature cleanups in `tests/utils.py`,
and remove it from the `ruff format` exclusion list.
2024-03-21 11:08:35 +01:00
James Addison
b7f708dc63 [tests] utils: refactor type-hint signatures. (#12144)
Consolidate the provision of a single `http_server` utility method, with `tls_enabled` as a boolean flag,
and rework type annotations to make them more understandable.

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Chris Sewell <chrisj_sewell@hotmail.com>
2024-03-20 23:13:41 +01:00
Chris Sewell
565d4104d5 👌 Handle external references pointing to object types (#12133)
This commit fixes the issue of `objects.inv` denoting object names, whilst the `external` role only allows for role names. 

As an example, take the `objects.inv` for the sphinx documentation, which contains:

```
py:function
    compile                  : usage/domains/python.html#compile
```

A user might understandably expect that they could reference this using `` :external:py:function:`compile` ``, but actually this would previously error with:

```
WARNING: role for external cross-reference not found: py:function
```

this is because, `function` is the object type, yet `external` expects the related role name `func`.

It should not be necessary for the user to know about this distinction,
so in this commit, we add logic, to first look if the name relates to a role name (as previous, to not be back-breaking) but, if not, then also look if the name relates to an object that has a known role and, if so, use that.

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-03-19 13:42:50 +01:00
Chris Sewell
b0f096f440 Add show_warning_types configuration variable (#12131)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-03-19 10:22:28 +01:00
James Addison
7894b5a269 [tests] linkcheck: add test coverage for behaviour of a locally-existing file. (#12128)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-03-18 18:36:22 +01:00
Bénédikt Tran
ff252861a7 [tests] add missing `@pytest.mark.sphinx` markers (#12125) 2024-03-18 11:16:15 +01:00
Bénédikt Tran
6ac2210109 [tests] use deduced `srcdir` instead of an explicit one (#12124) 2024-03-18 10:59:48 +01:00