# 如何从零开始参与大型开源项目

2017-04-12 18:53:40 +08:00
 PingCAP

--

写在前面的话

上世纪 70 年代, IBM 发明了关系型数据库。但是随着现在移动互联网的发展,接入设备越来越多,数据量越来越大,业务越来越复杂,传统的数据库显然已经不能满足海量数据存储的需求。虽然目前市场上也不乏分布式数据库模型,但没有品位的文艺青年不是好工程师,我们觉得,不,这些方案都不是我们想要的,它们不够美,鲜少能够把分布式事务与弹性扩展做到完美。

受 Google Spanner/F1 的启发,一款从一开始就选择了开源道路的 TiDB 诞生了。 它是一款代表未来的新型分布式 NewSQL 数据库,它可以随着数据增长而无缝水平扩展,只需要通过增加更多的机器来满足业务增长需求,应用层可以不用关心存储的容量和吞吐,用东旭的话说就是「他自己会生长」。

在开源的世界里, TiDB 和 TiKV 吸引了更多的具有极客气质的开发者,目前已经拥有超过 9000 个 star 和 100 个 contributor ,这已然是一个世界顶级开源项目的水准。而成就了这一切的,则是来自社区的力量。

最近我们收到了很多封这样的邮件和留言,大家说:

这让我感触颇多,因为,应该是我们感谢你们才是啊,没有社区,一个开源项目就成不了一股清泉甚至一汪海洋。 公司的小姑娘说,她觉得还有很多的人想要参与进来的,可工程师团队欠缺平易近人的表达,这个得改。

于是便有了这篇文章以及未来的多篇文章和活动,我们欢迎所有的具有气质的开发者能和 TiDB 一起成长,一起见证数据库领域的革新,改变世界这事儿有时候也不那么难。

我要重点感谢今天这篇文章的作者,来自社区的朱武( GitHub ID:viile )、小卢( GitHub ID:lwhhhh )和杨文( GitHub ID: yangwenmai ),当在 TiDB Contributor Club 里提到想要做这件事的时候,是他们踊跃地加入了 TiDB Tech Writer 的队伍,高效又专业地完成了下文的编辑,谢谢你们。

一个典型的开源项目是由什么组成的

The Community (社区)

The Docs (文档)

项目中经常出现的文件有:

齐步走成为 Contributor

###Create an Issue 如果你在使用项目中发现了一个 bug ,而且你不知道怎么解决这个 bug 。或者使用文档时遇到了麻烦。或者有关于这个项目的问题。你可以创建一个 issue 。 不管你有什么 bug ,你提出 bug 后,会对那些和你有同样 bug 的人提供帮助。 更多关于 issue 如何工作的信息,请点击Issues guide

####Issues Pro Tips

TiDB Issue 模版如下

TiKV Issue 模版如下

###Pull Request 如果你能解决这个 bug ,或者你能够添加其他的功能。并且知道如何成为贡献者,理解 license ,已经签过Contributor Licence Agreement (CLA) 后,请发起 Pull Request 。这样维护人员可以将你的分支与现有分支进行比较,来决定是否合并你的更改。

####Pull Request Pro Tips

###Open Pull Requests 一旦你新增一个 pull request ,讨论将围绕你的更改开始。其他贡献者和用户可能会进入讨论,但最终决定是由维护者决定的。你可能会被要求对你的 pull request 进行一些更改,如果是这样,请向你的 branch 添加更多代码并推送它们,它们将自动进入现有的 pull request 。 如果你的 pull request 被合并,这会非常棒。如果没有被合并,不要灰心。也许你的更改不是项目维护者需要的。或者更改已经存在了。发生这种情况时,我们建议你根据收到的任何反馈来修改代码,并再次提出 pull request 。或创建自己的开源项目。

TiDB 合并流程

PR 提交之后,请耐心等待维护者进行 Review 。 目前一般在一到两个工作日内都会进行 Review ,如果当前的 PR 堆积数量较多可能回复会比较慢。 代码提交后 CI 会执行我们内部的测试,你需要保证所有的单元测试是可以通过的。期间可能有其它的提交会与当前 PR 冲突,这时需要修复冲突。 维护者在 Review 过程中可能会提出一些修改意见。修改完成之后如果 reviewer 认为没问题了,你会收到 LGTM(looks good to me) 的回复。当收到两个及以上的 LGTM 后,该 PR 将会被合并。

标注:本文「一个典型的开源项目是由什么组成的」及「起步走成为 Contributor 」参考自英文 GitHub Guide ,由社区成员朱武( GitHub ID: viile )、小卢( GitHub ID:lwhhhh )着手翻译并替换部分原文中的截图。 GitHub Guides :如何参与一个 GitHub 开源项目英文原文地址: https://guides.github.com/activities/contributing-to-open-source/

加入 TiDB Contributor Club

为更好地促进 Contributor 间的交流,便于随时提出好的想法和反馈,我们创建了一个 Contributor Club 微信群,对成为 TiDB Contributor 有兴趣的同学可以添加 TiDB Robot 微信号,它会在后台和你打招呼,并积极招募你成为开源社区的一员。

/@Robot 微信二维码 //////

欢迎加入 TiDB Tech Writer 计划,让我们一起用文字的力量推动开源项目的发展。

衍生阅读

更多资料

2950 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/354440

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX