#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!). 

If you're interested in working on something that is unlikely to be fixed by the team anytime soon, have a look at the [http://tinyurl.com/melange-todo-issue-grid unassigned issues] grid. We welcome patches, even (especially!) on issues that we have marked as '!WontFix'. See GettingStarted for details on how to get hacking, and ContributionReviews on how to submit patches!

=What we are Working on=

Have a look at the [http://tinyurl.com/melange-issue-grid issue tracker] grid.  This will give you a good idea of what we are each working on at this moment. The high priority issues will in general be worked on first, although medium/low priority might be done sooner if they are easy to fix.