From 1aba31955c1cbe21a88f465dde52600e7e1e18f5 Mon Sep 17 00:00:00 2001 From: Jammy2211 Date: Wed, 19 Aug 2026 18:50:51 -0400 Subject: [PATCH 1/2] =?UTF-8?q?docs:=20correct=20the=20sub-3.12=20install?= =?UTF-8?q?=20note=20=E2=80=94=20three=20claims=20were=20false?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The install page promised behaviour that did not happen. Verified on real 3.9/3.10/3.11 venvs against PyPI before the fix: `pip install autofit` did not fail, it backtracked to 2026.7.29.1 and installed a months-old, JAX-less stack silently. Three corrections: - "will fail with a no matching distribution error" — it did not. It now stops with an explanation, via the 2026.7.29.1.post1 tombstone release. - "dropped support ... in release 2026.4.5.3" — wrong release. That floor was reverted on 2026-04-30 and 2026.5.1.4 ... 2026.7.29.1 all shipped >=3.9 again. The real cut is 2026.7.29.2. - "pre-2026.4.5.3 releases on PyPI have been yanked" — they were not. 396 of 421 autolens releases are live, including every release a sub-3.12 pip was landing on. The section's whole premise was a yank that never happened. Also states the one remaining gap plainly: --only-binary=:all: skips sdists, so it steps past the tombstone to the old wheel. Issue: https://github.com/PyAutoLabs/PyAutoHands/issues/238 Co-Authored-By: Claude Opus 5 --- docs/installation/pip.md | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/docs/installation/pip.md b/docs/installation/pip.md index d24c94ba9..6f7bd8698 100644 --- a/docs/installation/pip.md +++ b/docs/installation/pip.md @@ -3,9 +3,10 @@ # Installation with pip :::{note} -**PyAutoFit** requires **Python 3.12 or later**. If you are on Python -3.9, 3.10, or 3.11, `pip install autofit` will fail with a "no matching -distribution" error. Upgrade Python to 3.12+ before installing. +**PyAutoFit** requires **Python 3.12 or later**. On Python 3.9, 3.10 or 3.11, +`pip install autofit` stops with an error telling you to upgrade — it will not +quietly install an older release instead. Upgrade Python to 3.12+ before +installing. ::: We strongly recommend that you install **PyAutoFit** in a @@ -47,16 +48,26 @@ python3 welcome.py ## Legacy Python versions -We dropped support for Python 3.9, 3.10, and 3.11 in release `2026.4.5.3` -(April 2026). Pre-`2026.4.5.3` releases on PyPI have been yanked, so they -will not install via the standard `pip install autofit` command. +We dropped support for Python 3.9, 3.10 and 3.11 in release `2026.7.29.2` +(July 2026) — the first release published declaring `Requires-Python >=3.12`. -If you have an existing project that requires a pre-`2026.4.5.3` version, -you can still install it explicitly by pinning the version, e.g.: +Raising that floor does not retract what is already published. Releases at or +below `2026.7.29.1` were published declaring `>=3.9`, and PyPI metadata is +immutable, so they remain valid candidates forever. Left alone, `pip install +autofit` on an older Python did not fail — it walked back to `2026.7.29.1` and +installed a months-old stack without JAX, reporting nothing. + +Release `2026.7.29.1.post1` exists to stop that. It contains no code, declares +`Requires-Python <3.12`, and raises an error when pip tries to build it, so an +unsupported Python gets an explanation instead of a stale install. + +If you need a historical release, pin it exactly — that still resolves on older +Pythons: ```bash pip install autofit==2025.10.6.1 ``` -Yanked releases remain available for explicit pins; only resolver-driven -fallback is blocked. +One gap remains: `pip install --only-binary=:all: autofit` skips source +distributions entirely, so it steps past `2026.7.29.1.post1` and installs the +old wheel silently. If you use that flag, pin the version you want. From 345740571700b8da7b614ad5a5bb8c2b7f64d4d0 Mon Sep 17 00:00:00 2001 From: Jammy2211 Date: Wed, 19 Aug 2026 18:57:51 -0400 Subject: [PATCH 2/2] docs: the supported range says 3.12 - 3.13 but 3.14 is supported MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Python 3.14 was promoted on 2026-07-31: it is in the classifiers, and PyAutoHands python_matrix.yml runs it as a REQUIRED unit + smoke leg alongside 3.12 and 3.13. The installation overview still advertised "3.12 - 3.13", understating support and pointing 3.14 users away from a version that is tested every night. Reworded to "Python 3.12 or later", which matches `requires-python = ">=3.12"` and does not need editing again at the next promotion. Checked and deliberately not changed: PyAutoCTI's "Python 3.12 or 3.13" is accurate — its classifiers stop at 3.13, so it genuinely was not promoted. The workspace AGENTS.md files saying CI gates on "3.12 and 3.13" are accurate too: PyAutoHeart's reusable smoke-tests workflow defaults to `["3.12", "3.13"]` and none of them override it. Issue: https://github.com/PyAutoLabs/PyAutoHands/issues/238 Co-Authored-By: Claude Opus 5 --- docs/installation/overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/installation/overview.md b/docs/installation/overview.md index e5328ae35..d748e475a 100644 --- a/docs/installation/overview.md +++ b/docs/installation/overview.md @@ -2,7 +2,7 @@ # Overview -**PyAutoFit** requires Python 3.12 - 3.13 and supports the Linux, MacOS and Windows operating systems. +**PyAutoFit** requires Python 3.12 or later and supports the Linux, MacOS and Windows operating systems. **PyAutoFit** can be installed via the Python distribution [Anaconda](https://www.anaconda.com/) or using [Pypi](https://pypi.org/) to `pip install` **PyAutoFit** into your Python distribution.