Tags: uber/causalml
Tags
Release v0.16.0: Upgrade to manylinux_2_28 and remove scipy version c… …onstraints (#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>
PreviousNext