Patches-welcome.md (3511B)
- ---
- date: 2019-01-01
- layout: post
- title: Patches welcome
- tags: ["philosophy", "free software"]
- ---
- Happy new year! This is always a weird "holiday" for me, since all of the fun
- happened last night. Today is just kind of... I guess a chance for everyone to
- sober up before work tomorrow? It does tend to invite a sense of reflection and
- is the ideal time to plan for the year ahead. One of my goals in 2019 is to
- change more people's thinking about the open source community and what it means
- to count among their number.
- I think there's a certain mode of thinking which lends itself to a more
- productive free software community and a happier free software contributor. Free
- software is not *theirs* - it's *ours*. Linux doesn't belong to Linus Torvalds.
- Firefox doesn't belong to Mozilla, vim doesn't belong to Bram Moolenaar, and
- ffmpeg doesn't belong to Fabrice Bellard. These projects belong to everyone.
- That includes you! In this way, we reap the benefits of open source, but we also
- shoulder the responsibilities. I'm not referring to some abstract sense of
- reponsibility, but the tangible ones, like fixing bugs or developing new
- features.
- One of the great things about this community is how easy it is to release your
- software under a FOSS license. You have no obligations to the software once it's
- released, except the obligations you hold yourself to (i.e. "if this software
- makes my computer work, and I want to use my computer, I need to keep this
- software in good working order"). It's important for users to remember that
- they're not entitled to anything other than the rights laid out in the license,
- too. You're not entitled to bug fixes or new features - you're *empowered* by
- free software to make those changes yourself.
- Sometimes, when working on sway, someone says something like "oh, it's a bug in
- libwayland". My response is generally along the lines of "I guess you're writing
- a libwayland patch then!" The goal hasn't changed, only the route. It's no
- different from being in the weeds and realizing you need to do some refactoring
- first. If a problem in some FOSS project, be it a bug or a conspicuously missing
- feature, is in the way of your goals, it's *your problem*. A friend of mine
- recently said of a missing feature in a project they have nothing to do with:
- "adding FreeBSD 12 support is not yet done, but it's on my todo list." I thought
- that perfectly embodied the right way to think about FOSS.
- When applying this philosophy, you may occasionally have to deal with an
- absentee maintainer or a big old pile of legacy spaghetti code. Fork it! Rewrite
- it! These are tough marbles but they're the marbles you've gotta deal with. It's
- not as hard as it looks.
- The entire world of free software is your oyster. Nothing is off-limits: if it's
- FOSS, you can work on it. Try not to be intimidated by unknown programming
- languages, unfamiliar codebases, or a lack of time. You'll pick up the new
- language sooner than you think[^1], all projects are similar enough when you get
- down to it, and small amounts of work done infrequently adds up over a long
- enough time period. FOSS doesn't have to move quickly, it just has to keep
- moving. The Dawn spacecraft accelerated at 0.003 cm/s<sup>2</sup> and made it to
- [another world][ceres][^2].
- [ceres]: https://upload.wikimedia.org/wikipedia/commons/a/a1/PIA19547-Ceres-DwarfPlanet-Dawn-RC3-AnimationFrame25-20150504.jpg
- [^1]: Especially if you have a reason to learn it, like this bug you need to fix
- [^2]: Actually, it visited 3.