diff --git a/docs/changelog.rst b/docs/changelog.rst index ad6291b9..fee16a21 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -5,6 +5,44 @@ Changelog You can find the latest changes in the `GitHub 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``. diff --git a/docs/environment-py311-rtd.yml b/docs/environment-py311-rtd.yml index c36af222..52729990 100644 --- a/docs/environment-py311-rtd.yml +++ b/docs/environment-py311-rtd.yml @@ -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 diff --git a/docs/installation.rst b/docs/installation.rst index 848bf087..8a52737b 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -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`` ----------------------- diff --git a/pyproject.toml b/pyproject.toml index 014c4906..883c42bc 100755 --- a/pyproject.toml +++ b/pyproject.toml @@ -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" } @@ -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", @@ -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*"]