Repository navigation
Conversation
Dev-iL
requested review from
amoghrajesh,
ashb,
choo121600,
jason810496,
jscheffl,
potiuk and
shahar1
as code owners
October 7, 2026 15:17
This branch has not been deployed
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.
related:
This PR distills the above into a skill to facilitate future addition and removal of python version support from core/sdk/providers. The plan is to make use of this in the upcoming addition of python 3.15 support.
Although we add or remove a python version from core only once a year each, I believe this is worth a skill for the provider coverage part of it, because it helps the user identify problematic providers so they can be disabled (skill-assistedly) and their maintainers reached out to.
TODO: deal with free-threaded python versions.
AI Summary
Python version changes span package metadata, dependency compatibility, CI, images, tooling, and documentation. Missing one of these surfaces can leave support incomplete and require follow-up PRs. Add a
python-version-supportskill with self-contained workflows for adding a version, retiring a version, and excluding or enabling individual providers on an already supported interpreter.The skill plans repository-wide changes as GitHub PR stacks, with guidance for native stack review and single-PR or manually managed contributions from forks. It strongly recommends landing retirement before starting a separate addition effort. Shared guidance covers version-policy centralization across the monorepo; historical PRs are optional references at the ends of the guides.
The addition workflow begins with a dependency-readiness preflight. It investigates direct and transitive blockers in isolated, target-specific scratch projects, preserves uv diagnostics, and tracks upstream releases, issues, and proposed fixes. A standard-library helper captures immutable attempts and renders a deterministic component table. Diagnostic exclusions, overrides, altered requirements, operational failures, and incomplete checks remain visibly non-ready. Provider-only amendments reuse this preflight within their affected scope.
Includes Claude and GitHub skill-discovery symlinks and the corresponding ignore rules. Restricts the agentic Markdown license hook to Markdown so bundled Python scripts receive only the standard Python license header. No Airflow runtime support metadata or dependencies are changed.
Validation:
Current Python 3.15 dependency readiness report
Measured on 2026-10-07 using Python 3.15.0rc2 and uv 0.12.13 in Breeze, against checkout
f4c351dac4329a5dc64c995b2502a95b67f91549. Covers core, SDK, CLI, 109 providers, and the combined graph on Linux amd64 and arm64.All 226 declared-runtime uv lock checks passed. Six additional checks explicitly requested dependencies omitted by existing Python markers: Ray failed on both architectures. Scratch-only exclusion retries then resolved the reduced graphs; the Ray profiles remain ❌. In total, 234 uv lock attempts were captured across 232 planned checks. The existing OpenAI override was retained where relevant and flagged for review.
The summarized table below includes unresolved wheel/build and marker evidence, beyond resolver-only success. ❌ does not establish that source builds fail: those remain untested. The Linux wheel baseline is CPython with the GIL and glibc 2.36.
httptools==0.8.0,lazy-object-proxy==1.12.0,pydantic-core==2.46.5, andPyYAML==6.0.3have 3.14 wheels but no matching 3.15 wheels; source builds remain untested.cassandra-driveron 3.15. Explicit driver resolution succeeds via an sdist, but latest 3.30.1 has no matching cp315 wheels.ray[default]>=2.55.0fails uv lock on both architectures because matching cp315 wheels are unavailable.snowflake-snowpark-python==1.55.1declaresRequires-Python <3.15.The report preserves exact dependency candidates, ownership/paths, architecture-specific wheel inventories, raw uv diagnostics, input snapshots, and published metadata comparisons. Verified upstream tracking includes Ray #61200, PyYAML PR #963, Arrow #50091, and pyodbc #1506. No upstream messages were posted. This preflight does not validate source builds, installation, runtime tests, development groups, other optional extras, or image builds.
Was generative AI tooling used to co-author this PR?
Generated-by: Codex (GPT-6.1 Sol) following the guidelines
{pr_number}.significant.rst, in airflow-core/newsfragments. You can add this file in a follow-up commit after the PR is created so you know the PR number.