跳转到主要内容
未公开页面
此页面未公开。搜索引擎不会对其进行索引,只有拥有直接链接的用户才能访问它。

NumFOCUS SDG 2023 轮次 1 提案

提交者姓名

Jaime Rodríguez-Guerra

您的电子邮件

[email protected]

您的项目是赞助的还是附属的?

财政赞助

选择您的项目

conda-forge

提案标题

选择加入 CI(持续集成)服务的访问控制改进

提案的两句话摘要

为了在 conda-forge 中实施一个开放透明的机制来授予和维护 CI 服务的访问控制。 这种机制将允许项目的维护者为其软件包请求按需 CI 服务,以防默认运行器功能不足(例如,启用 GPU 的库、构建时间超过 6 小时、内存或磁盘空间不足)。

提案描述

Conda-forge 依赖于第三方持续集成 (CI) 服务来构建其社区维护的数千个软件包。 Azure Pipelines 处理了大部分负载,是 Linux、macOS 和 Windows 的默认 CI 服务。 conda-forge 也支持其他 CI 提供商,如 Travis、Circle 或 Drone,用于非 x64 Linux 架构(ARM64 和 PowerPC)。 然而,这些运行器的可用性远不如 Azure,导致等待时间过长和许多服务错误,阻碍了 conda-forge 的性能。

为了缓解所有这些问题,conda-forge 正在考虑向满足特定资格标准的项目提供一些非默认提供商(参见 https://github.com/conda-forge/conda-forge.github.io/issues/1875)。 这种方法需要某种具有以下功能的访问控制机制

  • 一种请求协议,维护者可以申请使用某些 CI 提供商,授权成员可以审查和批准此类请求。
  • 已批准项目和每个资源内授予的访问权限的公共列表。
  • 一种在需要时撤销对先前授权资源的访问权限的方法。
  • 该过程中唯一的手动步骤应该是审查和批准。 其他一切都应该以自动化的方式进行。

我们提出了一个机制,其灵感来自 https://github.com/conda-forge/admin-requests 中遵循的程序,其中包含每个项目的已分配资源的公开列表,该列表遵循基础设施即代码社区中已建立的最佳实践。

请解释此提案的好处,包括

  • 对项目的影响
  • 对科学生态系统的影响
  • 对社区的影响

在 conda-forge 中为专门的 CI 服务建立一个选择加入机制,不仅将使稀缺资源的分配更加公平和透明,而且还将为实施以前不可用的构建策略铺平道路。

例如,几年前就有人请求启用 GPU 的运行器(参见 https://github.com/conda-forge/conda-forge.github.io/issues/63,日期为 2016 年),但 conda-forge 仍然无法提供一种安全公平的方式来交付此服务。 感谢几位 conda-forge 合作伙伴的合作,现在原型工作流程已可用(参见 https://github.com/conda-forge/cf-autotick-bot-test-package-feedstock/pull/446); 但是,如果没有访问控制机制,则无法免费向社区提供。

这种需求的第二个例子是慷慨的机构捐赠的云计算资源的假设可用性。 确保捐赠的积分可用于请求的(或最合适的)项目也需要通过相同的访问控制机制来实现。

总的来说,此处提交的提案将通过以下方式显著影响 conda-forge 如何在其软件包构建中超越具有时间限制资源的公开可用运行器

  1. 启用对专门 CI 服务和资源的安全访问,这将通过减少等待时间和降低服务可用性错误,使 conda-forge 能够更可靠地运行。
  2. 允许项目从新的构建功能中受益,而不会妨碍现有基础设施的可靠性。
  3. 为捐赠者(或赞助商)提供一种机制,通过赞助或轻松捐赠云计算积分来支持 conda-forge。
  4. 使可用资源的类型多样化,并为非传统架构或计算提供额外支持,从而更好地服务于维护者和社区成员。

请求金额

10000

简要预算理由:(请包括工时和/或工资率)

预算将用于支付此拨款中关键人员的开发时间,如下所示

  • 费用:关键人员(开发工时)
  • 工时数:112 小时(项目持续期间)
  • 总计:$ 10,000 美元

交付时间表

我们希望尽快完成此项目; 但是,为了在全面的社区反馈下实施,我们在与 conda-forge 团队的磋商中考虑了合理的响应时间。 为此,我们希望提出在 2023 年 9 月底估算的实施交付时间,如果反馈循环保持紧密且未发现任何阻碍因素,则有可能更早完成。

已确定的交付成果是

  1. 与 conda-forge 基础设施团队一起设计访问控制策略(2023 年 7 月之前)
  2. 在 conda-forge 存储库中实施拟议的策略(2023 年 9 月之前)
  3. . 对 Cirun (https://cirun.io/) 集成层进行安全审查,以防止未经授权交叉访问额外的 CI 资源(2023 年 9 月之前)

是否已确定有人执行提案中的工作? 请列出将执行工作的人员姓名,并简短说明(约 1 句话)他们为何有资格。

是。

  • Jaime Rodríguez-Guerra <[email protected]>,conda-forge 核心成员,在为 conda-forge 提供支持的现有基础设施和 CI 工作流程方面拥有足够的经验。
  • Amit Kumar,Quansight 的软件工程师,是 Cirun (https://cirun.io/) 集成层的作者,并且已经设置了 GPU 后端,为 conda-forge 的实验原型 CI 提供服务。

将如何确定执行工作的人员?

人员已经确定。

请列出已批准此提案的项目负责人姓名和电子邮件地址。

此提案也已获得 conda-forge 核心成员 Filipe Fernandes <[email protected]> 的批准。