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'" },

Reply via email to