Skip to content

fix(ci): list local [jax] extras explicitly in the 3.12 smoke install - #87

Merged
Jammy2211 merged 1 commit into
mainfrom
fix/smoke-install-pip26-extras-resolution
Aug 19, 2026
Merged

fix(ci): list local [jax] extras explicitly in the 3.12 smoke install#87
Jammy2211 merged 1 commit into
mainfrom
fix/smoke-install-pip26-extras-resolution

Conversation

@Jammy2211

Copy link
Copy Markdown
Collaborator

Summary

Main smoke has failed since 2026-08-18 18:03 UTC (runs 32168904540 ×2 attempts) with:

ERROR: wcwidth has an invalid wheel, multiple .dist-info directories found: wcwidth-0.2.0.dist-info, wcwidth-0.2.1.dist-info

That error is collateral, not the cause. pip 26.2.1's resolver treats autofit[jax] / autonerves[jax] as separate extra nodes; with only ./PyAutoFit[optional] named it walks their PyPI release history (resolution-too-deep) and dies on wcwidth 0.2.1's corrupt 2020 wheel while backtracking. Trigger: the blackjax>=1.6.2 floor bump (PyAutoFit 1459734a4, merged Aug 18 16:28) deepened the graph — the green Aug 15 run used the same pip 26.2.1.

Fix

Name the local checkouts as the [jax] extra candidates so those nodes resolve to the path installs instead of PyPI history:

pip install ./PyAutoNerves "./PyAutoNerves[jax]" "./PyAutoFit[jax]" "./PyAutoFit[optional]"

Verification (local, Python 3.12.10 + pip 26.2.1 — same as CI)

  • Old line: reproduces the exact CI failure (invalid-wheel abort); with wcwidth excluded via constraints it still fails resolution-too-deep, so a wcwidth pin alone is not a fix.
  • New line: resolves instantly with no constraints — autofit/autonerves local dev versions, blackjax 1.6.2, jax/jaxlib 0.10.2, wcwidth 0.8.2.
  • Siblings (autogalaxy/autolens/autocti _workspace_test) already avoid this by installing base packages before extras in a second pip call; only this repo does the single-shot install.

This PR's own smoke run exercises the new install line end-to-end. Unblocks Heart readiness (autofit_workspace_test: Smoke Tests failure on main is the one RED reason) and the nightly-release gate.

🤖 Generated with Claude Code

pip 26.2.1's resolver treats autofit[jax] / autonerves[jax] as separate
extra nodes and, when only ./PyAutoFit[optional] is named, walks their
PyPI release history until resolution-too-deep — aborting early on
wcwidth 0.2.1's corrupt wheel (multiple .dist-info directories). Broke
main smoke on 2026-08-18 after the blackjax>=1.6.2 floor bump (PyAutoFit
1459734a4) deepened the graph; the Aug 15 green run used the same pip.

Naming the local checkouts as the [jax] extra candidates pins those
nodes and the resolve completes instantly (verified with pip 26.2.1 +
Python 3.12 dry-run: local repro of the failure, then convergence to
blackjax 1.6.2 / jax 0.10.2 / wcwidth 0.8.2 with this line).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Jammy2211
Jammy2211 merged commit a425b1b into main Aug 19, 2026
3 checks passed
@Jammy2211
Jammy2211 deleted the fix/smoke-install-pip26-extras-resolution branch August 19, 2026 17:33
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