Skip to content

fix: floor intra-family deps so autolens[optional] imports - #688

Merged
Jammy2211 merged 1 commit into
mainfrom
feature/intra-family-dep-floors
Aug 3, 2026
Merged

fix: floor intra-family deps so autolens[optional] imports#688
Jammy2211 merged 1 commit into
mainfrom
feature/intra-family-dep-floors

Conversation

@Jammy2211

Copy link
Copy Markdown
Collaborator

Summary

pip install "autolens[optional]" can resolve an April autofit
(2026.4.30.582) alongside a current autoarray/autogalaxy/autonerves, so the
install succeeds and then import autolens dies with
AttributeError: module 'autofit' has no attribute 'Latent'. That is the
PyAutoHeart verify_install Check 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 walk
the 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's python3
resolves to.

This PR adds >=2026.7.29.2 floors to the cross-package intra-family
dependencies. 2026.7.29.2 is live on PyPI, is not yanked, and is the oldest
release 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] inside autolens[optional])
are deliberately left unfloored: a self-reference is already version-locked, and
a floor there would make a local 1.0.dev0 wheel build unsatisfiable.

What this repo changes

  • dependencies: autogalaxyautogalaxy>=2026.7.29.2
  • [jax]: autogalaxy[jax]autogalaxy[jax]>=2026.7.29.2
  • [optional]'s autolens[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

  • Built the whole family into wheels from this branch and installed
    autolens[optional]==2026.8.3.1.dev69801 on python3.13 in a clean venv
    (PYTHONPATH unset), against TestPyPI + PyPI:
    - siblings with today's bare metadata → autofit 2026.4.30.582,
    import autolens raises AttributeError: module 'autofit' has no attribute 'Latent'
    - siblings with this branch's floored metadata → autofit 2026.8.4.1,
    import autolens OK
    Identical inputs; only the dependency metadata differs, so the floors are
    shown to work transitively (from sibling metadata, not just as top-level pins).
  • tomllib parses every edited pyproject.toml; built wheel METADATA
    carries the intended Requires-Dist floors.
  • pyauto-heart verify_install D --testpypi --version 2026.8.3.1.dev69801 → PASS.

Note: this is a family-wide fix — the floors only take effect once all
the libraries are republished carrying them. The RED verify_install leg does
not clear until a release rehearsal republishes to TestPyPI and Check D
re-runs against those wheels.

Refs #687.

Generated by the PyAutoLabs agent workflow.

@Jammy2211 Jammy2211 added the pending-release PR queued for the next release build label Aug 3, 2026
@Jammy2211
Jammy2211 merged commit d582ecf into main Aug 3, 2026
3 checks passed
@Jammy2211
Jammy2211 deleted the feature/intra-family-dep-floors branch August 3, 2026 18:10
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.

1 participant