💾 Archived View for shtrophic.net › fork-commit-merge.gmi captured on 2024-12-17 at 09:36:42. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

Fork, commit, merge

...are the steps to become an open source contributor. Really simple, actually. (Suspenseful Vsauce music playing...) Or is it?

initial writeup: 2024-06-11

Somehow I have found myself in the situation where I actually enjoy contributing to free and open source software. It feels really nice to have changes that at some point pop up in your mind land in software that then anyone can use, inspect and study.

Currently, I am a somewhat regular contributor to Kvaesitso, which is a GPLv3 Android launcher. (For anyone that's wondering: a launcher is your "homescreen" app). It is, objectively speaking, the best FOSS launcher around; Maybe even the best launcher out there at all, hehe.

https://github.com/MM2-0/Kvaesitso

The main developer and repository owner is MM2-0. I do not know that person. I probably never will. But they are so kind to mentor me with my contributions to that project. Actually, my first contribution (or attempt to do so) was some willy-nilly-passer-by pull request that originally intended to add two lines (which were in the wrong place). This person then insisted that this is wrong and that my changes, even if they were added to the correct locations, would break the workflow of other users.

BUT I WANT THIS CHANGE TO LAND!!

So, after responding with something equivalent to "uhh, I don't know how to code android" (hint: I still barely do) and "anybody show me where to change it, plz?", I actually went into the codebase and started reading, trying to understand how stuff works there.

Now make no mistake here: I definetly did not know anything about android or kotlin at that point, period. I knew some java from class, a little C# from work, but apart from that, I wrote my code in either Rust or C++ without ever thinking about UI and UX and had never seen kotlin in action.

But that couldn't stop my stubbornness! After a little while, my change landed and got released. It felt very empowering!

Anybody with a little coding experience, time on their hands and that pinch of stubbornness can do this as well. Nobody has to start big! If there is a thing that bothers you about something in some software that you use, why don't appreciate the work that somebody else did, and go and improve it? It really is a win-win situation, you spend some time and effort in collaboration with someone whose software you use, and in return, you receive:

It will snowball. Trust me.

This especially should come as a notice to anyone who instead spends their time to raise issues in the issue tracker. And this is the part of this blogpost where my positive temper turns around, unfortunately. Don't get me wrong, reporting issues is definetly an important port of OSS projects, where otherwise the developers might not come to notice bugs in their software.

But what really shouldn't exist are effortless feature requests. Particularly in the Kvaesitso issue tracker, there are so many issues opened up by people that put up an absolutely ridiculous attitude. They usually look like this:

FEATURE REQUEST
Hey @Developer.
I do not like this launcher because of X.
This other launcher does Y instead of X.
Please change it to Y.

Let's inspect that line by line.

Now, if you really have no clue when it comes to programming, there is nothing wrong with opening up issues that ask for features. But please, be more elaborate, and try not to waste everyone's time. Think about your proposal. How exactly should it look like? Discuss possible benefits and downsides of your proposal. Make it look like you made an effort. Because the person that implements your change, if it isn't you, will definetly spend more time than you on your issue.

Everybody has ideas, but nobody has time to implement them. This post of thestinger on the GrapheneOS issue tracker that perfectly describes this problem:

https://github.com/GrapheneOS/os-issue-tracker/issues/29#issuecomment-542890418

You could help with [feature], but you're unwilling to dedicate the time to learning the necessary skills and working on it. If everyone has the attitude that they're unable to contribute for one reason or another, features like this will never be implemented because there will never be developers working on them. It should be no surprise that this feature and many others are not implemented when the attitude of the community as a whole is sitting around and waiting for someone else to do the work.

And further down:

Asking for functionality doesn't accomplish anything beyond taking my time away from development. I received an alert on this issue, taking my attention away from the work that I was doing.

Granted, GrapheneOS is a different scope than Kvaesitso, but the spirit he's describing is the same.

To conclude: next time you want to see a change in software you use, consider to have a look at it yourself. You will definetly learn something in the process.

Home