You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by di...@apache.org on 2026/06/11 13:55:33 UTC

(superset) 01/01: fix(deps): cap paramiko <4.0 to keep SSH tunneling working

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

geido pushed a commit to branch geido/paramiko-dsskey-ssh-error
in repository https://gitbox.apache.org/repos/asf/superset.git

commit d6862213bd61226ad9c91503ac6f636d45924e3d
Author: Diego Pucci <di...@gmail.com>
AuthorDate: Thu Jun 11 16:53:03 2026 +0300

    fix(deps): cap paramiko <4.0 to keep SSH tunneling working
    
    paramiko 4.0.0 removed the DSSKey class (DSA support was dropped). The
    sshtunnel library used for SSH database tunneling references
    paramiko.DSSKey unconditionally in get_keys(), which
    SSHTunnelForwarder.__init__ invokes on every open_tunnel(). Once
    paramiko >=4 is resolved into the environment, every SSH-tunneled
    database connection fails during tunnel setup with:
    
        AttributeError: module 'paramiko' has no attribute 'DSSKey'
    
    This is independent of the user's key type, because the crash happens
    while enumerating key classes during forwarder initialization, before
    the user's key is used.
    
    The constraint was "paramiko>=3.4.0" with no upper bound, so any
    environment that re-resolves dependencies pulls paramiko 4.x/5.x and
    breaks. Cap to <4.0 to keep paramiko on the 3.x line, which retains
    DSSKey. The pinned lockfiles already resolve to paramiko==3.5.1 (the
    latest 3.x), so no lockfile regeneration is required.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <no...@anthropic.com>
---
 pyproject.toml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pyproject.toml b/pyproject.toml
index f694b400393..48d2b09f019 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -80,7 +80,7 @@ dependencies = [
     "bottleneck", # recommended performance dependency for pandas, see https://pandas.pydata.org/docs/getting_started/install.html#performance-dependencies-recommended
     # --------------------------
     "parsedatetime",
-    "paramiko>=3.4.0",
+    "paramiko>=3.4.0, <4.0", # 4.0 removed DSSKey, still referenced by sshtunnel
     "pgsanity",
     "Pillow>=11.0.0, <13",
     "polyline>=2.0.0, <3.0",