################### 3.3.0 (2026 Jun 17) ################### XGBoost 3.3 adds expectile regression, enables categorical feature support by default, expands SHAP support for vector-leaf models, and includes optimizations for histogram building, quantile sketching, and distributed GPU training. ************ SHAP Support ************ - Change the TreeSHAP implementation for improved numerical stability and faster execution with ``QuadratureTreeSHAP`` (:pr:`12179`, :pr:`12192`, :pr:`12207`) - Add exact SHAP contribution and interaction prediction for vector-leaf multi-output trees on both CPU and GPU. (:pr:`12209`, :pr:`12210`, :pr:`12247`, :pr:`11985`, :pr:`12208`) ******************************************* Quantile Sketching and Distributed Training ******************************************* The quantile sketching went through some major refactoring and optimizations. XGBoost 3.3.0 simplifies quantile sketch internals and improves the weighted quantile sketch implementation (:pr:`12033`, :pr:`12046`, :pr:`12048`, :pr:`12049`, :pr:`12054`, :pr:`12067`, :pr:`12074`, :pr:`12146`, :pr:`12148`, :pr:`12150`, :pr:`12151`, :pr:`12155`, :pr:`12167`), with significantly reduced memory use in the GPU quantile sketch (:pr:`12047`, :pr:`12079`, :pr:`12090`, :pr:`12099`, :pr:`12104`, :pr:`12105`, :pr:`12118`, :pr:`12147`, :pr:`12159`, :pr:`12160`). Also, we have a more efficient distributed quantile construction using tree reductions. (:pr:`12061`, :pr:`12128`, :pr:`12171`) ******** Features ******** - Add expectile regression with the ``reg:expectileerror`` objective, the ``expectile`` metric, and the ``expectile_alpha`` parameter. Multiple expectiles are supported. (:pr:`11988`, :pr:`12228`, :pr:`12243`) - Enable categorical feature support by default while keeping ``enable_categorical`` available for users who need to disable it. CPU ``hist`` also gained one-hot categorical split support for the working-in-progress vector leaf. (:pr:`12015`, :pr:`12072`, :pr:`12244`) - Deprecate the ``gblinear`` booster. Support will be removed in a future release. (:pr:`12030`) - Use a local RNG and serialize RNG state. Training multiple models with sampling within the same session is now reproducible. (:pr:`12043`, :pr:`12083`) ************* Optimizations ************* - Optimize CPU histogram building for wide datasets with column block tiling and detect CPU cache sizes via Linux sysfs on aarch64. (:pr:`12158`, :pr:`12233`) - Use Philox for faster GPU sampling. (:pr:`12223`) - Support customizing worker port for distributed training. In addition, XGBoost now doesn't need all-to-all collective connections for improved scalability. (:pr:`12010`, :pr:`12075`, :pr:`12171`, :pr:`12082`) ************** Python Package ************** - Bump the minimum supported Python version to 3.12. (:pr:`12195`) - Add PySpark support for Spark Connect ML. (:pr:`11970`) - Require ``Enum`` support from Polars and validate unique pandas column names. (:pr:`12240`, :pr:`12199`) - Fix the default verbose behavior mismatch between ``XGBClassifier.fit`` and ``XGBRegressor.fit``. (:pr:`12184`) - Fix ``python -OO`` crashes caused by assigning to missing docstrings (:pr:`12094`) - Handle boolean indicator features in ``trees_to_dataframe``. (:pr:`12089`) - Improve validation and error messages for feature information and deprecated functions. (:pr:`12142`, :pr:`12200`) - Clean up imports, type checking comments, and legacy compatibility guards. (:pr:`12027`, :pr:`12110`, :pr:`12163`) ************ JVM Packages ************ - Document Spark 4.0 compatibility for JVM packages. (:pr:`12136`) - Support regressor and ranker pipelines with columnar input. (:pr:`12058`) - Add automatic module names for Java packages and support xgboost4j on FreeBSD. (:pr:`12114`, :pr:`12222`) ****************** Build and Platform ****************** - Support Visual Studio 2026. (:pr:`12245`) - Update CUDA Toolkit support, including CUDA Toolkit 13.3 type updates and default architecture alignment for recent CUDA versions. (:pr:`12230`, :pr:`12204`) - Support latest RAPIDS. (:pr:`12140`, :pr:`12013`, :pr:`12212`, :pr:`12144`) - Fix CMake export targets and builds with system-installed ``dmlc-core``. (:pr:`12238`, :pr:`12123`) - Fix macOS build and packaging issues. (:pr:`12187`, :pr:`12108`) - Improve Linux packaging with versioned shared object. (:pr:`12055`) ***** Fixes ***** - Fix out-of-vocabulary categorical encoding and categorical splits with vector-leaf models. (:pr:`12193`, :pr:`12244`) - Fix SYCL multiclass objective calculation. (:pr:`12041`) - Fix in-place prune aliasing and assorted prediction/documentation typos. (:pr:`12202`, :pr:`12076`, :pr:`12070`, :pr:`12003`) ********* Documents ********* - Add TreeSHAP references, distributed XGBoost on Kubernetes documentation, and updates to competition-winning solution examples. (:pr:`12207`, :pr:`12080`, :pr:`12087`, :pr:`12109`) - Add notes for pickling, expectile margin output, Spark 4.0 compatibility. (:pr:`12042`, :pr:`12243`, :pr:`12136`, :pr:`12247`) - Update LightGBM links, the security disclosure, the ``xgboost-cpu`` package note, and the Read the Docs canonical URL. (:pr:`12084`, :pr:`12113`, :pr:`12169`, :pr:`12246`) ****************** CI and Maintenance ****************** - Unify CI configure workflows, document the clang-tidy flow, and keep CI images and dependency pins up to date. (:pr:`12170`, :pr:`12175`, :pr:`12165`) - Keep GitHub Actions dependency groups and release bookkeeping up to date. (:pr:`12005`, :pr:`12029`, :pr:`12034`, :pr:`12038`, :pr:`12057`, :pr:`12095`, :pr:`12124`, :pr:`12134`, :pr:`12145`, :pr:`12161`, :pr:`12178`, :pr:`12188`, :pr:`12206`, :pr:`12231`, :pr:`12249`) - Update CI jobs for ``cibuildwheel``, CRAN, R CI, and documentation tests. (:pr:`12066`, :pr:`12125`, :pr:`12173`, :pr:`12216`) - Continue test cleanup and refactoring across quantile sketching, PySpark, global configuration. (:pr:`12002`, :pr:`12007`, :pr:`12009`, :pr:`12019`, :pr:`12141`, :pr:`12164`, :pr:`12180`, :pr:`12190`) - Continue cleanup of prediction and DART internals, including moving DART state into ``GBTree`` and unifying DART SHAP forwarding. (:pr:`12068`, :pr:`12071`, :pr:`12073`, :pr:`12078`, :pr:`12081`, :pr:`12022`) - Always save DART configuration. (:pr:`12098`) - Improved support for using clang-tidy with CUDA code. (:pr:`12165`, :pr:`12174`) - Various small cleanups. (:pr:`12053`, :pr:`12092`) - Improve CUDA resource handling and diagnostics, small cleanups for external memory. (:pr:`12092`, :pr:`12127`, :pr:`12185`, :pr:`12191`, :pr:`12137`, :pr:`12069`)