Repository navigation
feat: add Python 3.14 support - #1215
Merged
Aaron ("AJ") Steers (aaronsteers) merged 3 commits intoOct 8, 2026
Merged
Aaron ("AJ") Steers (aaronsteers) merged 3 commits into
Aaron ("AJ") Steers (aaronsteers) merged 3 commits into
Conversation
Co-Authored-By: AJ Steers <aj@airbyte.io>
Contributor
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
👋 Greetings, Airbyte Team Member!Here are some helpful tips and reminders for your convenience. 💡 Show Tips and TricksTesting This CDK VersionYou can test this version of the CDK using the following: # Run the CLI from this branch:
uvx 'git+https://github.com/airbytehq/airbyte-python-cdk.git@devin/1791315217-python-3-14-support#egg=airbyte-python-cdk[dev]' --help
# Update a connector to use the CDK from this branch ref:
cd airbyte-integrations/connectors/source-example
poe use-cdk-branch devin/1791315217-python-3-14-supportPR Slash CommandsAirbyte Maintainers can execute the following slash commands on your PR:
|
Airbyte Support Bot (airbyte-support-bot)
requested a balanced review from Copilot
October 6, 2026 19:44
Co-Authored-By: AJ Steers <aj@airbyte.io>
Aaron ("AJ") Steers (aaronsteers)
marked this pull request as ready for review
October 8, 2026 05:48
Aaron ("AJ") Steers (aaronsteers)
requested a review
from a team
as a code owner
October 8, 2026 05:48
Contributor
There was a problem hiding this comment.
✅ Devin resolved the finding on aad9bf1
Fixed by Devin (1)
- Windows 3.14 development installs fail
Co-Authored-By: AJ Steers <aj@airbyte.io>
Patrick Nilan (pnilan)
approved these changes
Oct 8, 2026
Aaron ("AJ") Steers (aaronsteers)
merged commit Oct 8, 2026
cae92f4
into
main
29 of 30 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
👉 TL;DR: Lets the CDK install and run on Python 3.14.
Raises the Python cap to
<3.15, thepydanticfloor to^2.13(itspydantic.v1shim works on 3.14 from 2.13), relaxespandasto>=2.2.3,<3.0, widens thepyarrow,python-calamineandtiktokenextras pins to versions withcp314wheels, and adds3.14to the CI matrices.Unblocks Python 3.14 in PyAirbyte, stacked on PyAirbyte#1337:
Changes
python = ">=3.10,<3.15"(was<3.14)pandas = ">=2.2.3,<3.0"(was==2.2.3, which has no 3.14 wheels). Stays on the stable 2.x line; locks2.3.3.pydantic = "^2.13"(was^2.7).pydantic2.12 on 3.14 raisesConfigError: unable to infer typeonpydantic.v1models such asInternalConfig; 2.13 fixes it. No v1→v2 migration.pyarrow^19→>=19,<24,python-calamine0.2.3→>=0.2.3,<0.9,tiktoken0.8.0→>=0.8.0,<0.15. Floors stay the same; the old pins have no 3.14 wheels.poetry.lock: re-locked, with targetedpoetry update --lockfor locked packages that had nocp314wheels (orjson,serpyco-rs,pyyaml,regex,rapidfuzz,grpcio,markupsafe,memray, plus extras deps such asaiohttp,lxml,pillow,scipy,scikit-learn,matplotlib,fastavro,cramjam). Dev-onlypywin32308 → 312 for Windows 3.14 wheels.pytest_matrix.ymlandtest-command.yml: added"3.14".airbyte_protocol_serializers.py: explicitSerializer[Model]annotations.serpyco-rs1.23 typesSerializeras generic, so MyPy otherwise flagsvar-annotatedandno-any-returnon.load()callers.Review Spotlight
Reviewers with limited time, please review first:
pyproject.toml#L32-L50: Python cap and the corepandas/pydanticconstraintspyproject.toml#L73-L78: widened extras pinsRisks
pydantic.v1on 3.14+ is documented by Pydantic as unsupported. It works with 2.13, but it isn't guaranteed to keep working. A v2 migration is tech debt, not a blocker.pyarrow19→23,orjson,serpyco-rs1.13→1.23,python-calamine0.2→0.8). The full CI matrix covers 3.10–3.14.Test plan
poetry install --all-extrason Python 3.14.7: wheels only, no source builds.mypy --config-file mypy.ini airbyte_cdk: clean.Pytest (All)passes on 3.10, 3.11, 3.12, 3.13 and 3.14 (5,016 passed, 12 skipped).source-pokeapi,source-intercomandsource-hardcoded-recordspass.destination-motherduckfails on MotherDuck token auth (Your request is not authenticated). It's a CI credential problem, not this change: the same check fails on every recent CDK PR, including unrelated ones (for example thedocs-concurrent-source-timeout-secon…branch).Link to Devin session: https://app.devin.ai/sessions/11efb22ec9fc43aaaeb1395cb3343306
Open in Devin Desktop: https://app.devin.ai/desktop/session/11efb22ec9fc43aaaeb1395cb3343306?variant=devin
Requested by: Aaron ("AJ") Steers (@aaronsteers)