#summary Melange is a work in progress, done in the open!
#labels Featured,Importance-Featured,Contents-Complete

To those of you who are taking a look at this project with an interest in contributing:

  * this was a new project, not a port of existing GSoC source code, so it started from scratch.  There are part that are not done yet, or incomplete.

Parts of the code are not finished yet, but we're slowly getting there. As of January 29, 2010 we have successfully ran GSoC09. We are working towards making it better for the next GSoC and are also thinking about running the Google Highly Open Participation Contest.

We have had some emails like "I wanted to contribute, but I can't find anything".  We'd like your help to change that.  

=How to Help=

Tell us what you expected to find.  Tell us where you'd expect to find it.  Help us get more organised.  Use whatever route you find works best.  There's an IRC channel (#melange on irc.freenode.net). There is a developers mailing list, and some for commits, comments and issues.  Comments on wiki pages are welcome.  New issues on the issue tracker are encouraged, but please check if your issue is in the tracker already (make sure to check closed issues as well!).


=What we are Working on=

Have a look at the [http://code.google.com/p/soc/issues/list issue tracker] open issues and sort by owner.  This will give you a good idea of what we are each working on at this moment.