From a7295750ef742424f08bb1096e0c4d90d719774e Mon Sep 17 00:00:00 2001 From: sneak Date: Sun, 9 Aug 2026 02:03:23 +0000 Subject: [PATCH] Point TODO.md at the tracker and record landed work (closes #27) The Next Step section still named the scripts-to-rule-them-all conversion, which landed in 3abeacf on 2026-07-26 and closed #1 without recording itself in Completed Steps. TODO.md therefore pointed the next contributor at finished work. The backlog is no longer file-shaped: the Gitea tracker is authoritative, with the open issues under the 1.0.0 milestone defining what remains before the tag. Next Step now names the milestone instead of restating a single issue that will drift, and Status says so explicitly. Workflow is reconciled with how work actually happens now: take an issue, branch, implement with tests, record the result in the same commit, open a PR titled "... (closes #N)", pass an independent review, merge. The scripts-to-rule-them-all conversion gains its missing Completed Steps entry, and the golangci-lint entry now records its merge commit 38a01bd and issue #3 rather than only the branch date. Docs-only: TODO.md is the only file touched. --- TODO.md | 46 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/TODO.md b/TODO.md index d020dfb..bd9f750 100644 --- a/TODO.md +++ b/TODO.md @@ -1,31 +1,49 @@ # Workflow +- take an issue from the `1.0.0` milestone on the tracker; work not + yet on the tracker gets filed as an issue first - branch (from `main`) -- do the work in Next Step -- move Next Step to the top of Completed Steps -- move the top item of Future Steps into Next Step -- commit (`TODO.md` changes in the same commit as the work) -- merge to `main` if the branch is not protected, otherwise open a PR -- push +- do the work, with tests, in small focused commits +- record it at the top of Completed Steps (`TODO.md` changes in the + same commit as the work) +- push the branch and open a PR whose title ends with + ` (closes #N)` +- an independent review gates the merge; every finding is addressed + or explicitly rebutted on the PR +- merge to `main` once the review passes # Status - pre-1.0 +- the Gitea tracker is authoritative for the pre-1.0 backlog: the + open issues under the `1.0.0` milestone are what remains before + the tag, and this file records history and process, not the queue # Next Step -- convert Makefile targets to scripts-to-rule-them-all `script/` - entrypoints like the other managed repos +- take the next issue from the `1.0.0` milestone on the tracker: + https://git.eeqj.de/sneak/sfdupes/milestone/17 — the milestone is + the source of truth for what is left before 1.0.0. Individual + issues are deliberately not restated here; a copy in this file + drifts out of date the moment the tracker moves # Completed Steps - update golangci-lint to v2.12.2 with the canonical config - (2026-08-07, branch `golangci-v2.12.2`): bumped the pinned linter - in the `Dockerfile` lint stage and `script/bootstrap` from v2.12.1 - to v2.12.2, and replaced `.golangci.yml` with the canonical file — - the linter settings (`lll`, `funlen`, `cyclop`, `dupl` thresholds) - now live under `linters.settings` per the v2 schema, so they are - actually applied; no new lint findings surfaced + (2026-08-09, branch `golangci-v2.12.2`, merged as `38a01bd`, + closes #3): bumped the pinned linter in the `Dockerfile` lint + stage and `script/bootstrap` from v2.12.1 to v2.12.2, and replaced + `.golangci.yml` with the canonical file — the linter settings + (`lll`, `funlen`, `cyclop`, `dupl` thresholds) now live under + `linters.settings` per the v2 schema, so they are actually + applied; no new lint findings surfaced +- convert Makefile targets to scripts-to-rule-them-all `script/` + entrypoints like the other managed repos (2026-07-26, commit + `3abeacf`, closes #1): all 12 `script/` entrypoints exist + (`bootstrap`, `setup`, `projectname`, `test`, `lint`, `fmt`, + `fmt-check`, `check`, `docker`, `cibuild`, `precommit`, + `install-precommit`) and every Makefile target is now a thin shim + over them, matching the other managed repos - make the binary the default Make target (2026-07-24, branch `make-default-target`): plain `make` now builds `sfdupes` (previously it ran `check` plus `build`); `make build` remains as