TLDR - Cloners beware!
Before I begin my rant, I think it’s important to make a distinction between making a GitHub repo public and “Open Sourcing” a project.
Slapping on a random LICENSE file and making the repo public does not an Open Source project make.
I’ve been publishing YouTube videos (please like, comment and subscribe…) for a while now - and inevitably in the niche I occupy there are often bits of code needed for projects. Sometimes these are pretty large and can often even be complete applications (e.g. The Wordle Robot, Or The Laser Projected Asteroids Game).
But often they are just small example projects that show how to use some particular library or API (e.g. Using I2S for audio on the ESP32).
Like any good developer, these projects all end up on GitHub (other source control systems are available), and as good citizen of the world, where I can, I make the code public - there’s no point showing people some amazing project without letting them see how it works.
All told, I now have around 50 public repos on GitHub - that’s a lot of projects.
Some of these are things I still use, some of them are projects that are “finished”, and inevitably, some of them are just experiments that I never got around to finishing.
They are all in various states of bit rot.
You would think that “completed” projects could be left alone - they are done! But unfortunately the world moves around you. A lot of my projects are based around the ESP32 - the core SDK for this has had multiple releases over the past few years, and the Arduino core has also had a few major releases.
The “completed” code now either compiles with lots of deprecation warnings, or it in some cases probably doesn’t compile at all.
Sadly, there is no team of people maintining these projects - there’s just me. And I’ve moved onto more interesting and exciting things.
Which leads us to the real problem - people using my code.
It’s wonderful when someone watches something you’ve done, or stumbles accross some code that you wrote and finds it interesting or useful.
But I always get a sinking feeling in my stomach when the inevitable questions come up.
99.9% of people are amazing - an issue appears on the repo, and when I have time I’ll try and help - sometimes something incredible happens and someone else answers the issue before I do.
But a small minority of people forget that: I have a day job, a family, a life away from the computer. And I’m working on new things all the time.
I do love people, and as I say it’s great that people want to use something you’ve done, but when the messsages start, it can be soul destroying.
It might be a comment on a random recent video (or on every video!), a message on Twitter, an email, a message on LinkedIn. They just don’t stop. Why won’t I help them? Where am I? Is the code supported still? When will it be fixed? Why did you publish something you didn’t want to support?
It can be quite demanding. I’m someone who likes to help people, not respoding makes me feel guilty. I know there are people who are blocked on their projects, or who can’t make progress, and I feel their pain. I know there are students desperately trying to complete their final year projects. I know there are people who are trying to make a living from their projects. I know there are people who are trying to learn how to program.
The thing is, I can’t give everyone the amount of help they need or deserve. I would quickly burn out.
The brual truth is: I don’t have a support contract with you. There are no guarantees or waranties when you clone a GitHub repo.
“Cloners beware!” has to be the motto.