Changes
💡 New Features
- [CUDA] fix setting of CUDA architectures and enable support for NVIDIA Blackwell @StrikerRUS (#6812)
- [python-package] support Python 3.13 @jameslamb (#6668)
- [GPU] Add support for linear tree with device=gpu @dragonbra (#6567)
- [c++] Add Bagging by Query for Lambdarank @shiyu1994 (#6623)
🔨 Breaking
- [R-package] require lgb.Dataset, remove support for passing 'colnames' and 'categorical_feature' for lgb.train() and lgb.cv() @jameslamb (#6714)
- [python-package] support sub-classing scikit-learn estimators @jameslamb (#6783)
- [python-package] do not copy column-major numpy arrays when creating Dataset from list of arrays @jmoralez (#6773)
- [python-package] remove support for passing 'feature_name' and 'categorical_feature' through train() and cv() @jameslamb (#6706)
- [python-package] require
scikit-learn>=0.24.2
, make scikit-learn estimators compatible withscikit-learn>=1.6.0dev
@vnherdeiro (#6651) - [ci] Require CMake 3.28 and replace
FetchContent_Populate
withFetchContent_MakeAvailable
@StrikerRUS (#6550)
🚀 Efficiency Improvement
- [python-package] do not copy column-major numpy arrays when predicting @jmoralez (#6751)
- [python-package] do not copy column-major numpy arrays when creating Dataset @jmoralez (#6721)
🐛 Bug Fixes
- [python-package] Separately check whether
pyarrow
andcffi
are installed @mlondschien (#6785) - [c++] Fixed Predictor lifecycle and trees initialization in Contrib mode @AndreyOrb (#6778)
- [python-package] Infer feature names from
pyarrow.Table
@mlondschien (#6781) - [python-package] Fix inconsistency in
predict()
output shape for 1-tree models @RektPunk (#6753) - [fix] resolve potential attack in linker connection building @shiyu1994 (#6752)
- [R-package] Avoid bashisms (non-POSIX code) in R-package/configure @smoser (#6746)
- [c++] fix parallel_tree_learner_split_info @moming39 (#6738)
- [c++] Fix
dump_model()
information for root node @neNasko1 (#6569) - [cmake] [R-package] include R-for-macOS vendored libs dir in OpenMP search path (fixes #6628) @jameslamb (#6629)
- [R-package] only warn about early stopping and DART boosting being incompatible if early stopping was requested @serkor1 (#6619)
- [cmake] fixes static build for macos with OpenMP enabled (fixes #6601) @Mottl (#6600)
📖 Documentation
- [docs] update installation guide @StrikerRUS (#6696)
- [docs] add note about pyodide support @jameslamb (#6715)
- [docs] Remove only cpu note due to gpu support for linear trees @JAroyan (#6686)
- [docs] fix inaccurate comment for
force_col_wise
param with CUDA version @StrikerRUS (#6695) - [docs] group logically external projects in README and add some new libraries @StrikerRUS (#6691)
- [docs] use consistent naming for R-package and Python-package across the repo @StrikerRUS (#6655)
- [docs] add supertree in README @pplonski (#6625)
- [docs] unify language and make small improvements in some param descriptions @StrikerRUS (#6618)
- [doc] Updates Rust bindings library link in README.md @Mottl (#6611)
- [R-package] [docs] update cran-comments for v4.5.0 release @jameslamb (#6578)
- [docs] add conda version badge @StrikerRUS (#6576)
🧰 Maintenance
- release v4.6.0 @jameslamb (#6796)
- [c++] update to fmt 11.1.2, fast_double_parser 0.8.0 @jameslamb (#6802)
- [ci] fix valgrind workflow @jameslamb (#6816)
- [ci] validate pyproject file by json schema @StrikerRUS (#6813)
- [ci] [python-package] update pre-commit hooks to latest versions @jameslamb (#6817)
- [ci]: Bump release-drafter/release-drafter from 6.0.0 to 6.1.0 in the ci-dependencies group @dependabot[bot] (#6810)
- [ci] fix errors about line length in yaml files (Part 4) @StrikerRUS (#6804)
- [ci] remove pandas before testing that LightGBM can be imported without extra deps @StrikerRUS (#6801)
- [ci] fix errors about comments indentation in yaml files (Part 3) @StrikerRUS (#6794)
- [ci] fix errors about indentation in yaml files (Part 2) @StrikerRUS (#6789)
- [ci] [python-package] build macOS x86_64 wheels on macOS 13 (Ventura) @jameslamb (#6669)
- [ci] add yaml files linter to pre-commit hook but skip some rules for now (Part 1) @StrikerRUS (#6763)
- [ci] lock inactive issues and PRs at different time @StrikerRUS (#6764)
- [ci][python-package] add testing for the shape of raw score predictions @StrikerRUS (#6765)
- [ci] pin more dependencies in Python 3.8 environment @jameslamb (#6771)
- [CUDA] remove src/treelearner/kernels @shiyu1994 (#6766)
- [python-package] stop relying on string concatenation / splitting for cv() eval results @jameslamb (#6761)
- [ci] Add Release Drafter workflow @StrikerRUS (#6754)
- [python-package] Rename
cvfolds
variable intocvbooster
inengine.cv
function @ClaudioSalvatoreArcidiacono (#6762) - [python-package] simplify eval result printing @jameslamb (#6749)
- [ci] fix linkchecker job @jameslamb (#6757)
- [ci] remove Docker volumes during Azure cleanup @StrikerRUS (#6760)
- [ci] use Ruff linter instead of isort @StrikerRUS (#6755)
- [ci] set upper bound on dask @jmoralez (#6742)
- [c++] include wherever uint8_t is used @jameslamb (#6736)
- [python-package] simplify scikit-learn 1.6+ tags support @jameslamb (#6735)
- [ci] Introduce
typos
pre-commit hook @borchero (#6564) - [ci] [python-package] [R-package] adapt to scikit-learn check_sample_weight_equivalence changes, stop testing against R 3.6 on Linux @jameslamb (#6733)
- [python-package][R-package] adapt to scikit-learn 1.6 testing changes, pin more packages in R 3.6 CI jobs @jameslamb (#6718)
- [ci] [R-package] re-enable 'rchk' checks @jameslamb (#6713)
- [ci] check PowerShell scripts with PSScriptAnalyzer (part 3) @StrikerRUS (#6710)
- [ci] check JavaScript code with
biome
tool @StrikerRUS (#6711) - [ci] check PowerShell scripts with PSScriptAnalyzer (part 2) @StrikerRUS (#6709)
- [ci] check PowerShell scripts with PSScriptAnalyzer (part 1) @StrikerRUS (#6704)
- [ci] [R-package] remove code for 'rchk' checks @jameslamb (#6545)
- [ci] Fix version matching between RTD pages and R-package pages @StrikerRUS (#6673)
- [python-package] remove MSVS solution files from sdist @jameslamb (#6698)
- [ci] set
MinimumVisualStudioVersion
to MSVS 2015 @StrikerRUS (#6689) - [ci] fix build of LightGBM with MSVS GUI @StrikerRUS (#6690)
- [cmake] group sanitizer options together @StrikerRUS (#6688)
- [ci] add shellcheck, use latest pre-commit hook versions @jameslamb (#6685)
- [ci] fix some shellcheck warnings in package-building scripts @vnherdeiro (#6641)
- [python-package] deprecate support for H2O 'datatable' @jameslamb (#6670)
- [ci] enable OpenMP support in cpp tests @StrikerRUS (#6676)
- [python-package] ignore scikit-learn 'check_sample_weight_equivalence' estimator check (fixes #6678) @jameslamb (#6679)
- [ci] fix shellcheck warnings in CI scripts @vnherdeiro (#6646)
- [ci] Restore MPI jobs on macOS @StrikerRUS (#6664)
- [ci] Update CUDA versions for CI @StrikerRUS (#6539)
- [ci] replace uses of 'mamba' with 'conda', use Python 12 for test-python-latest-job @jameslamb (#6663)
- [cmake] simplify SWIG config @StrikerRUS (#6648)
- [ci] [R-package] re-enable R-devel clang16 job (fixes #6607) @jameslamb (#6642)
- [cmake] remove unused variable @StrikerRUS (#6647)
- [ci] [python-package] temporarily stop testing against scikit-learn nightlies, load lib_lightgbm earlier @jameslamb (#6654)
- [ci] prevent C API tests from leaving files behind (fixes #6361) @jameslamb (#6637)
- [python-package] limit when num_boost_round warnings are emitted (fixes #6324) @jameslamb (#6579)
- [ci] prevent Python tests from leaving behind files @vnherdeiro (#6626)
- fix some shellcheck warnings @vnherdeiro (#6621)
- [ci] fix linux runners running out of disk space (fixed #6635) @jameslamb (#6636)
- [python-package] remove setup.cfg @jameslamb (#6624)
- [cmake] consolidate set_target_properties() calls @jameslamb (#6594)
- [ci] prevent
train.binary.bin
andlgb_train_data.bin
files being left behind after testing @bili2002 (#6606) - [ci] update some linting versions @jameslamb (#6598)
- [ci] skip R-devel clang16 job and use gcc-12 for macOS Python jobs @jameslamb (#6608)
- [python-package] update to scikit-build-core 0.10 @jameslamb (#6597)
- [ci] restore nuget artifact creation @StrikerRUS (#6593)
- [R-package] [cmake] simplify CMake-based R builds @jameslamb (#6591)
- [cmake] stop using file(GLOB) @jameslamb (#6588)
- [ci] prevent
categorical.model
andmodel.txt
files being left behind after testing @neNasko1 (#6590) - [ci] Always use latest SWIG version in Windows CI job @StrikerRUS (#6541)
- [ci] place all CI helpers under the .ci folder and use - instead of _ in their names @StrikerRUS (#6581)
- [ci] fix MSVC warning about builds in temp directory @StrikerRUS (#6573)
- bump development version to 4.5.0.99 @jameslamb (#6575)
- [ci] ask pip to always install local artifact but not download package from PyPI @StrikerRUS (#6574)