Board: remove Done cards automatically once their fix ships in a release (CI) #493

Open
opened 2026-10-06 15:10:29 +00:00 by sky_line · 0 comments
Owner

Follow-up to #404. Make the board's Done column mean "fixed but not released yet": once a release ships the fix, the card leaves the board automatically.

Idea

  • Add a step at the end of the release workflow (.forgejo/workflows/release.yml, after sign-release succeeds on a v* tag). For each card in Done:
    • find the commit that closed the issue (its "closed by commit" timeline event, or the merge with Fixes #N);
    • if that commit is in the released tag (git merge-base --is-ancestor <commit> <tag>), remove the card from the board with the board API (DELETE /projects/2/columns/<done>/issues/<card>). The issue itself stays closed and untouched.
  • Cards closed by hand with no commit (duplicates, won't-fix, invalid): remove them right away, or after N days. Decide when building it.
  • Beta vs stable (decide when building):
    • Remove on the first release that contains the fix (beta included), so Done only shows unreleased work. Or:
    • keep the card until a stable release has it, perhaps using a "Released (beta)" column in between.
  • Optionally post a comment on the issue, such as "Released in 1.1.0 Beta 5", and/or add a released/<version> label.

Needs

  • A Forgejo token with issue write access, stored as a CI secret on applejack.
  • The board API from #404, which is already deployed.

Done when

After tagging a release, Done only holds cards whose fixes aren't in any release yet.

Follow-up to #404. Make the board's **Done** column mean "fixed but not released yet": once a release ships the fix, the card leaves the board automatically. ## Idea - Add a step at the end of the release workflow (`.forgejo/workflows/release.yml`, after `sign-release` succeeds on a `v*` tag). For each card in **Done**: - find the commit that closed the issue (its "closed by commit" timeline event, or the merge with `Fixes #N`); - if that commit is in the released tag (`git merge-base --is-ancestor <commit> <tag>`), remove the card from the board with the board API (`DELETE /projects/2/columns/<done>/issues/<card>`). The issue itself stays closed and untouched. - Cards closed by hand with no commit (duplicates, won't-fix, invalid): remove them right away, or after N days. Decide when building it. - **Beta vs stable** (decide when building): - Remove on the first release that contains the fix (beta included), so Done only shows unreleased work. Or: - keep the card until a **stable** release has it, perhaps using a "Released (beta)" column in between. - Optionally post a comment on the issue, such as "Released in 1.1.0 Beta 5", and/or add a `released/<version>` label. ## Needs - A Forgejo token with issue write access, stored as a CI secret on applejack. - The board API from #404, which is already deployed. ## Done when After tagging a release, Done only holds cards whose fixes aren't in any release yet.
sky_line added this to the Slipstream project 2026-10-06 15:10:29 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#493
No description provided.