This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new a7a9feddb56 fix/issue-70020: Adding cap to cloudpickle (#70086)
a7a9feddb56 is described below
commit a7a9feddb562fa21f079f83fa6b07d5eb92744d1
Author: Jake McGrath <[email protected]>
AuthorDate: Sun Jul 19 17:34:37 2026 -0400
fix/issue-70020: Adding cap to cloudpickle (#70086)
---
pyproject.toml | 4 ++-
uv.lock | 105 +++++++++++++++++++++++----------------------------------
2 files changed, 45 insertions(+), 64 deletions(-)
diff --git a/pyproject.toml b/pyproject.toml
index 87440e9ad9d..c26517a66be 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -536,7 +536,9 @@ apache-airflow = "airflow.__main__:main"
"apache-airflow-providers-amazon[python3-saml]",
]
"cloudpickle" = [
- "cloudpickle>=2.2.1",
+ # Remove this cap once snowflake-snowpark-python relaxes its own
cloudpickle pin;
+ # tracked at https://github.com/apache/airflow/issues/70084
+ "cloudpickle>=2.2.1,<3.1.2",
]
"github-enterprise" = [
"apache-airflow-providers-fab>=2.2.0",
diff --git a/uv.lock b/uv.lock
index dc07848533e..cb582853c54 100644
--- a/uv.lock
+++ b/uv.lock
@@ -64,9 +64,9 @@ apache-airflow-providers-apache-cassandra = false
apache-airflow-providers-asana = false
apache-airflow-providers-oracle = false
apache-airflow-providers-mysql = false
+apache-airflow-providers-teradata = false
apache-airflow-providers-alibaba = false
apache-airflow-providers-microsoft-mssql = false
-apache-airflow-providers-teradata = false
apache-airflow-providers-jdbc = false
apache-airflow-helm-chart = false
apache-airflow-providers-anthropic = false
@@ -647,7 +647,7 @@ name = "aiohttp-cors"
version = "0.8.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "aiohttp" },
+ { name = "aiohttp", marker = "python_full_version < '3.15'" },
]
sdist = { url =
"https://files.pythonhosted.org/packages/6f/6d/d89e846a5444b3d5eb8985a6ddb0daef3774928e1bfbce8e84ec97b0ffa7/aiohttp_cors-0.8.1.tar.gz",
hash =
"sha256:ccacf9cb84b64939ea15f859a146af1f662a6b1d68175754a07315e305fb1403", size
= 38626, upload-time = "2025-03-31T14:16:20.048Z" }
wheels = [
@@ -1107,8 +1107,7 @@ all = [
{ name = "apache-airflow-providers-zendesk" },
{ name = "atlasclient" },
{ name = "authlib" },
- { name = "cloudpickle", version = "3.1.1", source = { registry =
"https://pypi.org/simple" }, marker = "python_full_version < '3.14'" },
- { name = "cloudpickle", version = "3.1.2", source = { registry =
"https://pypi.org/simple" }, marker = "python_full_version >= '3.14'" },
+ { name = "cloudpickle" },
{ name = "python-ldap" },
{ name = "sentry-sdk" },
{ name = "uv" },
@@ -1204,8 +1203,7 @@ cloudant = [
{ name = "apache-airflow-providers-cloudant" },
]
cloudpickle = [
- { name = "cloudpickle", version = "3.1.1", source = { registry =
"https://pypi.org/simple" }, marker = "python_full_version < '3.14'" },
- { name = "cloudpickle", version = "3.1.2", source = { registry =
"https://pypi.org/simple" }, marker = "python_full_version >= '3.14'" },
+ { name = "cloudpickle" },
]
cncf-kubernetes = [
{ name = "apache-airflow-providers-cncf-kubernetes" },
@@ -1789,7 +1787,7 @@ requires-dist = [
{ name = "atlasclient", marker = "extra == 'apache-atlas'", specifier =
">=0.1.2" },
{ name = "authlib", marker = "extra == 'github-enterprise'", specifier =
">=1.0.0" },
{ name = "authlib", marker = "extra == 'google-auth'", specifier =
">=1.0.0" },
- { name = "cloudpickle", marker = "extra == 'cloudpickle'", specifier =
">=2.2.1" },
+ { name = "cloudpickle", marker = "extra == 'cloudpickle'", specifier =
">=2.2.1,<3.1.2" },
{ name = "python-ldap", marker = "extra == 'ldap'", specifier = ">=3.4.4"
},
{ name = "sentry-sdk", marker = "extra == 'sentry'", specifier =
">=2.30.0" },
{ name = "uv", marker = "extra == 'uv'", specifier = ">=0.11.28" },
@@ -4813,6 +4811,9 @@ dependencies = [
]
[package.optional-dependencies]
+amazon = [
+ { name = "apache-airflow-providers-amazon" },
+]
avro = [
{ name = "fastavro" },
]
@@ -4842,6 +4843,7 @@ standard = [
dev = [
{ name = "apache-airflow" },
{ name = "apache-airflow-devel-common" },
+ { name = "apache-airflow-providers-amazon" },
{ name = "apache-airflow-providers-common-compat" },
{ name = "apache-airflow-providers-common-sql", extra = ["pandas",
"polars"] },
{ name = "apache-airflow-providers-databricks", extra = ["sqlalchemy"] },
@@ -4860,6 +4862,7 @@ docs = [
requires-dist = [
{ name = "aiohttp", specifier = ">=3.14.0,<4" },
{ name = "apache-airflow", editable = "." },
+ { name = "apache-airflow-providers-amazon", marker = "extra == 'amazon'",
editable = "providers/amazon" },
{ name = "apache-airflow-providers-common-compat", editable =
"providers/common/compat" },
{ name = "apache-airflow-providers-common-sql", editable =
"providers/common/sql" },
{ name = "apache-airflow-providers-fab", marker = "extra == 'fab'",
editable = "providers/fab" },
@@ -4882,12 +4885,13 @@ requires-dist = [
{ name = "pyarrow", marker = "python_full_version >= '3.14'", specifier =
">=22.0.0" },
{ name = "requests", specifier = ">=2.32.0,<3" },
]
-provides-extras = ["avro", "azure-identity", "fab", "google", "sdk",
"standard", "openlineage", "sqlalchemy"]
+provides-extras = ["avro", "amazon", "azure-identity", "fab", "google", "sdk",
"standard", "openlineage", "sqlalchemy"]
[package.metadata.requires-dev]
dev = [
{ name = "apache-airflow", editable = "." },
{ name = "apache-airflow-devel-common", editable = "devel-common" },
+ { name = "apache-airflow-providers-amazon", editable = "providers/amazon"
},
{ name = "apache-airflow-providers-common-compat", editable =
"providers/common/compat" },
{ name = "apache-airflow-providers-common-sql", editable =
"providers/common/sql" },
{ name = "apache-airflow-providers-common-sql", extras = ["pandas",
"polars"], editable = "providers/common/sql" },
@@ -10919,36 +10923,11 @@ wheels = [
name = "cloudpickle"
version = "3.1.1"
source = { registry = "https://pypi.org/simple" }
-resolution-markers = [
- "python_full_version == '3.13.*' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
- "(python_full_version == '3.13.*' and platform_machine != 'arm64') or
(python_full_version == '3.13.*' and sys_platform != 'darwin')",
- "python_full_version == '3.12.*' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
- "(python_full_version == '3.12.*' and platform_machine != 'arm64') or
(python_full_version == '3.12.*' and sys_platform != 'darwin')",
- "python_full_version == '3.11.*' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
- "(python_full_version == '3.11.*' and platform_machine != 'arm64') or
(python_full_version == '3.11.*' and sys_platform != 'darwin')",
- "python_full_version < '3.11' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
- "(python_full_version < '3.11' and platform_machine != 'arm64') or
(python_full_version < '3.11' and sys_platform != 'darwin')",
-]
sdist = { url =
"https://files.pythonhosted.org/packages/52/39/069100b84d7418bc358d81669d5748efb14b9cceacd2f9c75f550424132f/cloudpickle-3.1.1.tar.gz",
hash =
"sha256:b216fa8ae4019d5482a8ac3c95d8f6346115d8835911fd4aefd1a445e4242c64", size
= 22113, upload-time = "2025-01-14T17:02:05.085Z" }
wheels = [
{ url =
"https://files.pythonhosted.org/packages/7e/e8/64c37fadfc2816a7701fa8a6ed8d87327c7d54eacfbfb6edab14a2f2be75/cloudpickle-3.1.1-py3-none-any.whl",
hash =
"sha256:c8c5a44295039331ee9dad40ba100a9c7297b6f988e50e87ccdf3765a668350e", size
= 20992, upload-time = "2025-01-14T17:02:02.417Z" },
]
-[[package]]
-name = "cloudpickle"
-version = "3.1.2"
-source = { registry = "https://pypi.org/simple" }
-resolution-markers = [
- "python_full_version >= '3.15' and sys_platform == 'win32'",
- "python_full_version >= '3.15' and sys_platform == 'emscripten'",
- "python_full_version >= '3.15' and sys_platform != 'emscripten' and
sys_platform != 'win32'",
- "python_full_version == '3.14.*'",
-]
-sdist = { url =
"https://files.pythonhosted.org/packages/27/fb/576f067976d320f5f0114a8d9fa1215425441bb35627b1993e5afd8111e5/cloudpickle-3.1.2.tar.gz",
hash =
"sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414", size
= 22330, upload-time = "2025-11-03T09:25:26.604Z" }
-wheels = [
- { url =
"https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl",
hash =
"sha256:9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a", size
= 22228, upload-time = "2025-11-03T09:25:25.534Z" },
-]
-
[[package]]
name = "cohere"
version = "7.0.5"
@@ -10982,7 +10961,7 @@ name = "colorful"
version = "0.5.8"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "colorama", marker = "sys_platform == 'win32'" },
+ { name = "colorama", marker = "python_full_version < '3.15' and
sys_platform == 'win32'" },
]
sdist = { url =
"https://files.pythonhosted.org/packages/82/31/109ef4bedeb32b4202e02ddb133162457adc4eb890a9ed9c05c9dd126ed0/colorful-0.5.8.tar.gz",
hash =
"sha256:bb16502b198be2f1c42ba3c52c703d5f651d826076817185f0294c1a549a7445", size
= 209361, upload-time = "2025-10-29T11:53:21.663Z" }
wheels = [
@@ -17521,9 +17500,9 @@ name = "opencensus"
version = "0.11.4"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "google-api-core" },
- { name = "opencensus-context" },
- { name = "six" },
+ { name = "google-api-core", marker = "python_full_version < '3.15'" },
+ { name = "opencensus-context", marker = "python_full_version < '3.15'" },
+ { name = "six", marker = "python_full_version < '3.15'" },
]
sdist = { url =
"https://files.pythonhosted.org/packages/15/a7/a46dcffa1b63084f9f17fe3c8cb20724c4c8f91009fd0b2cfdb27d5d2b35/opencensus-0.11.4.tar.gz",
hash =
"sha256:cbef87d8b8773064ab60e5c2a1ced58bbaa38a6d052c41aec224958ce544eff2", size
= 64966, upload-time = "2024-01-03T18:04:07.085Z" }
wheels = [
@@ -20822,14 +20801,14 @@ name = "ray"
version = "2.56.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "click" },
- { name = "filelock" },
- { name = "jsonschema" },
- { name = "msgpack" },
- { name = "packaging" },
- { name = "protobuf" },
- { name = "pyyaml" },
- { name = "requests" },
+ { name = "click", marker = "python_full_version < '3.15'" },
+ { name = "filelock", marker = "python_full_version < '3.15'" },
+ { name = "jsonschema", marker = "python_full_version < '3.15'" },
+ { name = "msgpack", marker = "python_full_version < '3.15'" },
+ { name = "packaging", marker = "python_full_version < '3.15'" },
+ { name = "protobuf", marker = "python_full_version < '3.15'" },
+ { name = "pyyaml", marker = "python_full_version < '3.15'" },
+ { name = "requests", marker = "python_full_version < '3.15'" },
]
wheels = [
{ url =
"https://files.pythonhosted.org/packages/9e/c0/d6ffbe8ae2e2e10ea07aa08ea2dd35597239f0b3faaa29b5d7bbc405ab32/ray-2.56.0-cp310-cp310-macosx_12_0_arm64.whl",
hash =
"sha256:f34b2345a47ad144292c1b34eeba2ed8d556078f7bd118d1adf2090d5199c843", size
= 66362009, upload-time = "2026-06-29T20:50:14.442Z" },
@@ -20854,20 +20833,20 @@ wheels = [
[package.optional-dependencies]
default = [
- { name = "aiohttp" },
- { name = "aiohttp-cors" },
- { name = "colorful" },
- { name = "grpcio" },
- { name = "opencensus" },
- { name = "opentelemetry-exporter-prometheus" },
- { name = "opentelemetry-proto" },
- { name = "opentelemetry-sdk" },
- { name = "prometheus-client" },
- { name = "py-spy" },
- { name = "pydantic" },
- { name = "requests" },
- { name = "smart-open" },
- { name = "virtualenv" },
+ { name = "aiohttp", marker = "python_full_version < '3.15'" },
+ { name = "aiohttp-cors", marker = "python_full_version < '3.15'" },
+ { name = "colorful", marker = "python_full_version < '3.15'" },
+ { name = "grpcio", marker = "python_full_version < '3.15'" },
+ { name = "opencensus", marker = "python_full_version < '3.15'" },
+ { name = "opentelemetry-exporter-prometheus", marker =
"python_full_version < '3.15'" },
+ { name = "opentelemetry-proto", marker = "python_full_version < '3.15'" },
+ { name = "opentelemetry-sdk", marker = "python_full_version < '3.15'" },
+ { name = "prometheus-client", marker = "python_full_version < '3.15'" },
+ { name = "py-spy", marker = "python_full_version < '3.15'" },
+ { name = "pydantic", marker = "python_full_version < '3.15'" },
+ { name = "requests", marker = "python_full_version < '3.15'" },
+ { name = "smart-open", marker = "python_full_version < '3.15'" },
+ { name = "virtualenv", marker = "python_full_version < '3.15'" },
]
[[package]]
@@ -21964,8 +21943,8 @@ name = "secretstorage"
version = "3.5.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "cryptography", marker = "python_full_version >= '3.14' or
platform_machine != 'arm64' or sys_platform != 'darwin'" },
- { name = "jeepney", marker = "python_full_version >= '3.14' or
platform_machine != 'arm64' or sys_platform != 'darwin'" },
+ { name = "cryptography", marker = "(python_full_version >= '3.14' and
sys_platform == 'darwin') or (python_full_version < '3.15' and sys_platform ==
'emscripten') or (python_full_version < '3.15' and sys_platform == 'win32') or
(platform_machine != 'arm64' and sys_platform == 'darwin') or (sys_platform !=
'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')" },
+ { name = "jeepney", marker = "(python_full_version >= '3.14' and
sys_platform == 'darwin') or (python_full_version < '3.15' and sys_platform ==
'emscripten') or (python_full_version < '3.15' and sys_platform == 'win32') or
(platform_machine != 'arm64' and sys_platform == 'darwin') or (sys_platform !=
'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')" },
]
sdist = { url =
"https://files.pythonhosted.org/packages/1c/03/e834bcd866f2f8a49a85eaff47340affa3bfa391ee9912a952a1faa68c7b/secretstorage-3.5.0.tar.gz",
hash =
"sha256:f04b8e4689cbce351744d5537bf6b1329c6fc68f91fa666f60a380edddcd11be", size
= 19884, upload-time = "2025-11-23T19:02:53.191Z" }
wheels = [
@@ -22164,7 +22143,7 @@ name = "smart-open"
version = "8.0.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "wrapt" },
+ { name = "wrapt", marker = "python_full_version < '3.15'" },
]
sdist = { url =
"https://files.pythonhosted.org/packages/29/3e/79fd5fd2375a8a500b9ec2f6a0762fc1ac33e35582d4a87483a78d19408f/smart_open-8.0.0.tar.gz",
hash =
"sha256:5a2008d60688bd3b33c52e2ef666d3c60cf956e73e215de8c7b242cf56fdd1b2", size
= 61520, upload-time = "2026-06-27T16:28:11.894Z" }
wheels = [
@@ -22268,7 +22247,7 @@ name = "snowflake-snowpark-python"
version = "1.53.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "cloudpickle", version = "3.1.1", source = { registry =
"https://pypi.org/simple" }, marker = "python_full_version < '3.14'" },
+ { name = "cloudpickle", marker = "python_full_version < '3.14'" },
{ name = "protobuf", marker = "python_full_version < '3.14'" },
{ name = "python-dateutil", marker = "python_full_version < '3.14'" },
{ name = "pyyaml", marker = "python_full_version < '3.14'" },