Skip to content

fix: upgrade pip and drop napari[all] to unblock CI#529

Merged
Alpaca233 merged 3 commits into
masterfrom
fix/ci-drop-napari-all-extra
Apr 26, 2026
Merged

fix: upgrade pip and drop napari[all] to unblock CI#529
Alpaca233 merged 3 commits into
masterfrom
fix/ci-drop-napari-all-extra

Conversation

@Alpaca233
Copy link
Copy Markdown
Collaborator

@Alpaca233 Alpaca233 commented Apr 26, 2026

Summary

CI's install-and-test has been failing on every PR since April 14 with pip._vendor.resolvelib.resolvers.ResolutionTooDeep: 2000000. Last green master run was April 3 (#524). No commits to setup files in that window — the regression is purely from new releases on PyPI dragging Ubuntu's pip 22.0.2 into unbounded backtracking.

Root cause: Ubuntu 22.04 ships pip 22.0.2, whose resolver cannot handle the napari dependency graph against current PyPI. Verified by reproducing the same backtracking pattern locally with pip==22.0.2 (got stuck on napari-svg, magicgui, npe2, etc. — exact same packages CI bounces on). Modern pip (23+) resolves the same dependency set in seconds.

Changes

  1. Upgrade pip before installing libraries in setup_22.04.sh. This is the actual fix.
  2. Drop the [all] extra from napari==0.5.4. The codebase only imports napari.Viewer and napari.utils.colormaps; PyQt5 is already installed via apt on line 28. The [all] extra additionally pulls in napari-plugin-manager and a redundant Qt backend, neither of which Squid uses. Reduces conflict surface as a secondary cleanup.

Test plan

  • CI install-and-test job completes in roughly the same ~14 min as it did pre-regression
  • python3 main_hcs.py --simulation launches and the live / multi-channel / mosaic napari widgets work — sanity check that no plugin we silently relied on was in [all]

Notes

The previous run on this branch (24947389105, with only [all] removed) was still hanging in setup at 60+ min when I cancelled it — that confirmed dropping [all] alone wasn't enough, since magicgui / npe2 / napari-svg / napari-console / napari-plugin-engine are core napari deps, not extras. The pip upgrade is what actually unblocks resolution.

Long-term follow-up worth considering: commit a frozen requirements.txt so the project is immune to transitive PyPI releases breaking installs.

🤖 Generated with Claude Code

Alpaca233 and others added 2 commits April 25, 2026 20:34
Pin pip resolution was hitting ResolutionTooDeep (2,000,000 rounds)
because napari[all] pulls unpinned plugin packages (magicgui, npe2,
napari-svg, napari-console, napari-plugin-manager, napari-plugin-engine)
whose newer PyPI releases conflict with what napari 0.5.4 allows. The
codebase only uses napari.Viewer and napari.utils.colormaps directly,
so the [all] extra is unnecessary; PyQt5 is already installed via apt.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Ubuntu 22.04's system pip (22.0.2) cannot resolve the napari dependency
graph against current PyPI. CI install-and-test was hanging for hours and
eventually failing with ResolutionTooDeep: 2000000 (verified by reproducing
the same backtracking pattern locally with pip==22.0.2). pip 23+ handles
the same dependency set in seconds.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Alpaca233 Alpaca233 changed the title fix: drop napari[all] extra to unblock CI dependency resolution fix: upgrade pip and drop napari[all] to unblock CI Apr 26, 2026
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Alpaca233 Alpaca233 merged commit 8bfca85 into master Apr 26, 2026
3 checks passed
@Alpaca233 Alpaca233 deleted the fix/ci-drop-napari-all-extra branch April 26, 2026 18:22
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