Skip to content

Commit 87dd7f1

Browse files
jeongyoonleeclaude
andauthored
Fix Ubuntu packaging failure - scipy manylinux compatibility (#865)
* Fix Ubuntu packaging failure by aligning cibuildwheel config with Python version requirement The cibuildwheel configuration was attempting to build wheels for Python 3.9 and 3.10, but the package requires Python >=3.11 (as specified in requires-python). This mismatch caused the Ubuntu packaging workflow to fail during validation. Changes: - Updated [tool.cibuildwheel] build list to only include cp311-* and cp312-* - Removed cp39-* and cp310-* from the build list Fixes #863 Co-Authored-By: Claude (claude-sonnet-4-5) <noreply@anthropic.com> * Pin scipy to <1.17.0 to fix Ubuntu packaging failure The Ubuntu packaging build was failing because scipy 1.17.0 (released January 2026) only provides manylinux_2_27/manylinux_2_28 wheels, which are incompatible with the manylinux2014 (manylinux_2_17) containers used by cibuildwheel. This caused pip to fall back to building scipy from source, which failed due to missing OpenBLAS dependency. By pinning scipy to <1.17.0, we ensure pip only selects versions that have compatible manylinux2014 wheels (like scipy 1.16.3), preventing the source build fallback and resolving the build failure. Fixes #863 Co-Authored-By: Claude (claude-sonnet-4-5) <noreply@anthropic.com> * Address CoPilot review comments - ensure consistency across config files 1. Update scipy constraint in RTD environment file - Pin scipy to <1.17.0 in docs/environment-py311-rtd.yml - Prevents manylinux2014 compatibility issues during doc builds 2. Update GitHub Actions workflows for Python 3.11+ requirement - Remove Python 3.9 and 3.10 from test-build-from-source.yml - Remove Python 3.9 and 3.10 from test-pypi-install.yml - Aligns with requires-python = ">=3.11" in pyproject.toml 3. Explicitly set manylinux image in cibuildwheel config - Add manylinux-x86_64-image = "manylinux2014" - Add manylinux-aarch64-image = "manylinux2014" - Ensures consistent manylinux level across all Python versions Co-Authored-By: Claude (claude-sonnet-4-5) <noreply@anthropic.com> --------- Co-authored-by: Claude (claude-sonnet-4-5) <noreply@anthropic.com>
1 parent c1362c5 commit 87dd7f1

4 files changed

Lines changed: 6 additions & 12 deletions

File tree

.github/workflows/test-build-from-source.yml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,9 @@ jobs:
1919
fail-fast: false
2020
matrix:
2121
os: [ubuntu-latest]
22-
python-version: ["3.9", "3.10", "3.11", "3.12"]
22+
python-version: ["3.11", "3.12"]
2323
tf-label: ['', '-tf']
2424
include:
25-
- python-version: "3.9"
26-
python-version-nd: 39
27-
- python-version: "3.10"
28-
python-version-nd: 310
2925
- python-version: "3.11"
3026
python-version-nd: 311
3127
- python-version: "3.12"

.github/workflows/test-pypi-install.yml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,8 @@ jobs:
1212
fail-fast: false
1313
matrix:
1414
os: [ubuntu-latest]
15-
python-version: ["3.9", "3.10", "3.11", "3.12"]
15+
python-version: ["3.11", "3.12"]
1616
include:
17-
- python-version: "3.9"
18-
python-version-nd: 39
19-
- python-version: "3.10"
20-
python-version-nd: 310
2117
- python-version: "3.11"
2218
python-version-nd: 311
2319
- python-version: "3.12"

docs/environment-py311-rtd.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ dependencies:
2424
- pyro-api>=0.1.2
2525
- pyro-ppl>=1.9.1
2626
- scikit-learn>=1.6.0
27-
- scipy>=1.16.0
27+
- scipy>=1.16.0,<1.17.0 # Pin to versions with manylinux2014 wheels
2828
- seaborn>=0.13.2
2929
- shap>=0.46.0
3030
- statsmodels>=0.14.5

pyproject.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ dependencies = [
2626
"forestci==0.6",
2727
"pathos==0.2.9",
2828
"numpy>=1.25.2",
29-
"scipy>=1.16.0",
29+
"scipy>=1.16.0,<1.17.0", # Pin to versions with manylinux2014 wheels (1.17.0+ requires manylinux_2_27)
3030
"matplotlib",
3131
"pandas>=0.24.1",
3232
"scikit-learn>=1.6.0",
@@ -71,5 +71,7 @@ homepage = "https://github.com/uber/causalml"
7171
[tool.cibuildwheel]
7272
build = ["cp311-*", "cp312-*"]
7373
build-verbosity = 1
74+
manylinux-x86_64-image = "manylinux2014"
75+
manylinux-aarch64-image = "manylinux2014"
7476
# Skip 32-bit builds
7577
skip = ["*-win32", "*-manylinux_i686", "*-musllinux*"]

0 commit comments

Comments
 (0)