XGBoost 发布政策
版本控制策略
从 XGBoost 1.0.0 开始,每个 XGBoost 版本将被标记为 [MAJOR].[FEATURE].[MAINTENANCE]
MAJOR: 我们保证在相同主版本号下的发布版本之间的API兼容性。我们预计一个新的MAJOR发布版本将有1年以上的开发周期。
功能: 我们通过功能发布来推出新功能、改进和错误修复。功能周期的长度由功能路线图的大小决定。路线图在上一版本发布后立即确定。
维护版本:维护版本仅包含错误修复。这种类型的发布仅在我们发现重大正确性或性能错误,以及用户无法顺利升级到新版本的XGBoost时才会发生。
发布版本
为发布创建一个问题,注明预计日期和预期的功能或主要修复,并置顶该问题。
如果是重大发布,请创建一个发布分支。更新发布版本。有一个辅助脚本
tests/ci_build/change_version.py
。提交更改,在发布分支上创建一个 GitHub PR。将提升的版本移植到默认分支,可选地带有后缀
SNAPSHOT
。在发布分支上创建一个标签,可以在GitHub上或本地进行。
在GitHub标签页上发布版本,如果标签是在GitHub上创建的,这可能在前一步骤中已经完成。
提交 pip、CRAN 和 Maven 包。
在
xgboost/dev/
中有用于自动化过程的辅助脚本。pip 包由 Hyunsu Cho 和 Jiaming Yuan 维护。
CRAN 包由 Tong He 和 Jiaming Yuan 维护。
Maven 包由 Nan Zhu 和 Hyunsu Cho 维护。
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核心来揭示任何潜在的政策违规。
参考文献
[1] https://stat.ethz.ch/pipermail/r-package-devel/2022q4/008610.html