docusign-esign-python-client
docusign-esign-python-client copied to clipboard
Bring compatibility with urllib3 v2.0.0+
Update urllib3 Dependency Version Constraints
Summary
This PR updates the urllib3 dependency constraint to >= 2.0.0, < 3.0.0 to address compatibility issues with deprecated features in urllib3 v2.0.0 and ensure stable operation while preventing breaking changes from the upcoming v3.x release.
Root Cause
urllib3 v2.0.0 introduced significant breaking changes and removed several deprecated features that were present in v1.x:
- Removed Python 2.7 and Python 3.6 support: urllib3 v2.0+ requires Python 3.7+
- Removed deprecated methods: Several previously deprecated methods and parameters were removed
- Changed SSL/TLS behavior: Updated default SSL context and certificate verification behavior
- Refactored internal APIs: Changes to internal module structure that may affect compatibility
- Updated connection pooling: Modified connection pool management and timeout handling
The previous constraint (>= 2.0.0) was too broad and could allow installation of early v2.x versions that still had stability issues. Setting a minimum of v2.0.0 ensures users get a mature, stable release from the v2.x series.
Changes Made
- Updated
setup.py: Changed urllib3 constraint from>= 1.15.1to>= 2.0.0, < 3.0.0 - This ensures:
- ✅ Minimum version is 2.0.0 (stable v2.x release with bug fixes)
- ✅ Compatible with all mature urllib3 2.x releases
- ✅ Prevents automatic upgrades to 3.x (which will introduce new breaking changes)
Impact
- Compatibility: Ensures stable operation with urllib3 v2.x series
- Future-proofing: Prevents automatic breaking changes from urllib3 v3.x
- Users: Existing installations will upgrade to a stable v2.x release (>= 2.0.0)
References
Solves the issue https://github.com/docusign/docusign-esign-python-client/issues/208