Remove daal4py algorithms scheduled for removal in 2026.0#2944
Remove daal4py algorithms scheduled for removal in 2026.0#2944Vika-F wants to merge 6 commits intouxlfoundation:mainfrom
Conversation
|
I'm not sure about the best way to handle this PR. If the oneDAL PR with the removals gets merged, it should be possible to get the nightly jobs passing here afterwards, but everything else will be broken until 2026.0 is released through public channels. Perhaps in the meantime these algorithms could be added to the ignored list here: .. and then be removed from it after the initial 2026.0 release. |
I think updating the exclusions is a proper way of handling this kind of removals, why not? |
Codecov Report✅ All modified and coverable lines are covered by tests.
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
|
Doc error is about entries for 'sorting' which are still referenced in the docs. |
There was a problem hiding this comment.
Pull request overview
This PR removes Tier 1 algorithms from daal4py that were scheduled for deprecation in version 2026.0, as outlined in the oneDAL RFC for algorithm deprecation. The removal includes both analysis algorithms and training/prediction algorithms that are no longer maintained.
Changes:
- Removed 9 training/prediction algorithm implementations (AdaBoost, BrownBoost, LogitBoost, Decision Tree classification/regression, Naive Bayes, Stump classification/regression)
- Removed 9 analysis algorithms (Association Rules, 3 types of Outlier Detection, 3 Optimization Solvers, Sorting, Quantile)
- Updated documentation to remove references to deprecated algorithms
- Added removed algorithms to generator exclusion lists
- Removed example files and associated test data
- Cleaned up test files to remove references to deprecated algorithms
Reviewed changes
Copilot reviewed 38 out of 61 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/test_estimators.py | Removed AdaBoostClassifier import and test |
| tests/test_daal4py_examples.py | Removed example configs for deprecated algorithms and CSR support checks |
| src/tree_visitor.h | Removed decision tree classification visitor template specializations |
| generator/wrappers.py | Added deprecated algorithm namespaces to exclusion list |
| examples/daal4py/*.py | Deleted example files for all removed algorithms |
| examples/daal4py/data/**/*.csv | Deleted test data files for removed algorithms |
| doc/sources/*.rst | Removed documentation sections for deprecated algorithms |
| daal4py/sklearn/tree/* | Removed entire decision tree sklearn wrapper module |
| daal4py/sklearn/ensemble/AdaBoostClassifier.py | Removed AdaBoost sklearn wrapper |
| daal4py/sklearn/ensemble/init.py | Removed AdaBoostClassifier from exports |
| daal4py/sklearn/init.py | Removed tree module from exports |
| "algorithms::association_rules", | ||
| "algorithms::adaboost", | ||
| "algorithms::adaboost::prediction", | ||
| "algorithms::adaboost::training", | ||
| "algorithms::brownboost", | ||
| "algorithms::brownboost::prediction", | ||
| "algorithms::brownboost::training", | ||
| "algorithms::logitboost", | ||
| "algorithms::logitboost::prediction", | ||
| "algorithms::logitboost::training", | ||
| "algorithms::decision_tree", | ||
| "algorithms::decision_tree::classification", | ||
| "algorithms::decision_tree::classification::prediction", | ||
| "algorithms::decision_tree::classification::training", | ||
| "algorithms::decision_tree::regression", | ||
| "algorithms::decision_tree::regression::prediction", | ||
| "algorithms::decision_tree::regression::training", | ||
| "algorithms::multinomial_naive_bayes", | ||
| "algorithms::multinomial_naive_bayes::prediction", | ||
| "algorithms::multinomial_naive_bayes::training", | ||
| "algorithms::bacon_outlier_detection", | ||
| "algorithms::multivariate_outlier_detection", | ||
| "algorithms::univariate_outlier_detection", | ||
| "algorithms::optimization_solver::adagrad", | ||
| "algorithms::optimization_solver::saga", | ||
| "algorithms::optimization_solver::sgd", | ||
| "algorithms::quantiles", | ||
| "algorithms::sorting", | ||
| "algorithms::stump", | ||
| "algorithms::stump::classification", | ||
| "algorithms::stump::classification::prediction", | ||
| "algorithms::stump::classification::training", | ||
| "algorithms::stump::regression", | ||
| "algorithms::stump::regression::prediction", | ||
| "algorithms::stump::regression::training", | ||
| "algorithms::weak_learner", | ||
| "algorithms::weak_learner::prediction", | ||
| "algorithms::weak_learner::training", | ||
| "algorithms::linear_model::prediction", |
There was a problem hiding this comment.
This PR adds the removed algorithm namespaces to the exclusion list in wrap_algo, which correctly prevents them from being wrapped. However, note that there are still references to these algorithms in other parts of this file (lines 108-139 in required dict, lines 337-365 in defaults dict, and lines 994-1044 in other configuration dicts). While these won't cause runtime errors since the algorithms are excluded, consider removing these stale entries in a follow-up cleanup to maintain code cleanliness and avoid confusion.
|
CI error with the docs is a timeout in the link checker, so can be ignored. But the failing windows job is something in daal4py patching tests. It doesn't say specifically what unfortunately, so it might be a sporadic issue. I restarted it to see if it happens again. |
Description
Remove Tier 1 algorithms proposed for removal in this RFC:
https://github.com/uxlfoundation/oneDAL/tree/rfcs/rfcs/20251015-DAAL-algorithms-deprecation#analysis-algorithms-to-be-deprecated
Analysis algorithms:
Training and prediction algorithms to be deprecated:
Checklist:
Completeness and readability
Testing
no new functionality in this PR
Performance
not applicable