Skip to content

Comments

maintainers: require GitHub handle (documentation)#437469

Merged
wolfgangwalther merged 2 commits intoNixOS:masterfrom
wolfgangwalther:maintainers-require-github
Aug 27, 2025
Merged

maintainers: require GitHub handle (documentation)#437469
wolfgangwalther merged 2 commits intoNixOS:masterfrom
wolfgangwalther:maintainers-require-github

Conversation

@wolfgangwalther
Copy link
Contributor

This documents the requirement for a github and githubId fields in maintainer handles. It does explicitly not enforce this requirement, yet, becaue there are still some maintainers without.

Enforcment via tests/CI will happen in a separate step, see #437085.

Please keep the discussion in this PR about the specific wording of the changes. Any discussion about "should we do this at all", is better done in #437085, where it was already started. We don't want to split this discussion among different PRs. Any such comment will be marked as "off-topic" here.

From the big numbers of approvals in #273220 and #437085, I conclude that we do want to do this. This PR follows up on what has essentially already been decided by the community, but has been blocked so far in implementation due to existing maintainer entries.

Things done


Add a 👍 reaction to pull requests you find important.

It's actually easier to request the user by ID and check the name
matches, because the name is going to differ more significantly on a
typo than the ID.
@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. 8.has: maintainer-list (update) This PR changes `maintainers/maintainer-list.nix` 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 10:47
@nixpkgs-ci nixpkgs-ci bot added the 12.approvals: 1 This PR was reviewed and approved by one person. label Aug 27, 2025
This documents the requirement for a github and githubId fields in
maintainer handles. It does explicitly not enforce this requirement,
yet, becaue there are still some maintainers without.

Enforcment via tests/CI will happen in a separate step.
@wolfgangwalther wolfgangwalther force-pushed the maintainers-require-github branch from d7d58c1 to c09d16c Compare August 27, 2025 13:15
@ofborg ofborg bot added the ofborg-internal-error Ofborg encountered an error label Aug 27, 2025
@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
@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
@Sigmanificient
Copy link
Member

@wolfgangwalther Thanks for all you work on maintainers!

@SigmaSquadron
Copy link
Contributor

our entire CI hinges on wolfgang's maintenance

@wolfgangwalther
Copy link
Contributor Author

Thanks for the feedback everyone. That's enough approvals for me to get this merged.

@wolfgangwalther wolfgangwalther merged commit d3b00da into NixOS:master Aug 27, 2025
29 checks passed
@wolfgangwalther wolfgangwalther deleted the maintainers-require-github branch August 27, 2025 15:54
Copy link
Contributor

@MattSturgeon MattSturgeon left a comment

Choose a reason for hiding this comment

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

I believe we also have some contributing docs that explicitly state a GitHub account is not required (to be a maintainer? contributor? I can't recall). If we're now enforcing that the attribute is set, we should rephrase that to avoid confusion.
-- #437085 (review)

The note I was thinking of was:

A GitHub account is recommended, which you can sign up for [here](https://github.com/signup).
See [here](https://discourse.nixos.org/t/about-the-patches-category/477) for how to contribute without a GitHub account.

...From the start of CONTRIBUTING.md.

That's still correct, even after this and #437085; you don't need to be a maintainer to contribute. Although, I wonder if it should now have a caveat, for clarity?

Regardless, that's tangential. This PR is about the maintainer docs, not contributing in general.

@wolfgangwalther wolfgangwalther mentioned this pull request Aug 27, 2025
1 task
@wolfgangwalther
Copy link
Contributor Author

That's still correct, even after this and #437085; you don't need to be a maintainer to contribute. Although, I wonder if it should now have a caveat, for clarity?

I see what you mean. I think it would not actually help clarity if we mentioned the fact that you need a github account to be a maintainer. That's because at this stage, for the very first contribution, you don't even know what a maintainer is. If you're really in the situation that you don't want / have a github account, reading up on the maintainer thing might lead you to believe that you couldn't propose the addition of a new package. But that's not true, you could do that, somebody else would just have to commit to maintaining it (and opening the actual PR). Thus.. I'd say it's probably more confusing than helpful to mention it there, at least that's how I feel.

@MattSturgeon
Copy link
Contributor

That's because at this stage, for the very first contribution, you don't even know what a maintainer is. [...] I'd say it's probably more confusing than helpful to mention it there, at least that's how I feel.

I can get on board with this perspective. I see how a caveat could be more confusing than helpful, especially for someone still fuzzy on "maintainer" vs "contributor".

A counter argument might be that CONTRIBUTING.md (etc) is not just for first time contributors; I suspect that in practice is is more often used as a reference guide rather than a "first PR" tutorial.

I think you could refute my argument by saying that, regardless of how it is actually used in practice, it is written for new contributors.

@zeuner
Copy link
Contributor

zeuner commented Sep 2, 2025

That's still correct, even after this and #437085; you don't need to be a maintainer to contribute. Although, I wonder if it should now have a caveat, for clarity?

Currently, serious contribution is more or less impossible when being barred from maintainer rights. Without a corresponding clarification in the documentation, committers are likely to refuse PRs involving new packages just because there is no maintainer entry in meta. However, the technically optimal solution for a contribution can involve new packages.

One example would be the unrolling of git sources involving submodules in order to improve source fetching. Putting all the necessary logic into the package which includes such a git repository is inferior with respect to maintenance and code reuse, so a better solution is to put it into a separate package that can be used by other packages. In this case, @GaetanLepage split the contribution it out into a separate package and generously took the maintenance responsibility. However, this cannot possibly be expected for every contribution, and for the resulting git-unroll package, gm6k would be a perfectly reasonable addition to the maintainer entry due to upstream authorship.

Another example are the link paths in alsa-lib plugins. A clean and robust solution to related issues is a wrapper package that provides binaries with corrected link paths, alsa-lib-with-plugins, which in turn is currently only possible with a maintainer entry. Without the wrapper package, it was necessary to set the link paths from the calling environment, which is tedious for reverse dependencies with executables, and close unfeasible if the reverse dependencies provide shared libraries.

In both exemplary cases, limiting contribution to what is possible without adding new packages leads to obvious quality defects. Therefore, I would argue that contributing without maintaining is a rather artificial idea, not really congruent with real life needs.

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` 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. ofborg-internal-error Ofborg encountered an error

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants