Skip to content

LITE-33583: Support Python 3.13 and 3.14#125

Merged
pcaro merged 1 commit into
masterfrom
cr/LITE-33583-support-python-3.13-3.14
Jul 3, 2026
Merged

LITE-33583: Support Python 3.13 and 3.14#125
pcaro merged 1 commit into
masterfrom
cr/LITE-33583-support-python-3.13-3.14

Conversation

@pcaro

@pcaro pcaro commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds support for Python 3.13 and 3.14 to connect-eaas-core.

  • Widen the supported range: python = ">=3.9,<3.13"">=3.9,<3.15"
  • Add trove classifiers for 3.13 and 3.14
  • Add 3.13 and 3.14 to the GitHub Actions test matrix

Verification

Installed the full runtime + test dependency set on fresh 3.13 and 3.14 virtualenvs and ran the suite:

  • 368 passed on Python 3.13
  • 368 passed on Python 3.14

pydantic 1.10.26 resolves as a compiled wheel on both interpreters (this was the main risk with the pinned pydantic v1).

Notes

  • Python 3.14 emits deprecation warnings from pydantic v1 internals (noise, no failures). These will be resolved by a future move to pydantic v2.

@pcaro
pcaro force-pushed the cr/LITE-33583-support-python-3.13-3.14 branch from 68ce587 to 50bf2e3 Compare July 2, 2026 14:29
@pcaro
pcaro marked this pull request as draft July 2, 2026 14:38
Widen the supported Python range from >=3.9,<3.13 to >=3.9,<3.15,
add 3.13/3.14 trove classifiers, and extend the CI test matrix.

- pydantic bumped to 1.10.26 (locked): 1.10.22 raised ConfigError
  "unable to infer type" at model-definition time on Python 3.14.
- flake8 now runs only on 3.12: flake8-future-import (abandoned) imports
  ast.Str, removed in 3.14. Lint is version-independent, so run it once.
- poetry.lock relocked for the widened range; README updated.

Full test suite (368 tests) passes on 3.9 through 3.14.

LITE-33583
@pcaro
pcaro force-pushed the cr/LITE-33583-support-python-3.13-3.14 branch from 9c8e4af to 393e5a1 Compare July 2, 2026 15:08
@sonarqubecloud

sonarqubecloud Bot commented Jul 2, 2026

Copy link
Copy Markdown

Comment thread pyproject.toml

[tool.poetry.dependencies]
python = ">=3.9,<3.13"
python = ">=3.9,<3.15"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Info] This declares 3.13/3.14 support, but connect/eaas/core/deployment/helpers.py:4 imports from distutils.version import StrictVersion (the base class of ConnectVersionTag). distutils was removed from the stdlib in Python 3.12, so it now resolves only via the setuptools shim — and setuptools is a test-group-only dependency here. A runtime install on Python 3.12+ without setuptools therefore crashes on import connect.eaas.core.deployment.helpers with ModuleNotFoundError: No module named 'distutils'. This is pre-existing (already the case for the 3.12 end of the previous range) and it works in the test/CI env where setuptools is present; on 3.14 it also emits a DeprecationWarning (helpers.py:71) and setuptools plans to drop the shim.

Not blocking this PR. Suggested follow-up: migrate ConnectVersionTag from distutils.version.StrictVersion to packaging.version.Version (packaging is already a transitive dependency).

Comment thread poetry.lock
@@ -1,4 +1,4 @@
# This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand.
# This file is automatically @generated by Poetry 2.4.1 and should not be changed by hand.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Info] The PR description states "No poetry.lock is tracked in this repo, so there is nothing to re-resolve." That is not accurate — poetry.lock is tracked and this PR relocks it (pydantic 1.10.22 → 1.10.26, the metadata Python range, and a typing_extensions marker). The commit message describes this correctly; only the PR description is off. No code change needed — worth correcting the description so it isn't misleading.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@pcaro
pcaro merged commit 25ab907 into master Jul 3, 2026
9 checks passed
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.

2 participants