The one-time reformat of README.md and TODO.md, produced by make fmt with nothing else in it. REPO_POLICIES.md already matched prettier's output and is unchanged. Model: opus-5-5
This commit is contained in:
@@ -1,90 +1,89 @@
|
||||
# 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
|
||||
- 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.
|
||||
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
|
||||
Restructure README.md into the standard sections: Description, Getting Started,
|
||||
Rationale, Design, TODO, License, Author
|
||||
|
||||
# Completed Steps
|
||||
|
||||
* 2026-10-06: `make fmt` and `make fmt-check` also format Markdown, with
|
||||
`prettier` at the standard settings, pinned through `package.json` and
|
||||
`yarn.lock`; `script/bootstrap` installs node and yarn for it, and the
|
||||
existing Markdown was formatted once
|
||||
* 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
|
||||
- 2026-10-06: `make fmt` and `make fmt-check` also format Markdown, with
|
||||
`prettier` at the standard settings, pinned through `package.json` and
|
||||
`yarn.lock`; `script/bootstrap` installs node and yarn for it, and the
|
||||
existing Markdown was formatted once
|
||||
- 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)
|
||||
- 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)
|
||||
|
||||
Reference in New Issue
Block a user