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

Reply via email to