Skip to content

Support umap-learn 0.5.12 - #8073

Merged
rapids-bot[bot] merged 6 commits into
NVIDIA:mainfrom
csadorf:issue-8070-support-umap-learn-0-5-12
May 12, 2026
Merged

Support umap-learn 0.5.12#8073
rapids-bot[bot] merged 6 commits into
NVIDIA:mainfrom
csadorf:issue-8070-support-umap-learn-0-5-12

Conversation

@csadorf

@csadorf csadorf commented May 8, 2026

Copy link
Copy Markdown
Contributor

umap-learn 0.5.12 is the latest release but cuML currently caps support at <0.5.12.

Update dependency bounds and support-version docs to include 0.5.12. The upstream regression with numba >= 0.62.0 that caused test failures in older versions has been resolved, so remove the xfail markers that were guarding against it.

  • dependencies.yaml, pyproject.toml, both conda env files, docs: relax upper bound from <0.5.12 to <0.5.13
  • test_simpl_set.py, test_umap.py: remove numba ≥ 0.62.0 xfail strict markers (regression fixed, all 233 tests pass)
  • xfail-list.yaml: remove three flaky tests verified passing 20/20 times under cuml.accel with this version

Closes #8070

@csadorf
csadorf requested review from a team as code owners May 8, 2026 18:52
@csadorf csadorf added improvement Improvement / enhancement to an existing function non-breaking Non-breaking change labels May 8, 2026
@csadorf
csadorf requested review from bdice and betatim May 8, 2026 18:52
@github-actions github-actions Bot added conda conda issue Cython / Python Cython or Python issue labels May 8, 2026
@coderabbitai

coderabbitai Bot commented May 8, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This PR raises the umap-learn upper bound to <0.5.13 across envs/configs, removes three iris xfails from the upstream xfail list, and adds runtime umap-learn version gating and a shared UMAP_NUMBA_REGRESSION condition to several tests.

Changes

umap-learn 0.5.13 support

Layer / File(s) Summary
Dependency version constraints
conda/environments/all_cuda-129_arch-aarch64.yaml, conda/environments/all_cuda-129_arch-x86_64.yaml, conda/environments/all_cuda-131_arch-aarch64.yaml, conda/environments/all_cuda-131_arch-x86_64.yaml, dependencies.yaml, docs/source/supported_versions.rst, python/cuml/pyproject.toml
Update umap-learn upper bound from <0.5.12 to <0.5.13 in all environment and dependency declarations.
Upstream xfail list
python/cuml/cuml_accel_tests/upstream/umap/xfail-list.yaml
Remove three iris-related test entries from the cuml_accel_flaky marker tests list.
Test version gating
python/cuml/tests/test_umap_hypothesis.py, python/cuml/tests/test_umap.py
Import package-version helpers and add UMAP_VERSION constants; gate xfail decorators on UMAP_VERSION < 0.5.12 in addition to numba checks.
Test marker refactor and parametrization
python/cuml/tests/test_simpl_set.py, python/cuml/tests/test_umap.py, python/cuml/tests/test_umap_hypothesis.py
Introduce UMAP_NUMBA_REGRESSION combining numba and UMAP-version checks; replace inline xfail conditions with the shared constant; update parametrization and an in-test TODO wording.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • rapidsai/cuml#7938: Modifies python/cuml/tests/test_umap.py to adjust pytest xfail expectations for UMAP-related tests.
  • rapidsai/cuml#7850: Coordinated changes to umap-learn version constraints and related test gating/config.
  • rapidsai/cuml#7879: Updates dependency specifications for umap-learn (env/pyproject changes).

Suggested reviewers

  • betatim
  • bdice
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 40.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Support umap-learn 0.5.12' directly and clearly describes the main change: relaxing dependency bounds to support a new version of the umap-learn library.
Description check ✅ Passed The description is directly related to the changeset, explaining the rationale (umap-learn 0.5.12 is the latest release), listing specific file changes (dependencies.yaml, pyproject.toml, conda env files, docs), and documenting test improvements (removal of xfail markers and flaky tests).
Linked Issues check ✅ Passed The PR fully addresses all objectives from issue #8070: dependency bounds updated from <0.5.12 to <0.5.13 across all configuration files, xfail markers for numba regression removed, flaky tests removed from xfail list, and upstream test compatibility validated.
Out of Scope Changes check ✅ Passed All changes are directly scoped to supporting umap-learn 0.5.12: dependency version updates, removal of obsolete xfail markers, and removal of confirmed-passing flaky tests. No unrelated modifications detected.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Comment @coderabbitai help to get the list of available commands and usage tips.

@csadorf
csadorf force-pushed the issue-8070-support-umap-learn-0-5-12 branch from ac576a0 to 3fdc35c Compare May 8, 2026 19:11
csadorf added 3 commits May 11, 2026 21:25
The upstream regression in umap-learn with numba >= 0.62.0 that was
guarded against is no longer present. Remove the xfail markers from:

- test_simpl_set.py: removed numba_gte62 marker, inline xfail for
  test_fuzzy_simplicial_set, and unused numba/Version imports
- test_umap.py: removed xfail strict markers for test_fuzzy_simplicial_set,
  test_umap_sigmas_rhos, and test_inverse_transform, plus unused numba/
  platform/Version imports

All 233 umap-related tests pass without these guards (3 were XPASS(strict)
before, now 0 failures across the full test suite).
Verified each test passes 20/20 consecutive runs under cuml.accel with
umap-learn 0.5.12 + numba 0.64.0.

The original flakiness was introduced when the upstream test suite was
added (Jul 2025, pr NVIDIA#6989) with umap-learn pinned to 0.5.7 and an
older numba version. This PR's version bump to umap-learn 0.5.12
(resolving the numba >=0.62.0 regression) has fixed those issues.

Tests removed from cuml_accel_flaky:
- test_precomputed_transform_on_iris
- test_umap_sparse_transform_on_iris
- test_umap_transform_on_iris_w_pynndescent
@csadorf
csadorf force-pushed the issue-8070-support-umap-learn-0-5-12 branch from 7154b78 to d56fe39 Compare May 11, 2026 21:25

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@python/cuml/tests/test_umap_hypothesis.py`:
- Around line 979-983: The test is being broadly marked with pytest.mark.xfail
based on Version(numba.__version__) >= Version("0.62.0"); remove this broad
xfail so the test will run normally (or replace it with a narrowly-scoped
condition that only xfails reproducible failure permutations), i.e., delete or
tighten the pytest.mark.xfail decorator that references Version and
numba.__version__ (do not just set strict=False); ensure the test function using
this decorator is no longer silently suppressed so real regressions become
visible.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 86a30d49-490c-4530-af2f-9c7db3309b45

📥 Commits

Reviewing files that changed from the base of the PR and between 3fdc35c and d56fe39.

📒 Files selected for processing (10)
  • conda/environments/all_cuda-129_arch-aarch64.yaml
  • conda/environments/all_cuda-129_arch-x86_64.yaml
  • conda/environments/all_cuda-131_arch-aarch64.yaml
  • conda/environments/all_cuda-131_arch-x86_64.yaml
  • dependencies.yaml
  • docs/source/supported_versions.rst
  • python/cuml/cuml_accel_tests/upstream/umap/xfail-list.yaml
  • python/cuml/pyproject.toml
  • python/cuml/tests/test_simpl_set.py
  • python/cuml/tests/test_umap_hypothesis.py
💤 Files with no reviewable changes (1)
  • python/cuml/cuml_accel_tests/upstream/umap/xfail-list.yaml
✅ Files skipped from review due to trivial changes (6)
  • docs/source/supported_versions.rst
  • conda/environments/all_cuda-129_arch-aarch64.yaml
  • conda/environments/all_cuda-131_arch-aarch64.yaml
  • python/cuml/pyproject.toml
  • conda/environments/all_cuda-129_arch-x86_64.yaml
  • python/cuml/tests/test_simpl_set.py
🚧 Files skipped from review as they are similar to previous changes (2)
  • conda/environments/all_cuda-131_arch-x86_64.yaml
  • dependencies.yaml

Comment thread python/cuml/tests/test_umap_hypothesis.py
@csadorf
csadorf force-pushed the issue-8070-support-umap-learn-0-5-12 branch from d56fe39 to f76a27a Compare May 11, 2026 22:03
csadorf added 2 commits May 12, 2026 13:36
…ap-learn-0-5-12

# Conflicts:
#	conda/environments/all_cuda-132_arch-aarch64.yaml
#	conda/environments/all_cuda-132_arch-x86_64.yaml

@jcrist jcrist left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

:shipit: (assuming tests pass)

@jcrist

jcrist commented May 12, 2026

Copy link
Copy Markdown
Member

/merge

@rapids-bot
rapids-bot Bot merged commit d16f804 into NVIDIA:main May 12, 2026
101 checks passed
@csadorf
csadorf deleted the issue-8070-support-umap-learn-0-5-12 branch May 12, 2026 17:31
rapids-bot Bot pushed a commit that referenced this pull request May 15, 2026
This fails sometimes with a trustworthiness score _just_ below 0.85 (e.g. 0.844). This was marked as flaky before #8073 removed it, but it's still flaky so we add it back.

Authors:
  - Jim Crist-Harif (https://github.com/jcrist)

Approvers:
  - Simon Adorf (https://github.com/csadorf)
  - Bradley Dice (https://github.com/bdice)

URL: #8107
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

conda conda issue Cython / Python Cython or Python issue improvement Improvement / enhancement to an existing function non-breaking Non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support umap-learn 0.5.12

5 participants