-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
DevProd Correctness
-
Correctness 2026-01-26
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Upgrade pip and wheel for Python 3.13 Compatibility
Problem
Python 3.12+ removed the distutils module (PEP 594), which older versions of pip depend on. When creating virtual environments with Python 3.13 on Windows, pip installation fails if using an older pip version that requires distutils.
Root Cause
Python 3.12+ Breaking Change:
- Python 3.12 removed the distutils module as part of PEP 594
- pip versions older than 24.0 depend on distutils
- Current pinned version (pip 21.0.1) fails on Python 3.12+
Current versions by platform:
- Windows Python 3.13: ships with pip 25.2
- Linux v5 toolchain Python 3.10: has pip 25.1.1
- Current pinned versions: pip 21.0.1 (from
SERVER-53250, Mar 2021), wheel 0.37.0 (fromSERVER-57072, Aug 2021)
Historical Context:
- pip 21.0.1 was pinned to use the new pip resolver (released Jan 2021)
- wheel 0.37.0 was pinned as latest stable version (released Aug 2021, just 2 days before commit)
- Both were simply upgraded to latest stable versions at the time, with no hard compatibility constraints
Solution
Update the venv setup script to detect Python version and use appropriate versions:
- Python 3.12+: Use pip 25.3 and wheel 0.45.0 (latest stable versions)
- Python 3.11 and earlier: Keep pip 21.0.1 and wheel 0.37.0 (existing, working versions)
This maintains backward compatibility while enabling Python 3.13 support. We're upgrading wheel alongside pip to follow the historical pattern of keeping both packages at current stable versions.
References
- PEP 594 - Removing dead batteries from the standard library
- pip 24.0 Release Notes (first version without distutils dependency)
- SERVER-53250 (pip 21.0.1 upgrade, Mar 2021)
- SERVER-57072 (wheel 0.37.0 upgrade, Aug 2021)
- is related to
-
SERVER-53250 Evaluate consequences of using upgraded pip in virtual environment and pip's new dependency resolver
-
- Closed
-
-
SERVER-57072 Explore upgrading wheel on all platforms.
-
- Closed
-