Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions docs/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,44 @@ Changelog

You can find the latest changes in the `GitHub releases <https://github.com/uber/causalml/releases>`_

0.16.0 (Feb 2026)
-----------------
* **BREAKING CHANGE:** This release upgrades from manylinux2014 to manylinux_2_28 for Linux wheel distribution.
* Pre-built wheels now require glibc 2.28 or later (Ubuntu 20.04+, RHEL 8+, Debian 10+).
* Users on older Linux distributions (Ubuntu 18.04, RHEL 7, etc.) must build from source.
* Removes scipy version pin, enabling compatibility with both scipy 1.16.x and 1.17.x.

Updates
~~~~~~~
* Upgrade to manylinux_2_28 and remove scipy version constraints by @jeongyoonlee in https://github.com/uber/causalml/pull/869
* Upgrade cibuildwheel to v3.3.1 and remove deprecated macos-13 runner by @jeongyoonlee in https://github.com/uber/causalml/pull/867
* Fix Ubuntu packaging failure - scipy manylinux compatibility by @jeongyoonlee in https://github.com/uber/causalml/pull/865
* Fix Ubuntu packaging failure by aligning cibuildwheel config with Python version requirement by @jeongyoonlee in https://github.com/uber/causalml/pull/864

Breaking Changes
~~~~~~~~~~~~~~~~
* **Linux wheel compatibility:** Pre-built wheels require glibc 2.28+ (manylinux_2_28)

* ✅ **Supported:** Ubuntu 20.04+, RHEL/CentOS 8+, Debian 10+, Fedora 32+
* ⚠️ **Requires source build:** Ubuntu 18.04, RHEL 7, Ubuntu 16.04, Debian 9

* **Python version:** Minimum Python version is 3.11 (updated from 3.9)

Migration Notes
~~~~~~~~~~~~~~~
If you are on an older Linux distribution:

1. **Check your glibc version:** ``ldd --version``
2. **If glibc < 2.28:** Install from source instead of using pip wheels:

.. code-block:: bash

git clone https://github.com/uber/causalml.git
cd causalml
pip install -e .

3. **Recommended:** Upgrade to a modern Linux distribution (Ubuntu 20.04+, RHEL 8+)

0.15.1 (Apr 2024)
-----------------
* This release fixes the build failure on macOS and a few bugs in ``UpliftTreeClassifier``.
Expand Down
2 changes: 1 addition & 1 deletion docs/environment-py311-rtd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ dependencies:
- pyro-api>=0.1.2
- pyro-ppl>=1.9.1
- scikit-learn>=1.6.0
- scipy>=1.16.0,<1.17.0 # Pin to versions with manylinux2014 wheels
- scipy>=1.16.0
- seaborn>=0.13.2
- shap>=0.46.0
- statsmodels>=0.14.5
Expand Down
17 changes: 17 additions & 0 deletions docs/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,23 @@ Installation with ``conda`` or ``pip`` is recommended. Developers can follow th

To use models under the ``inference.tf`` or ``inference.torch`` module (e.g. ``DragonNet`` or ``CEVAE``), additional dependency of ``tensorflow`` or ``torch`` is required. For detailed instructions, see below.

System Requirements
-------------------

**Python Version:** Python 3.11 or later is required.

**Linux Distributions:** Pre-built binary wheels require a Linux distribution with glibc 2.28 or later:

* **Ubuntu:** 20.04 LTS or later
* **RHEL/CentOS:** 8 or later
* **Debian:** 10 (Buster) or later
* **Fedora:** 32 or later

.. note::
For older Linux distributions (e.g., RHEL 7, Ubuntu 16.04, Ubuntu 18.04), you will need to build CausalML from source. See **Install from source** below.

**macOS and Windows:** All recent versions are supported.

Install using ``conda``
-----------------------

Expand Down
8 changes: 4 additions & 4 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "causalml"
version = "0.15.6"
version = "0.16.0"
description = "Python Package for Uplift Modeling and Causal Inference with Machine Learning Algorithms"
readme = { file = "README.md", content-type = "text/markdown" }

Expand All @@ -26,7 +26,7 @@ dependencies = [
"forestci==0.6",
"pathos==0.2.9",
"numpy>=1.25.2",
"scipy>=1.16.0,<1.17.0", # Pin to versions with manylinux2014 wheels (1.17.0+ requires manylinux_2_27)
"scipy>=1.16.0",
"matplotlib",
"pandas>=0.24.1",
"scikit-learn>=1.6.0",
Expand Down Expand Up @@ -71,7 +71,7 @@ homepage = "https://github.com/uber/causalml"
[tool.cibuildwheel]
build = ["cp311-*", "cp312-*"]
build-verbosity = 1
manylinux-x86_64-image = "manylinux2014"
manylinux-aarch64-image = "manylinux2014"
manylinux-x86_64-image = "manylinux_2_28"
manylinux-aarch64-image = "manylinux_2_28"
# Skip 32-bit builds
skip = ["*-win32", "*-manylinux_i686", "*-musllinux*"]