This post was most recently updated on September 25th, 2021.
3 min read.Another year, another Hacktoberfest, another haphazard participation, and – as usual – another blog post a little bit late. Still, better late than never! And the event has become such a phenomenon that I am happy that I did finish the challenge (or like DigitalOcean calls it – the celebration)! The event has a special place in my heart, as it did (in 2017, I think?) encourage me to contribute more to the community – not only by maintaining this blog but also by occasionally submitting a Pull Request or two to whatever repositories I’ve found useful in my work.
This year, however, I was more on the fence than ever before. Last year, there had been some complaints about the spamminess of the event; that it encourages quantity over quality. No matter whether your PRs (Pull Request) is accepted or not, you’ll get your shirt. It’s actually easy just to spam a few readme.md updates and be done with it.
But this year, the problem got completely out of control. Twitter became kind of crazy with plenty of users tweeting about the absolutely useless pull requests their repositories were bombarded with.
A few examples to follow:
#shitoberfest started trending on Twitter. Someone created the handle @shitoberfest and started cataloging the worst PRs.
And there was a ton of absolutely worthless garbage out there:
This was pretty bad – but in my mind, the flood itself wasn’t the worst issue.
The worst part was GitHub’s “flag as spam” action for spammy PRs, as it (apparently) was rate-limited. As a maintainer, you couldn’t even take action against the spam that just kept on coming.
All of this, just for a couple of free t-shirts.
Oh, and talking about t-shirts… Someone started selling Spamtoberfest -shirts. They look just like the “official” shirts, but I suppose these are geared more towards the poor maintainers dealing with the influx of spam.
But, obviously, you wouldn’t get that t-shirt for free, even if you had to deal with hundreds of spammy Pull Requests. Just another insult to injury, right?
But, it got better!
So, with all of this going on, I decided to walk away. I didn’t want to be a part of this flood of manure piling on any and all OSS maintainers on GitHub, even if I wouldn’t quite stoop low enough to submit completely useless PRs. And I had busied myself on paternity leave anyway (that seems to happen very naturally!)
But then, as usual, things turned upside down.
GitHub reacted quickly and introduced a new feature to cull the spam: Limit interactions to your repository
This enabled maintainers to effectively stop the spam overall, although it did also limit normal users’ contributions.
And DigitalOcean (the company behind Hacktoberfest) counted 1 + 1 and changed the event to be opt-in for the maintainers.
The message below appeared on the status page of the event:
Hacktoberfest: a 2020-style force for good
It started bad – but finally, there’s a glimmer of hope, and maybe in the end it turned good. That could be said about 2020 in general – but also Hacktoberfest in 2020.
The changes to GitHub’s repository management options and the Hacktoberfest rules were great if you ask me. I think these changes are very good for the longevity of the event – with the change to opt-in & GitHub’s improvements on culling spam, the event should be much more pleasant to the community on the whole next year.
Less collateral damage for a fun event should make sure the event doesn’t become a liability for the maintainers or the organizers. Also, the option to plant a tree instead of receiving a tee (shirt) was a very welcome addition!
My Hacktoberfest 2020 contributions
With some repositories opting-in AFTER my contributions, I ended up totaling 8 PRs. I also planted a few trees – a plum tree and a couple of maples to accompany some Terijoki willows I already had – to offset the t-shirt 😁
Where | What | |
---|---|---|
2 Pull Requests | dotnet/dotnet-api-docs | Fixed a script sample & link to contribution guidelines |
3 Pull Requests | dodyg/practical-aspnetcore | 1 sample for instantiating a database context inside an Azure Function app 1 sample for modifying Azure Function App’s Startup code Additional documentation for the functions + sample structure in general |
3 Pull Requests | Various repositories | Even smaller improvements 🙄 |
That’s all for 2020. Hopefully next year I’ll remember NOT to have an infant in October.
- “Performing cleanup” – Excel is stuck with an old, conflicted file and will never recover. - November 12, 2024
- How to add multiple app URIs for your Entra app registration? - November 5, 2024
- How to access Environment Secrets with GitHub Actions? - October 29, 2024