加载中

I could see many many students posting this question in many forums, I want to contribute to open source but How to contribute? There are many ways to do that. I have listed a few and I hope it might be useful.

Contributing to existing project:
Since you are interested in contributing, not all open source products will accept you. Each product has some coding and committing rules and you may need to adhere to that.

Domain of your interest: First pick the project which suits your interest or preferred programming language and technology. Pick the project based on the domain not only by language. Just by knowing Java you may not be able to work on gaming project. You should have that interest.

“我想向开源社区贡献源码,但是该怎么做呢?”我经常看见很多很多学生在很多论坛里问这个问题。有很多种方式可以贡献源码,我列出了很多,希望能够对你们有多帮助。

贡献给现有的项目:

虽然你对于贡献源码感兴趣,但并不是所有的开源产品都会接受你。每一个产品都有一些编码和提交代码的规范,而你需要遵循这些规范。

你感兴趣的领域:首先选一个符合你的兴趣或者使用了你喜欢的编程语言和技术的项目。不要仅仅根据开发语言来选择你感兴趣领域的项目。仅仅通过了解Java你不一定能胜任游戏项目的任务,你应该对它感兴趣才行。

Understand the project: Check out the project web site, you may find the link How to Contribute, Guidelines etc. Understand their guidelines, coding standards and patch acceptance criteria. Join their development and user mailing list. Download the source and try to learn how they have implemented.

Committers: Every project will have one or more committers. They are responsible to commit the code. Your code should be committed via them. Few projects may ask the volunteers to mail the modified code to the committers and few projects may request to send the patch to the development mailing list. But ultimately your code will be committed to the main branch via the committer.

Testing and Documentation: Coding is not the only way to contribute. You could do beta testing and file bugs. You could help for better documentation. Localize the messages and help manuals to other languages.

对项目进行了解:找到项目所在的网站,你可能会找到关于“如何参与项目”、“用户手册”等信息的链接。了解他们的指导方针,编码标准和补丁的验收标准。加入他们的开发和用户邮件列表。下载源码并且试着了解他们是怎样实现的。

提交者:每一个项目都会有一个或者更多的提交者。他们负责提交代码。你的代码应该通过他们提交。很多项目可能会要求志愿者们把变更过的代码发给提交者,有些项目可能要求发送代码补丁到项目邮件列表。但最终你的代码将通过提交者提交到项目的主分支中。

测试和文档:编写代码并不是参与项目的唯一方式。你可以做测试和记录bug。你可以帮助完善项目文档。对信息进行本地化或者将帮助手册翻译成其他语言。

Contributing to new project:
Pick a group of like minded people and start a new project with your idea. Choose your license and terms and conditions. Many have succeeded by building open source products.

Re-invent the wheel: If you don't find any unique idea then re-invent the wheel. Try to do what others have done but with added unique feature. There should be some kind of uniqueness or difference which should make people to use your software. Many people will advise not to re-invent the wheel but if it so then there should have been only one product in each category. It is not the case, by re-inventing the wheel you could learn a lot.

参与到新的项目中

寻找一些想法一致的人群然后根据你的想法开启一个新的项目。选择你的许可证的条款和条件。很多人就是通过开发新的开源产品获得了成功。

重复发明轮子:如果你没有任何独特的想法,那么你可以“重复发明轮子”。你可以尝试做一些别人做过的东西,但一定要加入特有的功能。应该跟别人的软件有一些独特之处和差异,这样才能让别人使用你的软件。很多人会倡导“不要重复发明轮子”,但是如果真是这样,那么在每个行业领域内将只存在一见产品。这不是同一个问题,通过“重复发明轮子”,你可以学到很多。

Stale projects: Identify some stale or inactive projects from code hosting sites like Sourceforge or GitHub. Last activity of the project might have been some one or two years back. Pick the one, fix the issues and give new life to the project.

Porting: Most people would be interested to do porting. If you are Java programmer and you see some interesting stuff in Python or Ruby, just port it to Java. Port the code from one technology to other. One programmer cannot master over all available languages, porting the good projects will really help and many will appreciate the effort.

Many have interest, just the interest but very are few are actually implementing things. You just start, people will follow you.

陈旧的项目从Sourceforge或者GitHub这样的代码托管网站寻找一些陈旧的或者闲置的项目。该项目的最后一项活动可能是一年或两年后。选择一个这样的项目,解决掉项目中的问题,然后赋予项目新的生命。

代码移植:很多人可能会对代码移植很感兴趣。如果你是一个Java程序员,你发现了一些用Python或者Ruby语言开发的有趣的东西,那么把它们移植到Java语言来。将代码从一项技术移植到另一项技术中。一个程序员不可能掌握所有的编程语言,移植好的项目真的会对你有很大帮助,而且很多人都会感激你的努力付出。

很多人有兴趣,但仅仅只是兴趣,很少有人会真正去做一些事情。一旦你开始做了,别人就会追随你的步伐。

返回顶部
顶部