Skip to content

fix(dbt): pin pyOpenSSL>=24.0.0 for dbt 1.6 and 1.7 test environments#5852

Merged
mday-io merged 2 commits into
SQLMesh:mainfrom
mday-io:main
Jun 19, 2026
Merged

fix(dbt): pin pyOpenSSL>=24.0.0 for dbt 1.6 and 1.7 test environments#5852
mday-io merged 2 commits into
SQLMesh:mainfrom
mday-io:main

Conversation

@mday-io

@mday-io mday-io commented Jun 19, 2026

Copy link
Copy Markdown
Collaborator

In dbt 1.6/1.7 CI environments, snowflake-connector-python resolves to versions 3.0-3.7.x which require pyOpenSSL<24.0.0. When combined with cryptography>=42.0 (which removed the lib.GEN_EMAIL constant), importing the Snowflake connector raises AttributeError: module 'lib' has no attribute 'GEN_EMAIL', failing these tests:

  • test_snowflake_config (via SnowflakeConnectionConfig._validate_authenticator)
  • test_api_class_loading[snowflake] (via SnowflakeConfig.relation_class)

pyOpenSSL>=24.0.0 forces pip/uv to resolve snowflake-connector-python to 3.8.0+ (which allows pyOpenSSL<25.0.0, thus including 24.x). pyOpenSSL 24.0.0 fixed the GEN_EMAIL incompatibility with cryptography>=42.0.

dbt 1.3-1.5 and 1.8-1.10 are unaffected: earlier versions resolve connector packages that avoid this code path; later versions of the connector already widened cryptography's upper bound.

Also collapses a multi-line docstring in classproperty to a single line.

Description

Test Plan

Checklist

  • I have run make style and fixed any issues
  • I have added tests for my changes (if applicable)
  • All existing tests pass (make fast-test)
  • My commits are signed off (git commit -s) per the DCO

mday-io added 2 commits June 19, 2026 10:53
In dbt 1.6/1.7 CI environments, snowflake-connector-python resolves to
versions 3.0-3.7.x which require pyOpenSSL<24.0.0. When combined with
cryptography>=42.0 (which removed the lib.GEN_EMAIL constant), importing
the Snowflake connector raises AttributeError: module 'lib' has no
attribute 'GEN_EMAIL', failing these tests:

  - test_snowflake_config (via SnowflakeConnectionConfig._validate_authenticator)
  - test_api_class_loading[snowflake] (via SnowflakeConfig.relation_class)

pyOpenSSL>=24.0.0 forces pip/uv to resolve snowflake-connector-python to
3.8.0+ (which allows pyOpenSSL<25.0.0, thus including 24.x). pyOpenSSL
24.0.0 fixed the GEN_EMAIL incompatibility with cryptography>=42.0.

dbt 1.3-1.5 and 1.8-1.10 are unaffected: earlier versions resolve
connector packages that avoid this code path; later versions of the
connector already widened cryptography's upper bound.

Also collapses a multi-line docstring in classproperty to a single line.

Signed-off-by: mday-io <mdaytn@gmail.com>
@mday-io mday-io merged commit f372f62 into SQLMesh:main Jun 19, 2026
32 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants