Skip to content

fix: stamp source builds above every intra-family dep floor - #1447

Merged
Jammy2211 merged 1 commit into
mainfrom
feature/dep-floors-source-chain-ci
Aug 3, 2026
Merged

fix: stamp source builds above every intra-family dep floor#1447
Jammy2211 merged 1 commit into
mainfrom
feature/dep-floors-source-chain-ci

Conversation

@Jammy2211

Copy link
Copy Markdown
Collaborator

Part of the fix for PyAutoLabs/PyAutoNerves#146 — main is broken: every
workspace smoke job has died at the install step since 18:08Z on 2026-08-03.

The defect

setup.py fell back to "1.0.dev0" whenever VERSION is unset — which is what
any source install does. 1.0.dev0 sorts below every date release, so a
local checkout advertised itself as older than a 2022 wheel.

That was harmless only while nothing in the family constrained a sibling. Once
the >=2026.7.29.2 floors landed (PyAutoLens#687), 1.0.dev0 could not satisfy
them and pip raised ResolutionImpossible.

Not fallout from the floors

The same defect was already biting, silently. autolens_workspace_test,
autogalaxy_workspace_test and autocti_workspace_test each carry
pip install --force-reinstall --no-deps ./PyAutoNerves, commented "the
[optional] re-resolution above can upgrade autonerves to the stale PyPI
release"
— a PyPI wheel quietly shadowing the local build, patched per repo.
The floors converted a silent misinstall into a loud one, everywhere at
once.

Why 9999.0.0.dev0

  • Sorts above every date release, so it satisfies present and future floors.
  • Keeps .dev, so nothing ever claims the checkout is a release.
  • Not read by the autonerves workspace handshake — that reads __version__
    (2026.7.23.1 on main), not pip metadata. No runtime behaviour changes.
  • Release builds always export VERSION explicitly, so this default is never
    published. PyAutoHands gains a guard that fails the build if VERSION is
    empty, belt-and-braces.

Verified

  • pip install ./PyAutoNerves ./PyAutoFit on main → the exact
    ResolutionImpossible seen in CI.
  • The same command against these branches, with no VERSION set → resolves;
    every package installs from source at 9999.0.0.dev0, no family wheels from
    PyPI. Confirmed for both the autolens chain (5 packages) and the autocti chain.
  • End-to-end pre-merge verification: DO NOT MERGE — verification harness for PyAutoNerves#146 autolens_workspace_test#246.

Merge order

All six library PRs merge together. The floors stay exactly as they are.

setup.py fell back to "1.0.dev0" when VERSION is unset, which is what any
source install does. That sorts BELOW every date release, so a local checkout
advertised itself as older than a 2022 wheel. Harmless while nothing in the
family constrained a sibling; fatal once the >=2026.7.29.2 floors landed
(PyAutoLens#687), since 1.0.dev0 cannot satisfy them and pip raises
ResolutionImpossible.

The same defect was already biting silently: three *_workspace_test repos
carry `pip install --force-reinstall --no-deps ./PyAutoNerves` because the
[optional] re-resolution kept pulling the stale PyPI autonerves over the
local build. The floors turned silent into loud.

"9999.0.0.dev0" sorts above every date release (satisfies present and future
floors), keeps .dev so nothing claims the checkout is a release, and is not
read by the autonerves workspace handshake (that reads __version__).

Refs PyAutoLabs/PyAutoNerves#146.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JJA22BPEreojsu7LZHFwsv
@Jammy2211
Jammy2211 merged commit fee7ad6 into main Aug 3, 2026
2 checks passed
@Jammy2211
Jammy2211 deleted the feature/dep-floors-source-chain-ci branch August 3, 2026 21:30
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