本文是【Github开源项目贡献指南】系列的第一章,原文【Open Source Guides——How to Contribute to Open Source】
给freenode做贡献帮助我学到了很多后来在大学和实际工作中用到的技能,我觉得给开源项目工作对我的帮助和对项目本身的帮助相差无几。—@errietta “Why I love contributing to open source software”
给开源项目做贡献可以说是在你能想象的领域上学习,传授,累计经验的最有效的方式!为什么人们要给开源项目做贡献,原因太多了!
不管是写代码,用户界面的设计,图形设计,写作,或者是组织,如果你想找点练习做一做,在开源项目上你总能找到能胜任的任务。
气氛融洽开放的开源项目会让人数年之后仍然不忘回来看看(项目进展)。许多人在参与开源项目的过程中结识了一生挚友,友谊在会议的互相照面和深夜的线上闲聊中渐渐形成。
和他人一起合作一个项目意味着你得解释你是怎么做事情的,同时寻求他人的帮助。学习和传授知识的体验对每个参与其中的人来说都是令人愉快的体验。
从开源项目的定义可以知道,你所有的工作成果都应该公开,这意味着你免费获得了一个向众人展示你能力的机会。
开源项目给参与其中的人们提供了锻炼领导力和管理能力的机会,比如解决冲突,组织团队的成员,辨别工作的轻重缓急。
你不需要成为那种一直在给开源做贡献的人。你有在网站上看见手误吗,而且希望有人能修正它。在一个开源项目中,你自己就可以做到。开源帮助人们在生活和对世界的体验上感觉到更有力量,这本身确实是意见可喜的事情。
如果你是一个刚刚开始的开源贡献者,这个过程可能会让你觉得很吓人。如何找到正确的项目?你不知道怎么贡献代码怎么办?如果改错了怎么办?
不必担心!有很多参与开源项目的方法,和一些让你走出困境的小技巧。
对开源贡献的一个普遍的误解就是你得贡献代码。实际上,通常和代码无关的部分才是最容易忽视的:通过参与非代码部分的贡献会给项目带来巨大的帮助。
我因为对 CocoaPods的贡献而著名,但是大部分人都不知道我在这个工具本身的开发上并没有做实质性的工作。我花在这个项目上的主要时间都用来整理文档和宣传品牌。—–@orta
即使你是一个开发者,非代码部分的贡献是一个很好的方式让你参与一个项目和认识社区的成员。建立这种关系会给你从事项目其他部分工作的机会。
我第一次接触 Python 开发团队(又叫做 python-dev)是在2002年6月17号我给邮件列表发邮件让他们接受我的补丁的时候。我迅速的发现的这个项目的缺陷,并决定负责组织团队的邮件摘要。这给了我一个很好的机会去咨询他们对一个话题的解释,但是实际上更关键的是当有人提出问题的时候我能意识到那是不是需要修复的 bug 。—–@brettcannon
虽然开源一般指的是软件项目,实际上你可以在任何项目上进行协作。有很多书籍,经验贴,列表,课程都是开源项目。
比如:
更大型的项目可能有针对不同工作的子社区或者工作组,比如工具链,工作分配,打造社区的舒适度和事件管理。查看项目网站上的“团队”页面,或者存放管理文档的仓库寻找这些信息。
一个项目也会有他自己的文档,这些文件放在项仓库目的一级目录。
当你发现了一个你想要贡献的项目的时候,对项目做一快速的浏览来保证这个项目适合接受你的贡献,否则你的工作得不到应有的回应。
这里提供了一份评估一个项目是否适合新的贡献者的清单
他有一份开源协议吗?通常情况下是一个在项目根目录下的叫 LISENCE 的文件。
查看 master 分支上的提交活动。在github上,你可以在仓库的主页上看到这个信息
最近一次提交是什么时候
项目目前有多少贡献者
人们提交的频率是怎样的?(在 Github ,你可以通过点击顶部的 “commit” 来找到。
接下来,查看项目的 issue 。
目前有多少 issue 。
Do maintainers respond quickly to issues when they are opened?
项目维护者对打开的 issue 回复的速度如何?
在 issue 中的讨论是否热烈。
issue 都是在最近的吗?
issue 被关闭了吗(在 Github ,在 issue 页面点击 “closed” 标签查看关闭的 issue 。
对项目的 pull request 做同样的检查。
目前有多少 pull request?
项目维护者对打开的 pull request 回复的速度如何?
在 pull request 中的讨论是否热烈?
pull request 都是最近的吗?
最近一次的 pull request 被合并是什么时候?(在 Github ,在 pull request 页面点击 “closed” 标签查看被关闭的 pull request。
如果一个项目是友好和开放的那么意味着他们很乐意接受新的贡献者。
项目维护者对 issue 中的问题的回复时候有帮助?
在 issue ,论坛,聊天室(比如 IRC 或者 Slack)中的人们是不是乐于助人。
pull request会被审查吗?
项目维护者对贡献者的 pull request 表示感谢了吗?
不管何时当你看到核心开发者做出的长篇大论式的,总结性的发言。不妨思考他们总结是建设性的吗?而且在保持礼貌的同时一步一步把讨论引向一个结论。如果你看到了讨论过程中出现摩擦,经常让人叹息的是他们把精力浪费在了争吵而不是开发上面。— @kfogel, Producing OSS
假如你已经找到了一个你喜欢的项目,而且你已经准备好做一次贡献。终于!是时候谈谈怎么正确做出贡献啦!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。