Skip to content

fix(ci): map the recurring app scopes to their area labels - #4121

Merged
Andrei Kvapil (kvaps) merged 1 commit into
mainfrom
chore/pr-labeler-vm-instance-scope
Sep 9, 2026
Merged

Andrei Kvapil (kvaps) merged 1 commit into
mainfrom
chore/pr-labeler-vm-instance-scope

Conversation

@lexfrei

@lexfrei Aleksei Sviridkin (lexfrei) commented Sep 7, 2026 •

Copy link
Copy Markdown
Contributor

What this PR does

The auto-labeler maps a Conventional Commits scope to an area/* label. Scopes that PR titles use for apps under packages/apps were missing from that map, so a PR whose title carries only such a scope gets area/uncategorized and the area has to be set by hand afterwards.

Each scope added here clears the bar the map's own comment sets for a new entry, three or more occurrences over the whole PR history in both title forms the labeler parses: vm-instance 14, nats 10, rabbitmq 8, vpc 8, foundationdb 5, qdrant 4, kubernetes-nodes 3, vm-disk 3. Each also has an unambiguous home among the labels that already exist. area/virtualization names cdi, and vm-disk renders a DataVolume while vm-instance renders a VirtualMachine. area/kubernetes is the tenant Kubernetes app and kubernetes-nodes is the worker half split out of it. area/database is described as managed databases and already lists kafka, so rabbitmq, nats, qdrant and foundationdb sit there without stretching it. vpc renders Vpc and Subnet, and area/networking already names kube-ovn.

Replayed the map before and after this change over the whole PR title history: 53 titles come out with a different label set. Each of them gains one area/* and loses nothing. 48 stop falling back to area/uncategorized; the other 5 already had an area from a second scope in the title and now carry both.

A scope that clears the bar but has no unambiguous home is left out rather than pushed into the nearest label. AGENTS.md asks for a new area/* in that case, which is a separate decision. Those, and the scopes still below the bar, are collected in #4122 along with the measurement and two bits of drift found on the way. opensearch is not that case: its home was never in question, it was below the bar when this PR opened and crossed it while the PR waited. It stays in #4122 rather than being folded in here.

Screenshots

No UI change.

Downstream repositories

Walked the trigger map in docs/agents/contributing.md against the diff. The diff touches .github/workflows/pr-labeler.yaml only. The nearest triggers are the ccp and community entries on the commit convention in docs/agents/contributing.md, and that file is not touched here: the scope table there is a summary that already lags the workflow, and the workflow is named as the full mapping.

Release note

fix(ci): more of the app scopes used in PR titles now map to an `area/*` label instead of falling back to `area/uncategorized`

@github-actions github-actions Bot added size/XS This PR changes 0-9 lines, ignoring generated files area/ci Issues or PRs related to CI workflows, GitHub Actions, automation kind/bug Categorizes issue or PR as related to a bug labels Sep 7, 2026
@coderabbitai

coderabbitai Bot commented Sep 7, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: 44176c73-fabd-4790-801a-0d3f27457d6b

📥 Commits

Reviewing files that changed from the base of the PR and between cfa1b98 and d949099.

📒 Files selected for processing (1)
  • .github/workflows/pr-labeler.yaml

Included review availability: Your plan provides up to 8 included reviews per hour; 6 remain after this review.


📝 Walkthrough

Walkthrough

The PR labeler workflow adds mappings for database, Kubernetes, networking, and virtualization scopes.

Changes

PR labeling

Layer / File(s) Summary
Area scope mappings
.github/workflows/pr-labeler.yaml
The scopeToArea mapping assigns database scopes to area/database, kubernetes-nodes to area/kubernetes, vpc to area/networking, and VM scopes to area/virtualization.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to d9490

Recurring app scopes will now receive their intended database, Kubernetes, networking, or virtualization area labels instead of falling back to uncategorized. The mapping-only change is ready to merge.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: updating CI mappings for recurring app scopes to their area labels.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/pr-labeler-vm-instance-scope

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@lexfrei
Aleksei Sviridkin (lexfrei) force-pushed the chore/pr-labeler-vm-instance-scope branch from ba264a2 to cfa1b98 Compare September 7, 2026 02:09
@lexfrei Aleksei Sviridkin (lexfrei) changed the title fix(ci): map the vm-instance scope to area/virtualization fix(ci): map the recurring app scopes to their area labels Sep 7, 2026
@lexfrei
Aleksei Sviridkin (lexfrei) force-pushed the chore/pr-labeler-vm-instance-scope branch 2 times, most recently from 5ef10bb to 2b8d143 Compare September 7, 2026 14:03
Scopes that PR titles use for apps under packages/apps were missing
from the labeler's scopeToArea table. A PR whose title carries only
such a scope falls through to the area/uncategorized fallback, and the
area label has to be set by hand afterwards.

Each scope added here clears the bar the table's own comment sets for
a new entry, counted over the whole PR history in both title forms the
labeler parses, and has an unambiguous home among the labels that
already exist. A scope that clears the bar but has no such home is
left out rather than pushed into the nearest label: AGENTS.md asks for
a new area/* in that case, which is a separate decision.

The homes come from the label descriptions. area/virtualization names
cdi, and vm-disk renders a DataVolume while vm-instance renders a
VirtualMachine. area/kubernetes is the tenant Kubernetes app, and
kubernetes-nodes is the worker half split out of it. area/database is
described as managed databases and already lists kafka, so rabbitmq,
nats, qdrant and foundationdb sit there without stretching it. vpc
renders Vpc and Subnet, and area/networking already names kube-ovn.

Assisted-by: LLM
Signed-off-by: Aleksei Sviridkin <[email protected]>

@kvaps Andrei Kvapil (kvaps) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Verdict

LGTM.

Data-only: eight scope keys pointing at four labels that already exist. AGENTS.md's two-sided rule — a new area/* must land in both .github/labels.yml and the scope mapping — does not bite here, because no label is added. I checked both sides anyway: every area/* value referenced from scopeToArea exists in labels.yml, and the one label in labels.yml that the map never targets is area/uncategorized, which is correct since it is the fallback. Step 8 of the labeler is untouched, so the fallback still fires for anything unmapped; adding entries only makes it fire less often. No duplicate keys, which would have silently overridden.

The 3+ occurrence bar you set holds under an independent count over 3115 PR titles: vm-instance 12, rabbitmq 8, nats 7, vpc 7, foundationdb 5, qdrant 4, kubernetes-nodes 3, vm-disk 3. My regex is stricter than yours so the numbers are a little lower, but every scope clears on either count.

nats and rabbitmq mapping to area/database reads odd for message brokers until you look at the label's own description in labels.yml, which already lists kafka. So that is following the existing taxonomy rather than stretching it, and I would not change it.

Two things worth knowing rather than fixing. The label descriptions that enumerate example scopes now lag the map — they are illustrative rather than exhaustive, and #4122 is already collecting that drift. And nats and qdrant also exist under packages/system/, so a PR against the platform's own NATS picks up area/database; labelling is additive, so a maintainer can add area/platform on top, and I would rather have that than no label at all.

@kvaps
Andrei Kvapil (kvaps) merged commit 3cb9f21 into main Sep 9, 2026
20 checks passed
@kvaps
Andrei Kvapil (kvaps) deleted the chore/pr-labeler-vm-instance-scope branch September 9, 2026 20:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/ci Issues or PRs related to CI workflows, GitHub Actions, automation kind/bug Categorizes issue or PR as related to a bug size/XS This PR changes 0-9 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants