2020年 Google 编程之夏改进了 conda-forge 的自动维护
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 标签,以获取需要解决的问题的详细列表。
-
维护和重构
我们有大量的维护和重构问题积压,这些问题非常适合从初学者到真正的代码忍者等各种经验水平的人。
-
Autotick 机器人的集成测试
在图形副本上运行真正的集成测试,以更好地测试代码更改并改进我们的 CI 流程。
经验水平:高级
-
处理 “代码强化” 里程碑
解决上面里程碑中与代码重构和清理相关的任何问题。
经验水平:初级到高级
-
-
全局锁定软件包的自动 PR
conda-forge
维护着全局锁定软件包的列表。这些通常是需要在整个conda-forge
中版本相同的依赖项(例如,编译器版本或像HDF5
这样的软件包)。虽然我们有基础设施来运行从给定锁定软件包迁移下游软件包,但我们没有自动化基础设施来提议锁定本身的迁移。这里的项目是将此功能添加到我们的基础设施中。经验水平:高级
-
在迁移中发布 PR 之前,检查
conda
CDN 上是否有更新的软件包conda
依赖 CDN 提供商来提供可用软件包的索引。从软件包上传到anaconda.org
到它出现在conda
索引中,存在大约 30 分钟的延迟。我们在迁移中发布 PR 时,目前没有考虑此延迟。经验水平:初级
-
完成迁移,将 PR 放入
conda-forge
锁定文件目前,当软件包
ABC
从版本Y
迁移到版本X
完成后,我们不会自动将ABC
的全局锁定值的更改合并到我们的全局锁定列表中。一旦我们确定受迁移影响的软件包中有相当一部分已正确重建,我们就应该向锁定文件发布 PR。经验水平:中级
-
完全渲染
conda
软件包以确定迁移依赖项由于
conda
配方通过使用Jinja2
和conda-build-config.yaml
文件进行结构化和参数化,因此确定给定软件包的依赖项实际上是一项计算开销很大的任务。目前,autotick 机器人检查meta.yaml
文件中的静态元数据,而不是完全渲染的元数据。因此,我们有时会遗漏给定软件包的需要首先迁移的依赖项。解决此问题既包括调用渲染过程,也包括将该过程扩展到整个conda-forge
软件包集。经验水平:中级