Zach, Let me offer my encouragement as someone who has worked in IT for 25 years, taught myself programming about 8 years ago, started contributing to Debian as a Maintainer a couple of years ago, and recently became a Debian Developer. TL;DR If you can write a bash script you can maintain packages for Debian. In fact, I would say that writing bash script is a more useful skill set when packaging than having a knowledge of Java or C or whatever the upstream project is written in. And, particularly, I would say that having real world IT experience in maintaining production servers is probably more valuable than having coding experience (because you have a visceral feel for what types of changes are disruptive for people who are consuming the packages). I think it is important to realize that there is a steep, steep, steep, almost discouraging learning curve to figuring out how to package for Debian, which is exacerbated by the fact that there really isn’t good documentation written in such a way to be helpful for people who don’t already know how to do it (there is generally good documentation about packaging policy to remind those who already know how it works what the policies are). I say this not to discourage you but to help you anticipate what you are getting into. I spent about three months consuming documentation before I made my first contribution to Debian. I found that a whole bunch of it was outdated, incorrect, contradictory, or assumed I had knowledge of underlying principles that I was missing. I know that there are some people working to improve this, but it is a daunting task (partially because it is a moving target and partially because it is really hard to write documentation for people who aren’t already initiated to a subject). However, once you get over the learning curve and realize how amazing Debian’s build system is and the fact that it can consume almost any piece of source code on the internet and turn it into a standardized package it becomes a thing of beauty. My recommendation to you would be this: Find a package that you use that is currently maintained by an active maintainer or group but which needs some work. Then volunteer to pick off some easy bug reports or do an easy upgrade to a newer version under their guidance. From there you can iterate to more and more complicated tasks. In my case I did this with Electrum. The package had not be updated in so long that it no longer communicated with the Electrum network. The maintainer was no longer participating in Debian, but I was lucky enough that it was a team-maintained package and that Bastian Germann was a member of the team and also frequently contributes to mentors. He guided me through that initial packaging experience. I should note that Electrum is mostly written in Python, a language I had no experience with when I started and of which I still have only a little understanding (although you pick up things as you go). One recommendation I would make (that I don’t always see in Debian) is that you curate a relationship with the upstream maintainers. I have done this with the Electrum maintainers and it has been both a benefit to me and to them. Sometimes I reach out to them with a question about why they have done things a certain way and they have been invaluable in helping me to understand how the source code is structured. Sometimes I ask them if they could modify upstream to make my packaging easier, and they have been open to doing so when reasonable. In one instance they made my life a lot easier when coordinating a security fix by providing a custom patch for an older version shipping in stable. My experience is that most upstream projects would like to have their code shipped in Debian and are more than willing to be helpful to the process. And of course, mentors is always the place to ask questions. Ultimately, we want to make it as easy as possible for anyone to get involved because the more hands we have the lighter everyone’s load. Soren On Tuesday, February 27, 2024 10:28:15 PM MST earache_curtsy750@simplelogin.com wrote: > I was thinking that maintaining one or more packages would be a great way to > do this. I know a bit of Java and C but do not write code on a regular basis > (other than bash scripts). > > I am asking for a sanity check on whether or not this is a good idea, or if > the work of maintaining a package is only plausible for highly skilled > software engineers. > > From, > Zach -- Soren Stoutner soren@debian.org
Attachment:
signature.asc
Description: This is a digitally signed message part.