diff --git a/airflow-core/pyproject.toml b/airflow-core/pyproject.toml index 1775cbb018d31..e82c60681119d 100644 --- a/airflow-core/pyproject.toml +++ b/airflow-core/pyproject.toml @@ -41,7 +41,7 @@ license-files = ["LICENSE", "NOTICE"] # proactively. This way we also have a chance to test it with Python 3.14 and bump the upper binding # and manually mark providers that do not support it yet with !-3.14 - until they support it - which will # also exclude resolving uv workspace dependencies for those providers. -requires-python = ">=3.10,<3.14" +requires-python = ">=3.10,!=3.14" authors = [ { name = "Apache Software Foundation", email = "dev@airflow.apache.org" }, ] diff --git a/airflow-ctl-tests/pyproject.toml b/airflow-ctl-tests/pyproject.toml index 24c7f561ed196..8adbe1f628535 100644 --- a/airflow-ctl-tests/pyproject.toml +++ b/airflow-ctl-tests/pyproject.toml @@ -26,7 +26,7 @@ description = "Airflow CTL tests for Apache Airflow" classifiers = [ "Private :: Do Not Upload", ] -requires-python = ">=3.10,!=3.13" +requires-python = ">=3.10,!=3.14" authors = [ { name = "Apache Software Foundation", email = "dev@airflow.apache.org" }, ] diff --git a/airflow-ctl/pyproject.toml b/airflow-ctl/pyproject.toml index 8c2fe12a7c5e0..b917c804b20ca 100644 --- a/airflow-ctl/pyproject.toml +++ b/airflow-ctl/pyproject.toml @@ -26,7 +26,7 @@ license-files = ["LICENSE", "NOTICE"] # out-of-the box. Airflow-ctl is a small tool that does not have many dependencies and does not use # sophisticated features of Python, so it should work with Python 3.14+ once all it's dependencies are # updated to support it. -requires-python = ">=3.10" +requires-python = ">=3.10,!=3.14" dependencies = [ # TODO there could be still missing deps such as airflow-core "argcomplete>=1.10", diff --git a/airflow-e2e-tests/pyproject.toml b/airflow-e2e-tests/pyproject.toml index a9406aa2a6feb..992b69d09f7f8 100644 --- a/airflow-e2e-tests/pyproject.toml +++ b/airflow-e2e-tests/pyproject.toml @@ -25,7 +25,7 @@ description = "E2E tests for Apache Airflow" classifiers = [ "Private :: Do Not Upload", ] -requires-python = ">=3.10,!=3.13" +requires-python = ">=3.10,!=3.14" authors = [ { name = "Apache Software Foundation", email = "dev@airflow.apache.org" }, ] diff --git a/chart/pyproject.toml b/chart/pyproject.toml index 35816e6abc98e..1953e48fa15e3 100644 --- a/chart/pyproject.toml +++ b/chart/pyproject.toml @@ -24,7 +24,7 @@ build-backend = "hatchling.build" [project] name = "apache-airflow-helm-chart" description = "Programmatically author, schedule and monitor data pipelines" -requires-python = ">=3.10" +requires-python = ">=3.10,!=3.14" authors = [ { name = "Apache Software Foundation", email = "dev@airflow.apache.org" }, ] diff --git a/clients/python/pyproject.toml b/clients/python/pyproject.toml index 59593b1d8dd81..cee362194aaf4 100644 --- a/clients/python/pyproject.toml +++ b/clients/python/pyproject.toml @@ -26,7 +26,7 @@ description = "Apache Airflow API (Stable)" readme = "README.md" license = "Apache-2.0" license-files = ["LICENSE", "NOTICE"] -requires-python = ">=3.10" +requires-python = ">=3.10,!=3.14" authors = [ { name = "Apache Software Foundation", email = "dev@airflow.apache.org" }, ] diff --git a/dev/breeze/pyproject.toml b/dev/breeze/pyproject.toml index 15f53dd7b00ba..3cf6686831c7c 100644 --- a/dev/breeze/pyproject.toml +++ b/dev/breeze/pyproject.toml @@ -40,7 +40,7 @@ classifiers = [ "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", ] -requires-python = ">=3.10, !=3.13" +requires-python = ">=3.10,!=3.14" dependencies = [ "black>=25.0.0", diff --git a/dev/pyproject.toml b/dev/pyproject.toml index d4c58fa3b8846..e3a9722c33c34 100644 --- a/dev/pyproject.toml +++ b/dev/pyproject.toml @@ -26,7 +26,7 @@ description = "Development tools for Apache Airflow" classifiers = [ "Private :: Do Not Upload", ] -requires-python = ">=3.10" +requires-python = ">=3.10,!=3.14" authors = [ { name = "Apache Software Foundation", email = "dev@airflow.apache.org" }, ] diff --git a/docker-stack-docs/pyproject.toml b/docker-stack-docs/pyproject.toml index d29f32bda3b7d..c1a5ce513ab80 100644 --- a/docker-stack-docs/pyproject.toml +++ b/docker-stack-docs/pyproject.toml @@ -24,7 +24,7 @@ build-backend = "hatchling.build" [project] name = "docker-stack" description = "Programmatically author, schedule and monitor data pipelines" -requires-python = ">=3.10" +requires-python = ">=3.10,!=3.14" authors = [ { name = "Apache Software Foundation", email = "dev@airflow.apache.org" }, ] diff --git a/docker-tests/pyproject.toml b/docker-tests/pyproject.toml index fe2ced2cb369d..ff646d8da67af 100644 --- a/docker-tests/pyproject.toml +++ b/docker-tests/pyproject.toml @@ -26,7 +26,7 @@ description = "Docker tests for Apache Airflow" classifiers = [ "Private :: Do Not Upload", ] -requires-python = ">=3.10" +requires-python = ">=3.10,!=3.14" authors = [ { name = "Apache Software Foundation", email = "dev@airflow.apache.org" }, ] diff --git a/helm-tests/pyproject.toml b/helm-tests/pyproject.toml index 799fc4cebb70f..1cac48c8b6861 100644 --- a/helm-tests/pyproject.toml +++ b/helm-tests/pyproject.toml @@ -26,7 +26,7 @@ description = "Helm tests for Apache Airflow" classifiers = [ "Private :: Do Not Upload", ] -requires-python = ">=3.10" +requires-python = ">=3.10,!=3.14" authors = [ { name = "Apache Software Foundation", email = "dev@airflow.apache.org" }, ] diff --git a/kubernetes-tests/pyproject.toml b/kubernetes-tests/pyproject.toml index bced4f3384ddc..0caddfb394f30 100644 --- a/kubernetes-tests/pyproject.toml +++ b/kubernetes-tests/pyproject.toml @@ -24,7 +24,7 @@ description = "Kubernetes tests for Apache Airflow" classifiers = [ "Private :: Do Not Upload", ] -requires-python = ">=3.10" +requires-python = ">=3.10,!=3.14" authors = [ { name = "Apache Software Foundation", email = "dev@airflow.apache.org" }, ] diff --git a/performance/pyproject.toml b/performance/pyproject.toml index 958467e4f25c8..35a3e0846b3b4 100644 --- a/performance/pyproject.toml +++ b/performance/pyproject.toml @@ -21,7 +21,7 @@ build-backend = "flit_core.buildapi" [project] name = "apache-airflow-performance" version = "0.1.0" -requires-python = ">=3.10,!=3.13" +requires-python = ">=3.10,!=3.14" description = "Performance testing utilities and DAGs for Apache Airflow" readme = { file = "README.md", content-type = "text/markdown" } license = "Apache-2.0" diff --git a/providers-summary-docs/pyproject.toml b/providers-summary-docs/pyproject.toml index 710625e15c287..f507506e58531 100644 --- a/providers-summary-docs/pyproject.toml +++ b/providers-summary-docs/pyproject.toml @@ -24,7 +24,7 @@ build-backend = "hatchling.build" [project] name = "apache-airflow-providers" description = "Programmatically author, schedule and monitor data pipelines" -requires-python = ">=3.10" +requires-python = ">=3.10,!=3.14" authors = [ { name = "Apache Software Foundation", email = "dev@airflow.apache.org" }, ] diff --git a/pyproject.toml b/pyproject.toml index 7a7b707f66921..89958976947ab 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,12 +35,7 @@ description = "Programmatically author, schedule and monitor data pipelines" readme = { file = "generated/PYPI_README.md", content-type = "text/markdown" } license = "Apache-2.0" license-files = ["LICENSE", "NOTICE"] -# We know that it will take a while before we can support Python 3.14 because of all our dependencies -# It takes about 4-7 months after Python release before we can support it, so we limit it to <3.14 -# proactively. This way we also have a chance to test it with Python 3.14 and bump the upper binding -# and manually mark providers that do not support it yet with !-3.14 - until they support it - which will -# also exclude resolving uv workspace dependencies for those providers. -requires-python = ">=3.10, <3.14" +requires-python = ">=3.10,!=3.14" authors = [ { name = "Apache Software Foundation", email = "dev@airflow.apache.org" }, ] diff --git a/task-sdk-integration-tests/pyproject.toml b/task-sdk-integration-tests/pyproject.toml index 100ed5ee9ddb0..1c7d3595099fe 100644 --- a/task-sdk-integration-tests/pyproject.toml +++ b/task-sdk-integration-tests/pyproject.toml @@ -26,7 +26,7 @@ description = "Task SDK integration tests for Apache Airflow" classifiers = [ "Private :: Do Not Upload", ] -requires-python = ">=3.10,!=3.13" +requires-python = ">=3.10,!=3.14" authors = [ { name = "Apache Software Foundation", email = "dev@airflow.apache.org" }, ] diff --git a/task-sdk/pyproject.toml b/task-sdk/pyproject.toml index a8bb72c0ce326..6334373c3d7ff 100644 --- a/task-sdk/pyproject.toml +++ b/task-sdk/pyproject.toml @@ -26,7 +26,7 @@ license-files = ["LICENSE", "NOTICE"] # in all our providers - and usually it will take a while before we can support it for majority of # providers, so we proactively limit it to <3.14. # It takes about 4-7 months after Python release before we can support it -requires-python = ">=3.10, <3.14" +requires-python = ">=3.10,!=3.14" authors = [ {name="Apache Software Foundation", email="dev@airflow.apache.org"},