Skip to content

fix: raise the Python floor to 3.14 - #26

Merged
catinspace-au merged 1 commit into
mainfrom
fix/python-floor-314
Sep 22, 2026
Merged

catinspace-au merged 1 commit into
mainfrom
fix/python-floor-314

Conversation

@catinspace-au

Copy link
Copy Markdown
Contributor

Part of moving the whole suite to 3.14. The owner's rule: any part of the suite still on 3.12 moves. This repo carries two Python projects and both had a floor.

  • build/pyproject.toml and vector-vrl/pyproject.toml both go >=3.12 -> >=3.14
  • both locks re-resolved under CPython 3.14.4

The three per-minor classifiers are removed, replaced by "Programming Language :: Python :: 3 :: Only". This is the one repo in the sweep that had them, and with a 3.14 floor the 3.12 and 3.13 entries were claiming support the package now refuses. The policy is that requires-python carries the version and classifiers never repeat it -- otherwise they need updating every release and can drift, which is exactly what happened here.

What moved in the locks: vector-vrl drops typing-extensions, and only that. It was never a direct dependency -- pytest-asyncio pulled it behind marker = "python_full_version < 3.13", which a 3.14 floor can never satisfy. build drops nothing. Verified with git diff -- */uv.lock | rg "^-name = ", which returns that one line.

vector-bindings deliberately keeps abi3-py312. PyO3's stable ABI is forward compatible, so a py312 abi3 wheel already runs on 3.14 -- that is the point of building against it. Narrowing to abi3-py314 would cut wheel reach and buy nothing. The comment at vector-bindings/Cargo.toml:14 already says one wheel per platform serves 3.12+, and that stays true.

NOT changed: build/wheel_smoke_check.py:23 mentions "3.12" inside a docstring explaining what a wheel filename tag looks like. It is an illustration, not a pin.

NOT verified: nothing was built or installed under 3.14, and no wheel was produced. Lock resolution is the evidence here; CI is what proves the bindings still build.

Done when CI is green per job.

3.14 is the current stable line and the suite moves off 3.12 together. Both
projects in this repo carry a floor, so both move.

- build/pyproject.toml and vector-vrl/pyproject.toml are now >=3.14
- the three per-minor classifiers go, replaced by "Python :: 3 :: Only".
  With a 3.14 floor the 3.12 and 3.13 entries claimed support the package
  refuses, and the policy is that requires-python carries the version and
  classifiers never repeat it
- both locks re-resolved under CPython 3.14.4. vector-vrl drops
  typing-extensions, which pytest-asyncio pulled behind a
  python_full_version < '3.13' marker that can no longer be true. build drops
  nothing

vector-bindings keeps abi3-py312. The stable ABI is forward compatible, so a
py312 abi3 wheel already runs on 3.14, and narrowing it to abi3-py314 would
cut wheel reach for no gain.
@catinspace-au
catinspace-au merged commit 1caca2b into main Sep 22, 2026
16 checks passed
@catinspace-au
catinspace-au deleted the fix/python-floor-314 branch September 22, 2026 07:01
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