如何开始参与开源项目?
| 2015-01-09 16:15 评论: 27 收藏: 4 分享: 35
在过去五年我一直参与 Durgapur Linux用户组。我一直为各种开源项目进行贡献。我为开源贡献的主要原因是非常享受当你发送一个补丁或PR(pull request 提交问题)到一个开源项目的感觉。当数以百万计的人在每天的生活中使用你的一些代码时,这会让你感到幸福。
通过Google Summer of Code和 Super Student,很多人与我联系。他们都有相同的问题。
如何开始?我懂x、y、z语言。我应该对哪个项目贡献?我如何能过滤出一个bug?所以,我想写一篇博客文章来将尝试回答这些问题。但是,首先让我们了解什么是开源软件。
什么是开源软件(OSS)
开源软件是指计算机软件的源代码是公开,在各种许可证下可修改和改进分发。“What is open source?”(“开源是什么?“)是一个很好的解读。
我相信读几行代码比读500页书更值得的事实。当你追随优秀程序员编写的代码,在你编码时,你会自动倾向于使用一些很好的实践。
甚至我在大学里学软件工程课题前,我就已经实践了版本控制系统,调试器,任务跟踪,持续集成工具这些知识,这都是由于贡献了一个开源项目。
你让一个优秀的简历从人群中脱颖而出。贡献开源软件可以帮助您构建在线的形象。
但是,这些好话还不能足够帮助你开始。
我如何开始?
首先和最重要的事情是选择一个你选择的编程语言。一旦你完成了选择编程语言,寻找一个你可能会感兴趣的项目。
Open Hatch适合像你这样的初学者。Open Hatch 的搜索页面可以基于语言项目筛选出bug。Mozilla也有很多基于编程语言过滤的项目, What can I do for Mozilla?(我能为Mozilla做什么)
我如何发现bug?
老实说,找到一个bug对于一个初学者真是一个辛苦的工作。我面临同样的问题。但我将把如何找到easy bugs(简单的缺陷)和开始为大型组织贡献的方法列出来。
Fedora
Fedora Easy Fix page 列出了所有你可以开始的easy fixes(简单的修复)。每个项目列出了你需要联系的项目的维护者。
Fedora基础架构仓库包含一些easy fixes。在issues(任务)仓库部分寻找EasyFix标签。https://github.com/fedora-infra
Mozilla
Mozilla的开源项目非常简单。给新贡献者提供了很多的入口。
这个网站基于你选择的编程技术为你推荐项目。一旦你决定了你的项目,它会带你到相应的mozilla项目。
Bugs Ahoy网站尤其适合新的贡献者。网站基于各种项目比如JS Engine,Devtools,Firefox OS等分类成‘Easy bugs’ 和 ‘Mentored Bugs’。
但是,如果你不知道哪个项目以哪种编程语言为基础。Bugs Ahoy基于编程语言对easy bugs进行了分类,主要有Python、Java、Shell、JS、C / C++、HTML / CSS。你可以使用组合过滤来选择合适的bug来开始。
Mozilla对已经参与的某个团队的项目进行罗列,包含:
- 可以联系的导师。
- Bugzilla 页面
- IRC 频道名
- mentored bugs列表
- Getting Involved DevTools – https://wiki.mozilla.org/DevTools/GetInvolved
- Getting Involved Mozilla.org – https://wiki.mozilla.org/Webdev/GetInvolved/mozilla.org
- Getting Involved AMO – https://wiki.mozilla.org/Webdev/GetInvolved/addons.mozilla.org
- Getting Involved SUMO – https://wiki.mozilla.org/Webdev/GetInvolved/support.mozilla.org
- Getting Involved MDN – https://wiki.mozilla.org/Webdev/GetInvolved/developer.mozilla.org
- Getting Involved Socorro – https://wiki.mozilla.org/Webdev/GetInvolved/crash-stats.mozilla.org
- Getting Involved Mozillians – https://wiki.mozilla.org/Webdev/GetInvolved/mozillians.org
- Getting Involved ReMo – https://wiki.mozilla.org/Webdev/GetInvolved/reps.mozilla.org
- Getting Involved input.mozilla.org – https://wiki.mozilla.org/Webdev/GetInvolved/reps.mozilla.org
- Getting Involved careers.mozilla.org – https://wiki.mozilla.org/Webdev/GetInvolved/careers.mozilla.org
- Getting Involved QUMO – https://quality.mozilla.org/docs/webqa/get-involved/
- Here is another link for Bugzilla Mentored Bugs list – https://bugzil.la/sw:mentor
KDE
如果你想开始为KDE贡献,寻找 Junior Jobs(初级职位)标签。像每个组织一样,KDE也包含了如何开始KDE项目的部分。
Getting Started – http://techbase.kde.org/Contribute
入门 – http://techbase.kde.org/Contribute
Building a KDE Application – http://techbase.kde.org/Getting_Started/Build
构建KDE应用程序 – http://techbase.kde.org/Getting_Started/Build
KDE Guide for a new contributor – http://flossmanuals.net/kde-guide/
新贡献者的KDE指南 – http://flossmanuals.net/kde-guide/
IRC – #kde-devel on Freenode
IRC – #kde-devel on Freenode
Mailing List – https://mail.kde.org/mailman/listinfo/kde-devel
邮件列表 – https://mail.kde.org/mailman/listinfo/kde-devel
OpenStack
OpenStack也是一个优秀的可参与项目。OpenStack项目分为各种组件:Swift, Glance, Nova, Horizon, Keystone等。每个组件都有自己的页面。如果你去 OpenStack Wiki主页,您可以看到分别列出的组件。
每个组件页面包含到仓库的链接,bug追踪器(Launchpad),文档等。OpenStack把初学者级别bug叫做“容易摘到的果子”。
开始 – https://wiki.openstack.org/wiki/How_To_Contribute
如果你是一位开发者 – https://wiki.openstack.org/wiki/How_To_Contribute#If_you.27re_a_developer
文档- docs.openstack.org
IRC – #openstack-101, #openstack on Freenode
IRC – #openstack-101, #openstack on Freenode
寻找“容易摘到的果子” Click here!
Wikipedia
地球上的大多数人听说过维基百科这个名字,但未想过为它贡献。维基百科靠维基媒体基金会支持。Mediawiki使用简单标签标记他们的easy bugs。Click!
开始 – http://www.mediawiki.org/wiki/Gerrit/Getting_started
如何成为一个Mediawiki迷 –http://www.mediawiki.org/wiki/How_to_become_a_MediaWiki_hacker
在本地安装Mediawiki – http://www.mediawiki.org/wiki/MediaWiki-Vagrant
IRC – #mediawiki
IRC – #mediawiki
现在这个链接很重要
烦人的小bug – http://www.mediawiki.org/wiki/Annoying_little_bugs
GNOME
“Gnome-love”是标记那些初学者开始GNOME的easy bugs的可爱标签。如果你曾经访问GNOME主页:“参与”链接在头部菜单栏清晰可见。无论如何这是你不用搜索的链接:)
GNOME维护一个新手指南: https://wiki.gnome.org/NewcomersTutorial
如果你想知道如何提交你的第一个补丁,读这篇文章 : https://wiki.gnome.org/GnomeLove/SubmittingPatches
如果你想构建代码,从这里开始构建: https://wiki.gnome.org/GnomeLove/JhbuildIntroduction
文档: https://developer.gnome.org/
Apache
Apache, http://community.apache.org/newcomers/index.html
Apache维护了相当多的项目。project.apache.org列出了超过140个项目,每一个你都可以开始做贡献。新来者的部分是如何在Apache开始的简单说明, http://community.apache.org/newcomers/index.html
参与Apache软件基金会: http://www.apache.org/foundation/getinvolved.html
我是一个有几年经验的Python / Django活跃开发者。所以,我增加了如何开始为Python / Django贡献
Python
开始用Python贡献,请查看开发人员指南( http://docs.python.org/devguide/ )。它首先告诉在你的系统克隆仓库,继续告诉你如何检查easy fixes。
开发人员指南提到,你如何开始做文档的修复,然后修复小bug。一旦你了解了,你可以开始对付easy bugs。
读物: http://docs.python.org/devguide/fixingissues.html
任务跟踪: http://bugs.python.org/
简单的任务: http://goo.gl/NzJuDp
Django
Django是一个基于Python的web框架,它被一些非常大的公司使用,例如Disqus,Instagram,Transifex等。如果要开始为Django贡献,请去 Contributing to Django页面。
这个页面列出了邮件列表,IRC频道,任务跟踪的链接。
参与Django: https://code.djangoproject.com/#Gettinginvolved
像大多数开源项目,Django也有针对新贡献者的easy fixes。
小且简单的改进 – https://code.djangoproject.com/wiki/LittleEasyImprovements
简单的 – https://code.djangoproject.com/query?status=!closed&easy=1
“小且简单的改进”提到的任务还有,为文档发送补丁,编写测试或者或者改善代码库。
Django维护一个建议新贡献者的页面: https://docs.djangoproject.com/en/1.6/internals/contributing/new-contributors/
贡献
开源贡献并不是强制你只为一个著名的社区做贡献。互联网上存在巨量开源项目,像Github,SourceForge,Google Code,Bitbucket等。我也确信的事实是仅仅开源贡献并不会起到帮助。一个人需要在为项目工作时让想法从他大脑中流出。
我想你会喜欢从一个不错的blog post(博文)引用的几行话:
You shouldn’t become an artist so you can be famous, but because there’s art inside of you that will kill you if you don’t let it out.
You shouldn’t found a startup to make money, but because it’s your life’s work.
And you shouldn’t hack on open source projects because someone told you that your GitHub profile is your new resume, but because you want to code socially.
你不应该为了你可以出名而成为一个艺术家,而是因为如果你不让你内在的艺术释放出来,它会杀了你。
你不应该为赚钱而开始,而是因为它是你一生的工作。
你不应该因为有人告诉你github概要就是你新的简历而深入到开源项目,而是因为你想让编程社交化。
一旦你开始贡献,你开始通过IRC,邮件列表与人交流。我强烈建议你去看看组织遵守的礼仪。通常看看这个演示文稿来得到一个简要的了解。 http://www.shakthimaan.com/downloads/glv/presentations/mailing-list-etiquette.pdf
即使阅读本文后,如果你遇到任何问题。可以随时在Twitter找我或给我发邮件:sayan dot chowdhury2012 @ gmail dot com。我还要感谢Chandan Kumar,他帮助我写了这篇博文,他可以通过chandankumar dot 093047 @ gmail dot com联系。
- 微博评论 2015-01-10 20:03 赞 回复
- 赞//@程序员赵聪: //@崔宝秋-小米:赞领袖的编程情操![呵呵]//@王扉_在路上:领袖语录,总是精辟//@刘道宽_小米: 当数以百万计的人每天都生活在你的恶心代码时,你会不会感到焦虑。共勉!//@崔宝秋-小米:“ 当数以百万计的人在每天的生活中使用你的一些代码时,这会让你感到幸福。”[good]
- 微博评论 2015-01-10 13:03 1 赞 回复
- 领袖[贊]//@刘道宽_小米: 当数以百万计的人每天都生活在你的恶心代码时,你会不会感到焦虑。共勉!//@崔宝秋-小米:“ 当数以百万计的人在每天的生活中使用你的一些代码时,这会让你感到幸福。”[good]
- 微博评论 2015-01-10 09:03 1 赞 回复
- 这就是领袖的境界!//@崔宝秋-小米:赞领袖的编程情操![呵呵]//@王扉_在路上:领袖语录,总是精辟//@刘道宽_小米: 当数以百万计的人每天都生活在你的恶心代码时,你会不会感到焦虑。共勉!//@崔宝秋-小米:“ 当数以百万计的人在每天的生活中使用你的一些代码时,这会让你感到幸福。”[good]
- 微博评论 2015-01-10 02:03 1 赞 回复
- //@崔宝秋-小米:赞领袖的编程情操![呵呵]//@王扉_在路上:领袖语录,总是精辟//@刘道宽_小米: 当数以百万计的人每天都生活在你的恶心代码时,你会不会感到焦虑。共勉!//@崔宝秋-小米:“ 当数以百万计的人在每天的生活中使用你的一些代码时,这会让你感到幸福。”[good]
- 微博评论 2015-01-09 23:33 1 赞 回复
- 深深的恶意//@Linux中国:→_→//@刘道宽_小米: 当数以百万计的人每天都生活在你的恶心代码时,你会不会感到焦虑。共勉!//@崔宝秋-小米:“ 当数以百万计的人在每天的生活中使用你的一些代码时,这会让你感到幸福。”
- 微博评论 2015-01-09 22:03 赞 回复
- →_→//@刘道宽_小米: 当数以百万计的人每天都生活在你的恶心代码时,你会不会感到焦虑。共勉!//@崔宝秋-小米:“ 当数以百万计的人在每天的生活中使用你的一些代码时,这会让你感到幸福。”[good]
- 微博评论 2015-01-09 22:03 2 赞 回复
- 居然被一群小米们占领了[哈哈]//@崔宝秋-小米: 赞领袖的编程情操![呵呵]//@王扉_在路上:领袖语录,总是精辟//@刘道宽_小米: 当数以百万计的人每天都生活在你的恶心代码时,你会不会感到焦虑。共勉!//@崔宝秋-小米:“ 当数以百万计的人在每天的生活中使用你的一些代码时,这会让你感到幸福。”[good]
- 微博评论 2015-01-09 22:03 1 赞 回复
- 最新语录,最高指示//@崔宝秋-小米:赞领袖的编程情操![呵呵]//@王扉_在路上:领袖语录,总是精辟//@刘道宽_小米: 当数以百万计的人每天都生活在你的恶心代码时,你会不会感到焦虑。共勉!//@崔宝秋-小米:“ 当数以百万计的人在每天的生活中使用你的一些代码时,这会让你感到幸福。”[good]
- 微博评论 2015-01-09 22:03 赞 回复
- 赞领袖的编程情操![呵呵]//@王扉_在路上:领袖语录,总是精辟//@刘道宽_小米: 当数以百万计的人每天都生活在你的恶心代码时,你会不会感到焦虑。共勉!//@崔宝秋-小米:“ 当数以百万计的人在每天的生活中使用你的一些代码时,这会让你感到幸福。”[good]
- 微博评论 2015-01-09 21:33 9 赞 回复
- [黑线]我会惶恐不已~~//@Star華星_FreeBSD: 当数以万计的人看你的翻译文档吐槽时候,你感觉如何?//@刘道宽_小米: 当数以百万计的人每天都生活在你的恶心代码时,你会不会感到焦虑。共勉!//@崔宝秋-小米:“ 当数以百万计的人在每天的生活中使用你的一些代码时,这会让你感到幸福。”[good]
- 微博评论 2015-01-09 20:33 1 赞 回复
- [doge]//@Linux中国: →_→//@刘道宽_小米: 当数以百万计的人每天都生活在你的恶心代码时,你会不会感到焦虑。共勉!//@崔宝秋-小米:“ 当数以百万计的人在每天的生活中使用你的一些代码时,这会让你感到幸福。”[good]
- 微博评论 2015-01-09 20:33 1 赞 回复
- 焦虑得不行//@Linux中国:→_→//@刘道宽_小米: 当数以百万计的人每天都生活在你的恶心代码时,你会不会感到焦虑。共勉!//@崔宝秋-小米:“ 当数以百万计的人在每天的生活中使用你的一些代码时,这会让你感到幸福。”[good]
- 微博评论 2015-01-09 20:03 赞 回复
- //@Linux中国:→_→//@刘道宽_小米: 当数以百万计的人每天都生活在你的恶心代码时,你会不会感到焦虑。共勉!//@崔宝秋-小米:“ 当数以百万计的人在每天的生活中使用你的一些代码时,这会让你感到幸福。”[good]
- 微博评论 2015-01-09 20:03 赞 回复
- [doge]//@Linux中国: →_→//@刘道宽_小米: 当数以百万计的人每天都生活在你的恶心代码时,你会不会感到焦虑。共勉!//@崔宝秋-小米:“ 当数以百万计的人在每天的生活中使用你的一些代码时,这会让你感到幸福。”[good]
- 微博评论 2015-01-09 20:03 1 赞 回复
- 领袖语录,总是精辟//@刘道宽_小米: 当数以百万计的人每天都生活在你的恶心代码时,你会不会感到焦虑。共勉!//@崔宝秋-小米:“ 当数以百万计的人在每天的生活中使用你的一些代码时,这会让你感到幸福。”[good]
- 微博评论 2015-01-09 20:03 1 赞 回复
- 当数以万计的人看你的翻译文档吐槽时候,你感觉如何?//@Linux中国: →_→//@刘道宽_小米: 当数以百万计的人每天都生活在你的恶心代码时,你会不会感到焦虑。共勉!//@崔宝秋-小米:“ 当数以百万计的人在每天的生活中使用你的一些代码时,这会让你感到幸福。”[good]
- 微博评论 2015-01-09 20:03 2 赞 回复
- 当你复制开源项目代码到自己的产品代码中时,别人会不会觉得你恶心[doge] //@Linux中国:→_→//@刘道宽_小米: 当数以百万计的人每天都生活在你的恶心代码时,你会不会感到焦虑。共勉!//@崔宝秋-小米:“ 当数以百万计的人在每天的生活中使用你的一些代码时,这会让你感到幸福。”[good]
- 微博评论 2015-01-09 20:03 1 赞 回复
- →_→//@Linux中国:→_→//@刘道宽_小米: 当数以百万计的人每天都生活在你的恶心代码时,你会不会感到焦虑。共勉!//@崔宝秋-小米:“ 当数以百万计的人在每天的生活中使用你的一些代码时,这会让你感到幸福。”[good]
- 微博评论 2015-01-09 20:03 1 赞 回复
- →_→//@Linux中国: →_→//@刘道宽_小米: 当数以百万计的人每天都生活在你的恶心代码时,你会不会感到焦虑。共勉!//@崔宝秋-小米:“ 当数以百万计的人在每天的生活中使用你的一些代码时,这会让你感到幸福。”[good]
- 微博评论 2015-01-09 19:33 1 赞 回复
- →_→//@刘道宽_小米: 当数以百万计的人每天都生活在你的恶心代码时,你会不会感到焦虑。共勉!//@崔宝秋-小米:“ 当数以百万计的人在每天的生活中使用你的一些代码时,这会让你感到幸福。”[good]
- 微博评论 2015-01-09 19:03 赞 回复
- [笑cry]//@刘道宽_小米:当数以百万计的人每天都生活在你的恶心代码时,你会不会感到焦虑。共勉!//@崔宝秋-小米:“ 当数以百万计的人在每天的生活中使用你的一些代码时,这会让你感到幸福。”[good]
- 微博评论 2015-01-09 19:03 1 赞 回复
- 当数以百万计的人每天都生活在你的恶心代码时,你会不会感到焦虑。共勉!//@崔宝秋-小米:“ 当数以百万计的人在每天的生活中使用你的一些代码时,这会让你感到幸福。”[good]