This is an automated email from the ASF dual-hosted git repository.

jason810496 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 22ab0dc7dc4 Fix snowflake provider installs picking an unimportable 
pyOpenSSL (#71145)
22ab0dc7dc4 is described below

commit 22ab0dc7dc447a4f3afe879a635fbcfe493d838a
Author: rjgoyln <[email protected]>
AuthorDate: Wed Aug 5 22:29:11 2026 +0800

    Fix snowflake provider installs picking an unimportable pyOpenSSL (#71145)
    
    snowflake-connector-python below 4.4.0 caps pyOpenSSL under 26.0.0, and
    pyOpenSSL 22.0.0 and older declare no upper bound on cryptography. Where
    nothing else pins cryptography — the provider compatibility jobs install
    the freshly built distributions without constraints — the resolver
    satisfies the newest cryptography with that ancient pyOpenSSL and
    backtracks the connector to 4.0.0. The environment installs cleanly and
    then dies on import with "module 'lib' has no attribute 'GEN_EMAIL'".
---
 providers/snowflake/README.rst     | 1 +
 providers/snowflake/docs/index.rst | 1 +
 providers/snowflake/pyproject.toml | 4 ++++
 uv.lock                            | 2 ++
 4 files changed, 8 insertions(+)

diff --git a/providers/snowflake/README.rst b/providers/snowflake/README.rst
index 628e771ed8f..f79d395a8d1 100644
--- a/providers/snowflake/README.rst
+++ b/providers/snowflake/README.rst
@@ -62,6 +62,7 @@ PIP package                                 Version required
 ``pyarrow``                                 ``>=16.1.0; python_version < 
"3.13"``
 ``pyarrow``                                 ``>=18.0.0; python_version >= 
"3.13" and python_version < "3.14"``
 ``pyarrow``                                 ``>=22.0.0; python_version >= 
"3.14"``
+``pyOpenSSL``                               ``>=22.1.0``
 ``snowflake-connector-python``              ``>=3.17.0``
 ``snowflake-sqlalchemy``                    ``>=1.7.0``
 ``snowflake-snowpark-python``               ``>=1.17.0,<9999; python_version < 
"3.12"``
diff --git a/providers/snowflake/docs/index.rst 
b/providers/snowflake/docs/index.rst
index 793cbae42e0..66299a9ea7e 100644
--- a/providers/snowflake/docs/index.rst
+++ b/providers/snowflake/docs/index.rst
@@ -111,6 +111,7 @@ PIP package                                 Version required
 ``pyarrow``                                 ``>=16.1.0; python_version < 
"3.13"``
 ``pyarrow``                                 ``>=18.0.0; python_version >= 
"3.13" and python_version < "3.14"``
 ``pyarrow``                                 ``>=22.0.0; python_version >= 
"3.14"``
+``pyOpenSSL``                               ``>=22.1.0``
 ``snowflake-connector-python``              ``>=3.17.0``
 ``snowflake-sqlalchemy``                    ``>=1.7.0``
 ``snowflake-snowpark-python``               ``>=1.17.0,<9999; python_version < 
"3.12"``
diff --git a/providers/snowflake/pyproject.toml 
b/providers/snowflake/pyproject.toml
index a8d84362909..1f3ca1a782d 100644
--- a/providers/snowflake/pyproject.toml
+++ b/providers/snowflake/pyproject.toml
@@ -68,6 +68,10 @@ dependencies = [
     "pyarrow>=16.1.0; python_version < '3.13'",
     "pyarrow>=18.0.0; python_version >= '3.13' and python_version < '3.14'",
     "pyarrow>=22.0.0; python_version >= '3.14'",
+    # snowflake-connector-python <4.4.0 caps pyOpenSSL below 26.0.0, and 
pyOpenSSL 22.0.0 and older
+    # declare no upper bound on cryptography, so an unconstrained resolve 
pairs them with a
+    # cryptography they cannot import against. 22.1.0 is the first release 
with a correct bound.
+    "pyOpenSSL>=22.1.0",
     # TODO(potiuk): We should bump the snowflake-connector-python to >=4.0.0 
when sqlalchemy>=2.0 is required
     # 3.17.0 is the first version with Workload Identity Federation 
(WORKLOAD_IDENTITY authenticator).
     "snowflake-connector-python>=3.17.0",
diff --git a/uv.lock b/uv.lock
index 867a95e35bc..b66ad967fd4 100644
--- a/uv.lock
+++ b/uv.lock
@@ -7776,6 +7776,7 @@ dependencies = [
     { name = "apache-airflow-providers-common-sql" },
     { name = "pandas" },
     { name = "pyarrow" },
+    { name = "pyopenssl" },
     { name = "setuptools" },
     { name = "snowflake-connector-python" },
     { name = "snowflake-snowpark-python", marker = "python_full_version < 
'3.14'" },
@@ -7818,6 +7819,7 @@ requires-dist = [
     { name = "pyarrow", marker = "python_full_version < '3.13'", specifier = 
">=16.1.0" },
     { name = "pyarrow", marker = "python_full_version == '3.13.*'", specifier 
= ">=18.0.0" },
     { name = "pyarrow", marker = "python_full_version >= '3.14'", specifier = 
">=22.0.0" },
+    { name = "pyopenssl", specifier = ">=22.1.0" },
     { name = "setuptools", specifier = ">=80.0.0,<9999" },
     { name = "snowflake-connector-python", specifier = ">=3.17.0" },
     { name = "snowflake-snowpark-python", marker = "python_full_version < 
'3.12'", specifier = ">=1.17.0,<9999" },

Reply via email to