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