Skip to content

feat: per-milestone due dates (next + upcoming)#88

Merged
skjnldsv merged 1 commit into
mainfrom
feature/milestone-due-dates
Jun 8, 2026
Merged

feat: per-milestone due dates (next + upcoming)#88
skjnldsv merged 1 commit into
mainfrom
feature/milestone-due-dates

Conversation

@skjnldsv

@skjnldsv skjnldsv commented Jun 8, 2026

Copy link
Copy Markdown
Collaborator

Stacked on #87 (builds on its first-beta + fake-gh changes). Base will retarget to main once #87 merges.

Why

A run keeps two open patch milestones (next + upcoming). The old single --due-date only fed the upcoming one, and only when it was freshly created — so:

  • the next milestone (e.g. 34.0.1) never got a due date from the script, and
  • existing milestones with a wrong/missing date couldn't be corrected.

This surfaced on v34.0.0: 34.0.1 already exists with inconsistent dates across repos (server 2026-06-25, activity none), unreachable by the old flag.

What

  • Replace --due-date with --next-due and --upcoming-due (one per open patch milestone). Same split for the workflow_dispatch inputs (next_due / upcoming_due).
  • Each date is applied whether the milestone is created now or already exists (new set_duePATCH due_on). Idempotent: re-running with the same dates is a no-op and fixes stale dates.
  • Major milestones (first beta) no longer take a due date.

Example:

update-milestones.sh v34.0.0 stable34.json tag-only.json \
  --next-due 2026-07-02 --upcoming-due 2026-08-27

Testing

  • run.sh — 20 scenarios. New/updated: due-date (next exists → setdue, upcoming missing → create-with-due), due-date-existing (both exist → setdue both), bad-due-date (invalid --next-due → exit 1).
  • unit.sh — 16 checks incl. per-flag validation + header echo of both dates.
  • shellcheck clean. fake-gh now journals due-date PATCHes as setdue.

Note

--due-date is removed (not aliased). The auto-pipeline (release.ymlworkflow_call) only passes tag, so it's unaffected.

Replace the single --due-date with --next-due and --upcoming-due, one per
open patch milestone (the next patch and the one after). Each date is
applied whether the milestone is created by this run or already exists, so
a run also corrects stale or missing due dates (e.g. an existing 34.0.1
with the wrong date).

Adds a set_due helper (PATCH due_on), replaces the due_date dispatch input
with next_due / upcoming_due, updates the README, teaches fake-gh to honour
due-date PATCHes (journalled as `setdue`), and adds scenarios + unit tests
covering create-with-due, set-due-on-existing, and per-flag validation.

Major milestones (first beta) no longer take a due date.

Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
@skjnldsv skjnldsv added the enhancement New feature or request label Jun 8, 2026
Base automatically changed from fix/milestone-script-bugs to main June 8, 2026 13:05
@skjnldsv skjnldsv merged commit 7b1abc6 into main Jun 8, 2026
2 checks passed
@skjnldsv skjnldsv deleted the feature/milestone-due-dates branch June 8, 2026 13:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Development

Successfully merging this pull request may close these issues.

1 participant