Skip to content

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
claude/trusting-feynman-431843
Apr 26, 2026
Merged

chore(deps): upgrade myst-parser to v5, sphinx <10, swagger-plugin-for-sphinx to v7#596
helmut-hoffer-von-ankershoffen merged 1 commit intomainfrom
claude/trusting-feynman-431843

Conversation

@helmut-hoffer-von-ankershoffen
Copy link
Copy Markdown
Contributor

Summary

Consolidates and supersedes four stalled dependency PRs (#368, #388, #416, #483) into a single validated change.

  • myst-parser >=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.
  • sphinx >=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.
  • swagger-plugin-for-sphinx >=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 <10 upper bound is now open; full Sphinx 9 adoption follows when Python 3.11 reaches EOL and is dropped from requires-python).

Test plan

  • uv sync --all-extras resolves cleanly — myst-parser 5.0.0, swagger-plugin-for-sphinx 7.0.0 installed
  • make docs passes — html, singlehtml, latex all build with zero warnings
  • make lint passes — ruff, pyright, mypy all clean

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-parser to >=5,<6 (pulls in markdown-it-py v4 via lockfile update).
  • Relax sphinx upper bound to <10 to allow Sphinx 9 when the Python version permits it.
  • Upgrade swagger-plugin-for-sphinx to >=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
Copy link
Copy Markdown

codecov Bot commented Apr 26, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.
see 20 files with indirect coverage changes

…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>
Copilot AI review requested due to automatic review settings April 26, 2026 10:18
@sonarqubecloud
Copy link
Copy Markdown

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 2 changed files in this pull request and generated no new comments.

@helmut-hoffer-von-ankershoffen helmut-hoffer-von-ankershoffen merged commit d3bdf6f into main Apr 26, 2026
27 checks passed
@helmut-hoffer-von-ankershoffen helmut-hoffer-von-ankershoffen deleted the claude/trusting-feynman-431843 branch April 26, 2026 10:38
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>
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip:test:long_running Skip long-running tests (≥5min)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants