Hacktoberfest 2020 was the second one for me. A year ago, I made my first open source pull request and was super excited about the whole event. I couldn't wait for this year to come - I had so many plans! These plans changed during the year (multiple times, I guess), but the determination to join the open source celebration this year did not.
I never planned on being a maintainer for an open source repository. Some things happen unexpectedly, and for me, this was one of those things. In this blog post, I will share how Hacktoberfest was for me - an accidental maintainer.
How it all began
Let's go back to spring this year. The pandemic had closed Finland down, and there was lots of time to spend. One of the organizers of Turku.py (a meetup for women and non-binaries in Turku, Finland), Magda, was looking for someone to help with building a website for the community. It sounded fun, and we spent one Saturday pair programming remotely. At the end of the day, we had the first version of the website up and running!
If you want to take a look at the repository, here it is:
turkupy / turkupy.github.io
Home of Turku.py community.
At the beginning of August, I was asked to help with an event for Hacktoberfest in October. I promised to introduce the GitHub repository for the Turku.py-website and to help anyone who wanted to contribute to it. This also meant that there were some maintainer duties I should take up, as the repository needed to be prepared for any contributors. So this was the starting point of my role as an open source maintainer.
Come October
Deadlines are great for forcing me to do something. In this story, the deadline was, as may be expected, the beginning of October. Everything should have been done documentation-wise then, but... It was maybe the 2nd of October when I woke up and opened my computer and realized that "oh no, there actually are some people who want to contribute"! We had put the hacktoberfest
-label to many of the issues without knowing that it would make the issues to show up in many places.
I spent that morning writing our documentation, learning about the issue and pull request templates, and writing issues to be more descriptive for others to understand. I'm not saying it is perfect - but I believe it is good enough for now.
From that day started pretty intensive two-ish weeks. I was a bit stressed every day because I wanted to answer to each of the potential contributors, and review their pull requests as fast as possible. At the same time, I was juggling work with a project launch coming and packing my stuff as I was about to move in the middle of October. How did I have all the time? Well, I didn't sleep well. I kept waking up at 5am, and couldn't sleep anymore, so I had some two extra hours for the days. (It got better after the move, just to let anyone worrying to know.)
It was somewhere in the second week of October when we realized that some issues in need of more details had the "hacktoberfest"-label on them. We did the most obvious thing and removed the labels from those issues. This pretty much reduced the number of contributions, as no one was finding our repository.
The last three weeks were slow in terms of maintainer duties. As the project wasn't getting any new contributors, the number of things in need of attention was rather small. I reviewed some pull requests, and I had time to fix a few bugs myself, but the second half of the month didn't require that much.
Some numbers from my Hactoberfest
So, first things first, the most important numbers:
I ended up creating 4 + 12 pull requests. If I look into them, most of them fall into categories of small bug fixes and documentation.
I also took some time to go through the numbers of Hacktoberfest with Github API explorer. Here are some numbers about issues, pull requests, and reviews. (If they're too detailed, feel free to skip to reflections.)
During the first week, I did a lot, and it shows in the numbers. I created 3 pull requests, 21 issues, and made 1 review. The second week continued with the same theme: 9 pull requests (one of them a draft, so it's not counted on the official progress), 5 issues, and 4 reviews. The third week was slower, as we had removed the hacktoberfest labels, so no one was finding that repo. I also moved during the week, so I didn't have much time for anything outside work and (un)packing. 0 pull requests, 0 issues, and 1 review were the final numbers. Next week, the fourth, I had more time to contribute: 4 pull requests, 0 issues, and 4 reviews. In the last week of October, I was tired and was happy that October would be over soon - and I did nothing with the repository.
Reflections
I have to point out that the final number of our contributors was small, at least compared to the "big" repositories. (And I'm grateful for that, don't know how I would have survived if there had been a lot more). Ok, those repositories usually have more maintainers too. This means that the burden is smaller, but it doesn't diminish the fact that this experience has raised my appreciation for maintainers to a whole new level.
What I would do differently, if I was starting this experience all over again, is that I wouldn't buy a house and be responsible for a repository participating in Hacktoberfest. Or at least I would lower the expectations for myself in the role. I mean, I don't have to answer as fast as possible. As in, for example, one night, I was about to go to bed, and I got a mail that there was a comment in an issue, and I felt like I have to go and answer that comment right away because that's just expected from me. By me, I guess?
This was a great learning experience - about self-care, communications, and also Github. I touched the first above, but the second, communications, was broader than documentation, which is, of course, essential. Out of all three maintainers, I knew the most about Gatsby and the codebase. Because of that, I also had the most context for the issues. But that was in my head, and I sometimes unconsciously didn't explain it when I was writing the issues. Like, how do you not know what I mean from half a sentence that doesn't explain anything? 😅 So I practiced communicating all the needed details and giving the context a lot.
Github provides some amazing tools for maintainers. I'd love to take these to work projects as well. I found the issue and pull request templates useful; They can help with giving all the necessary information when creating an issue or pull request. This helps with, for example, reviews - when the pull request itself describes what it contains, it doesn't necessarily take so much effort to understand it by reading the code.
Would I do it again? Yeah, I would. However, as said earlier, I would make some adjustments to my own expectations. I would also think twice about how much time I would have for all the maintainer stuff if I knew I had something major happening in my life at the time.
One more thing: Thanks to anyone who made a contribution to our repository! We appreciate it! 💖
Cover photo by Joshua Woroniecki on Unsplash