Skip to content

maintainers/README.md: clarify maintainer removal - #437434

Merged
infinisil merged 1 commit into
NixOS:masterfrom
wolfgangwalther:maintainers-removal-guidelines
Sep 2, 2025
Merged

maintainers/README.md: clarify maintainer removal#437434
infinisil merged 1 commit into
NixOS:masterfrom
wolfgangwalther:maintainers-removal-guidelines

Conversation

@wolfgangwalther

Copy link
Copy Markdown
Contributor

The wording on how to lose maintainer status implied that this was per package. While this is true, we also follow the same procedure for entirely inactive maintainers, dropping them from all packages, including their maintainer handle.

I'm a friend of making things shorter, this should leave enough room for interpretation of both.

Came up in #437082 (comment).

Do we need to make it clearer or is that OK?

Things done


Add a 👍 reaction to pull requests you find important.

@nixpkgs-ci nixpkgs-ci Bot added 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 0 This PR does not cause any packages to rebuild on Linux. 6.topic: policy discussion Discuss policies to work in and around Nixpkgs labels Aug 27, 2025
@nix-owners
nix-owners Bot requested a review from infinisil August 27, 2025 07:57
@pbsds pbsds added the 9.needs: community feedback This needs feedback from more community members. label Aug 27, 2025
@pbsds

pbsds commented Aug 27, 2025

Copy link
Copy Markdown
Member

While my feelings are conflicted regarding the current common practice of removing people from maintainer-list.nix, I think dropping inactive maintainers from meta.maintainers treewide should be encouraged 👍

@wolfgangwalther

Copy link
Copy Markdown
Contributor Author

While my feelings are conflicted regarding the current common practice of removing people from maintainer-list.nix

Could you elaborate? I'd like to understand more.

@pbsds

pbsds commented Aug 27, 2025

Copy link
Copy Markdown
Member

My feelings are analogous to scrubbing a name from the end credits of a re-release of a movie they worked on, simply because they didn't also participate in the sequel. Some people may view their entry in the maintainers file as their attribution, as the proof that they have contributed to the project.

But the alternative, which is distributing historical maintainer entries in the nixpkgs tarball is not sustainable either. I think what I want to clearly establish is that this file is not meant to track attribution, but rather serve as the registry of active maintainers.

@wolfgangwalther

Copy link
Copy Markdown
Contributor Author

I see what you mean. Imho, the same as in NixOS/org#121 (comment) wrt to committers applies here: The commit-bit, as well as an entry in maintainers, comes with permissions (on GitHub). As such, both of these are the wrong tools for "attribution". We don't have a good replacement, though, I agree with you here.

@pbsds

pbsds commented Aug 27, 2025

Copy link
Copy Markdown
Member

I think the difference comes down to

diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 23bb14820650..30e9e5809da9 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -1,5 +1,5 @@
 /*
-  List of NixOS maintainers.
+  List of active NixOS maintainers.
    ```nix
    handle = {
      # Required

@wolfgangwalther
wolfgangwalther force-pushed the maintainers-removal-guidelines branch from 8dc24c1 to 727eb8a Compare August 27, 2025 14:30
@wolfgangwalther

Copy link
Copy Markdown
Contributor Author

Added that!

@nixpkgs-ci nixpkgs-ci Bot added 12.approvals: 1 This PR was reviewed and approved by one person. 8.has: maintainer-list (update) This PR changes `maintainers/maintainer-list.nix` labels Aug 27, 2025
@ofborg ofborg Bot added the ofborg-internal-error Ofborg encountered an error label Aug 27, 2025

@MattSturgeon MattSturgeon left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could also be inconvenient for downstream/out-of-tree projects that leverage lib.maintainers. However that shouldn't mean nixpkgs should keep inactive maintainers just in case they are used out-of-tree.

Such projects can of course vendor the removed maintainers in their repo, when they update to a nixpkgs revision that no longer includes them in lib.maintainers.


Regardless of my above musing, the new wording better describes what we actually do in practice. It isn't really an actual policy change..

@wolfgangwalther

Copy link
Copy Markdown
Contributor Author

@pbsds since you added the 9.needs: community feedback label - is that still the case or was that resolved with the addition of "active", as well?

@nixpkgs-ci nixpkgs-ci Bot added 12.approvals: 2 This PR was reviewed and approved by two persons. and removed 12.approvals: 1 This PR was reviewed and approved by one person. labels Aug 27, 2025
@pbsds

pbsds commented Aug 27, 2025

Copy link
Copy Markdown
Member

Regardless of my above musing, the new wording better describes what we actually do in practice. It isn't really an actual policy change..

I still do consider this a policy change, even if there is no change to the currently practiced policy, it is a change to what is formally agreed upon.


@pbsds since you added the 9.needs: community feedback label - is that still the case or was that resolved with the addition of "active", as well?

I only added that label because i consider the approval threshold to merge policy changes higher than normal changes.

Comment thread maintainers/README.md Outdated
Comment thread maintainers/README.md Outdated
The wording on how to lose maintainer status implied that this was per
package. While this is true, we also follow the same procedure for
entirely inactive maintainers, dropping them from all packages,
including their maintainer handle.

I'm a friend of making things shorter, this should leave enough room for
interpretation of both.

Since removal of inactive maintainers implies that maintainer-list.nix
is about *active* maintainers, clarify that as well.
@wolfgangwalther
wolfgangwalther force-pushed the maintainers-removal-guidelines branch from 727eb8a to 77ffc77 Compare August 27, 2025 18:13
@ofborg ofborg Bot removed the ofborg-internal-error Ofborg encountered an error label Aug 27, 2025
@nixpkgs-ci nixpkgs-ci Bot added 12.approvals: 3+ This PR was reviewed and approved by three or more persons. and removed 12.approvals: 2 This PR was reviewed and approved by two persons. labels Aug 27, 2025
@zeuner

zeuner commented Sep 2, 2025

Copy link
Copy Markdown
Contributor

Just because there were cases where the currently documented process wasn't followed does not mean it's better to extend what's documented. In fact, there are good reasons to assume that the per-package approach is documented this way for good reasons, considering that it seems better suited to the obvious goal of improving package maintenance, or at least getting a more accurate view of which packages are properly maintained:

  1. There may be good reasons why maintainer removal criteria are met for one package, while they aren't for other packages of the same maintainer. People often maintain packages they use themselves. Now, if they stop using some of the packages and forget to remove themselves from meta.maintainers themselves, it might be justified to remove them through the documented process, but this alone would not indicate any maintenance issue with the other maintained packages.

  2. Contributors with limited time might decide to only maintain packages which rarely need changes, e.g. because the upstream source is rather stable. Think bzip2. This should be perfectly fine as long as they react when they are needed. The per-maintainer approach can easily lead to the situation where committers mistakenly think the maintainer does not meet maintainer obligations even though the maintained packages just didn't need attention. Removing or replacing maintainers in such contexts is expected to be detrimental for nixpkgs quality because the original maintainers can still assumed to have opted for maintenance because they know the maintained package very well.

Switching from a per-package to a per-user process equals a paradigm shift away from "how can we ensure quality in our packages?" towards a "who do we want to be a maintainer?". Such an far-reaching change should involve community consensus, so it would be better to run this through an RFC process if there is sufficient evidence that the change would be beneficial.

However, it's currently not obvious that the change would have any real advantages. The PR also does not state any, it is just built on the observation that there have already been violations of the documented process. It's yet to be shown that the proposed change will also come with advantages. Until then, it may even be considered a disadvantage:

The idea of completely removing a maintainer together with all corresponding references in packages already seems to lead to misguiding incentives. In related PRs, checking whether maintainer obligations have been met sometimes seems to play a minor role. With the help of a script, maintainers are chosen solely based on data from maintainers/maintainer-list.nix, which does not include any data related to reaction times to maintainer requests.

@wolfgangwalther

Copy link
Copy Markdown
Contributor Author

@infinisil could you have a quick look at these changes, too?

@infinisil infinisil left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense, let's do it!

@infinisil
infinisil merged commit e21abb1 into NixOS:master Sep 2, 2025
31 of 32 checks passed
@wolfgangwalther
wolfgangwalther deleted the maintainers-removal-guidelines branch September 2, 2025 09:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: policy discussion Discuss policies to work in and around Nixpkgs 8.has: maintainer-list (update) This PR changes `maintainers/maintainer-list.nix` 9.needs: community feedback This needs feedback from more community members. 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 0 This PR does not cause any packages to rebuild on Linux. 12.approvals: 3+ This PR was reviewed and approved by three or more persons.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants