chore(deps): upgrade myst-parser to v5, sphinx <10, swagger-plugin-for-sphinx to v7#596
Merged
helmut-hoffer-von-ankershoffen merged 1 commit intomainfrom Apr 26, 2026
Conversation
Copilot started reviewing on behalf of
helmut-hoffer-von-ankershoffen
April 26, 2026 08:47
View session
This was referenced Apr 26, 2026
There was a problem hiding this comment.
Pull request overview
This PR consolidates multiple dependency update efforts by upgrading the documentation toolchain to support newer Sphinx releases while keeping compatibility with the repo’s supported Python versions.
Changes:
- Bump
myst-parserto>=5,<6(pulls inmarkdown-it-pyv4 via lockfile update). - Relax
sphinxupper bound to<10to allow Sphinx 9 when the Python version permits it. - Upgrade
swagger-plugin-for-sphinxto>=7,<8.
Reviewed changes
Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
pyproject.toml |
Updates dependency-group pins for MyST, Sphinx, and Swagger Sphinx plugin to allow newer compatible versions. |
uv.lock |
Refreshes the lockfile to reflect the upgraded packages (including transitive updates like markdown-it-py v4). |
Codecov Report✅ All modified and coverable lines are covered by tests. |
…r-sphinx to v7 - myst-parser: >=4.0.1,<5 → >=5,<6 (v5.0.0 adds Sphinx 9 support, requires Python >=3.11) - sphinx: >=8.2.3,<9 → >=8.2.3,<10 (opens door to Sphinx 9 on Python >=3.12; stays at 8.x while Python 3.11 is supported) - swagger-plugin-for-sphinx: >=6.1.0,<7 → >=7,<8 (v7 drops Sphinx 7 support, aligns with Sphinx 8/9) Validated locally: uv sync resolves cleanly, make docs and make lint both pass. Closes #388, #416, #483. Supersedes #368 (sphinx v9 upper bound now open; full v9 adoption follows Python 3.11 EOL). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
6c4646e to
72c7684
Compare
Copilot started reviewing on behalf of
helmut-hoffer-von-ankershoffen
April 26, 2026 10:18
View session
|
helmut-hoffer-von-ankershoffen
added a commit
that referenced
this pull request
Apr 26, 2026
…inx 9 #596 widened the sphinx constraint to <10 but main's lock still resolved to 8.2.3 (no upgrade triggered), so docs CI passed there. The lock-file maintenance refresh on this branch upgraded sphinx to 9.0.4/9.1.0 and docs build broke with: sphinx.errors.ExtensionError: Could not import extension sphinx_toolbox.collapse (cannot import name 'logger' from 'sphinx.ext.autodoc') sphinx-toolbox 4.1.2 (latest) declares sphinx>=3.2.0 but its code imports `logger` from `sphinx.ext.autodoc`, which Sphinx 9 removed. Tighten our upper bound until sphinx-toolbox ships Sphinx 9 support. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 task
helmut-hoffer-von-ankershoffen
added a commit
that referenced
this pull request
Apr 26, 2026
* chore(deps): lock file maintenance
* test(application): add --force to mapping validation integration tests to prevent health check timeout
The two tests testing invalid mapping formats were calling `run execute`
without `--force`, causing `_abort_if_system_unhealthy()` to make a
network call before reaching the argument validation. On slower CI
runners (Python 3.11) this exceeded the 10-second test timeout.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(lint): resolve ruff 0.15.11 lint violations introduced by lock file update
New ruff version introduces several previously-undetected rules:
- RUF067: ignore for __init__.py (intentional conditional imports for optional deps)
- RUF069: ignore float equality in tests (intentional exact value assertions)
- RUF071: noqa for os.path.commonprefix (character-by-character comparison is intended for S3 key prefixes)
- D420: reorder Returns before Raises in docstrings (application, platform, qupath)
- ISC004: parenthesize implicit string concatenations in collections
- PYI034: use Self return type for __enter__ methods; noqa for __new__ (returns subclass instance)
- RUF070: remove unnecessary intermediate assignment before yield
Also applies ruff format auto-fixes to markdown code blocks and removes
duplicate __all__ entries in platform/__init__.py.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(test): rewrite test_serve_notebook to use async NiceGUI test client
NiceGUI 3.10.0 broke the TestClient(app) approach because /notebook/{run_id}
is a @ui.page route (NiceGUI-managed, removed during nicegui_reset_globals())
rather than a plain FastAPI @app.get() route that survives resets.
Replace the synchronous TestClient usage with the async user.open() / user.find()
pattern consistent with all other GUI tests in the project. The user fixture
runs tests/main.py which re-registers all @ui.page routes, making them
accessible to the NiceGUI async test client.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(deps): bump nicegui lower bound to 3.10.0 and pin coverage <7.13
Two related dependency fixes for CI:
1. nicegui >= 3.10.0: required by CVE-2026-39844 (already noted in the
prior comment as "not yet merged"). The lock file maintenance bumps
the resolved version to 3.10.0+, and the test rewrite in the previous
commit relies on 3.10.0 behaviour, so users installing the SDK should
not be allowed to fall back to 3.9.x.
2. coverage < 7.13: coverage 7.13.x introduced a regression where
pytest-cov fails with "INTERNALERROR: Expected current collector to
be ..." when tests spawn subprocesses (e.g., the marimo server in
notebook integration tests). Reproduced on both 7.13.4 and 7.13.5;
7.12.0 works. Re-evaluate when coverage releases a fix.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(deps): pin sphinx <9 — sphinx-toolbox 4.1.2 incompatible with Sphinx 9
#596 widened the sphinx constraint to <10 but main's lock still resolved
to 8.2.3 (no upgrade triggered), so docs CI passed there. The lock-file
maintenance refresh on this branch upgraded sphinx to 9.0.4/9.1.0 and
docs build broke with:
sphinx.errors.ExtensionError: Could not import extension
sphinx_toolbox.collapse (cannot import name 'logger' from
'sphinx.ext.autodoc')
sphinx-toolbox 4.1.2 (latest) declares sphinx>=3.2.0 but its code
imports `logger` from `sphinx.ext.autodoc`, which Sphinx 9 removed.
Tighten our upper bound until sphinx-toolbox ships Sphinx 9 support.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(gui): extract dark-mode theme sync helpers — fix Sonar S3358
Two `ui.timer(callback=lambda: ...)` blocks each contained an outer
ternary (`grid.classes(...) if grid else None`) wrapping inner ternaries
on `app.storage.general.get("dark_mode", False)`. Sonar S3358 flags
those as nested conditional expressions.
Both lambdas were originally single-line and only became multi-line
after ruff 0.15's reformatter ran (commit c4bba3c). Replace each lambda
with a named helper function that pulls `dark_mode` out once and
guards the grid existence with an early return.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Helmut Hoffer von Ankershoffen né Oertel <helmut@aignostics.com>
Co-authored-by: Helmut Hoffer von Ankershoffen <helmuthva@googlemail.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
Consolidates and supersedes four stalled dependency PRs (#368, #388, #416, #483) into a single validated change.
>=4.0.1,<5→>=5,<6: v5.0.0 (released 2026-01-15) adds Sphinx 9 support and requires Python ≥3.11. This was the blocker Oliver identified in chore(deps): update dependency sphinx to v9 #368.>=8.2.3,<9→>=8.2.3,<10: Opens the upper bound to allow Sphinx 9. Stays at 8.x while Python 3.11 is in the support matrix (Sphinx 9.1 requires Python ≥3.12); will self-upgrade to 9.x once Python 3.11 is dropped.>=6.1.0,<7→>=7,<8: v7 drops Sphinx 7 support, consistent with our Sphinx 8/9 direction.Closes #388, #416, #483. Supersedes #368 (the
<10upper bound is now open; full Sphinx 9 adoption follows when Python 3.11 reaches EOL and is dropped fromrequires-python).Test plan
uv sync --all-extrasresolves cleanly — myst-parser 5.0.0, swagger-plugin-for-sphinx 7.0.0 installedmake docspasses — html, singlehtml, latex all build with zero warningsmake lintpasses — ruff, pyright, mypy all clean