As part of the upcoming POSSE in Raleigh, organized by the Foss2Serve team, I’m doing a “deep dive” into two projects as part of our preparation. Because I’ve taught in this space, and done some of these activities before, I’m modifying them a bit. Also, I admit that (at the moment) I would have to be subjected to some very compelling arguments as to why I should involve students in OpenMRS. When I brought students to the project, we could not get it to build, and another faculty member and I found the community largely unresponsive in terms of helping us get to a point that we could even consider contributing. Perhaps things have changed, but unless someone says “yes, it’s better now,” I wouldn’t encourage students to touch the project with a barge pole.
The SourceForge exploration is something I would not casually do if I was, at this point, looking for projects for my students to contribute to. I’d instead be picking specific projects I knew about, used, or otherwise wanted to focus on for selfish reasons. For example, we have a 3D printer bay with 5 Printrbots in operation—software that supports our work with these printers is of particular interest to me and students in my lab. So, when teaching open source software development and FOSS participation, I’m inclined to focus on tools that support the work we do locally. (Tools that “scratch an itch.”)
I consider OctoPrint to be a mature project, for the simple reason that it runs reliably for our use on multiple printers without fuss. It has a plugin architecture for contributing new features (modifying the core is not the preferred path for most feature additions at this point), and has an active community and an excellent, active, and responsive project lead. While not nearly as “large” as some communities, my experience working with students in OctoPrint’s community was that they always received prompt support from the community when they had questions. This is in stark contrast to much larger projects that had dedicated “community leads,” who rarely responded in anything resembling a “timely” manner to student questions on forums/lists/emails.
OpenSCAD is also mature, but again, this is measured by several years of on-and-off use; it runs reliably on every platform I’ve thrown it at. I have not actually attempted to work on the code for this project, nor am I confident I would throw students at it. As a multi-platform build, it is likely difficult for students to validate/verify commits. I say this having had students contribute to LibreOffice, which was a challenging community to make changes and commit changes to on a single project, primarily because it was such a large codebase with so many dependencies. OpenSCAD is at least one order of magnitude smaller (100 KLOC vs. 1 MLOC), which might make things “easier…”
Both OctoPrint and OpenSCAD have active communities on OpenHub, and their blogs are reasonably up to date (Octo more than SCAD). Given that OpenSCAD was a GSOC project this past summer, I would like to have seen more traffic on their “news” page… but, the fact that they were a GSOC project is signal enough to me that their community is living and breathing, because dead projects don’t get that kind of support.
This post is replicated on the Foss2Serve wiki.