logo

drewdevault.com

[mirror] blog and personal website of Drew DeVault git clone https://hacktivis.me/git/mirror/drewdevault.com.git

Patches-welcome.md (3511B)


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