[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Maintaining a Package as a Non-Software Developer



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.


Reply to: