Table of Contents

Debian’s Community Architecture

Debian mini conference group photo. Photo released by Nicolas Dandrimont under the CC-BY 4.0 license.

How does a 30-year-old, volunteer-run Linux distribution decide what ships, who’s in charge, and how newcomers get in? For RIT’s Humanitarian Free and Open Source Software course (HFOSS ’21), Justin Nauta, Mark Shaw, Bryan Xue, and I analyzed Debian’s community: its leadership, how code gets in, how stable the project is, and how easy it is to join.

TLDR

  • Leadership: an elected Debian Project Leader, chosen by developers every year under the Debian Constitution. (Leadership)
  • Knowledge is concentrated: the top 5 uploaders have made more contributions than the next 40 combined.
  • Bus factor: Debian would survive losing its top contributor, and probably its core team. (Stability)
  • Joining: great docs, sponsors for newcomers, and a list of packages that need maintainers. (Onboarding)
  • Verdict: a “federation.” Best for experienced contributors, but open to novices. (Summing up)

History of Debian

Debian is a Linux distribution that uses free and open source software (FOSS). It was created and led by Ian Murdock, but is now completely community driven. Debian is one of the oldest Linux-based operating systems. It’s known for its strict free software rules. Since Debian 12 (2023), the installer also includes non-free firmware so more hardware works out of the box. In addition, many other Linux distributions are based on it, such as Ubuntu. The first version of Debian was released on September 15, 1993.

Leadership and team structure

Does Debian have a Benevolent Dictator for Life or lead developer? If not, what is the structure of the project’s leadership?

The Debian Constitution defines the role of The Project Leader. Debian’s developers elect the leader annually. When we wrote this in 2021, the Project Leader was Jonathan Carter.

Core team turnover

The number of contributors and contributions are difficult to track due to most of the information being scattered on Debian’s website. However, in the past month, Debian has added seventeen newly approved developers. Occasionally, teams and contributors will drop packages, or they are removed from them. However, most contributors work on the same project or package for years.

Unique knowledge: git-by-a-bus

Who has the highest amounts of unique knowledge per the git-by-a-bus report?

Those who have the highest amount of unique knowledge can be split in two categories. The first are those who hold leadership positions. The second are contributors who have made far more contributions than others. The top five contributors to the Debian Project have made more contributions than the next forty contributors.

Commit access and patch acceptance

Non-Debian developers need to request write access to repositories inside a Debian group from a Debian developer they know, or their sponsor. The Debian group for Collaborative Maintenance can make direct commits to repositories. Pre-commit coordination (e.g. merge-request or mail) is not expected. Salsa administrators are the only people who can transfer or delete projects under Debian. Salsa is the name of Debian’s collaborative development server; Salsa is based on GitLab.

🌸👋🏻 Enjoying this post? Get the next issue of [ret]2read. Once a month, I’ll email you whatever’s on my mind, usually Apple security research, offensive security, open source software freedom, and operating system internals.

Patch approval

Each package’s maintainers decide which patches to accept. Contributors usually send patches through the Debian Bug Tracking System or as merge requests on Salsa. Maintainers review them and upload a new package version, and fixes that belong upstream are forwarded to the original project. Security fixes go through the Debian Security Team.

Quality control and bug repair

The Debian Project has a quality assurance team that takes care of quality control. In addition, the project has a security audit team that reviews the archive for new or unfixed security bugs.

Front-end and back-end development

The Debian Project provides a list of their registered members, and a list of registered contributors. The Debian Project has separate teams for front-end and back-end development. Debian has more back-end support. 

Stability of Debian Linux

Calloway Coefficient of Fail

The Calloway Coefficient of Fail (CCoF) scores start at 0 (“Perfect! All signs point to success!”), and a score of 5 to 25 means “You’re probably doing okay, but you could be better.” The CCoF could potentially be up to +5 points for “no web viewer for source control” because some packages have a form of web viewer, while others do not. For the packages that do have a web viewer, some are confusing and hard to find.

Major bugs and other issues

In November 2002, a fire burnt some Debian servers. In November 2003, some of Debian’s servers were hacked. There is an ongoing list of release critical bugs (1,633 when we wrote this in 2021).

Participation trends

The Debian Project has consistent contributions from many people on a daily basis.

What if the most active contributor was hit by a bus?

Debian would survive if the most active contributor was hit by a bus. The Debian Project is massive, and there are countless contributors and maintainers. Additionally, leadership has successfully transferred many times.

Want your company or product in front of [ret]2read readers?
One sponsor per issue →

What if the core team was hit by a bus?

Debian would probably survive, but it would struggle for a while. Again, the project is massive, and there are many contributors. It would be difficult to figure out who will take charge, but it is likely doable because of the scale of the project and amount of potential people to step up.

Related links

Onboarding and support

Onboarding process

Debian’s homepage links to a “get-involved” page. The page details where potential contributors can learn about the project’s culture and philosophy. The page also details where potential contributors can find projects to work on.

“If you are interested in maintaining packages, look at our “Work-Needing and Prospective Packages” list to see which packages need maintainers. Taking over an abandoned package is the best way to start out as a maintainer – not only does it aid Debian in keeping its packages well maintained, but it gives you the opportunity to learn from the previous maintainer.

How You Can Join by The Debian Project

In addition, Debian has a new contributor guide. The guide serves as a checklist for what new contributors should do to participate in its community effectively. The Debian Project has communication leads, called sponsors, who focus specifically on newbies.

You can also aid by contributing to the writing of documentation, doing web site maintenance, translation (i18n & l10n), publicity, legal support or other roles in the Debian community. Our Quality Assurance site lists several other possibilities.

How You Can Join by The Debian Project

Lastly, the “get-involved” page provides a list of community–driven teams. These teams work on smaller projects within the distribution, and have their own culture, and contact methods.

Debian wiki

The Debian Project has substantial documentation available for free online and for-purchase in stores. The documentation for users is extensive. There is a wiki, release notes for each operating system, and tons of guides for software. The Debian Project even has a substantial amount of documentation available in multiple languages.

Support

If you were going to contribute to Debian, but ran into trouble or hit blockers, who would you contact, and how?

Debian provides online real time help using IRC. They also have forums, and an email naming scheme. The email naming scheme uses “special mail aliases set up for each package.” This way, “any mail sent to <package name>@packages.debian.org is forwarded to the maintainer responsible for that package.”

Code of conduct and contributor license agreements

The project has a code of conduct, and multiple contributor license agreements (CLA). The project leader determines which CLAs to use, so contributors will need to sign a few. Additionally, the community prides itself on its Free Software Guidelines and Social Contract.

Summing up

Decision-making

Is Debian’s decision-making process hierarchical or consensus building?

Debian’s decision-making process appears to be consensus building. Many different people work independently on tasks they believe will help grow or develop the program further, and can do so freely. While there are people who oversee the project, they do not directly interact or tell the developers what to do. Debian’s developers also use a “do-ocracy” (whoever does the work makes the call) to make their decisions, and look to further their idea of “freedom.”

Is Debian a toy, group, federation or stadium?

Debian is close to a federation, with high user growth and medium to high contributor growth.

Recommend to a friend?

Would you recommend the project as a good place for someone to join if they were a novice or a pro, or would you dissuade people from joining at all?

Overall, we would recommend Debian for pros rather than novices. While novices can join, the project requires a lot of technical knowledge in order to make good contributions. Debian is an interesting project with a lot of freedom and possibilities, so we would recommend that people join regardless of skill level.

Links

Conclusion

In short: Debian runs on elected leadership and individual package ownership, which is why it has outlasted most of its peers. If you enjoyed this post, I recommend reading VS Code’s Community Architecture and An Analysis of FarmBot’s Community Architecture. Olivia Gallucci, Justin Nauta, Mark Shaw, and Bryan Xue wrote this post. It was first published on the deprecated HFOSS’21 blog. The blog post image depicts Debian mini conference group photo. Nicolas Dandrimont released the photo under the CC-BY 4.0 license.

Portrait of Olivia Gallucci in garden, used in LNP article.

Written by Olivia Gallucci

Olivia is senior security engineer, certified personal trainer, and freedom software advocate. She writes about offensive security, open source software, and professional development.

Discover more from [ret]2read

A Monthly OS Internals Publication by Olivia Gallucci. Subscribe now to keep reading and get access to the full archive.

Continue reading