conda-forge 的 GSoC 2023 项目构想
感谢您对通过 conda-forge 申请 Google Summer of Code 的兴趣。我们欢迎来自所有背景、身份和能力的个人申请,并鼓励技术领域弱势群体的个人申请。
关于 conda-forge
conda-forge 是一个社区协作项目和一个 GitHub 组织,其中包含 conda 配方仓库,从而为各种软件提供 conda 软件包。构建好的发行版上传到 anaconda.org/conda-forge,可以使用 conda 安装。
2023 年是 conda-forge 组织成立 8 周年。在这 8 年中,它已服务超过 120 万个软件包制品,通过 anaconda.org 实现了 100 亿次下载。如果没有超过 4.6 千名志愿者的工作,这一切都不可能实现!
conda-forge 是如何工作的?
conda-forge 是为 conda 软件包生态系统构建并围绕其构建的。conda 配方包含依赖项元数据以及构建和打包特定项目(通常来自源代码)的说明。
新的配方首先通过拉取请求 (PR) 提交到 conda-forge/staged-recipes
仓库。一旦经过审核和批准,该配方将被合并并授予其自己的仓库,称为feedstock。Feedstock 是 conda-forge 组织内的标准 GitHub 仓库,包含用户提供的 recipe/
以及构建所需的支持配置和工具。
对于 feedstock 中合并的每个 PR,都会为软件包构建一系列制品(诸如发布新版本或添加新依赖项之类的更改需要为全生态系统兼容性重建软件包)。对 feedstock 的所有贡献都通过 PR 完成。
conda-forge 是如何组织的?
conda-forge 组织由核心团队领导。核心团队还得到许多志愿者的支持,例如 staged-recipes 审核者或特定领域的 help-*
团队。每个 feedstock 主要由以其命名的协作者团队维护。Feedstock 团队在设计上是流动的:任何人都可以随时退出,并在 feedstock 团队接受 PR 驱动的申请后加入并接管。
贡献流程是什么?
conda-forge 是一个开源项目;它在开放环境中构建,以实现可追溯性和透明度。持续集成 (CI) 日志是公开可用的,欢迎所有人贡献。我们遵循严格的基于 fork 的 Github-flow 工作流程:feedstock 分支将构建并上传制品到验证服务器。因此,拉取请求必须始终从个人 fork 打开。此工作流程也适用于不负责生成软件包的 conda-forge 仓库。
项目构想 1 - conda-forge.org 网站的现代化改造
摘要
conda-forge.org 是在大约 8 年前(conda-forge 项目刚启动时)创建的。8 年后,该网站已过时。例如,它尚未针对移动设备使用进行优化。此外,它不符合 WCAG(Web 内容可访问性指南),这使得许多用户(尤其是残疾人士或依赖辅助技术与 Web 交互的用户)无法访问它。
本项目旨在为 conda-forge.org 交付一个新网站,该网站符合 WCAG 可访问性标准并提高性能,同时提供出色的贡献者体验。
当前状态
当前的基于 Sphinx 的 conda-forge.org 网站主要从 conda-forge.github.io 仓库构建,并通过 status(生成基本的 conda-forge 状态仪表板)和一个 conda-forge 博客进行扩展。
基于 Docusaurus 的原型网站可在 cf-infra-docs.netlify.app 上访问,其中正在为 conda-forge 基础设施编写新文档。我们将使用此站点作为网站现代化改造的游乐场。
任务
- 适用于桌面和移动设备的新首页的 Figma 模型
- 为其他基于 Web 的开发设计 conda-forge 样式指南
- 在设计阶段努力实现 WCAG 合规性,并在开发阶段包含可访问性注释
- 向社区提交提案并纳入反馈
扩展任务
- 在 Docusaurus 中实现新的首页(带有相应的 React 组件)
- 添加 CI 管道以进行自动化性能和可访问性测试,以防止进一步工作中的回归
预期成果
- conda-forge 新在线形象的样式指南。
- 重新设计的着陆页通过 SpeedPage 和 WAVE 自动化测试。
- 新的实现提供直观且可用的用户体验。
- conda-forge.org 首页原型重新设计在 cf-infra-docs 中上线。
详细信息
- 先决条件:
- 使用原型设计或模型工具(如 Figma)的先前经验
- 创建设计规范的经验,这些规范定义了用户需求、基本假设和 UX 流程
- 一些可访问性标准知识
- 在设计可访问体验方面的先前经验加分
- 拥有更好,但不是必需的:
- React 和 npm
- 熟悉 Git 和 Github PR 驱动的工作流程
- 熟悉 Docusaurus
- 项目时长:350 小时
- 优先级:低
- 复杂度:中等
- 潜在导师:@jaimergp