What's Changed
🚨 Breaking Changes
- Simplify type reflection implementation by @jcrist in #7539
- Deprecate
TotalItersfor SVC/SVR by @jcrist in #7612 - Deprecate handle from public APIs by @jcrist in #7628
- Don't coerce
output_type=Noneto globaloutput_typein__init__by @jcrist in #7649 - Remove unused QR decomposition MG code by @JohnZed in #7687
- Use train_test_split from scikit-learn by @betatim in #7667
🐛 Bug Fixes
- Don't link to cumlprims_mg when MG is turned off by @robertmaynard in #7583
- UMAP fix int32 overflow causing illegal mem access by @aamijar in #7587
- Explicitly initialize uninitialized SvmParameter fields in SVC constructor by @dantegd in #7604
- Use a generated dataset in place of the actual Covertype dataset. by @csadorf in #7634
- Remove reliance on remote datasets in tests by @csadorf in #7637
- Use synthetic dataset in BERTopic wheel integration tests. by @csadorf in #7644
- Refactor pointer comparison in check_ptr function for input validation by @csadorf in #7636
- Add XGBoost back to tests by @dantegd in #7653
- xfail check_estimators spectral embedding tests by @aamijar in #7677
- Update RMM memory resource APIs to use ref-based equivalents by @bdice in #7668
- Xfail test 'test_tsne_distance_metrics_on_sparse_input' by @csadorf in #7681
- Use NCCL for Dask kNN and DBSCAN by @viclafargue in #7574
- Mark some SpectralEmbedding() common test_estimators tests as flaky. by @csadorf in #7686
- Handle new sklearn LARS error message in test_typeerror_input by @csadorf in #7694
- Build.sh now support custom LIBCUML_BUILD_DIR value by @robertmaynard in #7582
- Fix UMAP outliers when
random_stateis given by @jinsolp in #7597 - Work-around sentence-transformer regression in BERTopic integration tests and do not fail test runs on integration tests by @csadorf in #7715
- classlabels utils refactor by @viclafargue in #7691
📖 Documentation
- DOC Rework LinearRegression documentation by @virchan in #7218
k-means++documented as a init option by @aamijar in #7615- Add general XGBoost demo notebook by @dantegd in #7601
- Add security warnings to model serialization/deserialization notebook. by @csadorf in #7661
🚀 New Features
- Use CCCL's mdspan implementation by @divyegala in #7555
TargetEncoderin cuml.accel by @aamijar in #7476
🛠️ Improvements
- Forward merge
release/25.12intomainby @jcrist in #7519 - Use strict priority in CI conda tests by @bdice in #7524
- CI: Do not automatically update the release field of linked issues. by @csadorf in #7521
- Remove verbose descriptor by @jcrist in #7527
- Forward merge release/25.12 into main by @jcrist in #7531
- CI: Improve PR target release automation by @csadorf in #7511
- CI: Add or adjust job-specific timeouts for GHA test jobs by @csadorf in #7533
- Forward-merge release/25.12 into main by @csadorf in #7537
- CI: Fail PR auto assignment gracefully. by @csadorf in #7558
- Use strict priority in CI conda tests by @bdice in #7559
- Adjust CI timeouts by @jcrist in #7563
- use CUDA-suffixed XGBoost wheels by @jameslamb in #7550
- MNT: Remove unused legacy spectral.cu by @mani-builds in #7556
- Remove alpha specs from non-RAPIDS dependencies by @bdice in #7568
- Enable merge barriers by @KyleFromNVIDIA in #7579
- Update to numba-cuda
>=0.22.1,<0.23.0by @brandon-b-miller in #7549 - Forward merge
release/25.12intomainby @jcrist in #7592 - Add devcontainer fallback for C++ test location by @bdice in #7596
- Add lower bound to dask-ml>=2024 by @bdice in #7600
- Forward
cuml.accellogging to subprocesses by @jcrist in #7602 - Improved condense hierarchy of HDBSCAN by @jinsolp in #7459
- Isolating
test_umap_outliersfrom precomputed kNN issues by @jinsolp in #7594 - Fix scikit-learn 1.8 test incompatibilities by @csadorf in #7589
- Prepare cuml for removal of deprecated raft apis by @aamijar in #7561
- Require scipy>=1.13.0. by @csadorf in #7605
- Remove deprecations for 26.02 by @jcrist in #7613
- Remove deprecated
normalizeparameter by @jcrist in #7611 - Update cuML to C++20 by @divyegala in #7619
- Avoid deprecated conversion of numpy array->scalar by @jcrist in #7618
- Updating UMAP random_state doc by @viclafargue in #7590
- Add warning in UMAP for nondeterministic behavior when
build_algo=nn_descentby @jinsolp in #7620 - FIX Remove custom CUDA kernels from naive bayes estimators by @betatim in #7424
- Bypass data allocation to GPU given precomputed knn in UMAP by @jinsolp in #7566
- Attempt to find
cmake-format-rapids-cmake.jsonincpp/latestby @divyegala in #7626 - Optional seed spectral embedding by @aamijar in #7608
- Cleanup naive bayes by @jcrist in #7623
- Don't fail on
cuda.core.experimentaldeprecation warnings by @jcrist in #7629 - Empty commit to trigger a build by @bdice in #7630
- Move cumlprims_mg into cuML by @dantegd in #7585
- CI Make nightly cuml.accel integration test stricter by @betatim in #7631
- Use SPDX license identifiers in pyproject.toml, bump build dependency floors by @jameslamb in #7641
- Require scikit-learn>=1.5 by @csadorf in #7606
- remove unused test dependency 'tenacity' by @jameslamb in #7645
- Add CUDA 13.1 support by @bdice in #7610
- Remove cumlprims from clang-format by @bdice in #7647
- Use cuvs spectral clustering dataset api by @aamijar in #7625
- CI: Add notebook tests to nightly tests by @csadorf in #7567
- Address sklearn deprecation warnings by @csadorf in #7371
- Remove cutlass reference in unused header by @divyegala in #7655
- Add LedoitWolf covariance estimator by @will-hill in #7548
- Update input_utils CI tests to account for cuDF update by @viclafargue in #7660
- build and test against CUDA 13.1.0 by @jameslamb in #7650
- Empty commit to trigger a build by @jameslamb in #7666
- Use main shared-workflows branch by @jameslamb in #7682
- Use saga solver in test_logistic_regression test function. by @csadorf in #7670
- Mirror input mem type for
nn_descentalgo in HDBSCAN by @jinsolp in #7614 - Avoid installing CCCL headers in wheels by @divyegala in #7662
- CI Add a nightly job that uses scikit-learn's nightlies by @betatim in #7621
- UMAP with
int64_tspectral initialization by @aamijar in #7586 - UMAP custom init by @viclafargue in #7651
- Support older IPython versions for
cuml.accelmagics by @jcrist in #7675 - wheel builds: react to changes in pip's handling of build constraints by @mmccarty in #7693
- Use all-neighbors brute force in UMAP and deprecate
build_kwdsargs to be consistent with HDBSCAN by @jinsolp in #7698 - fix(build): build package on merge to
release/*branch by @gforsyth in #7719 - UMAP inverse transform by @viclafargue in #7674
- Fallback to numba-cuda with no extra CUDA packages if 'cuda_suffixed' isn't true by @trxcllnt in #7721
- Add precomputed kernel support in SVM by @viclafargue in #7616
- Document support for and limitations of TargetEncoder in cuml.accel. by @csadorf in #7741
New Contributors
- @virchan made their first contribution in #7218
- @mani-builds made their first contribution in #7556
- @will-hill made their first contribution in #7548
- @mmccarty made their first contribution in #7693
Full Changelog: v26.02.00a...v26.02.00