Comfy-Org / Comfy-Org/ComfyUI_frontend
release-sheriff: script safe rotation membership/order edits (replace tags-only GET/PUT procedure)
- Dominant language
- TypeScript
- Stars
- 2k
- Forks
- 702
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 512
Description
Follow-up to [FE #16450](https://github.com/Comfy-Org/ComfyUI_frontend/pull/16450#discussion_r3908301226).
`docs/release-process.md` documents a manual GET → edit → PUT procedure for tags-only schedule edits (deleting the vestigial `github::` tags). The doc already scopes it to tags-only via a guard that aborts on any other field change, and calls out that a broader runbook for scripting rotation membership/order changes is a follow-up (see `docs/release-process.md` around L127-132).
[@DrJKL noted](https://github.com/Comfy-Org/ComfyUI_frontend/pull/16450#discussion_r3908301226) a non-blocking race in the documented procedure: between the second GET (used to diff against the live schedule before PUT) and the PUT itself, another operator could change the rotation; the stale full-replace PUT would silently restore the old rotation and Datadog would return 200 (no concurrency token on the endpoint).
Since the tags this procedure exists to delete are now vestigial (the GitHub login map moved to `RELEASE_SHERIFF_DIRECTORY`), DrJKL's suggestion is to reconsider whether to keep publishing this API procedure at all — the simpler alternative is leaving the vestigial tags in place, or removing them once via the Datadog UI instead of scripting it.
Scope for this issue:
- [ ] Decide: keep scripting tags-only edits (and add a concurrency guard / retry-on-conflict), or drop the scripted procedure in favor of the UI for this one-time tag cleanup.
- [ ] If a broader rotation-membership/order runbook is still wanted, design it with the same full-replace race in mind from the start.
Not blocking — flagged non-blocking by the reviewer on #16450.
Contributor guide
Assessment
This issue has not been assessed yet.