您是否熟悉开发冲刺,即在 Python 和 Django 会议之后立即举行的编码活动? 这些活动鼓励年度 PyCon(或 DjangoCon)或众多区域性 PyCon 的与会者留下来,并利用场地空间(配备电源和网络),与其他 Python 开发人员和从业者一起从事开源项目。 既然每个人都是为了参加会议而飞来的,那么这段非结构化的时间是在面对面推动项目进展的绝佳方式。
与人协作扩展
近年来,这些冲刺活动的主要项目之一是 BeeWare。 BeeWare 在 Opensource.com 上的多篇文章中被提及,对于想要提供帮助的新手来说,这是一个非常受欢迎的项目。 为了鼓励参与,BeeWare 项目为所有为该项目做出贡献的人提供了挑战币。 这可以吸引数十名首次项目贡献者来到冲刺活动现场,他们通常在开始时需要一些支持才能快速熟悉我们的项目。
我在 @PyCaribbean 为 BeeWare 做出贡献而获得了 @PyBeeWare 挑战币! ??
谢谢 @freakboy3742! ? pic.twitter.com/RptHkpxbMj— ✨ Trey Hunner ? (@treyhunner) 2017 年 2 月 20 日
在全球范围内运行了 20 多个开发冲刺之后,我们需要新的方法来(借用一个更好的词)管理这些热情的初学者团队。 这超越了我们对所有冲刺参与者给予的一般关怀和尊重。 BeeWare 在行为准则下运作(并且仅在具有自己行为准则的活动中运行)。 最终,任何花时间来到现场的人,无论他们以前是否做出过贡献,都必须受到尊重。 对于首次贡献者来说,在我们这里糟糕的体验可能会损害他们对开源的整体看法。
另一方面,人的扩展性不是很好。 Russell Keith-Magee,BeeWare 的现任仁慈独裁者,一次只能指导这么多人。 因此,我们需要一种方法来确保人们能够获得他们入门所需的信息,并且在遇到困难时可以向多人寻求帮助。
为了解决这个问题,我们开发了第二种挑战币:“牦牛牧人”。 要获得此币,您必须帮助两个人或更多人获得他们的“牦牛剃须师”币。 这极大地帮助我们扩展了新贡献者的入职流程,同时那些提供帮助的人也获得了我们的一点感谢。 我们还发现,像 DjangoCon US 的 Git 帮助台这样的举措通过引导新手入门 Git 和 GitHub,帮助我们和其他项目减轻了项目负担,使他们能够专注于特定项目的入职。
通过软件扩展
不幸的是,即使采取了这些步骤,我们在冲刺活动中还是遇到了其他瓶颈,这次是技术方面的。 当数十人同时尝试向同一项目提交拉取请求时,我们经常在持续集成 (CI) 系统中面临积压。 Travis CI 和 CircleCI 等平台为开源项目提供的免费层级是非常宝贵的资源; 但由于它们是免费服务,因此具有并行化限制。
几年前,BeeWare 开发了一个可扩展的 CI 系统,使我们能够为活动进行扩展,并且该系统对我们来说效果良好。 虽然 Travis CI 和 Circle CI 有付费计划,但它们无法扩展到零,并且对于像 BeeWare 这样负载非常不稳定的项目来说效果不佳。
如果您的项目在 CI 中也有类似的峰值,或者您正在寻找一个在您自己的套件上运行的系统,请考虑 BuildKite。 BuildKite 已经存在一段时间了,但最近才添加了 GitHub SSO 支持和将管道标记为 public 的功能,这意味着您可以像使用 Travis CI 或 CircleCI 一样将其与公共仓库一起使用。 您还可以将您的 GitHub 仓库配置为使用 Google Cloud Build 作为其 CI 系统,该系统每天提供 120 分钟的免费构建时间(之后为 0.003 美元/分钟),默认情况下提供 10 个并发构建。
如果您的项目更复杂且有此类 CI 需求,请考虑像 BuildKite 或 Google Cloud Build 这样更高级的系统是否适合您的项目。 它们确实比 Travis CI 或 Circle CI 需要更多的设置,但更可配置的构建系统的好处可能超过初始设置要求。
总结
总的来说,我们发现通过积极的授权,我们可以减轻我们首席工程师和关键基础设施的压力,这使我们有更多时间去做我们想做的事情——致力于我们的项目并使其他人能够帮助我们。
Katie McLaughlin 将于 5 月 4 日在 PyCon 维护者峰会上发表题为“管理热情的团队”的演讲,该峰会是克利夫兰 PyCon 2019 的一部分。
评论已关闭。