LITE-33583: Support Python 3.13 and 3.14#125
Conversation
68ce587 to
50bf2e3
Compare
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
9c8e4af to
393e5a1
Compare
|
|
|
||
| [tool.poetry.dependencies] | ||
| python = ">=3.9,<3.13" | ||
| python = ">=3.9,<3.15" |
There was a problem hiding this comment.
[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).
| @@ -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. | |||
There was a problem hiding this comment.
[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.



Summary
Adds support for Python 3.13 and 3.14 to
connect-eaas-core.python = ">=3.9,<3.13"→">=3.9,<3.15"Verification
Installed the full runtime + test dependency set on fresh 3.13 and 3.14 virtualenvs and ran the suite:
pydantic1.10.26 resolves as a compiled wheel on both interpreters (this was the main risk with the pinned pydantic v1).Notes