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

   ## Summary
   
   Provider metadata can currently exclude an entire Python minor, but it 
cannot express that a provider requires a particular patch release within a 
minor that Airflow still supports. For example, a dependency may require Python 
3.10.1 while Airflow continues to support Python 3.10.0 and later.
   
   Using `excluded-python-versions` to represent that requirement excludes all 
of Python 3.10. In the uv workspace, that can raise the effective workspace 
floor to the next minor and make the workspace unavailable on the current 
lowest supported Python version. Leaving the provider dependency unmarked 
creates the opposite problem: the root package extras can attempt to resolve 
the provider on Python versions below its actual requirement.
   
   This change adds an explicit full-version floor to `provider.yaml` and 
carries it through provider metadata generation and root-package dependency 
markers. The floor is limited to a patch release within Airflow core's lowest 
supported Python minor; a provider that needs a higher minor must wait for 
core's floor to advance because uv intersects workspace members' 
`requires-python` constraints.
   
   ## Changes
   
   - Add the optional `min-python-version` field (`X.Y.Z`) to the provider 
schema and validate that its minor matches Airflow core's lowest supported 
Python minor.
   - Propagate the floor into generated provider distribution metadata and use 
a `python_full_version` marker for dependencies in the root package extras. 
Extend the marker check to catch missing or insufficient markers.
   - Require a contiguous rationale comment directly above each 
`min-python-version`, `excluded-python-versions`, and `excluded-platforms` key. 
Document the exception fields and add the missing rationale for Cassandra's 
Python 3.14 exclusion.
   - Add tests for floor validation, metadata generation, root marker 
generation and checking, and rationale enforcement.
   
   ## Validation
   
   - Breeze package/dependency tests: 97 passed.
   - Scripts tests: 1,377 passed.
   - Ruff formatting/checks and `prek run --from-ref upstream/main --stage 
pre-commit` passed on the complete framework-plus-provider stack.
   - Negative checks confirmed that malformed floors and floors above the 
supported minor fail with actionable messages, and that missing root markers or 
rationale comments are rejected.
   
   ---
   
   ##### 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 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