关键 Python 项目是如何维护的

深入了解保持开源 Python 项目平稳运行的社区幕后情况。
95 位读者喜欢这个。
and old computer and a new computer, representing migration to new software or hardware

Opensource.com

Jannis Leidel 是 Jazzband 社区的一份子。Jazzband 是一个协作社区,共同承担维护基于 Python 的项目的责任。

Jazzband 的诞生源于长时间独自维护一个开源项目的压力。Jannis 是一名巡演技师,这意味着他负责管理任务,并确保乐队成员可以在他们想演奏时进行演奏。

Jazzband 不是他的第一个开源志愿者工作——他曾是 Django 核心开发人员、Django Software Foundation 董事会成员,编写了许多 Django 应用程序和 Python 项目,曾是 pipvirtualenv 核心开发人员和发布经理,共同创立了 Python Packaging Authority,并且曾是 PyPI 管理员。在社区方面,他共同创立了 German Django Association,担任 DjangoCon Europe 2010 年联合主席,曾在多个会议上发表演讲,并且在去年担任 Python Software Foundation 的董事和联合沟通主席。

Moshe Zadka: 您是如何开始编程的?

Jannis Leidel: 我开始编程是在高中正规的德国计算机科学课程中,在那里我涉猎了 Turbo Pascal 和 Prolog。我很快就被 Web 开发的世界所吸引,并使用 PHP3、Perl5MySQL 编写小型网站。后来在大学里,我在从事媒体艺术项目时再次开始编程,并发现 Ruby、Perl 和 Python 特别有帮助。我最终坚持使用 Python,因为它具有多功能性和易用性。我很高兴自那时以来能够在我的职业生涯中使用 Python 和开放 Web 技术 (HTML/JS/CSS)。

Zadka: 您是如何开始接触开源的?

Leidel: 作为大学的一个艺术项目的一部分,我需要一种方法来与各种 Web 服务对话并与一些电子设备互动,并且发现我以前的 PHP 技能无法胜任这项任务。所以我参加了一个关于使用 Python 编程的课程,并开始对更多地了解框架(相对于库而言)的工作原理感兴趣,因为它们进一步巩固了我想要了解的最佳实践。特别是,新兴的 Django Web Framework 真正吸引了我,因为它倾向于务实的方法,并为如何开发 Web 应用程序提供了大量指导。2007 年,我作为学生参加了 Django 的 Google Summer of Code,后来为 Django 及其可重用组件的生态系统做出了更多贡献——一段时间后也成为了 Django 核心开发人员。在完成我的学位期间,我能够利用这些技能作为自由职业者工作,并将时间花在 Django 社区的许多不同部分。在那个时候,横向发展到更广泛的 Python 社区是很自然的。

Zadka: 您的日常工作是什么?

Leidel: 我是 Mozilla 的一名 Staff Software Engineer,致力于 Firefox 数据管道的数据工具。在实践中,这意味着我在更广泛的 Firefox 工程团队中工作,从事各种内部和面向公众的基于 Web 的项目,这些项目帮助 Mozilla 员工和社区成员理解 Firefox Web 浏览器发送的遥测数据。我目前关注的一部分是维护我们的数据分析和可视化平台,该平台基于开源项目 Redash,并为其做出贡献。我贡献的其他项目包括我们的下一代遥测系统 Glean 和一个允许您在浏览器中进行数据科学(包括 Scientific Python stack)的工具,名为 Iodide

Zadka: 您是如何参与 Jazzband 的?

Leidel: 回到 2015 年,我对自己独自维护许多人依赖的项目感到沮丧,并看到我的许多社区同行也在与类似的问题作斗争。我不知道有什么好的方法可以接触到更多社区中可能也对长期维护感兴趣的人。在某些情况下,我觉得新的“社交编码”范例很少是社交的,而且常常是孤立的,有时甚至对新老贡献者来说是痛苦的。我相信,如今我发现无法容忍的社区不平等在当时甚至更加猖獗,这使得为贡献者提供安全的环境变得困难——我们现在知道这对于稳定的项目维护至关重要。我想知道我们是否错过了一种更具协作性和包容性的软件开发方法。

Jazzband 项目的启动是为了降低维护的入门门槛,并简化其中一些更枯燥的方面(例如,围绕 CI 的最佳实践)。

Zadka: 关于 Jazzband,您最喜欢的是什么?

Leidel: 关于 Jazzband,我最喜欢的是我们已经确保了许多人依赖的项目的维护,同时也确保任何经验水平的新贡献者都可以加入。

Zadka: 在 Jazzband 中,“巡演技师”的工作是什么?

Leidel: “巡演技师”是 Jazzband 幕后一切事宜的首选人员。这意味着,例如,处理新项目的入职、维护处理用户管理和项目发布的 Jazzband 网站、充当安全或行为准则事件的第一响应者等等。“巡演技师”这个术语借用自音乐和活动行业,指的是负责巡回演出期间几乎所有需要完成的支持人员,除了实际的艺术表演。在 Jazzband 中,他们的作用是确保成员可以从事项目工作。这也意味着,在有意义的情况下,某些任务是部分或完全自动化的,并且最佳实践应用于大多数 Jazzband 项目,例如打包设置、文档托管或持续集成。

Zadka: 作为 Jazzband 的巡演技师,您的工作中最具挑战性的方面是什么?

Leidel: 目前,作为巡演技师,我的工作中最具挑战性的方面是在不冒他们已经习惯的工作流程风险的情况下,为 Jazzband 实施社区成员提出的改进。换句话说,在概念层面上扩展项目变得越来越困难,Jazzband 变得越大。具有讽刺意味的是,目前我是唯一的巡演技师,并且独自处理一些任务,而 Jazzband 试图防止这种情况在其项目中发生。这是 Jazzband 未来面临的一个重大担忧。

Zadka: 您会对那些想知道他们是否应该加入 Jazzband 的人说些什么?

Leidel: 如果您有兴趣加入一个相信协作工作比单独工作更好的人群,或者如果您一直在独自承担维护负担并且不知道如何继续,请考虑加入 Jazzband。它简化了新贡献者的入职,为争端提供了框架,并自动化了到 PyPI 的发布。有许多最佳实践可以很好地降低项目变得无人维护的风险。

Zadka: 您还有什么想告诉我们读者的吗?

Leidel: 我鼓励所有从事开源项目的人考虑屏幕另一端的人。要有同情心,并记住您自己的经验可能不是您的同行的经验。理解您是全球和多元化社区的成员,这要求我们始终对彼此之间的差异保持尊重。

接下来阅读什么
标签
Moshe sitting down, head slightly to the side. His t-shirt has Guardians of the Galaxy silhoutes against a background of sound visualization bars.
自 1998 年以来,Moshe 一直参与 Linux 社区,在 Linux “安装派对”中提供帮助。自 1999 年以来,他一直在编写 Python 程序,并为核心 Python 解释器做出了贡献。Moshe 自这些术语存在之前就一直是 DevOps/SRE,他非常关心软件可靠性、构建可重现性以及其他此类事情。

评论已关闭。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.