This thread tracks the evolution of Slack's Python SDK, focusing on modernizing its architecture and features. Initial posts detailed the challenges of the v1 SDK, including difficulties with pagination, support for deprecated features, and WebSocket issues. This post details the decision to rewrite the SDK as v2.0, introducing a clear separation between HTTP (WebClient) and WebSocket (RTMClient) concerns, improving performance by reusing sessions, and abstracting away RTM event handling. A significant decision was made to drop Python 2 support in favor of Python 3, enabling the adoption of async features and type hints, while continuing to support Python 2 bug fixes until its EOL.
All Slack trails