Files
attrsum/TODO.md
T
clawbot 6a0dfa9f2c
check / check (push) Successful in 3m36s
Run make try against a temporary directory (closes #12)
`make try` ran against a fixed directory on one person's machine. It
failed for anyone else, and where that directory existed it rewrote the
checksum attributes and modification times of real files.

It now writes three small files into a new directory from `mktemp -d`,
runs the same sequence of commands on it, and removes it with an EXIT
trap. All steps run in one shell, so the trap also removes the
directory when a step fails.

`TODO.md`: the `try` sentence leaves Next Step and is recorded under
Completed Steps.

Model: opus-5-5
2026-10-06 01:59:55 +02:00

2.4 KiB

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

Policy scaffold commit: add LICENSE, REPO_POLICIES.md, .editorconfig, .golangci.yml, and a comprehensive .gitignore (currently only the attrsum binary), and extend the Makefile (only test/build/clean/try today) with lint, fmt, fmt-check, check, and hooks targets.

Completed Steps

  • 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

  • Add .gitea/workflows/check.yml
  • Restructure README.md into the standard sections: Description, Getting Started, Rationale, Design, TODO, License, Author (Getting Started, Why?, TODO, License exist; Description, Design, Author are missing)
  • 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)