Commit db11de2
Release v0.16.0: Upgrade to manylinux_2_28 and remove scipy version constraints (#869)
* Upgrade to manylinux_2_28 and remove scipy version constraints
This PR modernizes CausalML's wheel distribution by upgrading from
manylinux2014 to manylinux_2_28, enabling compatibility with both
scipy 1.16.x and 1.17.x without version pinning.
## Changes
### 1. Upgrade manylinux platform tag (pyproject.toml)
- **Before:** manylinux2014 (glibc 2.17, CentOS 7 base - EOL June 2024)
- **After:** manylinux_2_28 (glibc 2.28, modern standard)
### 2. Remove scipy version constraints
- **pyproject.toml:** `scipy>=1.16.0,<1.17.0` → `scipy>=1.16.0`
- **docs/environment-py311-rtd.yml:** Removed upper bound constraint
- **Benefit:** Support both scipy 1.16.x and 1.17.x automatically
### 3. Document system requirements (docs/installation.rst)
Added new "System Requirements" section documenting:
- Python 3.11+ requirement
- Minimum Linux distributions (Ubuntu 18.04+, RHEL 8+, Debian 10+)
- Build-from-source instructions for older systems
## Why This Change?
### Problems with manylinux2014:
- Based on CentOS 7 (EOL June 2024)
- Required version pinning to avoid scipy 1.17.0
- Prevented access to newer dependency features
- Maintenance burden with explicit constraints
### Benefits of manylinux_2_28:
- Modern, actively maintained standard
- Compatible with scipy 1.16.x AND 1.17.x
- No version pinning needed - pip selects the best version
- Future-proof for upcoming dependencies
- Cleaner dependency declarations
## Compatibility Impact
### Systems That Work:
- Ubuntu 18.04 LTS+ (glibc 2.27+)
- RHEL/CentOS 8+ (glibc 2.28+)
- Debian 10+ (glibc 2.28+)
- All recent macOS and Windows versions
### Systems Requiring Source Build:
- RHEL/CentOS 7 (glibc 2.17)
- Ubuntu 16.04 and earlier
- Debian 9 and earlier
**Note:** CentOS 7 reached EOL in June 2024, and Ubuntu 16.04 EOL
was April 2021, making this upgrade aligned with industry standards.
## scipy Compatibility
CausalML uses these scipy modules:
- scipy.sparse, scipy.stats
- scipy.optimize (fsolve, minimize)
- scipy.special (expit, logit)
- scipy.interpolate (UnivariateSpline)
**None of these are affected by scipy 1.17.0 breaking changes**, which
only impact scipy.spatial.transform. Both scipy 1.16.x and 1.17.x work
correctly with CausalML.
## Testing
Pre-built wheels will now use manylinux_2_28. Users can install with
either scipy version:
- scipy 1.16.3 (stable, has manylinux2014 wheels)
- scipy 1.17.0+ (latest, has manylinux_2_28 wheels)
pip will automatically select the appropriate version based on the
user's system capabilities.
Supersedes: #868 (build-system fix no longer needed with manylinux_2_28)
Closes: #863
Co-Authored-By: Claude (claude-sonnet-4-5) <noreply@anthropic.com>
* Fix glibc version requirement: manylinux_2_28 requires glibc 2.28, not 2.27
Copilot correctly identified that Ubuntu 18.04 is NOT compatible with
manylinux_2_28 wheels. Ubuntu 18.04 has glibc 2.27, but manylinux_2_28
requires glibc 2.28 or later.
Changes:
- Updated glibc requirement from 2.27 to 2.28
- Changed minimum Ubuntu version from 18.04 to 20.04 LTS (has glibc 2.31)
- Added Ubuntu 18.04 to the list of distributions requiring source build
This ensures users have accurate information about system requirements.
Co-Authored-By: Claude (claude-sonnet-4-5) <noreply@anthropic.com>
* Bump version to 0.16.0 and update changelog for breaking changes
This release introduces breaking changes in Linux wheel compatibility
due to the manylinux_2_28 upgrade, warranting a minor version bump
from 0.15.6 to 0.16.0.
Changes:
- Updated version in pyproject.toml: 0.15.6 → 0.16.0
- Added comprehensive 0.16.0 changelog entry documenting:
- Breaking change: manylinux_2_28 requirement (glibc 2.28+)
- Affected systems and migration path
- scipy version pin removal
- Related PRs (#869, #867, #865, #864)
Breaking Changes:
- Pre-built wheels require Ubuntu 20.04+, RHEL 8+, Debian 10+ (glibc 2.28+)
- Users on Ubuntu 18.04, RHEL 7, etc. must build from source
- Python 3.11+ required (already enforced in previous release)
This follows semantic versioning: minor version bump for backward-
incompatible changes to wheel distribution.
Co-Authored-By: Claude (claude-sonnet-4-5) <noreply@anthropic.com>
---------
Co-authored-by: Claude (claude-sonnet-4-5) <noreply@anthropic.com>1 parent 9b6f20a commit db11de2
File tree
4 files changed
+60
-5
lines changed- docs
4 files changed
+60
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
8 | 46 | | |
9 | 47 | | |
10 | 48 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | | - | |
| 27 | + | |
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
9 | 26 | | |
10 | 27 | | |
11 | 28 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
| 29 | + | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| |||
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
74 | | - | |
75 | | - | |
| 74 | + | |
| 75 | + | |
76 | 76 | | |
77 | 77 | | |
0 commit comments