This post was most recently updated on December 8th, 2020.Reading Time: 4 minutes.
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 I’m happy 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) are 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:
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 the 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 totalling 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 😁
|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.
- How to fix “System.IO.FileSystem: Could not find a part of the path \AppData\Local\AzureFunctionsTools\Releases\3.17.0\workers. Value cannot be null. (Parameter ‘provider’)” when running Azure Functions locally? - January 12, 2021
- How to nuke the Identity Cache in Visual Studio? - January 11, 2021
- Fixing unexpected Microsoft.AspNetCore package errors after a dependency update - January 6, 2021