<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>community &amp;mdash; musicmatzes blog</title>
    <link>https://beyermatthias.de/tag:community</link>
    <description></description>
    <pubDate>Wed, 06 May 2026 10:45:08 +0200</pubDate>
    <item>
      <title>My &#39;Problem&#39; with the NixOS community</title>
      <link>https://beyermatthias.de/my-problem-with-the-nixos-community</link>
      <description>&lt;![CDATA[In the last few months, I was invited to join the&#xA;nixos organization on github&#xA;multiple times.&#xA;I always rejected. Here&#39;s why.&#xA;&#xA;Please notice&#xA;&#xA;Please notice that I really try to write this down as constructive criticism.&#xA;If any of this offends you in any way, please let me know and I&#39;ll rephrase the&#xA;specific part of this article. I really do care about the nixos community, I&#39;ve&#xA;been a user of NixOS (on all my devices except phone) since&#xA;mid 2014,&#xA;I&#39;ve been a contributor since&#xA;January 2015&#xA;and I am continuing to be an user and an author of contributions.&#xA;&#xA;I do think that Nix or even NixOS is the one true way how to deploy systems&#xA;that need to be reproducible, even if that needs one to sacrifice certain&#xA;comfort.&#xA;&#xA;Context&#xA;&#xA;Secondly, I need to provide some context from where I&#39;m coming so the dear&#xA;reader can understand my point of view in this article.&#xA;&#xA;First of all, I did not start my journey with NixOS, of course. I was a late&#xA;bloomer in regards to linux, in fact. I was introduced to Ubuntu by a friend of&#xA;mine in 11th grade. I started to use Kubuntu, but only a few weeks later my&#xA;friend noticed that I was getting better and better with the terminal, so maybe&#xA;not even half a year later I switched to Archlinux, which I used on my desktops&#xA;until I was introduced to NixOS.&#xA;In that time, I learned how to write Java (which I do not do anymore btw), Ruby&#xA;and C, started hacking a lot of funny things and managed to contribute patches&#xA;to the linux kernel about&#xA;two years later.&#xA;&#xA;I&#39;m not trying to show balls here! That last bit is important for&#xA;this article, especially if you know how the kernel community works and how the&#xA;development process of the kernel works.&#xA;I guess you know where this is going.&#xA;&#xA;I heard of NixOS in late 2014 at a conference in the black forest, where&#xA;Joachim Schiele talked about it.&#xA;A few months later, my latex setup broke from an update and I was frustrated&#xA;enough by Archlinux to try something new.&#xA;&#xA;I never looked back.&#xA;&#xA;The &#34;early days&#34;&#xA;&#xA;When I started using NixOS, Nix, the package manager, already existed for about&#xA;ten years. Still, the community was small. When I went on the IRC channel or&#xA;on the mailinglist, I could easily remember the nicknames and I was able to skim&#xA;through the subjects of the mails on the list to see what was going on,&#xA;eventhough I did not understand all of it.&#xA;&#xA;That soon changed. I remember the [15.09&#xA;release](https://www.reddit.com/r/linux/comments/3n32ao/nixos1509releasedrnixos/)&#xA;when everyone was super excited and we were all &#34;yeah, now we&#39;re beginning to&#xA;fly&#34; and so on. Fun times!&#xA;&#xA;Problem 1: Commit access and development process&#xA;&#xA;Now, lets get into the problems I have with the community and why I reject the&#xA;invitations to join the github organization.&#xA;&#xA;The problem&#xA;&#xA;In fact, I started people asking and telling about this pretty early on: five(!)&#xA;years ago, I started replying to an email thread with&#xA;this message&#xA;&#xA;Quote:&#xA;&#xA;  Generally, I think it would be best to prevent commit access as far as&#xA;  possible. Having more people to be able to commit to master results in&#xA;  many different opinions committing to master, which therefor results&#xA;  in discussions, eventually flamewars and everything.&#xA;    Keeping commit access for only a few people does not mean that things&#xA;  get slower, no way!&#xA;    [...]&#xA;    What you maybe want, at least from my point of view, is staging&#xA;  branches. Some kind of a hierarchy of maintainers, as you have in the&#xA;  linux kernel. I fully understand that the linux kernel is a way more&#xA;  complex system as nixos/nixpkgs, no discussion here. But if you&#39;d&#xA;  split up responsibilities, you may end up with&#xA;    A fast and secure development model, as people don&#39;t revert&#xA;  back and forth.&#xA;    Fewer &#34;wars&#34; because people disagree on things&#xA;    * Less maintaining efforts, because the effort is basically split&#xA;  up in several small &#34;problems&#34;, which are faster to solve.&#xA;    What I want to say is, basically, you want a well-defined and&#xA;  structured way of how to do things.&#xA;&#xA;Also please note that there&#39;s another&#xA;mail from Michael Raskin&#xA;in that thread where we talked about 25 PRs for new packages.&#xA;Right now we&#39;re at about 1.8k open pull requests, with over&#xA;580 of them for new packages.&#xA;&#xA;I take that as proof that we did not manage to sharpen and improve the process.&#xA;&#xA;Lets get to the point. I started telling people that the development process we&#xA;had back then was not optimal. In fact, I saw it coming: The community started&#xA;to grow at an great pace back then and soon I talked to people on IRC and&#xA;Mailinglist where I was like &#34;Who the hell is this, I&#39;ve never seen this name&#xA;before and they seem not to be new, because they already know how things work&#xA;and teach me...&#34;.&#xA;&#xA;The community grew and grew, over 4500 stars on github (if that measures&#xA;anything), over 4500 forks on github.&#xA;&#xA;When we reached 1k open pull requests, some people started noticing that we&#xA;might not be able to scale anymore at some point. &#34;How could we possibly manage&#xA;that amount of pull requests ever?&#34;.&#xA;&#xA;Now we&#39;re at about 1.8k open pull requests.&#xA;&#xA;I proposed changes several times, including moving away from github, which does&#xA;IMO not scale to that amount of issues and PRs, especially because of its&#xA;centralized structure and because of its linear discussions.&#xA;&#xA;I proposed switching to kernel-style mailinglist. I was rejected with &#34;We do not&#xA;have enough people for that kind of development model&#34;. I suspect that people&#xA;did not understand what I meant by &#34;kernel-style&#34; back then (nor do I think they&#xA;understand now).&#xA;But I&#39;m sure, now more than ever, that a switch to a mailinglist-based&#xA;development model, with enough automation in place for CI and static analysis of&#xA;patches would have had the best possible impact for the community. Even if&#xA;that&#39;d mean that newcomers would be a bit thrown-off at first!&#xA;&#xA;The current state of affairs is even worse. Right now&#xA;(as of this commit)&#xA;, we have&#xA;&#xA;1541 merges on master since 2020-01-01&#xA;1601 patches pushed directly to master since 2020-01-01&#xA;&#xA;Feel free to reproduce these numbers with&#xA;&#xA;$ git log --oneline --first-parent --since 2020-01-01 --[no-]merges | wc -l&#xA;&#xA;That means that we had 1601 possibly breaking patches pushed by someone who&#xA;things they are good enough and that their code never breaks. I&#39;ll leave it to&#xA;the dear reader to google why pushing to master is a bad idea in a&#xA;more-than-one-person-project.&#xA;&#xA;Another thing that sticks out to me is this:&#xA;&#xA;$ git log  --first-parent --since 2020-01-01 --merges | \&#xA;    grep &#34;^Author&#34; |    \&#xA;    sort -u |           \&#xA;    wc -l&#xA;74&#xA;&#xA;74! 74 people have access to the master branch and can break it. I do not allege&#xA;incompetence to any of these people, but we all know that not always everything&#xA;works as smoothly as we expected, especially in software development.&#xA;People are tired sometimes, people do make mistakes, people do miss things when&#xA;reviewing things. That&#39;s why we invented continuous integration in the first&#xA;place! That some thing can check whether the human part of the process did the&#xA;right thing and report back if they didn&#39;t.&#xA;&#xA;The solution&#xA;&#xA;My dream-scenario would be that nobody would have access to master except for a&#xA;bot like bors (or something equivalent&#xA;for the Nix communiy).&#xA;The rust communit, which uses bors heavily does software develoment the right&#xA;way. If all checks pass, merging is done automatically. If not, the bot finds&#xA;the breaking change by using a clever bisecting algorithm and merges all other&#xA;(non-breaking) changes.&#xA;&#xA;In fact, I would go further and introduce teams. Each team would be responsible&#xA;for one task in the community. For example there&#39;s different packaging&#xA;ecosystems within the nixpkgs repository, one for every language.&#xA;Each language could get a team of 3 to 5 members that coordinate the patches&#xA;that come in (from normal contributors) and apply them to a language-staging&#xA;branch. That branch would be merged on a regular basis (like... every week) to&#xA;master, if all tests/builds succeed (just like the kernel community does it)!&#xA;&#xA;A team could also be introduced for some subsets of packages... Qt packages,&#xA;server software, but also nixpkgs-libs or even documentation (which is another&#xA;subject on itself).&#xA;&#xA;Problem 2: &#34;Kill the Wiki&#34;&#xA;&#xA;In 2015, at the nixcon in Berlin, we had this moment with &#34;Kill the Wiki&#34;. As&#xA;far as I remember it was Rok who said that (not sure though). I was not a fan&#xA;back then, and I&#39;m actually even less a fan of that decision now.&#xA;&#xA;Killing the wiki was the worst thing we could do documentation-wise. Everytime I&#xA;tell people about nixos, I have to tell them that there is no decent&#xA;documentation around. There is, of course, the documentation that is generated&#xA;from the repository. That one is okay for the initial setup, but it is more than&#xA;far away from being a good resource if you just want to look up how some things&#xA;are done.&#xA;&#xA;The nixos.wiki efforts fill the gap here a bit_, sure.&#xA;But we could really do better.&#xA;&#xA;The solution would be rather simple: Bring back a wiki software, even if we&#xA;start from scratch here or &#34;just&#34; merge the efforts from nixos.wiki - or make&#xA;that one the official one - it would be an improvement all the way!&#xA;&#xA;Problem 3: &#34;Kill the mailinglist&#34;&#xA;&#xA;Certainly, what does this community have with killing their own infrastructure?&#xA;They killed the wiki, they killed the mailinglist... both things that are really&#xA;valuable... but github is the one thing that actually slows us down ... and does&#xA;not get killed... I am stunned, really.&#xA;&#xA;The solution here is also really simple: Bring it back. And not googlegroups or&#xA;some other shitty provider, just host a mailman and create a few mailinglists...&#xA;like the kernel.&#xA;&#xA;I hope I do not have to write down the benefits here because the reader should&#xA;be aware of them already. But for short:&#xA;&#xA;Threaded discussions (I can reply multiple times to one message, quote parts&#xA;  and reply to each part individually, creating a tree-style discussion where&#xA;  each branch focuses on one point)&#xA;Asyncronous discussions (I can reply to a message in the middle of a thread&#xA;  rather than appending)&#xA;Possibility to work offline (yeah, even in our age this is important)&#xA;User can choose their interface (I like to use mutt, even on my mobile if&#xA;  possible. Web UIs suck)&#xA;&#xA;I am aware that the &#34;replacement&#34; (which it really isn&#39;t) discourd is capable of&#xA;going into mailinglist-mode. Ask me how great that is compared to a real&#xA;mailinglist!&#xA;&#xA;It is not.&#xA;&#xA;The silver lining...&#xA;&#xA;This article is a rather negative one, I know that. I do not like to close words&#xA;with that negative feeling.&#xA;&#xA;In fact, we got the RFC process, which we did not have when I started using&#xA;nixos. We have the Borg bot, which helps a bit and is a great effort. So, we&#39;re&#xA;in the process of improving things.&#xA;&#xA;I&#39;m still positive that, at some point, we improve the&#xA;rate of improvements as well and get to a point where we can scale up to the&#xA;numbers of contributors we currently have, or even more.&#xA;&#xA;Because right now, we can&#39;t.&#xA;&#xA;Errata&#xA;&#xA;I did make some mistakes here and I want to thank everyone for telling me.&#xA;&#xA;Numbers&#xA;&#xA;Some nice folks on the nixos IRC/matrix channel suggested that my numbers for&#xA;PRs vs. pushes to master were wrong, as githubs squash-and-merge feature is&#xA;enabled on the github repository for nixpkgs.&#xA;&#xA;It seems that&#xA;about 4700 PRs were merged since 2020-01-01.&#xA;This does proof my numbers wrong. Fact is:&#xA;on my master branch of the nixpkgs github repository, there are 3142 commits. It&#xA;seems that not all pull-requests were to master, which is of course true because&#xA;PRs can and are filed against the staging branch of nixpkgs and also the stable&#xA;branches.&#xA;&#xA;Github does not offer a way to query PRs that are filed against a certain branch&#xA;(at least not in the web UI), as far as I see.&#xA;&#xA;So let&#39;s do some more fine-granular analysis on the commits I see on master:&#xA;&#xA;git log --oneline --first-parent --since 2020-01-01 | \&#xA;    grep -v &#34;Merge pull request&#34; | \&#xA;    wc -l&#xA;1650&#xA;&#xA;As github does create a commit message for the merge, we can grep that away and&#xA;see what the result is.&#xA;I am assuming here that nobody ever changes the default merge commit message,&#xA;which might not be entirely true. I assume, though, that it happens not that&#xA;often.&#xA;&#xA;So we have 3142 commits from which are 1650 not github-branch-merges.&#xA;&#xA;From time to time, master gets merged into staging and the other way round:&#xA;&#xA;20 merges from master to staging&#xA;5 merges from staging to master&#xA;&#xA;That leaves us at 1625 commits where the patch landed directly on master.&#xA;How many of these patches were submitted via a pull request is not that easy to&#xA;evaluate.&#xA;One could write a crawler that finds the patches on github and checks&#xA;whether they appear in a PR... but honestly, my point still holds true: If only&#xA;one breaking patch lands on master per week, that results in enough slow-down&#xA;and pain for the development process.&#xA;&#xA;The inconsistency in the process is the&#xA;real problem, having a mechanism that handles and schedules CI jobs and merges&#xA;and a clear merge-window for per-topic changesets from team-maintained branches&#xA;would give the community some structure.&#xA;New contributors could be guided more&#xA;easily as they would have a counterpart to contact for topic-specific questions&#xA;and negotiations wouldn&#39;t be between people anymore but between teams, which&#xA;would also give the whole community some structure and would also clearify&#xA;responsibilities.&#xA;&#xA;tags: #nixos #community&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>In the last few months, I was invited to join the
<a href="https://github.com/nixos">nixos organization on github</a>
multiple times.
I always rejected. Here&#39;s why.</p>

<h1 id="please-notice" id="please-notice">Please notice</h1>

<p>Please notice that I really try to write this down as <em>constructive</em> criticism.
If any of this offends you in any way, please let me know and I&#39;ll rephrase the
specific part of this article. I really do care about the nixos community, I&#39;ve
been a user of NixOS (on all my devices except phone) since
<a href="https://marc.info/?l=nix-dev&amp;m=140403268209109&amp;w=3">mid 2014</a>,
I&#39;ve been a contributor since
<a href="https://github.com/NixOS/nixpkgs/commit/c5e855e060029697a8b13516b5bd55b87169cf7c">January 2015</a>
and I am continuing to be an user and an author of contributions.</p>

<p>I do think that Nix or even NixOS is <em>the one true way</em> how to deploy systems
that need to be reproducible, even if that needs one to sacrifice certain
comfort.</p>

<h1 id="context" id="context">Context</h1>

<p>Secondly, I need to provide some context from where I&#39;m coming so the dear
reader can understand my point of view in this article.</p>

<p>First of all, I did not start my journey with NixOS, of course. I was a late
bloomer in regards to linux, in fact. I was introduced to Ubuntu by a friend of
mine in 11th grade. I started to use Kubuntu, but only a few weeks later my
friend noticed that I was getting better and better with the terminal, so maybe
not even half a year later I switched to Archlinux, which I used on my desktops
until I was introduced to NixOS.
In that time, I learned how to write Java (which I do not do anymore btw), Ruby
and C, started hacking a lot of funny things and managed to contribute patches
to the linux kernel about
<a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=842c19600728dc2561f06553e442031fc68c1882">two years later</a>.</p>

<p>I&#39;m not trying to show balls here! That last bit is important for
this article, especially if you know how the kernel community works and how the
development process of the kernel works.
I guess you know where this is going.</p>

<p>I heard of NixOS in late 2014 at a conference in the black forest, where
<a href="https://github.com/qknight">Joachim Schiele</a> talked about it.
A few months later, my latex setup broke from an update and I was frustrated
enough by Archlinux to try something new.</p>

<p>I never looked back.</p>

<h1 id="the-early-days" id="the-early-days">The “early days”</h1>

<p>When I started using NixOS, Nix, the package manager, already existed for about
ten years. Still, the community was <em>small</em>. When I went on the IRC channel or
on the mailinglist, I could easily remember the nicknames and I was able to skim
through the subjects of the mails on the list to see what was going on,
eventhough I did not understand all of it.</p>

<p>That soon changed. I remember the <a href="https://www.reddit.com/r/linux/comments/3n32ao/nixos_1509_released_rnixos/">15.09
release</a>
when everyone was super excited and we were all “yeah, now we&#39;re beginning to
fly” and so on. Fun times!</p>

<h1 id="problem-1-commit-access-and-development-process" id="problem-1-commit-access-and-development-process">Problem 1: Commit access and development process</h1>

<p>Now, lets get into the problems I have with the community and why I reject the
invitations to join the github organization.</p>

<h2 id="the-problem" id="the-problem">The problem</h2>

<p>In fact, I started people asking and telling about this pretty early on: five(!)
years ago, I started replying to an email thread with
<a href="https://marc.info/?l=nix-dev&amp;m=142170122502096&amp;w=3">this message</a></p>

<p>Quote:</p>

<blockquote><p>Generally, I think it would be best to prevent commit access as far as
possible. Having more people to be able to commit to master results in
many different opinions committing to master, which therefor results
in discussions, eventually flamewars and everything.</p>

<p>Keeping commit access for only a few people does not mean that things
get slower, no way!</p>

<p>[...]</p>

<p>What you maybe want, at least from my point of view, is staging
branches. Some kind of a hierarchy of maintainers, as you have in the
linux kernel. I fully understand that the linux kernel is a <em>way</em> more
complex system as nixos/nixpkgs, no discussion here. But if you&#39;d
split up responsibilities, you may end up with</p>

<p>    * A fast <em>and</em> secure development model, as people don&#39;t revert
      back and forth.</p>

<p>    * Fewer “wars” because people disagree on things</p>

<p>    * Less maintaining efforts, because the effort is basically split
      up in several small “problems”, which are faster to solve.</p>

<p>What I want to say is, basically, you want a well-defined and
structured way of how to do things.</p></blockquote>

<p>Also please note that there&#39;s another
<a href="https://marc.info/?l=nix-dev&amp;m=142170387002873&amp;w=3">mail from Michael Raskin</a>
in that thread where we talked about 25 PRs for new packages.
Right now we&#39;re at about 1.8k open pull requests, with over
<a href="https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+is%3Apr+label%3A%228.has%3A+package+%28new%29%22">580 of them for new packages</a>.</p>

<p>I take that as proof that we did not manage to sharpen and improve the process.</p>

<p>Lets get to the point. I started telling people that the development process we
had back then was not optimal. In fact, I saw it coming: The community started
to grow at an great pace back then and soon I talked to people on IRC and
Mailinglist where I was like “Who the hell is this, I&#39;ve never seen this name
before and they seem not to be new, because they already know how things work
and teach me...“.</p>

<p>The community grew and grew, over 4500 stars on github (if that measures
anything), over 4500 forks on github.</p>

<p>When we reached 1k open pull requests, some people started noticing that we
might not be able to scale anymore at some point. “How could we possibly manage
that amount of pull requests ever?“.</p>

<p>Now we&#39;re at about 1.8k open pull requests.</p>

<p>I proposed changes several times, including moving away from github, which does
IMO not scale to that amount of issues and PRs, especially because of its
centralized structure and because of its linear discussions.</p>

<p>I proposed switching to kernel-style mailinglist. I was rejected with “We do not
have enough people for that kind of development model”. I suspect that people
did not understand what I meant by “kernel-style” back then (nor do I think they
understand now).
But I&#39;m sure, now more than ever, that a switch to a mailinglist-based
development model, with enough automation in place for CI and static analysis of
patches would have had the best possible impact for the community. Even if
that&#39;d mean that newcomers would be a bit thrown-off at first!</p>

<p>The current state of affairs is even worse. Right now
(as of <a href="https://github.com/nixos/nixpkgs/commit/baeb670ce21d01b18cd11d67d4bd6b9b9edea6ee">this commit</a>)
, we have</p>
<ul><li>1541 merges on master since 2020-01-01</li>
<li>1601 patches pushed directly to master since 2020-01-01</li></ul>

<p>Feel free to reproduce these numbers with</p>

<pre><code>$ git log --oneline --first-parent --since 2020-01-01 --[no-]merges | wc -l
</code></pre>

<p>That means that we had 1601 possibly breaking patches pushed by someone who
things they are good enough and that their code never breaks. I&#39;ll leave it to
the dear reader to google why pushing to master is a bad idea in a
more-than-one-person-project.</p>

<p>Another thing that sticks out to me is this:</p>

<pre><code>$ git log  --first-parent --since 2020-01-01 --merges | \
    grep &#34;^Author&#34; |    \
    sort -u |           \
    wc -l
74
</code></pre>

<p>74! 74 people have access to the master branch and can break it. I do not allege
incompetence to any of these people, but we all know that not always everything
works as smoothly as we expected, especially in software development.
People are tired sometimes, people do make mistakes, people do miss things when
reviewing things. That&#39;s why we invented continuous integration in the first
place! That some <em>thing</em> can check whether the human part of the process did the
right thing and report back if they didn&#39;t.</p>

<h2 id="the-solution" id="the-solution">The solution</h2>

<p>My dream-scenario would be that nobody would have access to master except for a
bot like <a href="https://github.com/bors-ng/bors-ng">bors</a> (or something equivalent
for the Nix communiy).
The rust communit, which uses bors <em>heavily</em> does software develoment the right
way. If all checks pass, merging is done automatically. If not, the bot finds
the breaking change by using a clever bisecting algorithm and merges all other
(non-breaking) changes.</p>

<p>In fact, I would go further and introduce teams. Each team would be responsible
for one task in the community. For example there&#39;s different packaging
ecosystems within the nixpkgs repository, one for every language.
Each language could get a team of 3 to 5 members that coordinate the patches
that come in (from normal contributors) and apply them to a <code>&lt;language&gt;-staging</code>
branch. That branch would be merged on a regular basis (like... every week) to
master, if all tests/builds succeed (just like the kernel community does it)!</p>

<p>A team could also be introduced for some subsets of packages... Qt packages,
server software, but also nixpkgs-libs or even documentation (which is another
subject on itself).</p>

<h1 id="problem-2-kill-the-wiki" id="problem-2-kill-the-wiki">Problem 2: “Kill the Wiki”</h1>

<p>In 2015, at the nixcon in Berlin, we had this moment with “Kill the Wiki”. As
far as I remember it was Rok who said that (not sure though). I was not a fan
back then, and I&#39;m actually even less a fan of that decision now.</p>

<p>Killing the wiki was the worst thing we could do documentation-wise. Everytime I
tell people about nixos, I have to tell them that there is no decent
documentation around. There is, of course, the documentation that is generated
from the repository. That one is okay for the initial setup, but it is more than
far away from being a good resource if you just want to look up how some things
are done.</p>

<p>The <a href="https://nixos.wiki">nixos.wiki</a> efforts fill the gap here a <em>bit</em>, sure.
But we could really do better.</p>

<p>The solution would be rather simple: Bring back a wiki software, even if we
start from scratch here or “just” merge the efforts from nixos.wiki – or make
that one the official one – it would be an improvement all the way!</p>

<h1 id="problem-3-kill-the-mailinglist" id="problem-3-kill-the-mailinglist">Problem 3: “Kill the mailinglist”</h1>

<p>Certainly, what does this community have with killing their own infrastructure?
They killed the wiki, they killed the mailinglist... both things that are really
valuable... but github is the one thing that actually slows us down ... and does
not get killed... I am stunned, really.</p>

<p>The solution here is also really simple: Bring it back. And not googlegroups or
some other shitty provider, just host a mailman and create a few mailinglists...
like the kernel.</p>

<p>I hope I do not have to write down the benefits here because the reader should
be aware of them already. But for short:</p>
<ul><li>Threaded discussions (I can reply multiple times to one message, quote parts
and reply to each part individually, creating a tree-style discussion where
each branch focuses on one point)</li>
<li>Asyncronous discussions (I can reply to a message in the middle of a thread
rather than appending)</li>
<li>Possibility to work offline (yeah, even in our age this is important)</li>
<li>User can choose their interface (I like to use mutt, even on my mobile if
possible. Web UIs suck)</li></ul>

<p>I am aware that the “replacement” (which it really isn&#39;t) discourd is capable of
going into mailinglist-mode. Ask me how great that is compared to a real
mailinglist!</p>

<p>It is not.</p>

<h1 id="the-silver-lining" id="the-silver-lining">The silver lining...</h1>

<p>This article is a rather negative one, I know that. I do not like to close words
with that negative feeling.</p>

<p>In fact, we got the RFC process, which we did not have when I started using
nixos. We have the Borg bot, which helps a bit and is a great effort. So, we&#39;re
in the process of improving things.</p>

<p>I&#39;m still positive that, at some point, we improve the
rate of improvements as well and get to a point where we can scale up to the
numbers of contributors we currently have, or even more.</p>

<p>Because right now, we can&#39;t.</p>

<h1 id="errata" id="errata">Errata</h1>

<p>I did make some mistakes here and I want to thank everyone for telling me.</p>

<h2 id="numbers" id="numbers">Numbers</h2>

<p>Some nice folks on the nixos IRC/matrix channel suggested that my numbers for
PRs vs. pushes to master were wrong, as githubs squash-and-merge feature is
enabled on the github repository for nixpkgs.</p>

<p>It seems that
<a href="https://github.com/nixos/nixpkgs/pulls?q=is%3Apr+created%3A%3E%3D2020-01-01">about 4700 PRs were merged since 2020-01-01</a>.
This does proof my numbers wrong. Fact is:
on my master branch of the nixpkgs github repository, there are 3142 commits. It
seems that not all pull-requests were to master, which is of course true because
PRs can and are filed against the staging branch of nixpkgs and also the stable
branches.</p>

<p>Github does not offer a way to query PRs that are filed against a certain branch
(at least not in the web UI), as far as I see.</p>

<p>So let&#39;s do some more fine-granular analysis on the commits I see on master:</p>

<pre><code>git log --oneline --first-parent --since 2020-01-01 | \
    grep -v &#34;Merge pull request&#34; | \
    wc -l
1650
</code></pre>

<p>As github does create a commit message for the merge, we can grep that away and
see what the result is.
I am assuming here that nobody ever changes the default merge commit message,
which might not be entirely true. I assume, though, that it happens not that
often.</p>

<p>So we have 3142 commits from which are 1650 not github-branch-merges.</p>

<p>From time to time, master gets merged into staging and the other way round:</p>
<ul><li>20 merges from master to staging</li>
<li>5 merges from staging to master</li></ul>

<p>That leaves us at 1625 commits where the patch landed directly on master.
How many of these patches were submitted via a pull request is not that easy to
evaluate.
One could write a crawler that finds the patches on github and checks
whether they appear in a PR... but honestly, my point still holds true: If only
one breaking patch lands on master per week, that results in enough slow-down
and pain for the development process.</p>

<p>The inconsistency in the process is the
real problem, having a mechanism that handles and schedules CI jobs and merges
and a clear merge-window for per-topic changesets from team-maintained branches
would give the community some structure.
New contributors could be guided more
easily as they would have a counterpart to contact for topic-specific questions
and negotiations wouldn&#39;t be between people anymore but between teams, which
would also give the whole community some structure and would also clearify
responsibilities.</p>

<p>tags: <a href="https://beyermatthias.de/tag:nixos" class="hashtag"><span>#</span><span class="p-category">nixos</span></a> <a href="https://beyermatthias.de/tag:community" class="hashtag"><span>#</span><span class="p-category">community</span></a></p>
]]></content:encoded>
      <guid>https://beyermatthias.de/my-problem-with-the-nixos-community</guid>
      <pubDate>Fri, 20 Mar 2020 16:40:09 +0100</pubDate>
    </item>
  </channel>
</rss>