NumFOCUS 资助改进 pandas 基准测试和多元化的文章
作者:Lucy Jiménez 和 Dorothy Kabarozi B.
我们想分享一下我们在由 NumFOCUS 赞助的、针对 pandas 项目进行的“ASV 基准测试框架改进和多元化努力”项目中的工作经验。
这项资助主要关注两个方面:第一是改进 asv 库,这是一个用于对 Python 包(包括 pandas)进行基准测试的工具;该项目缺乏维护,代码库相当老旧;此外,它不符合现代标准,包含可以移除的 Python 2 兼容性代码,并且 CI(持续集成)也可以改进。第二个方面是鼓励更多代表性不足的群体为开源项目做贡献。这项资助持续了 10 周,每周工作约 20 小时。项目由来自乌干达的 Dorothy Kabarozi B. 和来自哥伦比亚的 Lucy Jiménez 在 Marc Garcia 的指导下完成。
我们为何参与这项资助项目?
尽管我们背景不同,Dorothy 来自系统工程,Lucy 来自计算化学,但我们一直对参与和贡献开源软件项目很感兴趣。因此,我们一直在各自社区组织 PyLadies 活动(PyLadies Kampala, PyLadies Colombia),并一直在寻找任何能让我们做出贡献的机会。
这一切都始于 Marc Garcia;他曾在社交媒体上发布了一则招募启事,希望指导来自不同背景的女性。Dorothy 成为了 pandas 指导小组的一员。与此同时,Lucy 是 SciPy Latam 会议的共同组织者,在那里她认识了 Marc(他是会议的演讲者),通过这个共同的联系,我们得以了解到这项基准测试资助项目。
简而言之,通过参加会议、聚会和使用社交媒体,你可以建立联系,从而获得这些机会。
从源代码中学习
在资助项目开始时,我们从基础学起。我们注意到可以在 Git 和 GitHub 管理技能方面有所提升。例如,我们在 git 工作流程上遇到了一些问题,所以不得不阅读和实践更多相关知识。Marc 对如何进行开源贡献的解释是其中一个宝贵的资源,我们邀请您也去看看。
通过这项资助,我们从源代码中学到了很多,并获得了关于最佳实践和代码质量的丰富知识。我们一直在努力:更新代码风格以遵循 PEP-8 指南,移除 Python 2 兼容性代码和 six 依赖项,以及查找并移除未使用的代码。我们还学习了 GitHub Actions,并开始为 asv 包在 GitHub Actions 上构建 CI;为此,我们一直在添加 Flake8 进行代码检查、使用 pytest 进行测试、构建文档,并在不同 Python 版本上运行 CI。
此外,我们还能识别源代码中的 bug,审查其他贡献者的拉取请求 (pull request),并创建新的议题 (issues),这些是我们以前认为只有维护者才能做,而不是贡献者。最后,不仅审查代码本身是一种学习体验,项目的结构和文件夹层级也变得更加清晰透明。
我们的经验
在这项资助项目中,我们有一位很棒的导师,Marc Garcia。他总是乐于分享他的知识,解释不清楚的概念,并分享有用的反馈。每当我们采纳这些反馈时,处理更多议题就感觉更快更容易了。我们从项目开始就感受到了成长,并将在未来为更多开源项目做贡献时继续受益;这一切都要归功于 Marc 出色的指导。同样重要的是,在此过程中我们也收到了其他贡献者、利益相关者和核心开发者的反馈,这让我们对开源项目的工作有了更广阔的视角。
我们还建立了强大的团队合作关系。我们进行了许多一对一的通话,以更好地理解任务,互相帮助了很多。我们总是在技术方面寻找支持彼此的方法,并在需要时互相鼓励。对我们来说,这是专业和个人层面的成长。
组织开源软件冲刺活动
在此过程中获得的知识和经验使我们得以组织两次虚拟冲刺活动。这些活动是与当地的 PyLadies 社区合作进行的;第一次是 2 月 26 日与 PyLadies Kampala 合作,第二次是 3 月 21 日与 PyLadies Colombia 合作。
在组织这些活动期间,我们学会了如何组织和开展虚拟冲刺活动。一些冲刺活动的参与者起初对开源一无所知,向他们解释开源概念并引导他们完成 Git 工作流程是非常棒的体验。最终,他们都成功完成了他们的首次贡献。我们学会了如何跟进贡献者,一路帮助他们直到他们的 PR(拉取请求)被合并,以及如何在 GitHub 上审查他们的贡献。
最突出的成就是指导新的贡献者,并将从这项资助项目中获得的知识分享给各自社区的其他参与者。大多数新贡献者在这次经历后都继续申请了推广项目和即将到来的 Google Summer of Code,以运用他们从这些冲刺活动中学到的技能。
总结
总而言之,我们从这次经历中学到了很多,包括代码方面、开源项目的工作流程、如何在困难时刻保持韧性,以及鼓励更多女性和我们当地社区的人们为开源项目做出贡献。
最后,如果你想参与一个开源项目,我们邀请你查看你感兴趣的项目的 GitHub 仓库,寻找容易着手的议题 (issues) 并开始。此外,你可以联系项目维护者提出具体问题,寻找你所在国家的开源社区,或联系我们以获得更多帮助。
致谢
非常感谢 NumFOCUS 通过 小型开发资助 向我们提供的支持,以及 Marc 在这几周内慷慨给予我们的出色指导。
我们期待着做出更多贡献,并影响我们的社区和开源社区!
如果您想了解更多,请随时通过以下渠道与我们联系