Week 5
Judging a Project by its GitHub Repo (…more or less)
As it turns out, choosing an open source project to contribute to is tough work. There are many things to consider about a project, such as its license, activity level, code, documentation, and community. This week I had the opportunity to evaluate both Zulip and Godot as potential projects to contribute to for the rest of the semester. Through these evaluations, I found that juding a community’s welcomeness to be the most tricky thing to determine. The big takeaway from these evaluations–Don’t Judge a Project solely by its GitHub Page.
Learning The Tricks of the Trade:
-
It’s a Scavenger Hunt: While a project’s GitHub repo can reveal a lot about the project at a glance–it doesn’t reveal everything. For example, the most revealing evidence in favor of Zulip’s community welcomeness to new-comers came from the Zulip’s developer chat channel–not from discussions happening on GitHub. Since most of the communications embedded within the project’s pull requests and issues on GitHub were actually between community members and the ZulipBot system, it was hard to gauge how welcoming the core maintainers of the project actually were to new-comers. A few more minutes of hunting through a dozen more closed issues and pull requests would reveal a polite community, but so would simply reading the project’s chat channel. (While I did do the former first, my confidence was solidifed by the latter
). After a few seconds of roaming through the dev chat channel, I instantly found support channels for new-comers, lengthy conversations between new-comers and established community members and resources specifically dedicated to new contributors. Delving into the project’s dev chat channel was also a great way to get a sense of what it would actually be like to be a part of the community.
-
Under the Mattress: While the dev chat was the prophetic gold mine of information for the Zulip project, the Godot project stored its invaluable information on community welcomeness in the good ole’ Github pull requests and issues. Just by reading a handful of conversations between contributors and maintainers, I instantly found evidence of a positive and welcoming community (so GitHub’s still a good place to start
).
-
Filtering Out the Past: Learning how to customize my filter when searching through a project’s pull requests and issues made it easier to evaluate a project’s activity level. Since determining the project’s activity level requires accuracy and careful evaluation, I found determining this information to be difficult and tedious. Learning how to take advantage of this feature improved my overall FOSS project evaluation workflow.
Contenders
(In no particular order)
- freeCodeCamp ( It’s a community that I can not only get behind, but would love to be a part of. Plus, I have a lot of experience with using JavaScript. )
- Zulip ( There are some interesting things happening in this project that seem like it would be cool to contribute to. Drawbacks would include my limited ability to contribute to the codebase itself, since I am unfamiliar with Python/Django on a professional level.)
- TEAMMATES ( It’s an open source educational tool and something I think I would enjoy contributing to. While I’m only familiar with some of the tools used in this project, the stack is one that I’m interested in learning. The documentation looks promising and easy to understand. After reading my peer’s evaluation on this project, my only concern lies in downloading the project itself.)
Contributions Made This Week:
This week I submited another phrase suggestion to a fellow peer’s blog. Like always, it’s a pleasure to read a peer’s blog and learn more about their passions and FOSS interests. I also explored some other FOSS projects outside of the classroom such as the Node.js project. While I didn’t get to create a project evaluation for this project I hope to create one soon for fun. This is not only a project I use often in fullstack web devlopment, but it is one that I can contribute code to (since the project is JavaScript based).