您可以通过多种方式为 Apache Subversion 和社区做出贡献。幸运的是,大多数贡献只需要您对 Subversion 感兴趣,并愿意帮助社区的其他成员。
《Subversion 社区指南(又名“HACKING”)》是一本准宗教文本,它概括了围绕 Subversion 社区贡献的所有流程和最佳实践的细节。任何考虑为 Subversion 做出贡献的人,都应该认真阅读这份文档。
参与邮件列表
您可以加入 邮件列表、IRC 频道和论坛 来讨论 Subversion。对于有兴趣进行技术讨论、回答问题或解决新手可能遇到的问题的用户和贡献者来说,这些都是极好的资源。
推广 Subversion
通过使用您的博客、Twitter、Facebook 或向您最喜欢的当地杂志投稿来帮助推广 Subversion。如果您是其他开源社区的成员,为什么不在他们的讨论论坛或会议上提及 Subversion 呢?如果您热爱 Subversion,不要犹豫 - 大声说出来!Subversion 的用户越多,发现的错误就越多,添加的功能就越多,项目的可见度就越高,社区获得的益处就越多。
链接到 subversion.apache.org
任何开源项目的成功都取决于使用该产品并回馈项目的人数。通过链接到 https://subversion.org.cn/,您增加了新用户或贡献者发现该项目并加入社区的机会。
提交错误报告
提交错误报告只需花费很少的时间,并且对开发人员非常有帮助。这是您可以做出的最简单的贡献之一。当您发现 Subversion 中存在问题时,请报告它。作为社区,我们更希望您首先将错误报告到 [email protected] 邮件列表,以便其他社区成员可以提供一些一级帮助和分类。通常,您的问题可能已经存在解决方案或答案。
帮助我们对现有错误报告进行分类
Subversion 接收着相当稳定的错误报告流。虽然我们尽力验证每个收到的报告,但我们不可能完全防止重复的错误报告、已修复但无人注意的错误等等,这些都存在于我们的 问题跟踪器 中。您可以帮助我们的一种方法是浏览我们的一些 需要分类的问题,阅读错误报告,并尝试验证错误是否仍然存在于 Subversion 中。如果您在此过程中发现了一些您认为对开发人员有用的额外信息,请对问题进行注释并分享您的发现。
编写一个重现脚本
一份写得好的错误报告对开发人员来说非常宝贵。然而,一个重现脚本的价值相当于一百份写得好的报告。没有什么比能够自己做同样的事情并看到相同的结果更能帮助开发人员理解您在出现问题时所做的事情。不幸的是,许多错误报告通过邮件列表或问题跟踪器提交,只提供对问题的文字描述。因此,另一个极好的贡献机会是将这些文字报告转换为可靠、可重复的重现脚本,也许可以从一个脚本模板 (unix 模板,windows 模板) 开始,并根据报告进行自定义。这为开发人员提供了几个好处:您为开发人员节省了创建此脚本的工作;通常,您的脚本可以直接移植到 Subversion 的回归测试套件中,以便错误一旦修复,就会保持修复状态;并且,拥有另一双眼睛查看错误报告可以揭示意想不到的细微差别,例如错误特定于特定数据集或仅在某些其他特定情况下发生。
在我们的构建农场中添加一个节点
Subversion 有一个庞大的回归测试套件,需要相当长的时间才能运行。尽管鼓励开发人员在提交更改之前运行这些测试,但有时事情会漏掉——“明显”的更改结果并非如此,平台特定的错误会突然出现,等等。为了帮助我们发现这些问题,我们使用了一个构建机器人农场,它由机器组成,不断测试我们的代码库,因为它会发生变化。因此,即使您没有时间积极测试 Subversion,如果您有一台有空闲周期的计算机,请考虑将其作为我们构建机器人农场中的一个节点添加。我们始终可以从在其他操作系统和机器架构上持续执行测试套件中获益。
指向构建机器人节点配置详细信息。
提交补丁
开源格言“欢迎补丁”可能最常作为对邮件列表巨魔的线程终止反驳出现,但这句话的核心是两个非常真实的理想:软件代码不是自己编写的,并且项目通常确实希望尽可能多的人来帮助编写这些代码。Subversion 项目也不例外。我们已经接受并应用了无数的补丁贡献,我们希望始终有一条持续的贡献流。如果您是一位能够以这种方式做出贡献的开发人员,请浏览我们的Subversion 社区指南,特别是关于补丁提交和编码规范的部分,并加入我们的乐趣!我们有一个项目想法列表,供那些正在寻找需要几周甚至几个月才能完成的大型项目的人。
帮助设计新功能
较大的功能不会在有人有时间和意愿编写时才编写——它们首先要进行设计。该过程涉及在dev@ 列表上进行讨论,其中包含相当详细的理由和实施计划。 (我们经常使用我们的维基来处理拟议的设计。)参与此类讨论是用户确保计划中的新功能从一开始就设计为满足他们的用例和愿望的绝佳方式,而对于较大的功能,进行此类讨论是建立共识的关键,然后再进行任何编码。
将复制脚本转换为回归测试
在讨论 bug 时,用户或开发者经常会发布一个 重现脚本。修复 bug 的一项任务是将该脚本(通常是 shell 脚本或批处理脚本)转换为 Subversion 测试套件 中的 Python 测试。 发送一个补丁,实现一个等效于重现脚本的 XFail(“预期失败”,直到 bug 被修复)测试,是一个非常有用的贡献,它既可以作为对所需具体修复的演示,也可以让其他贡献者和开发者花更多时间研究 bug 的原因和修复方法。
成为提交者并直接提交代码
长期提交高质量补丁的开发者可以获得直接提交权限。这显然对开发者社区有利——在优质开发者方面,“多多益善”!但永远不要低估这种经历对你个人和职业生涯的价值。
有关如何贡献或与我们讨论您的贡献的更多信息,请联系 [email protected]