跳到主要内容

2020年 Google 编程之夏改进了 conda-forge 的自动维护

·3 分钟阅读
Filipe Pires Alvarenga Fernandes
conda-forge/core 成员

conda-forge “autotick” 机器人是 conda-forge 基础设施的关键部分。它通过将版本更新推送到底层软件并实现软件包从一个依赖项到另一个依赖项的大规模迁移(例如,Python 3.7 到 Python 3.8),从而实现 conda-forge 软件包的自动维护。随着 conda-forge 规模的扩大,迄今为止已超过 9,000 个软件包,conda-forge 生态系统的自动维护将变得更加重要。

我们 conda-forge 这里有大量潜在的 Google 编程之夏项目,围绕 autotick 机器人基础设施的维护和开发。这些项目影响重大,影响整个 conda-forge 生态系统。它们还涵盖多个系统,包括数据库、conda 的 CDN 提供商、持续集成提供商以及 GitHub 上的用户交互。

想成为团队的一员吗?太棒了!看看下面的项目,并在 GitHub 上与我们联系!您可以查看 GSoC 标签,以获取需要解决的问题的详细列表。

  1. 维护和重构

    我们有大量的维护和重构问题积压,这些问题非常适合从初学者到真正的代码忍者等各种经验水平的人。

    • Autotick 机器人的集成测试

      在图形副本上运行真正的集成测试,以更好地测试代码更改并改进我们的 CI 流程。

      问题regro/cf-scripts#261

      经验水平:高级

    • 处理 “代码强化” 里程碑

      解决上面里程碑中与代码重构和清理相关的任何问题。

      问题regro/cf-scripts 里程碑 #4

      经验水平:初级到高级

  2. 全局锁定软件包的自动 PR

    conda-forge 维护着全局锁定软件包的列表。这些通常是需要在整个 conda-forge 中版本相同的依赖项(例如,编译器版本或像 HDF5 这样的软件包)。虽然我们有基础设施来运行从给定锁定软件包迁移下游软件包,但我们没有自动化基础设施来提议锁定本身的迁移。这里的项目是将此功能添加到我们的基础设施中。

    问题regro/cf-scripts#665

    经验水平:高级

  3. 在迁移中发布 PR 之前,检查 conda CDN 上是否有更新的软件包

    conda 依赖 CDN 提供商来提供可用软件包的索引。从软件包上传到 anaconda.org 到它出现在 conda 索引中,存在大约 30 分钟的延迟。我们在迁移中发布 PR 时,目前没有考虑此延迟。

    问题regro/cf-scripts#595

    经验水平:初级

  4. 完成迁移,将 PR 放入 conda-forge 锁定文件

    目前,当软件包 ABC 从版本 Y 迁移到版本 X 完成后,我们不会自动将 ABC 的全局锁定值的更改合并到我们的全局锁定列表中。一旦我们确定受迁移影响的软件包中有相当一部分已正确重建,我们就应该向锁定文件发布 PR。

    问题regro/cf-scripts#595

    经验水平:中级

  5. 完全渲染 conda 软件包以确定迁移依赖项

    由于 conda 配方通过使用 Jinja2conda-build-config.yaml 文件进行结构化和参数化,因此确定给定软件包的依赖项实际上是一项计算开销很大的任务。目前,autotick 机器人检查 meta.yaml 文件中的静态元数据,而不是完全渲染的元数据。因此,我们有时会遗漏给定软件包的需要首先迁移的依赖项。解决此问题既包括调用渲染过程,也包括将该过程扩展到整个 conda-forge 软件包集。

    问题regro/cf-scripts#664

    经验水平:中级