Skip to content

Conversation

@potiuk
Copy link
Member

@potiuk potiuk commented Nov 25, 2025

Since UV and other installers essentially ignore < limit in the python-requires, a good practice is to simply exclude current Python versions that we know we are not compatible with rather than using <.

Python 3.14 is a thing now and people will get it by default as latest versions, but we do not run our tests with Python 3.14 yet (not until March/April 2026). Providers have all upper-bind exclusion except those that do not support Python 3.13, but that's ok because they are actually limited by Airflow they can be installed on. But for distributions like airflow-ctl, we should explicitly exclude 3.14 until we support and test it.

This PR synchronizes all python-requires in non-provider distribution to consistently exclude Python 3.14 with !=.


^ Add meaningful description above
Read the Pull Request Guidelines for more information.
In case of fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in a newsfragment file, named {pr_number}.significant.rst or {issue_number}.significant.rst, in airflow-core/newsfragments.

Since UV and other installers essentially ignore < limit in the
python-requires, a good practice is to simply exclude current Python
versions that we **know** we are not compatible with rather than
using <.

Python 3.14 is a thing now and people will get it by default as
latest versions, but we do not run our tests with Python 3.14
yet (not until March/April 2026). Providers have all
upper-bind exclusion except those that do not support Python 3.13,
but that's ok because they are actually limited by Airflow they
can be installed on. But for distributions like airflow-ctl,
we should explicitly exclude 3.14 until we support and test it.

This PR synchronizes all python-requires in non-provider
distribution to consistently exclude Python 3.14 with !=.
@bugraoz93
Copy link
Contributor

Thanks Jarek! Let's merge this first. I can rebase and check document part in the other

@potiuk
Copy link
Member Author

potiuk commented Nov 25, 2025

Thanks Jarek! Let's merge this first. I can rebase and check document part in the other

Yep.

@potiuk
Copy link
Member Author

potiuk commented Nov 25, 2025

Also for posterity - astral-sh/uv#14711 is where we had a long and somewhat heated discussion with Astral team on why upper-binding is ignored by uv when resolving

@potiuk potiuk merged commit e7cf650 into apache:main Nov 25, 2025
162 checks passed
@potiuk potiuk deleted the make-python-requires-exclusions-consistent branch November 25, 2025 00:36
Copilot AI pushed a commit to jason810496/airflow that referenced this pull request Dec 5, 2025
Since UV and other installers essentially ignore < limit in the
python-requires, a good practice is to simply exclude current Python
versions that we **know** we are not compatible with rather than
using <.

Python 3.14 is a thing now and people will get it by default as
latest versions, but we do not run our tests with Python 3.14
yet (not until March/April 2026). Providers have all
upper-bind exclusion except those that do not support Python 3.13,
but that's ok because they are actually limited by Airflow they
can be installed on. But for distributions like airflow-ctl,
we should explicitly exclude 3.14 until we support and test it.

This PR synchronizes all python-requires in non-provider
distribution to consistently exclude Python 3.14 with !=.
itayweb pushed a commit to itayweb/airflow that referenced this pull request Dec 6, 2025
Since UV and other installers essentially ignore < limit in the
python-requires, a good practice is to simply exclude current Python
versions that we **know** we are not compatible with rather than
using <.

Python 3.14 is a thing now and people will get it by default as
latest versions, but we do not run our tests with Python 3.14
yet (not until March/April 2026). Providers have all
upper-bind exclusion except those that do not support Python 3.13,
but that's ok because they are actually limited by Airflow they
can be installed on. But for distributions like airflow-ctl,
we should explicitly exclude 3.14 until we support and test it.

This PR synchronizes all python-requires in non-provider
distribution to consistently exclude Python 3.14 with !=.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:airflow-ctl area:API Airflow's REST/HTTP API area:dev-tools area:docker-tests area:helm-chart Airflow Helm Chart area:kubernetes-tests area:production-image Production image improvements and fixes area:task-sdk backport-to-v3-1-test Mark PR with this label to backport to v3-1-test branch kind:documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants