在GitHub上开源:贡献你第一段代码

"You have to start small and work your way up." And this is mine.

此文是

http://spencermoran.me/2013/08/13/open-source-on-github-your-first-contribution/

的翻译。

       完全根据自己的理解翻译,有些地方我觉得难翻译的就按照自己的来了,而且简化了,并给出了原文。

       repository ,这个词我按照意思翻译成了“项目”或“库”,不知道合不合适。

       pull request这个词组我就不知道怎么翻译了,希望有人指导。

       contribution ,这个词我翻译成了“贡献”、“捐献”,contribute翻译为“捐献”,感觉也不太合适,还希望有人指正。

-----------------------------------------分割线-------------------------------------------------------------

       作为一个计算机科学的高年级学生,我经常听到关于“在GitHub上向开源工程提交代码很牛逼”的说法。很多工作机会的要求中将其作为加分项,而人们经常在各种研讨会上谈论它,甚至在学校也是如此。听起来很不错,我应该也参与其中。但是问题是:我是一个超级小白。我在学校的课程上做得还不错,而且我也做了一些我的家人和朋友觉得很酷的“工程”。但是,我现在肯定不能为一个真正有用户的工程做一些有意义的贡献,是这样吗?是吗?

       完全错误!就算作为新人,我们仍然有很多种方法向GitHub上的开源工程提交有实质作用的贡献。我不需要能够读完几十万行的rails代码或者知道怎么解决那些能够影响真实用户的问题(how to fix that issue with the dynamically stacking grid in bootstrap to be able to do something meaningful that affects real users. )。每个人有不同的贡献方式。

       最近,我向一个开源项目提交了我的第一份“贡献”,虽然它很小,但当我想到有人在用我参与了的项目,我感受到了很大的成就感。我们必须做一个小的开始,然后坚持它。下面就是我对所有想要参与GitHub上的开源项目的人的建议,开始尝试吧( but has just felt overwhelmed trying):

第一步:在GitHub上找一个正在寻求“pull request”的项目(The first step is to find a repository that is looking for pull requests)。你可以通过很多方法找到这种项目。最简单的方法就是通读readme文件。readme会告诉项目的拥有者正在急切的寻求“pull request”。如果readme文件中没有提到pull request,你可以看看问题列表(issues)和项目的pull request。仔细观察所有pull request 的时间,翻翻已经被关闭的pull request,你将可以判断项目拥有者是否在积极的更新项目。如果你能找到一个你感兴趣并且满足上面提到的条件,恭喜你。在我寻找的时候,我找到了一个项目,它是用于创建新项目rails template,它的readme文件第一行是一行加粗字体:Pull request are welcome。完美!

       现在要做的是fork和复制这个项目。如果你不知道怎么做,这是一个指南

       你需要遵循readme中的所有指示,以确保你能够在本地环境中配置并运行这个项目。如果你遇到了一个在readme中没有提及的问题或者错误,提交它,这就是你的第一份贡献。你可以编辑readme,清楚的说明这个问题,方便后来的捐献者。向某个项目捐献的最好的方式之一就是让项目上的工作变得更容易。你可以整理readme,编辑文档中的错误或清理它们。直接跑到别人的代码库中并立即开始做变更是很恐怖的事情。有不恐怖的,更好的方式开始你的开源生涯。我想要参与的项目的文档很完善,并且它非常简单,因此不适合在此作为例子。

       如果你还是没有找到捐献的方式,你可以通读问题列表。那里可能有一些增强或修改项目的建议,有些人可能已经对此提交了一些伪代码或者给出了代码的开始部分,但是他们只是没有时间来完全解决它。你可能会发现一些已经可行的东西,并且并不需要作出太多的代码改动。

       如果你觉得你不能解决列表中的任何问题,去看看readme中拥有者是否有一个将要做的任务列表,或者你有自己的想法,开始做吧。我遇到的情况是,我讨厌浏览整个库(有时我自己的项目也是如此)并且看到加到项目的github上的.DS_Store。每次在OSX的Finder上查看项目的时候,.DS_Store就会被加到库中,而我又没有任何理由将它提交到github。我将它加到项目的.gitignore中,这个配置文件可以避免用到项目(rails template)的人不小心将它提交到github上。我提交“捐献”了!现在我要做的就是实现它,这非常简单。确保你遵循了项目的所有约定。查看readme文件和其它pull request中项目拥有者首选的格式,确保你使用了她或他想要的提交信息。我遵守了所有上面的约定,并提交了pull request,加上了如下信息:

# DS_Store gets added to project if viewed in OSX Finder
run "echo '.DS_Store' >> .gitignore"

      一个小时后,我的pull request就被合并到主库中。这可是一个有上千人关注github项目。我改变开始工作的目的,因为人们正在用我写了(很小)部分代码的项目了!

       作为一个CS的本科生,我的经历中缺少了现实的成就感,那就是,我想知道我所做的有何影响。我学了算法、数据结构、很多种编程语言,不停的在编码。我知道我做的东西很不错,但是我没有感觉到我所做的影响到了谁。我经常在想“为什么这么做?”“这有对谁有意义?”在一天结束的时候,我想知道我做的事情对何人有意义。

       虽然向github上的开源项目捐献代码可能会很难(it may be intimidating),它的学习曲线也很陡峭,但是这么做可以获得精神上的满足感。

猜你喜欢

转载自forenroll.iteye.com/blog/1934827