Skip to content

chore(deps): lock file maintenance#489

Merged
helmut-hoffer-von-ankershoffen merged 12 commits intomainfrom
renovate/lock-file-maintenance
Apr 26, 2026
Merged

chore(deps): lock file maintenance#489
helmut-hoffer-von-ankershoffen merged 12 commits intomainfrom
renovate/lock-file-maintenance

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented Mar 17, 2026

This PR contains the following updates:

Update Change
lockFileMaintenance All locks refreshed

🔧 This Pull Request updates lock files to use the latest dependency versions.


Manual fixes layered on top of the lock refresh

The bare lock refresh exposed a few pre-existing issues with upper bounds in pyproject.toml. They are fixed in this PR rather than the bare renovate update so CI is green:

  • coverage>=7.12.0,<7.13 (new pin in dev deps) — 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.

  • sphinx>=8.2.3,<9 (tightened from <10)sphinx-toolbox 4.1.2 (latest) is incompatible with Sphinx 9: its code imports logger from sphinx.ext.autodoc, which Sphinx 9 removed. main's docs CI still passes only because main's lockfile happens to still pin sphinx 8.2.3 (nothing forced a re-resolve after chore(deps): upgrade myst-parser to v5, sphinx <10, swagger-plugin-for-sphinx to v7 #596 widened the bound). The lock refresh on this branch resolved sphinx to 9.0/9.1 and broke the docs build. Re-evaluate when sphinx-toolbox ships Sphinx 9 support.

  • ruff 0.15 follow-ups — the lock refresh bumps ruff from 0.14.x to 0.15.x, which adds new lint rules and now formats code blocks inside Markdown. Adjustments:

    • Two new per-file-ignores in pyproject.toml: RUF067 for **/__init__.py (init modules legitimately contain initialization beyond re-exports) and RUF069 for **/tests/**/*.py (float equality assertions in tests are intentional).
    • Source fixes for new rules: PYI034 (__enter__ returns Self) in the WSI handlers, ISC004 (parenthesized implicit string concatenation) in qupath/_service.py and a parametrize tuple in dataset/gui_test.py, RUF070 (drop trivial intermediate yield) in utils/_service.py, RUF071 (os.path.commonprefix is intentional) in bucket/_service.py, D420 (Yields/Returns before Raises) in several docstrings.
    • ruff format reformatted embedded code blocks in CLAUDE.md / README docs and removed duplicate entries from platform/__init__.py's __all__.

Configuration

📅 Schedule: Branch creation - "before 5am on monday" in timezone Europe/Berlin, Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added bot Automated pull requests or issues dependencies Pull requests that update a dependency file renovate Pull requests from Renovate skip:codecov Skip Codecov reporting and check skip:test:long_running Skip long-running tests (≥5min) labels Mar 17, 2026
@renovate renovate Bot force-pushed the renovate/lock-file-maintenance branch 9 times, most recently from 09720eb to e908159 Compare March 25, 2026 09:20
@renovate renovate Bot force-pushed the renovate/lock-file-maintenance branch 5 times, most recently from 4b15ea7 to fffaef6 Compare April 1, 2026 07:46
@renovate renovate Bot force-pushed the renovate/lock-file-maintenance branch from fffaef6 to c806597 Compare April 9, 2026 07:32
@renovate renovate Bot requested a review from a team as a code owner April 9, 2026 07:32
@renovate renovate Bot force-pushed the renovate/lock-file-maintenance branch 3 times, most recently from cfd32ca to 20959be Compare April 22, 2026 03:30
@renovate renovate Bot force-pushed the renovate/lock-file-maintenance branch from 20959be to 79fd472 Compare April 22, 2026 07:52
@renovate
Copy link
Copy Markdown
Contributor Author

renovate Bot commented Apr 25, 2026

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

…s 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>
…le 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>
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>
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>
@helmut-hoffer-von-ankershoffen helmut-hoffer-von-ankershoffen removed the skip:test:long_running Skip long-running tests (≥5min) label Apr 26, 2026
Drops the local f03f2e8 commit ("bump nicegui to 3.11.0 ...") in favour
of the canonical fix that landed via #531 — which uses the same nicegui
>=3.11.0 lower bound but applies a different set of GUI lifecycle
adjustments. Conflicts resolved by taking origin/main verbatim for
pyproject.toml's nicegui constraint, tests/aignostics/notebook/
service_test.py (test_serve_notebook now uses user.http_client.get
directly, preserving the original URL/run_id regex extraction), and
uv.lock.

Also reorders the docstring of platform/resources/utils.py::paginate
so Yields precedes Raises (D420), required by ruff 0.15.x which the
refreshed lock now picks up. Coverage stays pinned to <7.13 (the
INTERNALERROR-on-subprocess regression) — preserved from 2932b6a.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…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>
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>
@sonarqubecloud
Copy link
Copy Markdown

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

that was a hard one. approving

@helmut-hoffer-von-ankershoffen helmut-hoffer-von-ankershoffen merged commit 0c31a8b into main Apr 26, 2026
27 checks passed
@helmut-hoffer-von-ankershoffen helmut-hoffer-von-ankershoffen deleted the renovate/lock-file-maintenance branch April 26, 2026 19:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bot Automated pull requests or issues dependencies Pull requests that update a dependency file renovate Pull requests from Renovate skip:codecov Skip Codecov reporting and check

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant