捐赠

捐赠给 dmlc/xgboost

动机

DMLC/XGBoost 已从学术界孵化的研究项目成长为生产环境中应用最广泛的梯度提升框架之一。一方面,随着生产环境中数据量和多样性的增长,用户对 XGBoost 在功能、可扩展性和鲁棒性方面寄予了相应的更高期望。另一方面,作为一个快速发展的开源项目,XGBoost 已经收到了来自世界各地许多个人和组织的贡献。鉴于用户的高期望以及项目贡献渠道的增加,交付高质量的软件对项目维护者来说是一个挑战。

健壮高效的持续集成 (CI) 基础设施是应对上述挑战最关键的解决方案之一。CI 服务将监控开源仓库并对每个传入的贡献运行一套集成测试。通过这种方式,CI 确保代码库中的每个提议更改都与现有功能兼容。此外,XGBoost 可以通过强大的 CI 基础设施启用更彻底的测试,以覆盖更接近生产环境的场景。

有一些免费的 CI 服务可用于开源项目,例如 Travis CI 和 AppVeyor。XGBoost 项目已经使用了 GitHub Actions。然而,XGBoost 项目有一些需求是这些免费服务无法充分满足的。特别是,CPU 和内存等资源的有限使用配额使得 XGBoost 开发者无法进行“过于密集”的测试。此外,它们不提供带有 GPU 的测试机器来测试 XGBoost-GPU 代码库,而这正吸引着越来越多组织的兴趣。因此,XGBoost 项目使用了一个云托管的测试农场。我们使用 Amazon Web Services (AWS) 来托管测试机器,并结合 GitHub ActionsRunsOn (SaaS 应用) 来组织 CI 流水线。

云托管的测试农场有经常性运营开支。RunsOn 在 AWS 上按需启动工作机器,以对传入的贡献运行测试套件。为了节省成本,当不再需要时,工作机器就会被终止。

为了帮助分担托管成本,XGBoost 项目寻求第三方的捐赠。

捐赠与赞助

捐赠者可以选择进行一次性捐赠,或按月或按年进行定期捐赠。承诺达到赞助者级别的捐赠者将在 XGBoost 项目首页展示其标志。

财政托管方:Open Source Collective 501(c)(6)

XGBoost 项目的项目管理委员会(PMC)指定 Open Source Collective 作为其财政托管方。该平台是注册的 501(c)(6) 实体,将代表 PMC 管理资金,这样 PMC 成员就不必直接管理资金。该平台目前托管着多个知名的 JavaScript 框架,如 Babel、Vue 和 Webpack。

所有因托管 CI 产生的费用将连同收据一起提交给财政托管方。只有以下类别的费用才会被批准报销

云 CI 基础设施的管理

PMC 应任命一名或多名提交者代表他们管理云 CI 基础设施。目前的管理员如下:

管理员应本着善意努力控制 CI 费用。费用不应超过可用资金。管理员应定期发布关于 CI 费用的更新。