New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
lib.maintainers: maintainer is now a set #34842
Conversation
|
This commit allows values in lib.maintainers to be not only a string, but also a set. This gives the possibility to obtain the GitHub handle of maintainers by evaluation, and the possibility to add additional means for contacting maintainers. This is based on the suggestion made in NixOS#18352 (comment).
... but I'm personally not yet sure that this is a good approach. For example, we're growing per-package resources needed for evaluation all the time, and growing the number of packages as well. Evaluation is something we do really often, even if it's typically partial. |
Evaluation of meta is fixed.
This may indeed require additional resources. I would have to test whether it is anything significant. I do think we should have this information available. An alternative would be to simply list the different fields instead of computing them as is done now. |
Yes, I'd consider just committing the textually transformed code, probably depending on the real measurements. |
I hope there are no other tools depending on the "type" of |
IIRC Hydra looks at the maintainer list and will need a patch. I think I remember @edolstra saying to do it and he'd take care of the patching. |
|
Thanks @grahamc. So, the goal is indeed to have a set of sets, instead of what is in this PR. Regardless, I think this PR can be used to test the required changes to Hydra. Therefore, I propose
|
@GrahamcOfBorg eval |
Please also include @0x4A6F handle in this pr |
Honestly, I think the best thing to do is just break hydra and make the change all at once. Then we can get it in and call it done. Eelco didn't seem concerned about this approach, as far as I could tell. |
Does that mean we have to backport the schema change to 17.09? (I'm not sure how much Hydra breaks.) |
I don't know, but I doubt it. My impression is the patch for Hydra would be pretty simple. |
Would it rustle your jimmies if I reformatted the whole thing to be a uniform, extensible object?
This way there is no special-casing necessary and other fields can be added once the need arises (and tooling doesn’t have to make sense of every single field). |
@Profpatsch eventually every maintainer should indeed be described by such a set, see the struct. I did not want to make this change until Hydra supports it. |
Based on NixOS#34842, the nix-instantiate output was pretty-printed and the validity of the github handles manually verified, by automatically checking whether the user handles exist on github (https://github.com/userhandle, status 200 or 404). Each handle under 5 characters was manually checked (because the collision probability with non-maintainer accounts is high), each missing entry was manually researched. The script used is kept in `maintainers/scripts` as an example of how to work with the mainainers list through nix’ JSON interface.
Based on #34842, the nix-instantiate output was pretty-printed and the validity of the github handles manually verified, by automatically checking whether the user handles exist on github (https://github.com/userhandle, status 200 or 404). Each handle under 5 characters was manually checked (because the collision probability with non-maintainer accounts is high), each missing entry was manually researched. The script used is kept in `maintainers/scripts` as an example of how to work with the mainainers list through nix’ JSON interface.
This commit allows values in lib.maintainers to be not only a string,
but also a set. This gives the possibility to obtain the GitHub handle
of maintainers by evaluation, and the possibility to add additional
means for contacting maintainers.
This is based on the suggestion made in
#18352 (comment).
Things done
build-use-sandbox
innix.conf
on non-NixOS)nix-shell -p nox --run "nox-review wip"
./result/bin/
)