Skip to content

ci: drop the vestigial jax<0.7 pin from smoke_install.sh - #107

Merged
Jammy2211 merged 1 commit into
mainfrom
feature/smoke-install-stale-jax-pin
Aug 23, 2026
Merged

ci: drop the vestigial jax<0.7 pin from smoke_install.sh#107
Jammy2211 merged 1 commit into
mainfrom
feature/smoke-install-stale-jax-pin

Conversation

@Jammy2211

Copy link
Copy Markdown
Collaborator

Summary

This repo's install epilogue carried the same stale line as autolens_workspace_test, where it was found and diagnosed — see PyAutoLabs/autolens_workspace_test#266 and its companion PR PyAutoLabs/autolens_workspace_test#268.

.github/scripts/smoke_install.sh pinned jax<0.7 jaxlib<0.7. That pin was added in autolens_workspace_test#82 for exactly one reason: keeping tensorflow-probability==0.25.0 importable, since tfp.substrates.jax referenced jax.interpreters.xla.pytype_aval_mappings, removed in JAX 0.7.0. autolens_workspace_test#184 then deleted that dependency when the stack moved to tfp-nightly (pinned by PyAutoArray[optional]). The pin outlived what it protected.

It was not merely inert. jax is a base dependency of autonerves (jax>=0.7.0,<0.12.0, PyAutoLens#702), so the preceding line already installed a conforming jax; the pin then downgraded it to 0.6.2 — unsupported by the stack — and only the following [optional] re-resolution repaired it. The install was correct by line ordering, not by constraint, and a reordering would have dropped the smoke suite onto jax 0.6.2 silently.

This removes the pin, leaves a comment recording the trail, and asserts the resolved jax version at the end of the script so the outcome is checked rather than inferred from a green run.

Scripts Changed

  • .github/scripts/smoke_install.sh — removed pip install "jax<0.7" "jaxlib<0.7"; replaced with a comment recording why no jax pin belongs here (issue references qualified as autolens_workspace_test#82 / #184, since bare numbers would resolve to unrelated issues in this repo); appended a post-install assertion that the resolved jax falls in [0.7.0, 0.12.0), printing the version to the CI log.

No workspace scripts/ or notebooks/ are touched — this is CI install configuration only.

Test Plan

  • Smoke tests pass for all affected workspaces
  • The install log prints resolved jax <version> with a version in [0.7.0, 0.12.0)
  • The JAX likelihood-function smoke scripts pass — they are the scripts that would break had the install genuinely landed on 0.6.2

Validation already performed

  • bash -n clean on the modified script.
  • Guard boundary cases unit-tested: 0.7.0 / 0.9.0 / 0.10.2 / 0.11.4 pass; 0.6.2 / 0.12.0 / 1.0.0 fail.
  • The guard was executed as a real bash heredoc against a stub jax: 0.10.2 prints resolved jax 0.10.2 and exits 0; 0.6.2 and 0.12.0 exit 1 with the explanatory message. With set -e at the top of the script, that aborts the install step.
  • Confirmed PyAutoHeart/.github/workflows/smoke-tests.yml uses actions/setup-python@v5 on ubuntu-latest, so python is on PATH.

Implementation notes

  • The assertion compares a major/minor tuple rather than using packaging.version, avoiding a dependency this epilogue does not otherwise declare.
  • import jax is deliberately unguarded: this workflow runs on ubuntu-latest, where autonerves' platform marker always installs jax, so an absent jax is itself a failure worth catching.

Sibling repos

autocti_workspace_test and autofit_workspace_test were also checked; neither carries a jax pin, so no change is needed there.

Generated by the PyAutoLabs agent workflow.


Generated by Claude Code

This repo's install epilogue carried the same stale line as
autolens_workspace_test, where it was found and diagnosed
(autolens_workspace_test#266).

`pip install "jax<0.7" "jaxlib<0.7"` was added there in
autolens_workspace_test#82 solely to keep `tensorflow-probability==0.25.0`
importable, since `tfp.substrates.jax` referenced
`jax.interpreters.xla.pytype_aval_mappings`, removed in JAX 0.7.0.
autolens_workspace_test#184 deleted that dependency when the stack moved to
tfp-nightly (pinned by `PyAutoArray[optional]`). The pin outlived what it
protected.

It is not merely inert. jax is a base dependency of autonerves
(jax>=0.7.0,<0.12.0, PyAutoLens#702), so the preceding line already installs a
conforming jax; the pin then downgraded it to 0.6.2 — unsupported by the stack —
and only the following `[optional]` re-resolution repaired it. The install was
correct by line ordering, not by constraint.

Remove the pin, leave a comment recording the trail (issue references qualified
with their repo, since they are autolens_workspace_test numbers), and assert the
resolved jax version at the end of the script so the outcome is checked rather
than inferred from a green run.

autocti_workspace_test and autofit_workspace_test were also checked; neither
carries a jax pin, so no change is needed there.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KMknTjH347FBZUE82nNEby
@Jammy2211 Jammy2211 added the pending-release PR queued for the next release build label Aug 23, 2026 — with Claude
@Jammy2211
Jammy2211 merged commit 0a91883 into main Aug 23, 2026
2 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pending-release PR queued for the next release build

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants