Dev-iL opened a new pull request, #74408:
URL: https://github.com/apache/airflow/pull/74408

   related: 
   - #63520
   - #74148 
   
   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.
   
   ---
   
   <details><summary>AI Summary</summary>
   <p>
   
   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-support` 
skill 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:
   
   - 24 focused tests passed in Python 3.14 Breeze, including offline uv 
failure/exclusion probes, deterministic reports, incomplete coverage, input 
snapshots, and configuration guards.
   - Ruff formatting and lint checks passed.
   - Skill validation and staged whitespace checks passed.
   - All applicable pre-commit and commit-message hooks passed.
   
   </p>
   </details> 
   
   <details>
   <summary>Current Python 3.15 dependency readiness report</summary>
   
   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.
   
   | Component | Ready | Dependency details |
   | --- | --- | --- |
   | core | ❌ | Runtime lock passed on both architectures. Selected 
`httptools==0.8.0`, `lazy-object-proxy==1.12.0`, `pydantic-core==2.46.5`, and 
`PyYAML==6.0.3` have 3.14 wheels but no matching 3.15 wheels; source builds 
remain untested. |
   | sdk | ❌ | Runtime lock passed; inherits the four core wheel/build gaps 
through its core dependency. |
   | provider-apache.cassandra | ❌ | Existing markers omit `cassandra-driver` 
on 3.15. Explicit driver resolution succeeds via an sdist, but latest 3.30.1 
has no matching cp315 wheels. |
   | provider-google | ❌ | Existing markers omit Ray on 3.15. Explicit 
`ray[default]>=2.55.0` fails uv lock on both architectures because matching 
cp315 wheels are unavailable. |
   | provider-snowflake | ❌ | Existing markers omit Snowpark. Explicit 
resolution succeeds, but latest `snowflake-snowpark-python==1.55.1` declares 
`Requires-Python <3.15`. |
   | aggregate | ❌ | Declared runtime lock passed with the existing OpenAI 
override. Selected candidates have 42 wheel gaps on amd64 and 41 on arm64, 
including pre-existing source-only packages. |
   
   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](https://github.com/ray-project/ray/issues/61200), [PyYAML PR 
#963](https://github.com/yaml/pyyaml/pull/963), [Arrow 
#50091](https://github.com/apache/arrow/issues/50091), and [pyodbc 
#1506](https://github.com/mkleehammer/pyodbc/issues/1506). No upstream messages 
were posted. This preflight does not validate source builds, installation, 
runtime tests, development groups, other optional extras, or image builds.
   
   </details>
   
   ---
   
   ##### Was generative AI tooling used to co-author this PR?
   
   <!--
   If generative AI tooling has been used in the process of authoring this PR, 
please
   change below checkbox to `[X]` followed by the name of the tool, uncomment 
the "Generated-by".
   -->
   
   - [x] Yes (please specify the tool below)
   
   Generated-by: Codex (GPT-6.1 Sol) following [the 
guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions)
   
   ---
   
   * Read the **[Pull Request 
Guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#pull-request-guidelines)**
 for more information. Note: commit author/co-author name and email in commits 
become permanently public when merged.
   * For fundamental code changes, an Airflow Improvement Proposal 
([AIP](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvement+Proposals))
 is needed.
   * When adding dependency, check compliance with the [ASF 3rd Party License 
Policy](https://www.apache.org/legal/resolved.html#category-x).
   * For significant user-facing changes create newsfragment: 
`{pr_number}.significant.rst`, in 
[airflow-core/newsfragments](https://github.com/apache/airflow/tree/main/airflow-core/newsfragments).
 You can add this file in a follow-up commit after the PR is created so you 
know the PR number.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to