Skip to content

ci: repo governance workflows and assignment policy#713

Open
andreahlert wants to merge 3 commits intoapache:mainfrom
andreahlert:chore/stale-pr-workflow
Open

ci: repo governance workflows and assignment policy#713
andreahlert wants to merge 3 commits intoapache:mainfrom
andreahlert:chore/stale-pr-workflow

Conversation

@andreahlert
Copy link
Copy Markdown
Collaborator

@andreahlert andreahlert commented Mar 30, 2026

Summary

Implements the remaining sub-issues from #690 (repo governance):

Stale PR lifecycle (#695)

  • Weekly cron (Mondays 09:00 UTC)
  • 14 days after review with no author response: pr/stale + convert to draft
  • 90 days no activity: close with comment
  • Skips lifecycle/frozen, pr/do-not-merge, and dependabot

Auto-labeling (#696)

  • New issues get status/needs-triage automatically
  • PRs get area/* labels based on changed files via actions/labeler
  • PRs get pr/needs-rebase when they have merge conflicts (auto-removed when resolved)

Issue assignment policy (#709)

  • Documents policy in CONTRIBUTING.rst
  • 14 days inactive: warning comment
  • 21 days total: unassign + add help wanted
  • lifecycle/frozen issues are exempt
  • Weekly cron (Wednesdays 09:00 UTC)

Files

  • .github/workflows/stale-prs.yml - stale PR lifecycle
  • .github/workflows/auto-label.yml - auto-label issues and PRs
  • .github/workflows/stale-assignments.yml - stale assignment enforcement
  • .github/labeler.yml - path-to-label mapping config
  • CONTRIBUTING.rst - assignment policy documentation

Test plan

  • Trigger stale PR workflow manually via workflow_dispatch
  • Trigger stale assignment workflow manually via workflow_dispatch
  • Open a test issue and verify status/needs-triage is applied
  • Open a test PR touching burr/core/ and verify area/core is applied

Closes #695
Closes #696
Closes #709

Weekly cron job (Mondays 09:00 UTC) that enforces the PR
lifecycle policy defined in apache#690:

- 14 days after review with no author response: label pr/stale
  and convert to draft
- 90 days with no activity: close with comment
- Skip PRs with lifecycle/frozen, pr/do-not-merge, or from
  dependabot

Closes apache#695

Signed-off-by: André Ahlert <andre@aex.partners>
@andreahlert andreahlert self-assigned this Mar 30, 2026
@andreahlert andreahlert added kind/improvement Improving something that already exists area/ci Workflows, build, release scripts priority/medium Important but not urgent labels Mar 30, 2026
@andreahlert
Copy link
Copy Markdown
Collaborator Author

@skrawcz @elijahbenizzy can you take a look? this is the automated stale PR policy we discussed in #690. runs weekly, marks inactive PRs after review as draft, closes after 90 days. skips anything with lifecycle/frozen or pr/do-not-merge

- New issues automatically get `status/needs-triage`
- PRs get `area/*` labels based on changed files via actions/labeler
- PRs get `pr/needs-rebase` when they have merge conflicts (auto-removed
  when resolved)

Labeler config maps repo paths to area labels: core, ui, storage,
streaming, hooks, tracking, integrations, visualization, website,
ci, examples, typing.

Closes apache#696

Signed-off-by: André Ahlert <andre@aex.partners>
@andreahlert andreahlert changed the title ci: add stale PR lifecycle workflow ci: add stale PR lifecycle and auto-labeling workflows Mar 30, 2026
Documents the assignment policy in CONTRIBUTING.rst:
- Assignee = actively working
- 14 days without activity: warning comment
- 21 days total: unassign + add help wanted
- lifecycle/frozen issues are exempt

Adds weekly workflow (Wednesdays 09:00 UTC) to enforce it
automatically.

Closes apache#709

Signed-off-by: André Ahlert <andre@aex.partners>
@andreahlert andreahlert changed the title ci: add stale PR lifecycle and auto-labeling workflows ci: repo governance workflows and assignment policy Mar 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/ci Workflows, build, release scripts kind/improvement Improving something that already exists priority/medium Important but not urgent

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore: define issue assignment policy chore: set up auto-labeling for new issues and PRs chore: define stale PR policy and clean up inactive PRs

1 participant