Merge branch 'todo-next-step-stale': point TODO.md at the tracker (closes #27)
All checks were successful
check / check (push) Successful in 11s

TODO.md's Next Step still named the scripts-to-rule-them-all conversion,
which landed in 3abeacf on 2026-07-26 without recording itself in
Completed Steps, so the file pointed the next contributor at finished
work. Next Step now names the 1.0.0 milestone on the tracker, the
scaffold gains its missing Completed Steps entry, and Workflow matches
the issue-branch-review-merge process actually in use.

Docs-only change (TODO.md only), so the adversarial review was skipped
per the standing exception. make check green.
This commit was merged in pull request #28.
This commit is contained in:
2026-08-09 04:05:04 +02:00

46
TODO.md
View File

@@ -1,31 +1,49 @@
# Workflow # 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`) - branch (from `main`)
- do the work in Next Step - do the work, with tests, in small focused commits
- move Next Step to the top of Completed Steps - record it at the top of Completed Steps (`TODO.md` changes in the
- move the top item of Future Steps into Next Step same commit as the work)
- commit (`TODO.md` changes in the same commit as the work) - push the branch and open a PR whose title ends with
- merge to `main` if the branch is not protected, otherwise open a PR ` (closes #N)`
- push - an independent review gates the merge; every finding is addressed
or explicitly rebutted on the PR
- merge to `main` once the review passes
# Status # Status
- pre-1.0 - 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 # Next Step
- convert Makefile targets to scripts-to-rule-them-all `script/` - take the next issue from the `1.0.0` milestone on the tracker:
entrypoints like the other managed repos 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 # Completed Steps
- update golangci-lint to v2.12.2 with the canonical config - update golangci-lint to v2.12.2 with the canonical config
(2026-08-07, branch `golangci-v2.12.2`): bumped the pinned linter (2026-08-09, branch `golangci-v2.12.2`, merged as `38a01bd`,
in the `Dockerfile` lint stage and `script/bootstrap` from v2.12.1 closes #3): bumped the pinned linter in the `Dockerfile` lint
to v2.12.2, and replaced `.golangci.yml` with the canonical file — stage and `script/bootstrap` from v2.12.1 to v2.12.2, and replaced
the linter settings (`lll`, `funlen`, `cyclop`, `dupl` thresholds) `.golangci.yml` with the canonical file — the linter settings
now live under `linters.settings` per the v2 schema, so they are (`lll`, `funlen`, `cyclop`, `dupl` thresholds) now live under
actually applied; no new lint findings surfaced `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 the binary the default Make target (2026-07-24, branch
`make-default-target`): plain `make` now builds `sfdupes` `make-default-target`): plain `make` now builds `sfdupes`
(previously it ran `check` plus `build`); `make build` remains as (previously it ran `check` plus `build`); `make build` remains as