Light Gbm: v4.6.0 Release

Release date:
February 14, 2025
Previous version:
v4.5.0 (released July 25, 2024)
Magnitude:
25,677 Diff Delta
Contributors:
32 total committers
Data confidence:
Commits:

964 Commits in this Release

Ordered by the degree to which they evolved the repo in this version.

Authored October 18, 2024
Authored September 2, 2024
Authored August 27, 2024
Authored October 10, 2024
Authored August 6, 2024
Authored August 3, 2024
Authored August 30, 2024
Authored September 26, 2024
Authored October 17, 2024
Authored December 24, 2024
Authored November 15, 2024
Authored September 3, 2024
Authored January 27, 2025
Authored November 13, 2024
Authored July 31, 2024
Authored November 23, 2024
Authored January 20, 2025
Authored November 1, 2024
Authored July 31, 2024

Top Contributors in v4.6.0

jameslamb
nina-herrmann-46af
StrikerRUS
neNasko1
shiyu1994
jsten07
vnherdeiro
fboudry
jmoralez
raksha-224

Directory Browser for v4.6.0

All files are compared to previous version, v4.5.0. Click here to browse diffs between other versions.

Loading File Browser...

Release Notes Published

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 with scikit-learn>=1.6.0dev @vnherdeiro (#6651)
  • [ci] Require CMake 3.28 and replace FetchContent_Populate with FetchContent_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 and cffi 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 into cvbooster in engine.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 <cstdint> 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 and lgb_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 and model.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)