-
-
Notifications
You must be signed in to change notification settings - Fork 11
Description
To reduce toil and improve security, I'd like to spend some time to automate the retirement of inactive Nixpkgs committers, mostly in line with RFC 55 (and RFC 71). In this issue I'm describing the overall plan to implement this.
To go ahead with the implementation, I need explicit approval from:
- All of the Nixpkgs commit delegators @Mic92, @jtojnar and @NickCao, as this is changing the Nixpkgs committer process.
- The @NixOS/steering committee, because the plan does not implement the approved RFC 55 exactly.
Please 👍 this comment if it sounds good to you, or leave a comment for any concerns.
Plan
Primarily for the commit delegators to approve.
Declarative committers
Create https://github.com/NixOS/nixpkgs-committers to declare the committers and introduce automation to sync its state with the Nixpkgs committers team.
- For now only the commit delegators themselves are expected to create and merge PRs to change the committers, while the process of nominating stays the same. This would become easy to change to a PR workflow in the future.
- Automation must add removed committers to the Retired Nixpkgs Contributors team.
Automatic retirement
Set up automation that runs every month to:
- Check for each committer if they've been using their commit permission in the past 12 months (this is a minor deviation, see below).
- If inactive, open a PR that removes and pings them, mentioning that they have 1 month to make a commit or they lose the bit.
- When the workflow runs the next month, any existing PRs will either be merged or closed automatically based on whether the committer has used their commit access or not.
Deviation and empowerment
Primarily for the SC to approve.
Deviation: Rolling window
The new plan is to have a rolling window over the last 12 months, while RFC 55 specified:
That year is measured from January 1 to December 31 instead of using a rolling window over the last 12 months, to be more predictable for committers and reduce the evaluations from 12 times a year to just once a year.
The reasons given are not relevant anymore with this plan:
- More predictable: Automation is very predictable, and all users will be well informed in the same way, with always 1 month to commit again to avoid losing access.
- Reduced evaluations: Computers don't get tired from doing something too often. It's even better to run it more, because then we notice problems quicker.
Furthermore, this is fairer, because e.g. two people whose last commit was on 2023-01-01 and 2023-12-31 respectively aren't scheduled to lose their access at the same time on 2025-01-01 (which is ~2 years and ~1 year later respectively), but rather both after ~1 year.
Empowering the commit delegators for future deviations from RFCs
The commit delegators should get explicit authority to make any other commit delegation changes, even if they conflict previous RFCs, without needing further RFC or SC approval.