fix: floor intra-family deps so autolens[optional] imports - #688
Merged
Conversation
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
pip install "autolens[optional]"can resolve an Aprilautofit(
2026.4.30.582) alongside a current autoarray/autogalaxy/autonerves, so theinstall succeeds and then
import autolensdies withAttributeError: module 'autofit' has no attribute 'Latent'. That is thePyAutoHeart
verify_installCheck D failure holding release readiness RED(run 30788224561, job 91606144514).
Every intra-family dependency across the libraries is a bare package name with
no version floor. When pip backtracks through the
[optional] → [jax] → autofit[jax] → autonerves[jax]extras chain it may walkthe release history back to 2022 — and pip treats
"version X does not provide the extra 'jax'" as a warning, not an error,
so a pre-extras release is a legal solution and pip settles there.
It is invisible on python3.12 (which happens to stop at a release that still has
af.Latent) and fatal on python3.13, which is what the release job'spython3resolves to.
This PR adds
>=2026.7.29.2floors to the cross-package intra-familydependencies.
2026.7.29.2is live on PyPI, is not yanked, and is the oldestrelease still carrying
af.Latent. These are floors, not exact pins —consistent with the floors-not-pins release design.
Self-referential extras (e.g.
autolens[jax]insideautolens[optional])are deliberately left unfloored: a self-reference is already version-locked, and
a floor there would make a local
1.0.dev0wheel build unsatisfiable.What this repo changes
dependencies:autogalaxy→autogalaxy>=2026.7.29.2[jax]:autogalaxy[jax]→autogalaxy[jax]>=2026.7.29.2[optional]'sautolens[jax]self-reference left bare, deliberately.This is the repo whose
autolens[optional]extra surfaces the bug.API Changes
None. No Python symbol is added, removed or renamed — this is packaging
metadata only. The installed dependency versions change: pip can no longer
resolve a PyAuto sibling below
2026.7.29.2, which is the point.Test Plan
autolens[optional]==2026.8.3.1.dev69801on python3.13 in a clean venv(
PYTHONPATHunset), against TestPyPI + PyPI:- siblings with today's bare metadata →
autofit 2026.4.30.582,import autolensraisesAttributeError: module 'autofit' has no attribute 'Latent'- siblings with this branch's floored metadata →
autofit 2026.8.4.1,import autolensOKIdentical inputs; only the dependency metadata differs, so the floors are
shown to work transitively (from sibling metadata, not just as top-level pins).
tomllibparses every editedpyproject.toml; built wheelMETADATAcarries the intended
Requires-Distfloors.pyauto-heart verify_install D --testpypi --version 2026.8.3.1.dev69801→ PASS.Refs #687.
Generated by the PyAutoLabs agent workflow.