7 ms·
Ask HN: Best OSS Projects for Beginning Contributors
I am building a curriculum to teach people to code through meaningful, mentored open source contributions.
My first step is to find projects that would be a good fit. The students who are most interested are dev bootcamp grads who want to build portfolio pieces. They know the basics of (generally) Rails, Node and Git, but need experience in a bigger codebase than what you find in example bootcamp projects.
So what projects are appropriate? Is there a way to discover them algorithmically so that there is never a shortage of meaningful work for students?
I used the Github API to generate this list:
http://upward.io/help
These are projects that have no readme, but have decent ongoing commits. What are other ways to identify projects that have low-hanging fruit for would-be contributors?
- phantom_oracle 13y agoLarge amount of stars/following with a handful (or less) of contributors? Rebuilding dead projects from other languages into modern languages? I was working on something similar and would like to restart my effort to get folks building up real projects. Perhaps we could work together if interested (unless you're driven by profit, which I am not).
- laurenstill 13y agoI would focus on larger, well known established projects covering a variety of interests. For me, personally, I wont get much out of just pushing code or documentation to a project I don't care about. Second to that, is not working with asshole. I'm not sure how I would script that. OpenMRS was my first true OSS introduction, even though at the time I knew nothing about java. It's in my field of choice, and large enough I got some decent mentorship and appropriate projects. Doesn't hurt that they also regularly participate in GNOME/FOSSOPW, so I knew there would be people interesting and willing to mentor.
- Xdes 13y agoI'm terrible at open source because I usually fix things that don't need to be fixed (aka refactor). Then people yell at me to go away.
- prezjordan 13y agoYou're dealing with terrible project maintainers then. Refactoring is super, super important and any project that rejects it must have a strange codebase. Either that or the project owners/maintainers have a lot of pride.
- fundamental 13y agoThat strikes me as a bit of an odd stance to take. While refactoring is certainly a portion of the work done to most any project, I wouldn't think that refactoring would be attractive as a first commit for someone who may be viewed as an outsider to a project. Even if you overlook that getting code that matches a projects style guides might be rarer than it should be refactoring (at least in most cases that I need to deal with it) requires a good understanding of how everything fits together and a better idea of how it should work. There are some simple cases in which this might not be the case at all, such as grouping together a whole bunch of copypasta style code, but even under those circumstances any refactoring is likely to yield a fair bit of work for the maintainer to verify (regressions/style/changed organization) with fairly limited benefit. As such it doesn't really seem that effective to try to impose something like this on a project without a good justification. If a good justification can be made, then sure refactor away, but otherwise the maintainer would logically think that the work was a waste of everyone's time.
- prezjordan 13y agoFrom experience, I get really excited receiving small refactoring changes from newcomers, usually with the message "Hey this is my first time contributing to an open source project!" I guess "small" is key. I agree a large refactoring would be troublesome to verify.
- mareofnight 13y agoWhat does make a good first commit? I ask because I'm just starting to try to work on open source. The first commit I made on the one project I've already started getting involved with was adding more content (especially where there was a "TODO: more of this" comment), and correcting spellings. I wouldn't know how to start on something less content-based, though.
- fmendez 13y agoYou might want to take a look at: http://www.codetriage.com/ http://www.codetriage.com/ which is build precisely to help you find out OSS projects to contribute to.
- bitsweet 13y agoHelpful (http://helpful.io http://helpful.io). Ruby on Rails helpdesk software trying to make things like ZenDesk & Desk.com suck less. Github: https://github.com/asm-helpful/helpful-web https://github.com/asm-helpful/helpful-web. There is always a list of things to do (https://assemblymade.com/helpful/wips https://assemblymade.com/helpful/wips) and a community around to help. We also share the ownership (and profit) of the app between the contributors. Anybody is welcome to be "Helpful" and join in building it. Full disclosure, founder
- veeti 13y agoThis is not open source.
- dkuntz2 13y agohttps://github.com/asm-helpful/helpful-web/blob/master/LICENSE https://github.com/asm-helpful/helpful-web/blob/master/LICEN... ? That looks pretty open source to me. It's not the most permissive license, but neither is the GPL...
- veeti 13y agoFrom their license: > Any redistribution or use is for noncommercial purposes only and is not redistributed or used in connection with any application that is substantially similar to the Selected App Idea. From the open source definition [1]: > 6. No Discrimination Against Fields of Endeavor > The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research. This is "visible source", not open source. [1] http://opensource.org/osd http://opensource.org/osd
- dmourati 13y agoMy approach is to work on bugs I encounter and that I am capable of fixing. So far that has lead to contributes to SimianArmy, Ganglia, Anemometer, and Logstash. Just be a good community member and get in where you fit in.
- Oculus 13y agoCode Combat (YC W14) is a game that teaches people to program. It's been entirely open sourced and the devs/community make it extremely simple for new comers to contribute. I strongly recommend you check them out! https://github.com/codecombat/codecombat https://github.com/codecombat/codecombat
- chris_wot 13y agoIt's a pity you don't teach C++, the LibreOffice team are amazing!
- donniezazen 13y agoAny of the KDE Community projects. http://community.kde.org/Getinvolved http://community.kde.org/Getinvolved
- egor83 13y agoOpenHatch tries to solve this problem - help people find a good project, and in general, make it easier for new people to get into OSS. http://openhatch.org/ http://openhatch.org/
- camus2 13y agoWhat about contributing to writing docs instead? yes i'm serious. When it comes to writing documentation for opensource projects, suddenly,there is no developper available. Yet documentation is central to any opensource project. Maybe I should launch a "Please write help us write docs" plateform.
- ashray 13y agoThis is ultra important! I can't even begin to count the number of times I've come across great open source projects with ZERO documentation. I tend to read the code (if the project is in a language I know well..) but that's not an option for many people looking to quickly integrate. Maybe OSS contributions should actually start with writing the docs, sort of like how interns start with fetching the coffee ;) Of course, you can do more if you like but writing docs is a great starting point to learn more about the underlying code anyway!
- nolanl 13y agoPouchDB is a fairly up-and-coming JavaScript library, and the maintainer makes a good effort to mark issues as "goodfirstpatch" or "goodstudentproject": https://github.com/daleharvey/pouchdb/issues?labels=goodfirstpatch&page=1&state=open https://github.com/daleharvey/pouchdb/issues?labels=goodfirs... . I've been on the project for a couple months, and I find folks to be very friendly and quick to respond on Github/IRC/etc. Plus it's part of the bigger Apache CouchDB ecosystem, so it's a good crowd to run with!
- hardfire 13y agoI have found the mozilla community to be very helpful and each project has a very good list of mentored bugs. The community has found http://www.joshmatthews.net/bugsahoy/ http://www.joshmatthews.net/bugsahoy/ to be a very good tool for beginning contributors to get the right first bug and step into the whole community. Best way to get involved remains to ping to #introduction on IRC (irc.mozilla.org) Regarding discovering them algorithmically tends to be quite an interesting idea actually, should think more on this.
- paulproteus 13y agoHey begriffs! I'm a volunteer with OpenHatch, which egor83 mentions below -- a non-profit to help people get involved in open source. At our Open Source Comes to Campus events, we aim to find great projects to connect newcomers with. (More info on the event series here -- http://campus.openhatch.org/ http://campus.openhatch.org/ ) Your question struck a chord with me, since I think your curriculum and the curriculum we use for our weekend-long events would have some overlap: https://openhatch.org/wiki/Open_Source_Comes_to_Campus/Curriculum https://openhatch.org/wiki/Open_Source_Comes_to_Campus/Curri... But the hard part is helping find great open source projects to contribute to. To help with that, we wrote a guide for projects: http://opensource-events.com/ http://opensource-events.com/ and are trying to reach out to project maintainers to help projects become "OpenHatch affiliated"; https://openhatch.org/wiki/OpenHatch_affiliated_projects https://openhatch.org/wiki/OpenHatch_affiliated_projects -- maybe one great next step is to take this list of goals for projects, and work together in reaching out to projects to become OpenHatch Affiliated. Then you can have your students join the collection of people reaching out to those projects. We find that having a specific person in the project care about the newcomer experience matters more than what we could find algorithmically. We still have the automated tool here: https://openhatch.org/search/ https://openhatch.org/search/ , in case you're interested. Semi-sorry that this is a long comment, but I wanted to fill you in on a bunch of things, and I'm about to go to bed, so this has a higher chance than usual of being rambly. OpenHatch-y people who care about outreach like this convene on the "Events" mailing list <http://lists.openhatch.org/mailman/listinfo/events/> http://lists.openhatch.org/mailman/listinfo/events/> and I hope you'll join us there and say hi! And/or reply with your thoughts here. I'd love to collaborate on this, as it's something that we're always interested in improving for our students, too. I'm based in SF, in case you want to meet up for coffee etc. P.S. The OpenHatch web app is itself is an open source project, in Django & Javascript, and we are always welcoming contributors. (-: Also, oppia is the project that we're furthest-along with in terms of OpenHatch affiliation.
- jongleberry 13y agoif you're interested in creating small, modular browser modules, feel free to contribute to any repo in https://github.com/component https://github.com/component. most work with browserify as well, and bower support is trivial.
- aksx 13y agoelementary OS, an Ubuntu based GNU/Linux distribution. We use bala for the programming language which is very similar to C# but compiles to C. Most of the contributers are students including me and we have a very welcoming environment. Just drop I'm #elementary-Dev introduce yourself and join the effort.
- jimaek 13y agoA very easy way to contribute is to help keep jsDelivr updated. People can submit new libraries they find and update older ones (at least until auto-update will be ready) https://github.com/jsdelivr/jsdelivr https://github.com/jsdelivr/jsdelivr
- hammadfauz 13y agoI would like to add a couple of filters to the OP (for personal use): The project is mainly in JavaScript, preferably uses Node.js
- tectonic 13y agoWe'd love the help on Huginn! https://github.com/cantino/huginn https://github.com/cantino/huginn