The GitHub Actions job "Required Checks" on texera.git/main has succeeded. Run started by GitHub user Yicong-Huang (triggered by Yicong-Huang).
Head commit for run: 07d831158410ff33d132a7e69c091ae39f8eaf26 / Yicong Huang <[email protected]> ci: drop the `triage` label, use `is:open no:assignee` filter (#4899) ### What changes were proposed in this PR? `triage` is a derived state (issue needs triage iff it has no assignee). Materializing it as a label means every assignee mutation has to keep the label in sync, which is fragile across `GITHUB_TOKEN`-authored writes, third-party bots, and dropped webhooks. Drop the label; reviewers use the search filter `is:issue is:open no:assignee` instead. - Delete `.github/workflows/issue-triage.yml` (the entire triage-label state machine). - Add `.github/workflows/take-commands.yml`: handles `/take` (self-assign) and `/untake` (self-unassign) on issues. - Update one stale comment in `pr-assignment.yml` that referenced the removed workflow. `labels: ["triage"]` is left in `bug-template.yaml`, `task-template.yaml`, `feature-template.yaml` so that change can be backported on its own. Until that follow-up lands and the label itself is deleted from the repo, newly opened issues will continue to acquire the label. ### Simplified issue lifecycle The new model is "assignee = ownership; no assignee = needs triage". One filter and three transition rules — no reified state. ``` open issue, no assignee (visible in `is:open no:assignee` triage filter) │ ┌──────────────────────┼──────────────────────┐ │ │ │ /take comment PR opened with (no action) on the issue `Closes #N` stays in filter │ │ v v assignee = commenter assignee = PR opener (out of filter) (out of filter — tentative) │ │ │ ┌───────┴────────┐ │ │ │ /untake PR closed PR merged comment unmerged │ │ │ v v v removes self opener credit-on-merge: (back in unassigned assignees overwritten filter only (back in with PR opener + if no other filter unless commit authors. assignees) others stay) Final attribution. ``` #### Stacked claims `/take` uses GitHub's `addAssignees`, which is append-semantics — existing assignees are not replaced. So if Alice has already taken an issue and goes inactive, Bob commenting `/take` produces a co-assignment rather than a rejection. Comment history records the order. `/untake` only removes the commenter from the assignee list, leaving anyone else in place. At merge time the credit step overwrites the whole list with the actual contributors, so stacked claims are explicitly tentative. Behavior preserved by `pr-assignment.yml` (already on main): - PR opened/edited with `Closes #N` → opener is auto-assigned to each linked issue (issue leaves the no-assignee filter). - PR closed without merge → opener is unassigned. - PR merged → the credit-on-merge step overwrites assignees with the actual commit authors. **Pre-merge assignments are tentative.** ### Any related issues, documentation, discussions? Closes #4898. After merge, the `triage` label can be deleted from the repo as a one-shot cleanup (`gh api -X DELETE /repos/apache/texera/labels/triage`); that drops the chip from every existing issue at once. Any saved searches / project-board automation keyed on `label:triage` should be moved to `no:assignee`. The follow-up to drop `labels: ["triage"]` from the three issue templates is a separate change so it can be backported independently. ### How was this PR tested? Static checks: YAML parse on both workflow files. Behavior verifiable post-merge: opening a PR with `Closes #N` should remove `#N` from the `is:open no:assignee` filter; closing the PR unmerged should put it back; commenting `/take` / `/untake` should toggle the assignee. Two users commenting `/take` in sequence should produce a stacked co-assignment. ### Was this PR authored or co-authored using generative AI tooling? Generated-by: Claude Opus 4.7 (1M context) Report URL: https://github.com/apache/texera/actions/runs/25306694460 With regards, GitHub Actions via GitBox
