From 6d3f849c557c927d0f02dd597382a3e75f2672db Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 3 Aug 2026 22:22:39 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20pin=20tfp-nightly=20directly=20=E2=80=94?= =?UTF-8?q?=20autoarray[optional]=20downgraded=20nufftax?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Follow-up to #136, which fixed the Matérn ImportError but introduced a regression the verification run caught. #136 added `pip install "autoarray[optional]"` to the smoke leg on the reasoning that installing the whole extra self-heals future additions. That reasoning was wrong: this leg installs PUBLISHED wheels (source only shadows the PyAuto packages, via PYTHONPATH), so a library extra resolves the RELEASED metadata, which lags source main. Published autoarray 2026.7.29.2[optional] still declares `nufftax<0.5.0,>=0.4.0`. From the verification run's install log: pip install "nufftax>=0.6.1,<0.7.0" -> Successfully installed nufftax-0.6.1 pip install "autoarray[optional]" -> Collecting nufftax<0.5.0,>=0.4.0 Uninstalling nufftax-0.6.1 Successfully installed nufftax-0.4.0 So the extra silently defeated the floor pinned four lines above it — the one the step's own comment explains is needed because earlier nufftax cannot differentiate a batched nufft2d2, which the gradient searches' transform_mapping_matrix path relies on. Pin tfp-nightly directly instead. That is exactly what source main declares, introduces no stale transitive constraints, and leaves the deliberate nufftax pin authoritative. Future additions to autoarray[optional] are covered by the Brain's `hygiene extras` scan, which reads the SOURCE pyproject — that scan is the safety net, not the published extras metadata. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_016FceDqU3q1PRWrqN42R2p1 --- .github/workflows/workspace-validation.yml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/.github/workflows/workspace-validation.yml b/.github/workflows/workspace-validation.yml index e2a2d20..883148c 100644 --- a/.github/workflows/workspace-validation.yml +++ b/.github/workflows/workspace-validation.yml @@ -251,10 +251,18 @@ jobs: # autogalaxy_workspace_test's misc/jax_assertions/matern_regularization.py # and autolens_workspace_test's imaging/jax_grad/regularization.py fail # at import — red here while PASSING mode=release, which installs - # autoarray[optional] explicitly (below). Installing the whole extra - # rather than pinning tfp-nightly alone keeps a future addition to - # autoarray[optional] covered without another one-off line here. - pip install "autoarray[optional]" + # autoarray[optional] explicitly (below). + # + # Pin the single package rather than installing autoarray[optional]: + # this leg installs PUBLISHED wheels (source only shadows the PyAuto + # packages, via PYTHONPATH), so a library extra resolves the RELEASED + # metadata, which lags source main. autoarray 2026.7.29.2[optional] + # still declares `nufftax<0.5.0,>=0.4.0`, so pulling the whole extra + # here uninstalled the 0.6.1 pinned above and left nufftax 0.4.0 — + # silently below the floor the gradient searches need. A future + # addition to autoarray[optional] is caught by the Brain's + # `hygiene extras` scan instead, which reads the SOURCE pyproject. + pip install "tfp-nightly==0.26.0.dev20260713" - name: "Install TestPyPI wheels — NO source on PYTHONPATH [mode=release]" if: needs.find_scripts.outputs.mode == 'release' env: