Skip to content

chore!: require Python >=3.11, test 3.11–3.14 in CI - #35

Open
tkhq-valet-dev[bot] wants to merge 1 commit into
mainfrom
chore/min-python-3.11
Open

tkhq-valet-dev[bot] wants to merge 1 commit into
mainfrom
chore/min-python-3.11

Conversation

@tkhq-valet-dev

@tkhq-valet-dev tkhq-valet-dev Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Public compatibility change (breaking)

requires-python changes from >=3.8 to >=3.11 for turnkey-http, turnkey-sdk-types, turnkey-api-key-stamper, and the root workspace. Users on Python <3.11 cannot install new releases. A changeset is included (minor, flagged BREAKING); maintainers may prefer a major or different bump.

Why

Python 3.8 (EOL 2024-10-07) and 3.10 (EOL 2026-10-01) are end-of-life. Python 3.11 is security-supported through Oct 2027; 3.12–3.14 are supported. This change is part of the CA/security runtime update effort, at Mehdi Sabraoui's direction.

Changes

  • Set requires-python >=3.11; classifiers cover 3.11–3.14; mypy targets 3.11.
  • Update CI matrices to 3.11, 3.12, 3.13, and 3.14; set setup-python default to 3.11.
  • Update README requirement text.

CA bundle findings

The HTTP dependency is requests>=2.31.0, which pulls certifi transitively. The repository has no explicit certifi pin or custom verify=, CA-bundle, or SSL code. No stale CA is pinned, so no CA change was made and no root was removed. Fresh installs resolve certifi 2026.10.19.

Validation

  • GitHub Build & Test matrix checks for Python 3.11, 3.12, 3.13, and 3.14 all pass. CI runs formatting and type checks, not pytest.
  • Locally, ruff format --check . and mypy packages/ pass on Python 3.11.2, 3.12.15, 3.13.16, and 3.14.8.
  • Local pytest results are identical across all four versions: 30 passed, 7 failed. The failures are live-API tests requiring TURNKEY_API_* credentials and test_get_organization, which calls a missing client method; these failures are not caused by this change.
  • python-dotenv is imported by http/tests/conftest.py but is absent from dev dependencies; it was installed manually for local validation and was not changed here.

Refactor-to-target

Mehdi's target is 500 net added lines. git diff origin/main --shortstat reports 21 insertions and 20 deletions (net +1). The author ran the simplification pass and found no justified reductions; all changed lines support the compatibility update.

Not merged.

This branch has not been deployed

No deployments
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