You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Browse filesBrowse the repository at this point in the historyBrowse files
authored
test: Check B must assert the unpinned sub-3.12 install is refused (#155)
* test: Check B must assert the UNPINNED sub-3.12 install is refused
Check B already knew about this gap and wrote it down — "An unpinned 3.11
install is not evidence because pip may select an older compatible release" —
then tested only the pinned rejection. The unpinned path was the one users
actually took, and until 2026-08-19 it silently installed the stale
2026.7.29.1 stack with no JAX and no warning.
Adds check_b_unpinned_refused: an unpinned `pip install autolens` on 3.11 must
fail, and fail for the right reason. A successful install is now a FAIL that
says the sub-floor backtrack is back.
verify_install_unpinned_refusal accepts the two shapes that mean refused — the
tombstone raising during metadata preparation (the live path), and pip running
out of candidates if the sub-floor catalogue is ever withdrawn. Anything else
(network, resolver, dependency failure) is not floor evidence.
Classifier verified against real captured pip output in both directions: a real
3.11 refusal classifies as a refusal, a real 3.12 success does not.
Issue: PyAutoLabs/PyAutoHands#238
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* docs: release_validation must describe both Check B refusals
The page repeated the old caveat — "An unpinned install is not sufficient
evidence because pip may select an older compatible release" — which was
written when the unpinned path was untested. It now has its own required leg.
Restates it as two distinct guarantees: a pinned rejection proves this release
holds the floor, and the unpinned install must be refused as well. The second
was not met until 2026-08-19, when pip on 3.11 backtracked to 2026.7.29.1 and
installed a stale JAX-less stack silently.
Issue: PyAutoLabs/PyAutoHands#238
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
---------
Co-authored-by: Jammy2211 <JNightingale2211@gmail.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: skills/verify_install/verify_install.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ about cleanup if they ran with `--keep`.
14
14
| Check | What it verifies |
15
15
|-------|------------------|
16
16
| A |`pip install autolens` in a venv on default `python3`; `start_here.py` and `welcome.py` both run cleanly. |
17
-
| B | One exact `autolens` version installs and imports cleanly on `python3.12` and `python3.13`, then the same exact version is rejected by `python3.11` specifically because `Requires-Python` is `>=3.12`. An unpinned 3.11 install is not evidence because pip may select an older compatible release. |
17
+
| B | One exact `autolens` version installs and imports cleanly on `python3.12` and `python3.13`, then the same exact version is rejected by `python3.11` specifically because `Requires-Python` is `>=3.12`. An **unpinned**`pip install autolens` on `python3.11`is then required to be refused too — it was not, until 2026-08-19: pip backtracked to `2026.7.29.1` and installed a stale JAX-less stack silently. The `2026.7.29.1.post1` tombstone closes that, and this leg is what stops it reopening. |
18
18
| C | The conda flow from `installation/conda.rst` works end-to-end (`conda create … python=3.12` → `pip install autolens` → clone workspace → run `welcome.py` + `start_here.py`). |
19
19
| D |`pip install "autolens[optional]"` resolves cleanly and imports. |
20
20
| E |`pip install autolens==2026.2.26.4` (a yanked release the docs reference) still installs on `python3.12` by explicit pin. |
0 commit comments