XGBoost 发布策略
版本控制策略
从 XGBoost 1.0.0 开始,每个 XGBoost 版本都将以 [MAJOR].[FEATURE].[MAINTENANCE] 的形式进行版本控制
MAJOR(主版本):我们保证在相同主版本号的发布版本之间保持 API 兼容性。我们预计一个新的 MAJOR 发布版本将有 1 年以上的开发周期。
FEATURE(功能版本):我们通过功能版本发布新功能、改进和错误修复。功能版本的周期长度由功能路线图的大小决定。路线图在前一个版本发布后立即确定。
MAINTENANCE(维护版本):维护版本只包含错误修复。此类发布只在发现严重的正确性或性能错误,并且用户升级到新版本的 XGBoost 存在障碍时发生。
发布流程
为发布创建议题,注明预计日期和预期的功能或主要修复,并置顶该议题。
如果这是一个主版本发布,则创建一个发布分支。提升发布版本号。有一个辅助脚本
ops/script/change_version.py
。提交更改,在 GitHub 上发布分支上创建一个 PR。将提升的版本号移植到默认分支,可选地带上后缀
SNAPSHOT
。在 GitHub 或本地的发布分支上创建标签。
在 GitHub 标签页面上发布,如果标签是在 GitHub 上创建的,则可能与上一步同时完成。
提交 pip、R-universe、CRAN 和 Maven 包。
在
xgboost/dev/
中有用于自动化此过程的辅助脚本。pip 包由 Hyunsu Cho 和 Jiaming Yuan 维护。
CRAN 包和 R-universe 包由 Jiaming Yuan 维护。
Maven 包由 Nan Zhu 和 Hyunsu Cho 维护。
R-universe 包
自 XGBoost 3.0.0 起,我们将 R 包托管在 R-Universe 上。要发布新版本,请更改 dmlc.r-universe.dev 中的 packages.json
,使用新的发布分支。
R CRAN 包
在提交发布之前,应该首先在 R-hub 和 win-builder 上测试包。请注意,R-hub Windows 实例的环境与 win-builder 上托管的环境不完全相同。
根据 CRAN 策略
如果运行一个包使用多个线程/核心,它绝不能同时使用超过两个:检查农场是一个共享资源,通常会同时运行许多检查。
我们需要检查示例中使用的 CPU 数量。在运行 R CMD check --as-cran
[1] 之前导出 _R_CHECK_EXAMPLE_TIMING_CPU_TO_ELAPSED_THRESHOLD_=2.5
,并确保您使用的机器有足够的 CPU 核心来揭示任何潜在的策略违规。
Read The Docs
我们可能需要手动激活 read the docs 的新发布分支,并在控制台中将其设置为默认分支 [2]。请检查文档构建,并确保在发布新版本后激活并选择了正确的分支。
参考文献
[1] https://stat.ethz.ch/pipermail/r-package-devel/2022q4/008610.html
[2] https://github.com/readthedocs/readthedocs.org/issues/12073