Week 5
Evaluating a Week of Evaluations:
To review, this week has been a week of reviews…no more puns from here on out, I promise. In all seriousness, this week’s classes were all about going through the rigors of evaluating FOSS projects in a more comprehensive and in-depth fashion. For my part, this meant reviews of the GNOME Clocks and TEAMMATES projects. In essence, it was a step beyond only checking for the basic necessities - or, when they are missing, the obvious red flags - such as a license, contributing or code of conduct document. These activities pushed all of us to get into the guts of what makes a project viable for an outsider to become a contributor. Can you set up the development environment? How well documented and readable is the code? Significantly, what does the life of an issue or pull request in the project look like? For an outsider well tagged issues and timely, helpful and appreciative responses from maintainers can be the difference between a great FOSS experience and a discouraging FOSS experience.
The sheer breadth of reading and review required for such an evaluation can be difficult, but I found it to be a rewarding and enlightening experience. On the more technical side, figuring out how to perform filtering to determine the number of issues opened over the last several months takes a little investigation, but Github’s documentation on searching issues and pull requests is great, and I got some hands on experience with more advanced searching. There is also perhaps the hardest task of trying to give fair consideration to a project written in a language or languages with which you have little to no experience. This where close reading of documentation - both comments and design documents - comes in handy. A project such as TEAMMATES is great in this regard, offering a big-picture design document that helps a contributor who has little experience in Java (a notoriously verbose language) to get their bearings, whereas a project like GNOME Clocks, employing mostly Vala, appears to offer contributors familiar with C an easy entry, but disappoints on the documentation front.
On the less technical side, I got an interesting peek into the world of FOSS issue and pull request community interactions. On the one hand, the deluge of requests to work on issues and thereby become first time contributors, or even just continue to serve as helpful veterans, is certainly inspiring. The same goes for the deep discussions and appreciative responses from maintainers. This is the FOSS world at its best. On the other hand, I couldn’t help notice how many issues had to be politely but firmly deflected or closed with yet another reminder for the contributor to review guidelines and procedures. It made me wonder how much burnout maintainers must suffer from and how severe the cascading effects can be. How far does the terse tone carry over into other discussions? If maintainers ignore or quickly shut down issues of little help or value, do those issues become misleading examples to an outside reviewer of the project, such as myself, of how the project is unwelcoming or unfriendly? One has to be a bit of a sleuth to not come to quick and shallow impressions of a project.
Top Three FOSS Projects:
As this semester flies by - what happened to February?! - I, like my classmates, am trying to come to terms with what would be the projects to which I can contribute. It is a tough question to wrangle with, but I do believe this week’s activity helped me organize my priorities. As I see it, the leading five criteria for considering a project at this point, above all others are:
- The activity of the project.
- The amount of documentation present.
- The clear identification of beginner issues.
- The languages / development environment in use.
- The installation process is manageable.
A project can be very welcoming and have a great lighthearted community but if the project is inactive, offers no clear roadmap to the codebase, doesn’t identify where newbies can contribute, is written in a language foreign to me, or I can’t even get it to install, then it’s going to be a difficult match. I imagine some may debate the second to last point, and I will admit that at least C-like languages don’t pose an impossible challenge, but my experience with trying to learn languages under pressure and in a short amount of time rarely yields a good experience. (With my strong suits being Python and C++, I would prefer to stay within those worlds; light experience in JavaScript, however, may yet offer a bit of an out to other projects.) This does leave me in a bit of a jam, at least as far as the projects that have been listed in the class Wiki, evaluated by the class, or listed in my own review (OpenCV, ROS and Jupyter) go. I have yet to see a project which truly comes close to checking off all five criteria. Therefore I have concluded that any project will necessarily involve gritting my teeth and grinding through the process of setting up a development environment and dealing with thoroughly mixed quality issues, documentation and installation processes.
At this time, my tentative top three projects on which I would be willing to work are:
- OpenCV: Probably not a surprise that this still made the list but admittedly this is me just being stubbornly hopeful that I can contribute to this project. This week’s insistence on installing the project does have me concerned about this one, as OpenCV’s lack of current installation documentation is frankly miserably embarassing. I am curious to see the reviews other students write on the project.
- Atom: I love the editor and would be willing to put in the time to learn how to contribute.
- Jupyter: This is another choice based on love for the product, which will hopefully keep me motivated through steep learning curves!
Other Course-Related Activity:
This week I proposed edits to Steven’s blog and Liulan’s blog. I also added my favorite local Mexican restaurant to OpenStreetMaps. If you’ve noticed that many of my OSM contributions are food related, well I do consider myself a bit of a foodie! Also, I like to think it helps these businesses, which I would like to support, with discovery, which seems to be a considerable issue for new, and even some veteran, restaurants around me.