fix: upgrade pip and drop napari[all] to unblock CI#529
Merged
Conversation
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>
Co-Authored-By: Claude Opus 4.7 (1M context) <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
CI's
install-and-testhas been failing on every PR since April 14 withpip._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 onnapari-svg,magicgui,npe2, etc. — exact same packages CI bounces on). Modern pip (23+) resolves the same dependency set in seconds.Changes
setup_22.04.sh. This is the actual fix.[all]extra fromnapari==0.5.4. The codebase only importsnapari.Viewerandnapari.utils.colormaps; PyQt5 is already installed via apt on line 28. The[all]extra additionally pulls innapari-plugin-managerand a redundant Qt backend, neither of which Squid uses. Reduces conflict surface as a secondary cleanup.Test plan
install-and-testjob completes in roughly the same ~14 min as it did pre-regressionpython3 main_hcs.py --simulationlaunches 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, sincemagicgui/npe2/napari-svg/napari-console/napari-plugin-engineare core napari deps, not extras. The pip upgrade is what actually unblocks resolution.Long-term follow-up worth considering: commit a frozen
requirements.txtso the project is immune to transitive PyPI releases breaking installs.🤖 Generated with Claude Code