Skip to content

Tags: uber/causalml

Tags

v0.16.0

Toggle v0.16.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
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>

v0.15.5

Toggle v0.15.5's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
v0.15.5 release (#842)

v0.15.4

Toggle v0.15.4's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
v0.15.4 release (#830)

v0.15.3

Toggle v0.15.3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
v0.15.3 release (#815)

* v0.15.3 release
* fix typo

v0.15.2

Toggle v0.15.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request #795 from uber/jeong/pin_numpy_le_2

Pin the numpy version to be <2

v0.15.1

Toggle v0.15.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
version up to 0.15.1. update changelogs (#760)

v0.15.0

Toggle v0.15.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request #739 from erikcs/maq-optional

Remove maq git+pip dependency

v0.14.1

Toggle v0.14.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
v0.14.1 release (#672)

v0.14.0

Toggle v0.14.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Up the version to 0.14 (#632)

v0.13.0

Toggle v0.13.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
update changelog and version number for v0.13.0 (#543)