With Hacktoberfest 2019 almost upon us, I wanted to share some insight into my own approach to preparing for this month-long open source community event (and encourage others to join me!)
“What do I want to get out of Hacktoberfest?”
I asked myself this question to start my preparations — what accomplishments do I want to end October with? After some thought, I came up with two answers:
Goal: contribute to ‘close-to-home’ projects
I have determined that I am interested in contributing to projects that personally matter to me. More specifically, I would like to contribute to projects that:
- affect the software that I use,
- are relevant to the Toronto open source community, or
- are being developed by one of my peers at Seneca College
I really like the idea of being contributing to software that I use daily. I also value the connections that I have to projects being developed by my peer group as well as the greater tech scene in my city, and would like to use Hacktoberfest as an opportunity to deepen and strengthen those connections.
Goal: progressively challenge myself
On top of contributing to projects that matter to me, I have decided that I want to use Hacktoberfest as an opportunity to build up to tackling issues that are more difficult than the ones that I am currently accustomed to handling.
Many GitHub project owners open to contributions from newer members of the open source community (e.g. new Hacktober entrants) make use of GitHub’s labeling system to advertise issues that can be handled by novice programmers. These labels include “good first issue” and “hacktoberfest“.
In order to progressively challenge myself during Hacktoberfest, I plan to ensure that the latter half of the issues that I work on do not include either of the two aforementioned labels (or similar indicators).
As an alternative challenge, I like the idea of resolving an issue within a (currently-active) project that has since been abandoned by its initial assignee. Locating and identifying such issues is a challenge in and of itself, and I will have to be tread very carefully to ensure that I don’t step on anyone’s toes.
To summarize my goal setting methodology: after asking myself what I value about open source, I reframed the answers that I came up with as goals. To remain flexible, I supplied each goal with more than one way to achieve them.
H(a)unting GitHub projects and issues
In order to hunt down GitHub projects and issues worth haunting during Hacktoberfest, I have made good use of GitHub’s search tools on top of some old-fashioned brainstorming.
After compiling a list of applications that I regularly make use of (mostly those that have earned a spot on my laptop’s task bar or system tray), I picked out a few apps that are (at least partially) developed as open source projects on GitHub (and which accept pull requests):
Regarding Toronto-based projects: I’ve stumbled upon a GitHub account run by the City of Toronto’s Big Data Innovation Team (BDIT) that hosts a number of active open source projects. While these projects (such as the Traffic Internal Dashboard) appear open to outside contribution some communication would be required on my part before I could assist the small and busy development team.
Regarding projects led by my peers: I am currently looking into connecting with students creating project in conjunction with Seneca’s Centre for Development of Open Technology (CDOT) and its Open Source Technology for Emerging Platform (OSTEP) project. I hope to be able to contribute toward a fellow student on their open source project during Hacktoberfest!
Building a progressive challenge
Several of the projects I’ve listed use the “good first issue” label: VS Code, Node, React and Angular. As these types of issues are highly sought after (apart from those concerning docs, it seems), securing one may prove much more difficult than actually resolving it. Regardless, I do want to try to find and secure such an issue as my first, and I’ve found a few resources that may help me do so:
Using the above resources, coupled with GitHub’s search functionalities, I’ve found a nice ‘good first issue’, which I’ve asked to take over:
This issue involves adding filtering functionalities to database-populated tables. Although this issue was previously worked on, it has recently been relabelled, which indiates to me that it is up for grabs, and I have now also received a go-ahead from one of the project’s devs.
While investigate, I discovered a display bug, which will comprise my second Hacktoberfest issue:
I’m familiar with RESTful APIs, but have yet to gain any experience in the Go programming language (nor with dockerfiles or makefiles)! As such, resolving this issue would definitely prove a good challenge for me!
Wish me luck!