check / check (push) Failing after 3s
REPO_POLICIES.md, .golangci.yml, the CI workflow and the scripts the policy keeps identical across repositories are copies of the files at that commit. .gitignore, .editorconfig and the new .dockerignore are the canonical files followed by this repository's own entries. The lint stage moves to the golangci-lint image the policy pins, in the same commit as .golangci.yml. The format check leaves the lint stage and runs on the host from script/check, which script/cibuild now runs after script/bootstrap. The last Dockerfile stage runs script/bootstrap, which installs goimports with go install at a pinned commit; script/fmt runs that goimports. Model: opus-5-5
87 lines
4.2 KiB
Markdown
87 lines
4.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 v1.0.0 (2024-06-14) and 1.0.1 (2026-02-08). In post-1.0
|
|
maintenance; the library is referenced by the Go styleguide.
|
|
|
|
# Next Step
|
|
|
|
Restructure README.md into the standard sections: Description, Getting
|
|
Started, Rationale, Design, TODO, License, Author
|
|
|
|
# Completed Steps
|
|
|
|
* 2026-10-06: re-vendored the standard files from `sneak/prompts` at
|
|
commit `dd4027b`: `REPO_POLICIES.md`, the CI workflow, `.gitignore`,
|
|
and `.golangci.yml` together with the lint stage's new image, plus
|
|
the `.editorconfig` and `.dockerignore` this repo lacked, which
|
|
finishes the Makefile and policy-files step. `script/cibuild` now
|
|
bootstraps and runs `script/check` before building the image, the
|
|
format check runs only on the host, the last `Dockerfile` stage runs
|
|
`script/bootstrap`, which installs goimports at a pinned commit
|
|
* 2026-10-06: a webhook request now times out after 5 seconds, so a
|
|
server that never answers no longer stops every log call; the webhook
|
|
handler also reads each answer to the end so its connection is reused
|
|
* 2026-10-06: the console handler takes the file and line it prints from
|
|
the record's `PC` instead of counting stack frames, so they name the
|
|
call site whether the record came through a `slog.Logger` or straight
|
|
to `Handle`
|
|
* 2026-10-06: the tests run under the race detector, in Docker:
|
|
`script/test` builds the `test` stage of the `Dockerfile`, which runs
|
|
`go test -race`, and a new final stage makes a plain `docker build`
|
|
run both the `lint` and `test` stages
|
|
* 2026-10-06: the linter runs only in Docker: `script/lint` builds the
|
|
`lint` stage of the `Dockerfile`, every `docker build` in `script/`
|
|
runs without the build cache, and `script/bootstrap` no longer
|
|
installs golangci-lint
|
|
* 2026-10-06: every handler now returns a failed delivery from `Handle`
|
|
instead of discarding it: console and JSON return the stdout write
|
|
error, the webhook also fails on a non-2xx answer, and the multiplex
|
|
delivers to every handler and returns their errors joined
|
|
* 2026-08-10: fixed every handler discarding slog attributes: console,
|
|
JSON and webhook handlers now emit record attributes, accumulate
|
|
WithAttrs without mutating the receiver, and honour WithGroup;
|
|
slog.Group values nest and LogValuer values are resolved; console
|
|
keys and values holding invalid UTF-8 are quoted
|
|
* 2026-08-07: added canonical `.golangci.yml` (v2 schema), pinned the
|
|
`Dockerfile` lint stage to golangci-lint v2.12.2 (tag+digest), and
|
|
fixed all findings the v1→v2 jump surfaced without changing any
|
|
exported signatures or behavior
|
|
- 2026-07-07 Adopted scripts-to-rule-them-all: `script/` entrypoints,
|
|
Makefile shims, README Entrypoints section
|
|
* 2026-02-08: fixed JSONHandler deadlock from recursive log.Println,
|
|
with regression test; tagged 1.0.1
|
|
* 2024-06-14: 1.0 prep: lint and fmt enforced in Docker build, call
|
|
stack depth fix so log locations report correctly, example script,
|
|
removed non-building RELP code; tagged v1.0.0
|
|
* 2024-05-22: module path moved to sneak.berlin/go/simplelog
|
|
* 2024-05-14: initial library: slog-based console, JSON, webhook, and
|
|
RELP handlers, MultiplexHandler, caller file/line info, UTC ISO
|
|
timestamps, level-colored output
|
|
|
|
# Future Steps
|
|
|
|
* Delete the old plain TODO file once this TODO.md lands
|
|
* Add .aider.* to .gitignore and remove the stray aider artifacts from
|
|
the working tree
|
|
* Pick one tag scheme before the next release (v1.0.0 vs 1.0.1 are
|
|
inconsistent)
|
|
* Tag v1.0.2, with the leading v, once the attribute fix lands, so
|
|
consuming repos can move off pseudo-version pins in one step
|
|
* Fix RELP output to cache (from old TODO)
|
|
* Re-add RELP delivery over TCP to remote rsyslog imrelp; removed
|
|
2024-06-14 because it did not build (README planned feature)
|
|
* Add regex filtering for webhook logs (from old TODO)
|
|
* Better console output format (from old TODO)
|