Monday 26 January 2015

Contributing to open source projects

Lab 1, Contributing to open source projects
I have chose 3  projects wmii, Go, and plan9. The lab suggested 2 projects but I did three because
wmii is very small and I couldn't really get that much content about it, but I still wanted to advertise it because I think it's a ton of fun.
Wmii is a small, simple dynamic tiling window manager that borrows ideas & aesthetic from the plan 9 operating system, specifically the acme text editor.
Plan9 is a very interesting operating system that was developed shortly after UNIX by the same team(Pike, Thompson, Richie). They were essentially given free reign to create this OS and they came up with something that is very unique and is full of very interesting ideas. It has been open-source since 2002.
Go is a new programming language being developed at Google by prominent Software engineers namely Ken Thompson(UNIX, B, UTF-8) and Rob Pike(UTF-8, Plan9) with help from the open source community.

Go 

Go is distributed under a BSD style patent grant license. License | Patent grant
To start contributing to the Go Language you don't start with coding, Their site suggests you discuss your idea with other members of the open source community via their mailing list. This helps you to make sure someone else isn't doing it and that you can verify that it is a good idea so you don't waste your time. Go uses github extensively for all their issue tracking and source code. As you can see here, as well as the language itself you can contribute to various aspects of Go, such as networking libraries, the compiler, mobile libraries, cryptography libraries and much more, there is plenty to do! All code must be reviewed, they use a custom git command called git codereview, this is provides easy commands when working with git and the Gerrit code review system that Go uses. Once you have made your change you mail it to be reviewed using the 'git codereview mail' command. You may receive comments from the reviewer, you can then modify your code accordingly and use the mail command again to resubmit your new code, it continues like this until you receive a comment saying Looks good to me or LGTM. When your code has been approved you can now sync(git codereview sync) and then submit your code to the master branch(git codereview submit).
More info: Contribute to Go

WMII

Wmii is distributed under the MIT license.
Wmii uses google code to host their source, track issues and submit issues. They also use the Mercurial version control system for their repositorys. Since it is a relatively small project simply cloning from Mercurial making edit's and committing should allow one of the project member's(there are only 4) to see your code and either accept or deny the patch. You can keep track of issues and keep in touch with the project members here. I apologize but I just could not find that much information about submitting patches and such. I suggest you give it a try, it's fun and pretty simple once you go through the user guide and maybe if you start using it you can find some bugs that need fixing.

PLAN9

Plan 9 is distributed under a dual license GNU GPLv2 | Lucent license
I thought plan9 would be a interesting deviation from the usual projects that upstream through git or mercurial or other repositories. Since it is a operating system, you will have to be running it. Image files can be found here and info about Installing it can be found here. Plan9 has a file server called sources as a host for their sources repository, you can browse through it on the web but it seemed to be a bit buggy. In plan 9 you can simply mount that server on your directory using '9fs sources' and browse through it as if it's local through the path which should be /n/sources/. Similarly to Go and I think this applies to all open source projects, discuss with your idea with other people, or if you don't have an idea you can ask for suggestions(mailing list info). Once you have some code to post you use the command in plan9 simply called patch. They set guidelines for you which basically say that you should explain your patch/bug fix/ update clearly, Follow style guidelines and update man pages when necessary. Once you submit with the patch command you can receive 2 messages: 'Sorry' or 'Applied'. If you receive 'Sorry' they will tell you why and what things you can change to fix it and if you receive 'Applied' then you've done well and the patch has been accepted.
More info: how to contribute

In conclusion I think with some small projects you might have to e-mail the project member's directly or chat on IRC to find a clear path to contributing. Concerning bigger projects, most of them really want contributor's so they have clear explanations posted to guide you through contributing, so I suppose I'm just a Stenographer, for now.

Thanks for reading.



No comments:

Post a Comment