Apache Cassandra 是一个开源 NoSQL 数据库,以其可扩展性和高可用性(不影响性能)受到全球数千家公司的信赖。 贡献于这样一个广泛使用的分布式系统似乎令人生畏,因此本文旨在为您提供一个简单的切入点。
贡献于 Cassandra 有很好的理由,例如
- 作为贡献者获得 Apache 软件基金会 (ASF) 的认可
- 为全球数百万用户使用的开源项目做出贡献,该项目为美国运通、彭博、Netflix、Yelp 等公司提供互联网服务
- 成为社区的一员,添加新功能并以 Cassandra 4.0 的发布为基础进行构建,这是该项目历史上最稳定的版本
如何开始
Apache Cassandra 是一个大型项目,这意味着您会找到适合您技能的贡献领域。 每一个贡献,无论多么小,都值得赞赏。 一个好的起点是入门指南。
Apache Cassandra 项目也参与 Google Summer of Code。 要了解涉及的内容,请阅读 PMC 成员 Paolo Motta 的这篇博客文章。
选择要处理的内容
提交的补丁可以包括错误修复、Java 代码库的更改、工具改进(Java 或 Python)、文档、测试或代码库的任何其他更改。 虽然贡献代码的过程始终相同,但接受补丁所需的工作量和时间取决于您要解决的问题类型。
审查他人的补丁总是值得赞赏的。 要了解更多信息,请阅读审查清单。 如果您是 Cassandra 用户,并且可以通过回复用户列表中的一些问题来提供帮助,那么这是一个极好的贡献。
找到要处理的工单的最简单方法是在 Cassandra 的 Jira 中搜索标记为唾手可得的问题。 我们使用此标签来标记适合初学者入门的任务。 如果您没有 ASF 的 Jira 登录名,则需要注册。
开始参与的一些简单方法包括
- 测试: 通过了解 Cassandra,您可以添加或改进测试,例如 CASSANDRA-16191。 您可以在我们的 测试页面上了解有关 Cassandra 测试框架的更多信息。 我们始终欢迎更多测试和 Jira 报告的错误或改进建议。
- 文档: 这并不总是唾手可得的,但它非常重要。 这是一个示例工单:CASSANDRA-16122。 您可以在我们的 处理文档页面上找到有关贡献 Cassandra 文档的更多信息。
- 调查或修复报告的错误: 这是一个例子:CASSANDRA-16151。
- 回答问题: 订阅用户邮件列表,留意您知道答案的问题,并通过回复帮助他人。 请参阅社区页面,了解有关如何订阅邮件列表的详细信息。
这只是开始帮助项目的四种方式。 如果您想了解有关分布式系统的更多信息并以其他方式做出贡献,请查看文档。
贡献代码所需的内容
要进行代码贡献,您将需要
- Java SDK
- Apache Ant
- Git
- Python
获取代码并测试
使用 Git 获取代码,处理主题,使用您喜欢的 IDE,并遵循 Cassandra 编码风格。 您可以在我们的 构建和 IDE 集成页面上了解更多信息。
$ git clone https://git-wip-us.apache.org/repos/asf/cassandra.git cassandra-trunk
许多贡献者根据工单号和 Cassandra 版本命名他们的分支。 例如
$ git checkout -b CASSANDRA-XXXX-V.V
$ ant
测试环境
$ ant test
测试分布式数据库
完成后,请确保所有测试(包括您自己的测试)都使用 Ant 通过,如测试中所述。 如果您怀疑测试失败与您的更改无关,则检查测试的状态可能很有用,方法是搜索问题跟踪器或查看相关上游版本的CI结果。
完整的测试套件需要数小时才能完成,因此通常在上传补丁之前在本地运行相关测试。 上传补丁后,审查者或提交者可以帮助设置 CI 作业以运行完整的测试套件。
有关测试 Cassandra 的其他资源包括
- Cassandra 分布式测试存储库。 您可以在 README 文件中找到设置信息和先决条件。
- Cassandra Cluster Manager README
- 来自社区的一篇关于测试 Apache Cassandra 4.0 的方法的精彩博客文章
- Harry,一个用于 Apache Cassandra 的模糊测试工具。
提交您的补丁
在提交补丁之前,请验证您是否遵循 Cassandra 的代码风格约定。 提交补丁的最简单方法是在 GitHub 上 fork Cassandra 存储库并推送您的分支
$ git push --set-upstream origin CASSANDRA-XXXX-V.V
通过在您的 Jira 工单中发布指向您新创建的分支的链接来提交您的补丁。 使用提交补丁按钮。
要了解更多信息,请阅读有关贡献于 Cassandra的完整文档。 如果您还有疑问,请与开发者社区联系。
作者要感谢 Apache Cassandra 社区为该项目做出的不懈贡献、对项目用户的奉献以及为改进新贡献者加入流程而做出的持续努力。
许多人为 Apache Cassandra 项目和社区所做的贡献和奉献使我们能够达到 4.0 — 一个重要的里程碑。 在我们展望未来并寻求鼓励新的贡献者时,我们想感谢自 12 多年前成立以来每个人的努力。 没有您的帮助,这一切都不可能实现。 谢谢!
评论已关闭。