Skip to content

Codeowners based ownership#1512

Merged
ahg-g merged 9 commits into
llm-d:mainfrom
vMaroon:codeowners-based-ownership
Jun 9, 2026
Merged

Codeowners based ownership#1512
ahg-g merged 9 commits into
llm-d:mainfrom
vMaroon:codeowners-based-ownership

Conversation

@vMaroon

@vMaroon vMaroon commented Jun 6, 2026

Copy link
Copy Markdown
Member

Summary

Replaces the nested OWNERS files and the prow lgtm/approve + poll-automerge flow with a single root CODEOWNERS, GitHub-native review assignment, approval, and auto-merge, gated by branch and tag protection. Ownership becomes one visible map that GitHub surfaces in every PR's sidebar and enforces directly.

Motivation: nested OWNERS files are invisible in the PR UI and unread by the prow GitHub action, so sub-package owners are never pulled in by design; and auto-assign.yaml picks two random reviewers with no path or load awareness.

This matter was discussed with the maintainers team

Changes

Added

  • CODEOWNERS (repo root) — flat, organized by component. The maintainers team (@llm-d/router-maintainers) is the default owner and is listed alongside each component's named owners, so a maintainer can satisfy code-owner review on any path while named owners are auto-requested for theirs.
  • LEADS.md — chair, maintainers, release managers, emeritus.
  • .github/workflows/pr-hold-gate.yml — required check that fails while a hold or do-not-merge/hold label is present.

Removed

  • 8 OWNERS files.
  • auto-assign.yaml (random-2 assignment), prow-pr-automerge.yml (10-min lgtm-label poll-merge with no CI/approver check), prow-pr-remove-lgtm.yml.

Modified

  • prow-github.yml — drop /lgtm and /approve (no root OWNERS to gate them; GitHub-native Approve is the equivalent). All other chat-ops kept.
  • .github/ISSUE_TEMPLATE/new-release.md — note that pushing v* tags requires router-release-managers membership.

New flow

  • Review assignment: GitHub auto-requests the code owners of touched paths; the maintainers-team request is load-balanced to 2 via Code review assignment.
  • Approval + merge: GitHub-native Approve and auto-merge, gated by branch protection on main and release-* (1+ approval, code-owner review, required CI, signed commits). Auto-merge replaces the prow poll-merge.
  • Hold: /hold (label hold) and the release-branch auto-hold (label do-not-merge/hold) block merge through the hold-gate required check.
  • Release: tag protection on refs/tags/v* restricts release-tag push to router-release-managers.

Required GitHub settings (apply on merge — repo/org config, not code)

  • Org teams router-maintainers and router-release-managers with Write access
  • Ensure every individual in CODEOWNERS has Write.
  • Code review assignment on router-maintainers (Load balance, 2, skip busy).
  • Branch protection on main and release-*: require PR + 1 approval, Require review from Code Owners, required checks incl. hold, signed commits; keep the bypass list empty.
  • Enable auto-merge (squash).
  • Tag protection / ruleset for v* restricted to router-release-managers.

/kind cleanup

vMaroon added 3 commits June 6, 2026 22:40
Nested OWNERS files are invisible in the PR sidebar and unread by the prow GitHub action, and auto-assign.yaml requests two random reviewers with no path or load awareness. Replace them with a CODEOWNERS file surfaced natively by GitHub, with review assignment and merge gating enforced by branch protection.

Drop the prow lgtm-merge and remove-lgtm workflows and remove /lgtm and /approve from prow-github.yml, since approval is now GitHub-native. Record project leadership in LEADS.md and note the release-managers tag gate in the new-release template.

Signed-off-by: Maroon Ayoub <maroon.ayoub@ibm.com>
GitHub-native auto-merge ignores labels, so removing prow-pr-automerge.yml left /hold (label `hold`) and the release-branch auto-hold (label `do-not-merge/hold`) with nothing to enforce them. Add a required check that fails while either label is present and re-runs on label changes.

Also correct the prow-github.yml token-permission comment, which described adding reviews after /lgtm and /approve were removed.

Signed-off-by: Maroon Ayoub <maroon.ayoub@ibm.com>
Single-owner carve-outs requested review from one person and never the maintainers team, with that person the only valid code-owner approver. List the team alongside the named owner on those paths so any maintainer can also satisfy code-owner review. Paths with multiple named owners stay scoped to those owners.

Signed-off-by: Maroon Ayoub <maroon.ayoub@ibm.com>
Copilot AI review requested due to automatic review settings June 6, 2026 20:48
@github-actions github-actions Bot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. kind/cleanup labels Jun 6, 2026
@github-actions
github-actions Bot requested a review from ahg-g June 6, 2026 20:48
@github-actions
github-actions Bot requested a review from nirrozenbaum June 6, 2026 20:48
@vMaroon
vMaroon requested review from ahg-g, elevran and liu-cong and removed request for ahg-g and nirrozenbaum June 6, 2026 20:48

Copilot AI 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.

Pull request overview

This PR migrates repository ownership and merge controls from Prow + nested OWNERS files to GitHub-native mechanisms (root CODEOWNERS, required reviews/status checks, and auto-merge), with an Actions-based “hold” gate to preserve /hold behavior.

Changes:

  • Add root CODEOWNERS and leadership metadata in LEADS.md; remove nested/root OWNERS.
  • Replace Prow label-driven automerge + random reviewer assignment with GitHub review assignment + auto-merge, gated by a new “hold” required check.
  • Update remaining Prow chat-ops workflow to drop /lgtm and /approve, and update release issue template guidance.

Reviewed changes

Copilot reviewed 16 out of 16 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
pkg/epp/framework/plugins/scheduling/scorer/prefix/OWNERS Removed nested OWNERS (migrating ownership to CODEOWNERS).
pkg/epp/framework/plugins/scheduling/scorer/latency/OWNERS Removed nested OWNERS (migrating ownership to CODEOWNERS).
pkg/epp/framework/plugins/scheduling/filter/sloheadroomtier/OWNERS Removed nested OWNERS (migrating ownership to CODEOWNERS).
pkg/epp/framework/plugins/scheduling/filter/prefixcacheaffinity/OWNERS Removed nested OWNERS (migrating ownership to CODEOWNERS).
pkg/epp/framework/plugins/requestcontrol/dataproducer/predictedlatency/OWNERS Removed nested OWNERS (migrating ownership to CODEOWNERS).
pkg/epp/framework/plugins/requestcontrol/dataproducer/predictedlatency/latencypredictorclient/OWNERS Removed nested OWNERS (migrating ownership to CODEOWNERS).
pkg/epp/framework/plugins/requestcontrol/admitter/latencyslo/OWNERS Removed nested OWNERS (migrating ownership to CODEOWNERS).
OWNERS Removed root OWNERS (superseded by CODEOWNERS + branch protection).
LEADS.md Added leadership/roles documentation and pointers to ownership enforcement.
CODEOWNERS Added GitHub-native ownership map by component/path.
.github/workflows/prow-pr-remove-lgtm.yml Removed legacy Prow-based LGTM job workflow.
.github/workflows/prow-pr-automerge.yml Removed legacy label-poll automerge workflow.
.github/workflows/prow-github.yml Updated Prow chat-ops command set and permissions commentary.
.github/workflows/pr-hold-gate.yml Added “hold” gate workflow to block merges while hold labels exist.
.github/workflows/auto-assign.yaml Removed random reviewer auto-assignment workflow.
.github/ISSUE_TEMPLATE/new-release.md Updated release prerequisites to mention tag protection / release-managers.

Comment thread LEADS.md
Comment thread LEADS.md Outdated
Comment thread CODEOWNERS Outdated
Comment thread CODEOWNERS Outdated
Comment thread CODEOWNERS Outdated
Comment thread CODEOWNERS Outdated
Comment thread CODEOWNERS Outdated
vMaroon and others added 3 commits June 6, 2026 23:54
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Maroon Ayoub <Maroonay@gmail.com>
Signed-off-by: Maroon Ayoub <maroon.ayoub@ibm.com>
Signed-off-by: Maroon Ayoub <maroon.ayoub@ibm.com>
Resolve the delete/modify conflict on .github/workflows/auto-assign.yaml by keeping the deletion; the workflow is removed in this branch (llm-d#1423 only tweaked its trigger).

Signed-off-by: Maroon Ayoub <maroon.ayoub@ibm.com>
Comment thread CODEOWNERS
Comment on lines +17 to +18
/pkg/epp/flowcontrol/ @LukeAVanDrie @shmuelk @llm-d/router-maintainers
/pkg/epp/framework/plugins/flowcontrol/ @LukeAVanDrie @shmuelk @llm-d/router-maintainers

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.

What about /pkg/epp/framework/interface/flowcontrol/ ?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Done

The flow-control interface package shares owners with the flow-control framework and plugins.

Signed-off-by: Maroon Ayoub <maroon.ayoub@ibm.com>
Comment thread CODEOWNERS
/pkg/epp/framework/plugins/scheduling/scorer/latency/ @kaushikmitr @llm-d/router-maintainers
/pkg/epp/framework/plugins/requestcontrol/admitter/latencyslo/ @kaushikmitr @llm-d/router-maintainers
/pkg/epp/framework/plugins/requestcontrol/dataproducer/predictedlatency/ @kaushikmitr @llm-d/router-maintainers

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

can we pls add @zetxqx as an owner to
https://github.com/llm-d/llm-d-router/tree/main/pkg/epp/framework/plugins/requesthandling
https://github.com/llm-d/llm-d-router/tree/main/pkg/epp/framework/interface/requesthandling

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Done

Assign @zetxqx as owner of the request-handling interface and plugins.

Signed-off-by: Maroon Ayoub <maroon.ayoub@ibm.com>
@ahg-g

ahg-g commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

/approve

@ahg-g
ahg-g merged commit 22f0ad1 into llm-d:main Jun 9, 2026
22 checks passed
@vMaroon
vMaroon deleted the codeowners-based-ownership branch June 9, 2026 12:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/cleanup size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants