By easy to contribute to I mean things like:
- Well-written/relatively easy to understand codebase
- Easy to see what work needs to be done
- Developer documentation
- Likely to accept patches
etc
By easy to contribute to I mean things like:
etc
I also would like to know.
Add to the list a friendly and responsive community who would be tolerant of newcomers.
Also, when people answer this could they include what languages/technologies one should know before getting involved?
Don't you think if people knew of such a project they wouldn't advertise it in case they attracted an undesirable element.
I think there should probably be a saying for this: "If you find the perfect open source project you shouldn't join it, because you'd probably make it worse."
Notepad++ comes to mind. Although, you don't have many chances to get into the project - patches are usually accepted.
On the other hand, it is really easy to get into the Notepad++ plugins project... ;)
You'll contribute a lot more to those projects that are interesting to You. So, the best way is to browse the projects on SourceForge.net, projects on Google code, CodePlex, Tigris.org or other open source project hosting sites, and just find something You like.
The best way to contribute in an open source project is probably to make plugins for it.
Find an open source your interested in which has plugin support (Firefox, Eclipse, Kate, Jedit...), read the doc on how to make plugins and start doing it.
You'll then be familiar with the code and the way the project is done. You might have a chance to contibute in the main project after that when you'll be well known in the project and you'll already know how things work.
There are lots of open source projects covering many languages and technologies so its gonna be hard to pick a few really - it depends also on what kind of things interest you and what technologies you prefer to work with.
It might be worth starting at the various Apache projects which tend to have a pretty good, documented process of accepting contributions.
For example I tend to work alot on the Apache Camel project which is an Enterprise Integration Framework for Java and Spring which has a guide on contributing.
I'd say most good projects - and certainly all of those at Apache have some kind of documentation and accept patches along with having some kind of issue tracker so you can see what outstanding bugs, issues and features have been requested. For example here is the Apache Camel roadmap in JIRA
The project I maintain, x264, is probably as close to this as one can get given how hard one would think it would be to contribute code to. Despite only having a couple real developers, we get dozens of patches from the community, some of which are quite substantial.
The Gnome project has a cool initiative called Gnome Love where projects can tag bugs that are suitable for new contributors to fix.
The majority of Open source projects looking for help are looking for help with locating and reporting bugs, and documentation.
If you have time on your hands I'm sure you can find projects that need these things too.
If you can get familiar with the codebase, fix the bug and submit a patch alongside your bug reports. In time it'll get picked up that you want to help and you'll get given repository access.
For finding projects willing to accept contributions a good way is to look at the "help wanted" listings of projects that are looking for more developers, such as this one on CodePlex: http://www.codeplex.com/site/search/openings