Skip to content

ci(stale): drop phantom priority/critical exempt label - #1925

Merged
yuanchen8911 merged 1 commit into
NVIDIA:mainfrom
yuanchen8911:ci/drop-phantom-priority-critical-exempt
Jul 27, 2026
Merged

ci(stale): drop phantom priority/critical exempt label#1925
yuanchen8911 merged 1 commit into
NVIDIA:mainfrom
yuanchen8911:ci/drop-phantom-priority-critical-exempt

Conversation

@yuanchen8911

@yuanchen8911 yuanchen8911 commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Summary

Removes priority/critical from exempt-issue-labels in .github/workflows/stale.yaml, and the matching line from the comment block above it. No such label exists in this repository, so the entry can never match.

Also corrects that same comment block's one-line description of do-not-merge, which understated the exemption in the way #1921 just fixed in CONTRIBUTING.md.

Motivation / Context

This is a proposal, not a settled decision. priority/critical is inert either way — an unmatched exempt label simply never fires — so there are two defensible resolutions, and this PR implements one of them:

  • Delete the dead entry (this PR), if lifecycle/frozen is the intended freeze mechanism.
  • Create the label, if "never goes stale for critical issues" is wanted policy — in which case the config was right and the label is what was missing. Closing this PR is how that option gets chosen; the label would then be created through repo settings, with no code change needed here.

The decisive point is that actions/stale can only match label names. It has no access to Projects v2 fields. Priority in this repo lives on the AICR project board as a Priority field (P0/P1/P2), not as repo labels, which is why no priority/* label was ever created. So creating priority/critical would not give board-P0 issues automatic exemption — someone would still hand-apply the label to each one. That collapses it into a synonym for lifecycle/frozen, which already exists, already sits in the same exempt-issue-labels list, and already covers pull requests too via exempt-pr-labels.

The trade-off is therefore not "protection versus no protection" — it is "one way to freeze an issue, or two."

Why fix it at all, given it is inert. The entry is documentation-shaped. The comment at :26 reads as a statement of policy, and it is where the incorrect CONTRIBUTING.md claim originated. #1921 removed that claim from the docs; this removes the source. Left alone, the next person auditing the workflow re-documents it and the same error returns.

Evidence: gh api repos/NVIDIA/aicr/labels --paginate returns no priority/* label of any kind. The other two exempt labels, lifecycle/frozen and good first issue, both exist and work.

Fixes: N/A
Related: #1920, #1921

This addresses one bullet of #1920 and deliberately does not close it — that issue also covers the aicr-triage Close-bucket label rule and the "Stalled" naming collision, both of which are independent follow-ups.

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Refactoring (no functional changes)
  • Build/CI/tooling

Component(s) Affected

  • CLI (cmd/aicr, pkg/cli)
  • API server (cmd/aicrd, pkg/server)
  • Recipe engine / data (pkg/recipe)
  • Bundlers (pkg/bundler, pkg/component/*)
  • Collectors / snapshotter (pkg/collector, pkg/snapshotter)
  • Validator (pkg/validator)
  • Core libraries (pkg/errors, pkg/k8s)
  • Docs/examples (docs/, examples/)
  • Other: .github/workflows/stale.yaml

Implementation Notes

No behavior change. The removed label never matched, so no issue's staleness handling differs before or after. lifecycle/frozen and good first issue continue to exempt issues; lifecycle/frozen and do-not-merge continue to exempt pull requests.

The do-not-merge comment was understated. exempt-pr-labels (:80) is actions/stale's exemption list, so an exempt PR is never marked stale — it receives neither the lifecycle/stale label nor the warning comment. It is not merely spared the close. "PR won't be closed" is precisely the framing #1921 replaced in CONTRIBUTING.md ("To prevent auto-close" → "To stay out of the stale process entirely") for this same mechanism, so leaving it would have put the workflow comment and the documentation in disagreement about the same behavior — the drift this PR exists to prevent.

Scope is deliberately narrow: three lines, all inside the same comment block or the config entry it describes. The documentation half was fixed separately in #1921, and the aicr-triage skill changes from #1920 belong in their own PR against the skill file.

One adjacent gap left alone. The comment block still omits good first issue, so it remains an incomplete summary of :66 after this change. That is incompleteness rather than an incorrect statement, which is why it is treated differently from the do-not-merge wording above. Happy to add it if a reviewer prefers the block be exhaustive.

Reversible. If a maintainer later decides critical issues warrant a dedicated exemption, restoring it is one API call to create the label plus these two lines back. Deleting a dead string forecloses nothing.

Testing

actionlint .github/workflows/stale.yaml   # passes
git grep -n 'priority/critical'           # no matches remain in the tree

make qualify was not run: this changes one CI workflow file and no Go, YAML-under-test, or documentation source, so the repository gate cannot regress from it. The relevant check is actionlint, which passes locally and also runs in CI on .github/** changes.

Risk Assessment

  • Low — Isolated change, well-tested, easy to revert
  • Medium — Touches multiple components or has broader impact
  • High — Breaking change, affects critical paths, or complex rollout

Rollout notes: No migration. The removed entry had no effect, so the stale bot behaves identically before and after.

Checklist

  • Tests pass locally (make test with -race) — N/A, no Go changes; actionlint passes
  • Linter passes (make lint) — actionlint clean on the changed file
  • I did not skip/disable tests to make CI green
  • I added/updated tests for new functionality
  • I updated docs if user-facing behavior changed — the doc half landed separately in docs: correct issue/PR lifecycle table, fix reminder dedupe #1921
  • Changes follow existing patterns in the codebase
  • Commits are cryptographically signed (git commit -S) — GPG signing info

@yuanchen8911
yuanchen8911 requested a review from a team as a code owner July 27, 2026 16:40
@yuanchen8911 yuanchen8911 added the theme/ci-dx CI pipelines, developer experience, and build tooling label Jul 27, 2026
@yuanchen8911
yuanchen8911 requested a review from njhensley July 27, 2026 16:41
@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 8058b9a6-ab6d-4814-86b1-32f372318003

📥 Commits

Reviewing files that changed from the base of the PR and between 0ceca53 and 1fc799e.

📒 Files selected for processing (1)
  • .github/workflows/stale.yaml

📝 Walkthrough

Walkthrough

Updated the stale-management workflow to remove priority/critical from documented and configured issue exemptions. Issues labeled lifecycle/frozen or good first issue remain exempt.

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

Possibly related issues

  • NVIDIA/aicr 1920 — Directly addresses the same stale-issue exemption policy change.

Possibly related PRs

  • NVIDIA/aicr#1921 — Updates lifecycle guidance related to the same exemption policy.

Suggested reviewers: lockwobr, njhensley, dims

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly describes removing the phantom priority/critical exempt label from the stale workflow.
Description check ✅ Passed The description matches the workflow change and explains the label removal and comment correction.
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@yuanchen8911
yuanchen8911 force-pushed the ci/drop-phantom-priority-critical-exempt branch from 4182451 to 7b2b342 Compare July 27, 2026 16:44
@yuanchen8911
yuanchen8911 requested a review from lockwobr July 27, 2026 16:53
@yuanchen8911
yuanchen8911 force-pushed the ci/drop-phantom-priority-critical-exempt branch from 7b2b342 to 5c5d013 Compare July 27, 2026 16:57
@yuanchen8911
yuanchen8911 force-pushed the ci/drop-phantom-priority-critical-exempt branch from 5c5d013 to 0ceca53 Compare July 27, 2026 17:19
The stale workflow exempts priority/critical from auto-close, but no
priority/* label exists in this repository, so the entry can never
match. actions/stale matches label names only and cannot read Projects
v2 fields, where priority actually lives (P0/P1/P2 on the AICR board),
so the label was never going to deliver automatic exemption.

lifecycle/frozen already provides the freeze mechanism, sits in the same
exempt-issue-labels list, and covers pull requests via exempt-pr-labels.

Also corrects the same comment block's description of do-not-merge.
exempt-pr-labels excludes a PR from being marked stale at all, so it
never receives the label or the warning comment - it is not merely
spared the close. That understatement is the framing NVIDIA#1921 replaced in
CONTRIBUTING.md for the same mechanism.

No behavior change: the removed entry never fired, and the other edit is
a comment.

Related: NVIDIA#1920, NVIDIA#1921
Signed-off-by: Yuan Chen <yuanchen97@gmail.com>
@yuanchen8911
yuanchen8911 force-pushed the ci/drop-phantom-priority-critical-exempt branch from 0ceca53 to 1fc799e Compare July 27, 2026 17:35
@yuanchen8911
yuanchen8911 enabled auto-merge (squash) July 27, 2026 17:35
@yuanchen8911
yuanchen8911 merged commit 74a7fe2 into NVIDIA:main Jul 27, 2026
36 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/ci size/XS theme/ci-dx CI pipelines, developer experience, and build tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants