Skip to content

ci: test AnyIO 4.14.2 in browser integration jobs - #1204

Merged
maartenbreddels merged 2 commits into
masterfrom
codex/test-anyio-4.14.2
Oct 2, 2026
Merged

maartenbreddels merged 2 commits into
masterfrom
codex/test-anyio-4.14.2

Conversation

@maartenbreddels

@maartenbreddels maartenbreddels commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

The browser integration jobs for ipywidgets 8 now run on Python 3.10 with AnyIO 4.14.2, instead of Python 3.9 with AnyIO 4.12.1.

Problem

The browser integration tests pinned AnyIO 4.12.1, so CI never checked solara's server against AnyIO 4.14. Solara's Starlette server runs each websocket in its own thread through AnyIO portals and worker threads. A change in AnyIO can therefore break the server without any change in solara.

Change

  • The ipywidgets 8 jobs of integration-test (Ubuntu and Windows) and the integration-test-vue3 job (Ubuntu) move from Python 3.9 to 3.10, because AnyIO 4.14.2 needs Python 3.10 or newer. Their two lock files are renamed from python3.9 to python3.10.
  • The three lock files pin anyio==4.14.2 and filelock==3.24.2. Version 3.24.2 is the lowest filelock that virtualenv 21.9.0 accepts on Python 3.10. All other pins stay the same.
  • The ipywidgets 7 jobs keep Python 3.9 and AnyIO 3.7.1. The unit and PyInstaller jobs do not change. No runtime dependency and no application code changes.

Validation

  • I rebased the PR onto master 2235100f. Git merged master's reacton 1.11.0 lock change (#1213) into the renamed files without conflicts.
  • The full CI passed 5 times in a row on the rebased head d24ff64c: attempts 1 to 3 of run 36978937915, and the manual runs 36979003600 and 36980662404.
  • Codex, which wrote the first version, ran these checks before the rebase:
    • All CI checks passed at acd6fe6a.
    • All three lock files resolve with uv pip compile --python-version 3.10 for their Linux and Windows targets.
    • 41 kernel and state unit tests passed locally with AnyIO 4.14.2 on Python 3.11.
  • In that local run, a combined mount, async and reconnect test sequence failed twice on AnyIO 4.14.2: the reconnect test saw two kernel contexts instead of one. The opus reviewer compared both AnyIO versions and found no change that explains it. Its likely cause is a race in the test setup that #1219 and #1222 fixed after that run. Nobody reproduced the failure to confirm this.

Gaps

  • The lock files are Python 3.9 resolutions with two pins raised. The next daily lock refresh resolves them for Python 3.10, so it will raise several packages at once, AnyIO included.
  • The unit and PyInstaller jobs already use AnyIO 4.15.1. The browser jobs therefore test an older AnyIO than the unit jobs.

Align results

Caution

/align was not run on this change: Maarten asked to get this CI-only PR in as written; it has no design choice.

Crossreview results

1 round, by astra, opus, and glm, on the rebased head d24ff64c. All three approve it. Nobody found a CRITICAL, HIGH, or MEDIUM problem, so nothing was fixed.

  • Astra checked the matrix, lock file paths, artifact names, the lock refresh job, and the AnyIO 4.12.1 and 4.14.2 sources.
  • Opus resolved all three lock files for Python 3.10 on Linux and Windows and found Python 3.10 wheels for about 40 compiled packages. It also compared the AnyIO code on solara's path and found only small fixes.
  • LOW notes from opus and glm are listed under Gaps.
  • Constitution change: None.

🤖 Generated with Claude Code

@maartenbreddels
maartenbreddels force-pushed the codex/test-anyio-4.14.2 branch from acd6fe6 to d24ff64 Compare October 2, 2026 07:30
@maartenbreddels
maartenbreddels temporarily deployed to codex/test-anyio-4.14.2 - solara-stable PR #1204 October 2, 2026 07:30 — with Render Destroyed
@maartenbreddels
maartenbreddels marked this pull request as ready for review October 2, 2026 08:18
@maartenbreddels
maartenbreddels merged commit b3c4e39 into master Oct 2, 2026
167 checks passed

This branch was successfully deployed

No deployments
codex/test-anyio-4.14.2 - solara-stable PR #1204 — d24ff64c Deployed Oct 2, 2026 by maartenbreddels
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant