NumFOCUS 资助改进 pandas 基准测试和多样性的报告

作者:Lucy Jiménez 和 Dorothy Kabarozi B.

我们想分享我们参与 ASV 基准测试框架改进和多样性工作 的经验,该项目由 NumFOCUS 赞助,并为 pandas 项目提供支持。

该资助侧重于两个方面:第一个是改进 asv 库,这是一个用于对 Python 包进行基准测试的工具,pandas 也使用它;该项目一直处于无人维护状态,代码库也比较老旧;此外,它不符合现代标准,包含可以删除的 Python 2 兼容代码,并且 CI 也需要改进。第二个方面是鼓励更多代表性不足的群体参与开源项目。该资助持续了 10 周,每周工作约 20 小时。该项目由来自乌干达的 Dorothy Kabarozi B. 和来自哥伦比亚的 Lucy Jiménez 在 Marc Garcia 的指导下完成。

我们为什么参与该资助?

尽管我们来自不同的背景,Dorothy 来自系统工程领域,Lucy 来自计算化学领域,但我们一直对参与和贡献开源软件项目感兴趣。因此,我们一直在社区中运营 PyLadies 聚会 (PyLadies KampalaPyLadies Colombia),并且一直在寻找任何可以让我们做出贡献的机会。

这一切都源于 Marc Garcia;他通过社交媒体发布了一则帖子,呼吁指导来自不同背景的女性。Dorothy 因此加入了 pandas 导师小组。与此同时,Lucy 是 SciPy Latam 会议的联合组织者,正是在这里她遇到了 Marc,他是该会议的演讲者,通过这种相互联系,我们了解了这个基准测试资助项目。

简而言之,通过参加会议、聚会和社交媒体,您可以建立联系,这些联系将引导您获得这些机会。

从源代码中学习

在资助开始时,我们从基础开始。我们注意到,我们可以提高在管理 Git 和 GitHub 方面的技能。例如,我们在 git 工作流程中遇到了一些问题,因此我们不得不阅读和练习更多关于它的内容。一个有价值的资源是 Marc 关于如何进行开源贡献的解释,我们邀请您查看它。

我们从源代码中学到了很多东西,并通过此资助获得了有关最佳实践和代码质量的大量知识。我们一直在努力:更新代码以改进样式以遵循 PEP-8 指南,删除 Python 2 兼容性代码和六个依赖项,以及查找未使用的代码并将其删除。我们还了解了 GitHub Actions,并且开始为 asv 包构建基于 GitHub Actions 的 CI;为此,我们一直在努力添加使用 Flake8 进行代码风格检查,使用 pytest 进行测试,构建文档,并在不同的 Python 版本上运行 CI。

此外,我们能够识别源代码中的错误,审查来自其他贡献者的拉取请求,并创建新的问题,我们认为只有维护者才能做到,而不是贡献者。最后,不仅审查代码本身是一种学习体验,而且项目的结构和文件夹层次结构也开始变得更加透明。

我们的经验

对于此资助,我们有一位很棒的导师,Marc Garcia。他总是乐于分享他的知识,解释不清楚的概念并分享有用的反馈。每当我们实施这些反馈时,处理更多问题的速度就会更快。我们感受到了从开始这个项目到现在的成长,我们将在为更多开源项目做出贡献时继续保持这种成长;这一切都要归功于 Marc 的出色指导。同样重要的是要注意,在此过程中,我们收到了其他贡献者、利益相关者和核心开发人员的反馈,这让我们对开源项目中的工作有了更广泛的了解。

我们还建立了牢固的团队合作关系。我们互相帮助了很多,因为我们进行了多次一对一通话以更好地理解任务。我们总是寻找从技术方面支持彼此的方法,并在需要时互相鼓励。对我们来说,这是专业和人性的成长。

运行开源软件冲刺

在这个过程中获得的知识和经验使我们能够组织两次虚拟冲刺。这些活动是在当地 PyLadies 社区的陪伴下进行的;第一次是在 2 月 26 日与 PyLadies Kampala 合作,第二次是在 3 月 21 日与 PyLadies Colombia 合作。

在组织这些活动的过程中,我们学习了如何组织和进行虚拟冲刺。冲刺中的一些参与者最终对开源一无所知,向他们解释开源概念并引导他们完成 Git 工作流程非常棒。最后,他们能够做出自己的第一个贡献。我们学习了如何跟踪贡献者,在他们贡献的过程中提供帮助,直到他们的 PR 被合并,并通过在 GitHub 上审查他们的贡献。

最突出的成就是指导新的贡献者,并将从该赠款中获得的知识与我们各自社区中的其他参与者分享。大多数新的贡献者在体验之后,已经开始申请外联和即将到来的 Google Summer of Code,以应用他们在这些冲刺中学到的技能。

结论

总之,我们从这次经历中学到了很多东西,包括代码部分、开源项目的流程、如何在困难时刻保持韧性,以及鼓励更多女性和来自我们当地社区的人参与开源项目。

最后,如果你想成为开源项目的一部分,我们邀请你查看你感兴趣的不同项目的 GitHub 仓库,并搜索易于解决的问题,开始你的旅程。此外,你可以联系项目的维护者,提出具体问题,搜索你所在国家/地区的开源社区,或联系我们寻求更多帮助。

致谢

非常感谢 NumFOCUS 通过 小型开发赠款 为我们提供支持,并感谢 Marc 在这些周内慷慨地为我们提供的出色指导。

我们期待着做出更多贡献,并影响我们的社区和开源社区!


如果你想了解更多信息,请随时通过以下渠道与我们联系

Lucy Jiménez * Twitter * LinkedIn

Dorothy Kabarozi * Twitter * LinkedIn