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
5 changes: 5 additions & 0 deletions .changeset/add-hdbscan-python-3-12-10.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@platforma-open/milaboratories.runenv-python-3.12.10": patch
---

Add `hdbscan==0.8.44` (scikit-learn-contrib HDBSCAN) to the Python 3.12.10 runenv. Built from prebuilt wheels on linux-x64, macOS (universal2) and win-x64; compiled from the Cython sources on the native runner for linux-aarch64 (no ARM64 wheel on PyPI). Provides density-based clustering with out-of-sample assignment (`approximate_predict`), enabling the embedding-clustering block's large-dataset path.
7 changes: 7 additions & 0 deletions python-3.12.10/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
"parasail==1.3.4",
"numpy==2.2.6",
"umap-learn==0.5.7",
"hdbscan==0.8.44",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 hdbscan 0.8.44 prebuilt wheels may be incompatible with NumPy 2.x

hdbscan==0.8.44 ships prebuilt cp312 wheels for linux-x64, macOS universal2, and win-x64. If those wheels were compiled against NumPy 1.x, they will fail to import at runtime against numpy==2.2.6 because NumPy 2.0 introduced ABI-breaking changes for Cython extensions that used the old C API. The linux-aarch64 path builds from source (fine — it will compile against the 2.2.6 headers), but the three prebuilt-wheel platforms are at risk. It is worth verifying that the PyPI wheels for hdbscan 0.8.44 were built with NPY_TARGET_VERSION targeting NumPy 2.x before merging.

Prompt To Fix With AI
This is a comment left during a code review.
Path: python-3.12.10/config.json
Line: 15

Comment:
**hdbscan 0.8.44 prebuilt wheels may be incompatible with NumPy 2.x**

`hdbscan==0.8.44` ships prebuilt cp312 wheels for linux-x64, macOS universal2, and win-x64. If those wheels were compiled against NumPy 1.x, they will fail to import at runtime against `numpy==2.2.6` because NumPy 2.0 introduced ABI-breaking changes for Cython extensions that used the old C API. The linux-aarch64 path builds from source (fine — it will compile against the 2.2.6 headers), but the three prebuilt-wheel platforms are at risk. It is worth verifying that the PyPI wheels for hdbscan 0.8.44 were built with `NPY_TARGET_VERSION` targeting NumPy 2.x before merging.

How can I resolve this? If you propose a fix, please make it concise.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Fix in Claude Code

"PyYAML==6.0.3",
"cudf-cu12==25.6.0",
"scanpy==1.10.1",
Expand Down Expand Up @@ -71,6 +72,12 @@
"reason": "No cp312 / Windows wheel; compile with MSVC. The shared runner workflow activates vcvars via milaboratory/github-ci/actions/setup-msvc-dev-cmd@v4 before this step runs, so the env (INCLUDE / LIB / LIBPATH / PATH plus DISTUTILS_USE_SDK) is in scope when pip wheel invokes setuptools.",
"buildRequires": ["setuptools", "wheel"]
}
},
"hdbscan": {
"linux-aarch64": {
"reason": "No cp312 / Linux ARM64 wheel on PyPI for hdbscan 0.8.44 (wheels exist for linux-x64, macOS universal2, and win-x64); compile the Cython sources on the native ARM runner.",
"buildRequires": ["setuptools", "wheel", "Cython", "numpy"]
}
}
}
}
Expand Down
Loading