check / check (push) Successful in 3m16s
The Dockerfile gets a lint phase on the pinned golangci-lint v2.12.2 image and a test phase on the Debian Go image. The tests run as an unprivileged user, because root reads a file with mode 0000 and the permission test then fails. The build stage copies a file from each phase, so no build finishes unless both pass, and it no longer runs make check. script/lint and script/test each build their phase, uncached and tagged; script/cibuild bootstraps, runs script/check, then builds the image. script/bootstrap no longer installs golangci-lint. README.md and TODO.md describe the new setup. Model: opus-5-5
72 lines
3.2 KiB
Markdown
72 lines
3.2 KiB
Markdown
# Workflow
|
|
|
|
* 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
|
|
|
|
# Status
|
|
|
|
1.0+
|
|
|
|
Tagged 1.0.0 (2025-05-08). Substantial correctness fixes and features
|
|
have landed since the tag.
|
|
|
|
# Next Step
|
|
|
|
Re-vendor the canonical files from `sneak/prompts` at `dd4027b`
|
|
(https://git.eeqj.de/sneak/attrsum/issues/13): add `REPO_POLICIES.md`
|
|
and `.editorconfig`, refresh `.gitignore` (only the `attrsum` binary
|
|
today), `.dockerignore`, `.gitea/workflows/check.yml` and
|
|
`.golangci.yml`, and move the lint phase to golangci-lint v2.14.0.
|
|
|
|
# Completed Steps
|
|
|
|
* 2026-10-06: lint and test run as phases of the `Dockerfile`, and the
|
|
build stage depends on both; `script/lint` and `script/test` each
|
|
build their phase with `--no-cache`; `script/cibuild` bootstraps,
|
|
runs `script/check`, then builds the image; golangci-lint is no
|
|
longer installed on the host
|
|
* 2026-10-05: golangci-lint settings take effect: canonical
|
|
`.golangci.yml` (v2 layout, settings under `linters.settings`),
|
|
golangci-lint pinned at v2.12.2 in `Dockerfile` and
|
|
`script/bootstrap`, and the code fixed for what the settings now
|
|
report (long lines in `attrsum.go` rewrapped)
|
|
* 2026-10-05: `make try` runs on three small files in a temporary
|
|
directory that it removes afterwards, also when a step fails,
|
|
instead of on a fixed directory on one person's machine
|
|
* 2026-10-02: `attrsum --version` reports the git tag or short commit,
|
|
stamped by `make build` and by a plain `docker build .` of a clone;
|
|
`.dockerignore` sends `.git` without `.git/config` and keeps a
|
|
host-built `attrsum` out; CI checks out full history so it stamps
|
|
the same version
|
|
* 2026-02-02: correctness pass: track actual bytes read instead of
|
|
stale file size, atomic failure tracking in ProcessCheck, detect
|
|
file modification during checksum (TOCTOU), propagate countFiles
|
|
errors, single progress bar across paths, error on empty stdin,
|
|
dead code removal
|
|
* 2026-02-01: added quiet mode, progress bar, summary report, and stdin
|
|
path input; multiple file/directory arguments for all commands
|
|
* 2025-07-12: README update
|
|
* 2025-05-08: initial working tool with passing tests, skips
|
|
non-regular files, Makefile, README; tagged 1.0.0
|
|
|
|
# Future Steps
|
|
|
|
* Restructure README.md into the standard sections: Description,
|
|
Getting Started, Entrypoints, Rationale, Design, TODO, License,
|
|
Author (Getting Started, Why?, TODO, License exist; Description,
|
|
Entrypoints, Design, Author are missing)
|
|
* Add a `LICENSE` file matching the README's WTFPL v2; sneak's to add,
|
|
not an agent's
|
|
* Tag a patch release to ship the 2026-02-02 correctness fixes
|
|
* Dry-run mode (--dry-run, -n): show what would be done without making
|
|
changes (from README TODO)
|
|
* JSON output (--json) for scripting and integration (from README TODO)
|
|
* Parallel processing (-j N) with multiple goroutines for faster
|
|
checksumming on large trees (from README TODO)
|
|
* Formalize and document exit codes for scripting (from README TODO)
|