potiuk commented on code in PR #64864:
URL: https://github.com/apache/airflow/pull/64864#discussion_r3048111522


##########
providers/ssh/docs/changelog.rst:
##########
@@ -27,6 +27,23 @@
 Changelog
 ---------
 
+4.3.4
+.....
+
+Bug Fixes
+~~~~~~~~~
+
+* ``Fix SSHHookAsync defaulting no_host_key_check to False unlike SSHHook 
(#64225)``
+
+Misc
+~~~~
+
+* ``Load hook metadata from YAML without importing Hook class (#63826)``
+* ``Replace 'sshtunnel' with native paramiko/asyncssh tunneling (#64299)``

Review Comment:
   It's not 0/1 in this case 
   
   It's essentially not breaking by design- the get_tunnel method is the same 
and the object returned provides level of compatibility that should 
**generally** work.
   
   But yes - we should likely have some docs from the PR in the changelog.
   
   ---
   
   Minimal backward compatibility shim
   Rather than fully reimplementing SSHTunnelForwarder's API surface, we 
provide:
    
   `Context manager (__enter__/__exit__) - the recommended interface
   .start()/.stop() - deprecated, emit AirflowProviderDeprecationWarning
   .local_bind_port and .local_bind_address - preserved as properties
   __getattr__ - raises AttributeError with migration hint for
   SSHTunnelForwarder-specific attributes (e.g., tunnel_is_up, ssh_host)
   This covers the known usage patterns without maintaining dead code. No 
external providers or common user code accesses SSHTunnelForwarder-specific 
attributes beyond context manager + local_bind_port.
   
   AsyncSSHTunnel as a thin asyncssh wrapper
   asyncssh already provides forward_local_port() which handles all the 
forwarding internally. AsyncSSHTunnel is a thin wrapper that:
   
   Manages the lifecycle (listener + SSH connection cleanup in __aexit__)
   Exposes .local_bind_port via listener.get_port()
   Handles cleanup on __aenter__ failure (closes SSH connection if 
forward_local_port raises)
   Follows the async with await hook.get_tunnel(...) pattern
   Eager socket binding in constructor
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to