Skip to content

teams/ci: init#416459

Merged
wolfgangwalther merged 2 commits intoNixOS:masterfrom
wolfgangwalther:ci-team
Jun 20, 2025
Merged

teams/ci: init#416459
wolfgangwalther merged 2 commits intoNixOS:masterfrom
wolfgangwalther:ci-team

Conversation

@wolfgangwalther
Copy link
Contributor

@wolfgangwalther wolfgangwalther commented Jun 13, 2025

@philiptaron suggested to create a team for CI. Let's do that.

This will become especially handy once we enable "required status checks". To avoid locking us out, we probably need the CI team to be able to bypass the required status checks. Otherwise some changes to CI might not be possible: Sometimes new workflows fail temporarily, until they are merged. Or worse, if we make a mistake and merge something that only starts failing on master, we might not be able to fix it without bypassing those checks. Adding bypass actors for branch protection rules can only happen for teams, so we need one anyway.

The change proposed here, encodes the status-quo and takes the current codeowners to form that team. Still, we should discuss membership.

We have a few factors to consider:

  • Membership in the team will likely allow bypassing the "required status checks" branch protection rule. Should not make a difference for non-committers, but could be something that some committers don't even want to be able to do.
  • We currently have 9 codeowners (including the security team) listed for CI related things. That's very close to the self-imposed limit of 10, after which the codeowners workflow will currently not request reviews anymore. We need to be careful not to accidentally disable pings entirely :)

Of course, the number of codeowners shouldn't be a hard limit - we can always adjust CI. Short-term we could raise the limit, but longer term, I hope to be able to implement "requesting reviews from teams" instead of extracting the members for each team and pinging them separately. This way, we could ping the security and CI teams with two pings only.

I think the current codeowners can be roughly split into three categories:

(very much by feel, not by facts, please correct me if wrong)

The obvious question to the last tree: Do you want to be part of that team or rather have fewer notifications?

Also, there are two more candidates:

Things done


Add a 👍 reaction to pull requests you find important.

@nix-owners nix-owners bot requested review from infinisil and philiptaron June 13, 2025 14:17
@github-actions github-actions 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: teams Relating to team creation, updates, other management actions labels Jun 13, 2025
@infinisil
Copy link
Member

I'm happy to be dropped for now while I focus on other things!

@philiptaron
Copy link
Contributor

I'm happy to be dropped for now while I focus on other things!

Thank you so much for all the work that you've done causing this transition to be effective.

@wolfgangwalther
Copy link
Contributor Author

I removed @infinisil and added @MattSturgeon.

Still waiting on feedback from @azuwis and @winterqt before I make changes for them.

@azuwis
Copy link
Contributor

azuwis commented Jun 16, 2025

I'm currently busy with other things, please drop me for now.

@winterqt
Copy link
Member

I appreciate the thought, but I am also quite busy right now; please remove me from consideration for the time being.

@wolfgangwalther
Copy link
Contributor Author

Thanks for the feedback, did so!

Request for team creation is here: NixOS/org#128

@Mic92
Copy link
Member

Mic92 commented Jun 18, 2025

Having a team in principle sounds ok. I am only a bit concerned that the list of people is currently a bit small. zowoq hasn't reacted on this and I am also quite busy. Could we for transition maybe allow all committers to bypass CI until we gained more confidence with the process and we have a bigger pool? In principle I like to think, I trust people enough that can potentially make my system unbootable, would also be considered enough to think twice before hitting a red "Bypass required checks" button. I think if we catch someone abusing this, we probably should rethink their commit rights in the first place.

@philiptaron
Copy link
Contributor

zowoq hasn't reacted on this

They have, actually.

@MattSturgeon
Copy link
Contributor

MattSturgeon commented Jun 18, 2025

I am only a bit concerned that the list of people is currently a bit small.

I don't see a small team as an intrinsic problem, it shouldn't dictate who actually reviews CI-related changes; anyone is welcome to. Rather it should describe who is interested in the subject.1

If the number of interested parties is a problem, then it's still a problem without a team, just a less visible one 😉

I'd argue having a team is the first step in encouraging new people to join it.

Could we for transition maybe allow all committers to bypass CI until we gained more confidence with the process and we have a bigger pool?

I think this discussion will be more relevant when we actually start discussing/implementing rulesets that require status checks. Until then, the CI team is no different from any other nixpkgs team.

That said, this is an example of where team size could become a practical issue; if the team were the only ones with bypass permission and it turned out bypasses were needed too often for the team to keep up with.

I assume some other teams would also get bypass permission, e.g. the security team and org owners? Maybe it'd be treated similarly to commit bit, and the committer delegation team could also decide who gets the additional "bypass bit"?

Whether or not enough active committers can bypass would be something we'd have to continually review.

think twice before hitting a red "Bypass required checks" button. I think if we catch someone abusing this, we probably should rethink their commit rights in the first place.

100%, any bypass should always be for exceptional circumstances, or for implementing a change to CI that fails the old CI. The former should be done extremely rarely and with a lot of consideration. The latter should never affect the actual NixOS or nixpkgs outputs consumed by end-users, only the CI workflows.

Footnotes

  1. This reminds me of how grammar rules, dictionaries, etc are intended by linguists as "descriptive", but they're often used by nit-pickers to be "prescriptive" 📖

@Mic92
Copy link
Member

Mic92 commented Jun 19, 2025

Okay. My worry above was mainly about who is able to bypass, not the team as such (and not blocking this PR). Since the GitHub ci is just the forefront to hydra, I don't think we need to be overly stingy with this privilege. I also think we shouldn't necessarily bottleneck other groups with unrelated tasks.

@MattSturgeon
Copy link
Contributor

MattSturgeon commented Jun 19, 2025

Since the GitHub ci is just the forefront to hydra, I don't think we need to be overly stingy with this privilege.

Ah gotcha. That makes sense.

We could allow any committer to bypass, which would match the status quo while making the act of ignoring CI much more explicit.

Alternatively, the committer delegation team could grant a "bypass bit" separately. But as you say, this could be granted to a significant portion of committers, perhaps even anyone who's been a committer longer than X weeks?

Assuming it isn't easy to accidentally bypass, then I'm fine with either approach. If bypassing accidentally was easy, it'd kinda defeat the point of having a ruleset in the first place; that's why I was initially assuming most committers wouldn't have bypass bit.

@wolfgangwalther
Copy link
Contributor Author

The question about bypassing branch protection rules is important - but imho not the right place here. I created NixOS/org#130 to discuss this, let's move all of that discussion there.

The team creation is independent of how we end up setting up those rules.

I think the key takeaway from this PR is transparency and visibility. Instead of ~10 review requests, there will now be at most 5 review requests for CI related changes - and it's much clearer from whom to expect feedback now. That's important.

And having a CI team in place will hopefully also help to encourage people to show interest and join the effort, I agree with that @MattSturgeon.

@github-actions github-actions bot added the 12.approvals: 3+ This PR was reviewed and approved by three or more persons. label Jun 20, 2025
@wolfgangwalther wolfgangwalther merged commit 1bec402 into NixOS:master Jun 20, 2025
26 of 28 checks passed
@wolfgangwalther wolfgangwalther deleted the ci-team branch June 20, 2025 11:59
@nixpkgs-ci

This comment was marked as resolved.

@nixpkgs-ci
Copy link
Contributor

nixpkgs-ci bot commented Jun 20, 2025

Successfully created backport PR for release-25.05:

@github-actions github-actions bot added the 8.has: port to stable This PR already has a backport to the stable release. label Jun 20, 2025
@nixpkgs-ci

This comment was marked as resolved.

@nixpkgs-ci

This comment was marked as duplicate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: teams Relating to team creation, updates, other management actions 8.has: port to stable This PR already has a backport to the stable release. 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.