starting new job...
→ running command: cd "/etc/byggsteg/job-clone//scriba/trunk" && git reset --hard && git pull
HEAD is now at 6f7aa00 chore: Update guile-veritas
From https://codeberg.org/jjba23/scriba
6f7aa00..2934725 trunk -> origin/trunk
* [new tag] v0.4.5 -> v0.4.5
Updating 6f7aa00..2934725
Fast-forward
.woodpecker/byggsteg.yaml | 2 +-
CHANGELOG.org | 19 ++++++++++++++
README.org | 19 +++++++-------
default.nix | 2 +-
packaging/arch/PKGBUILD | 6 ++---
packaging/debian/changelog | 7 +++++
packaging/opensuse/scriba.spec | 6 ++---
test/veritas/unit/log-spec.scm | 58 +++++++++++++++++++++---------------------
8 files changed, 72 insertions(+), 47 deletions(-)
→ running command: cd /etc/byggsteg/job-clone/scriba/trunk && uname -a
Linux wolk-jjba 7.2.11-gnu #1 SMP PREEMPT_DYNAMIC 1 x86_64 GNU/Linux
→ running command: cd /etc/byggsteg/job-clone/scriba/trunk && git log --name-status HEAD^..HEAD
commit 293472582b5715f8cd54bd7c74ae7da8e9cc60c0
Author: Josep Bigorra <jjbigorra@gmail.com>
Date: Mon Oct 26 13:18:30 2026 +0100
chore: Release v0.4.5
A maintenance release. The log-level suite in test/veritas/unit/log-spec.scm
called (apply test ...), which Veritas cannot expand because test is a macro, so
the file failed to compile and took the whole test run down with it; the cases
are now built inside the test body, where Veritas collects them, and the eleven
level-precedence checks run again.
The Arch and openSUSE recipes lose the comment that declared the suite skipped,
the Debian changelog gains the entry, and the README and default.nix carry
0.4.5.
🤖 Generated with [ECA](https://eca.dev) (deepseek/deepseek-flash)
Co-Authored-By: eca-agent <git@eca.dev>
M CHANGELOG.org
M README.org
M default.nix
M packaging/arch/PKGBUILD
M packaging/debian/changelog
M packaging/opensuse/scriba.spec
→ running command: cd /etc/byggsteg/job-clone/scriba/trunk && maak test
scanning directories for unit tests...
scanning present working directory for unit tests...
shuffled the files with seed 943010741 (replay with VERITAS_SEED=943010741)
found unit tests: (syslog-spec.scm log-spec.scm usage-spec.scm file-log-spec.scm env-config-spec.scm config-spec.scm file-spec.scm auto-log-spec.scm string-log-spec.scm)
running unit tests from file: syslog-spec.scm, entrypoint: spec
ℹ️ info - shuffled with seed 943010741 (replay with VERITAS_SEED=943010741)<14>2 2026-10-26T13:19:05+0100 wolk-jjba 13965 - Hello Scriba!
<14>2 2026-10-26T13:19:05+0100 wolk-jjba 13965 - [sample-1="value-1"] Some log with context
<14>2 2026-10-26T13:19:05+0100 wolk-jjba 13965 - [sample-1="value-1"] Some log with context
<14>2 2026-10-26T13:19:05+0100 wolk-jjba 13965 - Not gonna sleep! [#performance #benchmark]
<12>2 2026-10-26T13:19:05+0100 wolk-jjba 13965 - some kind of warning
<13>2 2026-10-26T13:19:05+0100 wolk-jjba 13965 - yes! we made it
<14>2 2026-10-26T13:19:05+0100 wolk-jjba 13965 - Hello Scriba, 2 + 2 = 4!
+----------------------------------------------+
[📑 suite] Syslog Integration Backend
[🧪 test] Baseline Plain-Text Logging
[⚙️ assert] Emits a standard, unformatted string without errors
✅ success running without errors
[🧪 test] Dynamic Context and Tag Propagation
[⚙️ assert] Safely threads structured metadata alists and active tag lists to output
✅ success running without errors
[🧪 test] Severity Handlers and String Formatting
[⚙️ assert] Processes multiple severities and expands format arguments cleanly
✅ success running without errors
ℹ️ info - ran 1 tasks in: 0 seconds, 3231 microseconds
running unit tests from file: log-spec.scm, entrypoint: spec
ℹ️ info - shuffled with seed 943010741 (replay with VERITAS_SEED=943010741){"level":"INFO","time":"2026-10-26 13:19:05 CET","host":"wolk-jjba","message":"Hello Scriba!"}
{"level":"WARNING","time":"2026-10-26 13:19:05 CET","host":"wolk-jjba","message":"some kind of warning"}
{"level":"SUCCESS","time":"2026-10-26 13:19:05 CET","host":"wolk-jjba","message":"yes! we made it"}
{"tags":["performance"],"time":"2026-10-26 13:19:05 CET","host":"wolk-jjba","message":"Slept 0 seconds"}
{"time":"2026-10-26 13:19:05 CET","host":"wolk-jjba","message":"While any editor can save your files only Emacs can save your soul !"}
{"level":"INFO","time":"2026-10-26 13:19:05 CET","host":"wolk-jjba","message":"Hello Scriba, current module is: #<directory (guile-user) 7f6d83e90c80>!"}
{"level":"INFO","time":"2026-10-26 13:19:05 CET","host":"wolk-jjba","message":"Some log with context","sample-2":"value-2"}
[2026-10-26 13:19:05 CET] [INFO] Hello Scriba!
[2026-10-26 13:19:05 CET] [INFO] [#hello #world] Hello World!
[2026-10-26 13:19:05 CET] [INFO] [#hello #world] Yes! [planet=earth]
[2026-10-26 13:19:05 CET] [#performance] Slept 0 seconds
[2026-10-26 13:19:05 CET] [WARNING] some kind of warning
[2026-10-26 13:19:05 CET] [CRITICAL] IN VINO VERITAS
[2026-10-26 13:19:05 CET] [CRITICAL] IN AQUA [SANITAS=CARPE DIEM]
[2026-10-26 13:19:05 CET] [SUCCESS] ja, wir schaffen das!
[2026-10-26 13:19:05 CET] [SUCCESS] yes! we made it
[2026-10-26 13:19:05 CET] While any editor can save your files only Emacs can save your soul !
[2026-10-26 13:19:05 CET] [INFO] Hello Scriba, 2 + 2 = 4!
[2026-10-26 13:19:05 CET] [INFO] Some log with context [sample-1=value-1]
;;; note: source file ./test/veritas/unit/syslog-spec.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/test/veritas/unit/syslog-spec.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;; or pass the --no-auto-compile argument to disable.
;;; compiling ./test/veritas/unit/syslog-spec.scm
;;; note: source file ./src/scriba/syslog.scm
;;; newer than compiled /gnu/store/kbl5612r4m6yzr09rnkps1k5jgl40lzg-profile/lib/guile/3.0/site-ccache/scriba/syslog.go
;;; note: source file ./src/scriba/syslog.scm
;;; newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/scriba/syslog.go
;;; note: source file ./src/scriba/syslog.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/src/scriba/syslog.scm.go
;;; compiling ./src/scriba/syslog.scm
;;; note: source file ./src/scriba/layout.scm
;;; newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/scriba/layout.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/src/scriba/layout.scm.go
;;; note: source file ./src/scriba/scriba.scm
;;; newer than compiled /gnu/store/kbl5612r4m6yzr09rnkps1k5jgl40lzg-profile/lib/guile/3.0/site-ccache/scriba/scriba.go
;;; note: source file ./src/scriba/scriba.scm
;;; newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/scriba/scriba.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/src/scriba/scriba.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/src/scriba/syslog.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/test/veritas/unit/syslog-spec.scm.go
;;; note: source file ./test/veritas/unit/log-spec.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/test/veritas/unit/log-spec.scm.go
;;; compiling ./test/veritas/unit/log-spec.scm
;;; note: source file ./src/scriba/console.scm
;;; newer than compiled /gnu/store/kbl5612r4m6yzr09rnkps1k5jgl40lzg-profile/lib/guile/3.0/site-ccache/scriba/console.go
;;; note: source file ./src/scriba/console.scm
;;; newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/scriba/console.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/src/scriba/console.scm.go
;;; note: source file ./src/scriba/color-console.scm
;;; newer than compiled /gnu/store/kbl5612r4m6yzr09rnkps1k5jgl40lzg-profile/lib/guile/3.0/site-ccache/scriba/color-console.go
;;; note: source file ./src/scriba/color-console.scm
;;; newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/scriba/color-console.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/src/scriba/color-console.scm.go
;;; note: source file ./src/scriba/json.scm
;;; newer than compiled /gnu/store/kbl5612r4m6yzr09rnkps1k5jgl40lzg-profile/lib/guile/3.0/site-ccache/scriba/json.go
;;; note: source file ./src/scriba/json.scm
;;; newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/scriba/json.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/src/scriba/json.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/test/veritas/unit/log-spec.scm.go
;;; note: source file ./test/veritas/unit/usage-spec.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/test/veritas/unit/usage-spec.scm.go
;;; compiling ./test/veritas/unit/usage-spec.scm
;;; note: source file ./src/scriba/auto.scm
;;; newer than compiled /gnu/store/kbl5612r4m6yzr09rnkps1k5jgl40lzg-profile/lib/guile/3.0/site-ccache/scriba/auto.go
;;; note: source file ./src/scriba/auto.scm
;;; newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/scriba/auto.go
;;; note: source file ./src/scriba/auto.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/src/scriba/auto.scm.go
;;; compiling ./src/scriba/auto.scm
;;; note: source file ./src/scriba/file.scm
;;; newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/scriba/file.go
;;; note: source file ./src/scriba/file.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/src/scriba/file.scm.go
;;; compiling ./src/scriba/file.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/src/scriba/file.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/src/scriba/auto.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/test/veritas/unit/usage-spec.scm.go
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
+----------------------------------------------+
[📑 suite] Core Engine - Text & JSON Backends
[🧪 test] JSON Structured Map Output Pipeline
[⚙️ assert] Serializes clean, unformatted top-level message keys to JSON text fields
✅ success running without errors
[⚙️ assert] Mutes low-severity data and marshals dynamic evaluation states into complex JSON trees
✅ success running without errors
[⚙️ assert] Encodes active metadata maps as nested JSON objects within the parent scheme payload
✅ success running without errors
[🧪 test] Standard and Colorized Console Output Handling
[⚙️ assert] Processes baseline strings, colorized streams, and multi-layered tag/context parameters without faults
✅ success running without errors
[⚙️ assert] Enforces strict severity thresholds and evaluates format string arguments across console writers
✅ success running without errors
[⚙️ assert] Safely captures and binds flat associative context pairs during console emission
✅ success running without errors
+----------------------------------------------+
[📑 suite] Severity Threshold Hierarchy Validation
[🧪 test] Log Level Precedence Visibility Matrix
[⚙️ assert] Permit: [trace] visibility should be active inside a [trace] logging threshold
✅ got: #t
[⚙️ assert] Suppress: [trace] visibility should be discarded inside a [debug] logging threshold
✅ got: #f
[⚙️ assert] Suppress: [debug] visibility should be discarded inside a [critical] logging threshold
✅ got: #f
[⚙️ assert] Permit: [info] visibility should be active inside a [trace] logging threshold
✅ got: #t
[⚙️ assert] Suppress: [info] visibility should be discarded inside a [error] logging threshold
✅ got: #f
[⚙️ assert] Permit: [success] visibility should be active inside a [info] logging threshold
✅ got: #t
[⚙️ assert] Permit: [warning] visibility should be active inside a [trace] logging threshold
✅ got: #t
[⚙️ assert] Permit: [warning] visibility should be active inside a [debug] logging threshold
✅ got: #t
[⚙️ assert] Permit: [critical] visibility should be active inside a [info] logging threshold
✅ got: #t
[⚙️ assert] Permit: [error] visibility should be active inside a [warning] logging threshold
✅ got: #t
[⚙️ assert] Permit: [error] visibility should be active inside a [error] logging threshold
✅ got: #t
ℹ️ info - ran 2 tasks in: 0 seconds, 8804 microseconds
running unit tests from file: usage-spec.scm, entrypoint: spec
ℹ️ info - shuffled with seed 943010741 (replay with VERITAS_SEED=943010741)
+----------------------------------------------+
[📑 suite] Auto Logger Memoization
[🧪 test] Stable environments reuse one logger
[⚙️ assert] The same configuration is cached
✅ got: #t
[🧪 test] Changing a setting produces a new logger
[⚙️ assert] The level is part of the cache key
✅ got: #f
+----------------------------------------------+
[📑 suite] Color Console Backend
[🧪 test] Timestamps are dimmed
[⚙️ assert] The timestamp is wrapped in the dim escape
✅ got: #t
[🧪 test] Severities get distinct ANSI colors
[⚙️ assert] INFO is blue
✅ got: #t
[⚙️ assert] CRITICAL is bold red
✅ got: #t
[⚙️ assert] Colors are reset
✅ got: #t
+----------------------------------------------+
[📑 suite] Framing and Message Formatting
[🧪 test] Messages with arguments are formatted
[⚙️ assert] Format arguments are applied
✅ got: 2 + 2 = 4
[🧪 test] Unknown newline placements are rejected
[⚙️ assert] An invalid line-ending raises
✅ success catching error: misc-error: (#f Scriba: invalid line-ending, expected 'trailing or 'leading ~S (middle) #f)
[🧪 test] write-log-line supports both newline placements
[⚙️ assert] Trailing mode appends the newline
✅ got: line
[⚙️ assert] Leading mode prepends it
✅ got:
line
[🧪 test] Messages without arguments are literal
[⚙️ assert] No stray format interpretation
✅ got: 100% done ~ here
[🧪 test] Non-string messages are displayed
[⚙️ assert] Objects are printed with display semantics
✅ got: 42
[🧪 test] The default-line-ending parameter is honored
[⚙️ assert] New loggers pick up the parameterized default
✅ got:
hello
+----------------------------------------------+
[📑 suite] JSON Backend Structure
[🧪 test] Pretty printing is controlled by #:pretty?
[⚙️ assert] Compact output is one line
✅ got: 1
[⚙️ assert] Pretty output spans several lines
✅ got: #t
[🧪 test] Merges context members into the log object
[⚙️ assert] Context pairs become top level JSON members
✅ got: acme
[🧪 test] JSON respects the level threshold
[⚙️ assert] Only the allowed level is serialized
✅ got: (kept)
[🧪 test] Stores level, message and host
[⚙️ assert] The level is an uppercase string
✅ got: INFO
[⚙️ assert] The message is a JSON string
✅ got: hello
[⚙️ assert] The host is present
✅ got: #t
[🧪 test] Serializes tags as an array
[⚙️ assert] Both tags reach the array
✅ got: 2
[🧪 test] Emits one valid JSON object per line
[⚙️ assert] JSON lines end with a newline
✅ got: #t
[⚙️ assert] A compact JSON log is a single line
✅ got: 1
+----------------------------------------------+
[📑 suite] Layout Rendering
[🧪 test] Timestamp formats are passed through
[⚙️ assert] A literal strftime format is reproduced
✅ got: [FIXED] hello
[🧪 test] Unlisted fields are omitted
[⚙️ assert] A message-only layout renders the message alone
✅ got: just this
[🧪 test] Names are bracketed
[⚙️ assert] The logger name gets its own bracket
✅ got: [worker] started
[🧪 test] Fields follow the requested order
[⚙️ assert] Every field lands in layout order
✅ got: [FIXED] [INFO] [app] [#db] wolk-jjba hello [tenant=acme]
+----------------------------------------------+
[📑 suite] Tag and Context Filtering
[🧪 test] Context filters are restored after their scope
[⚙️ assert] A log outside the scope is filtered again
✅ got: inside
[🧪 test] Nested tags accumulate within a scope
[⚙️ assert] Inner tags are prepended to the outer ones
✅ got: [#inner #outer] nested
[🧪 test] Tag filters match on any intersection
[⚙️ assert] One matching tag is enough
✅ got: kept
[🧪 test] Context filters compare numbers loosely
[⚙️ assert] 42 matches "42"
✅ got: kept
[🧪 test] Context filters match a single pair
[⚙️ assert] The other context pairs are irrelevant
✅ got: kept
[🧪 test] Tag matching is lenient across types
[⚙️ assert] A string filter matches a symbol tag
✅ got: kept
[🧪 test] Empty filters are wildcards
[⚙️ assert] A logger without filters logs everything
✅ got: [INFO] [#anything] kept [tenant=acme]
+----------------------------------------------+
[📑 suite] Syslog Backend Structure
[🧪 test] Includes the process id and the given timestamp
[⚙️ assert] Timestamp and pid are rendered
✅ got: FIXED 13965 hello
[🧪 test] Severities map to RFC 5424 priorities
[⚙️ assert] trace/debug/info/success/warning/error/critical
✅ got: (<15>2 <15>2 <14>2 <13>2 <12>2 <11>2 <10>2)
+----------------------------------------------+
[📑 suite] Severity Thresholds
[🧪 test] level #f disables every statement
[⚙️ assert] Not even level-less messages are emitted
✅ got:
[🧪 test] level #t enables every statement
[⚙️ assert] Every severity plus log-message is emitted
✅ got: 8
[🧪 test] Severity ordering is consistent
[⚙️ assert] error passes a warning threshold
✅ got: #t
[⚙️ assert] info is dropped by a warning threshold
✅ got: #f
[⚙️ assert] The threshold itself is included
✅ got: #t
[⚙️ assert] critical passes the most permissive threshold
✅ got: #t
[⚙️ assert] trace is dropped by the strictest threshold
✅ got: #f
[🧪 test] A warning threshold keeps warning and above
[⚙️ assert] Exactly the allowed severities reach the port
✅ got: ([WARNING] warning [ERROR] error [CRITICAL] critical unlevelled)
+----------------------------------------------+
[📑 suite] Auto Logger Routing
[🧪 test] Syslog backend is selected by the environment
[⚙️ assert] SCRIBA_LOGGER=syslog emits an RFC 5424 header
✅ got: #t
[🧪 test] JSON backend is selected by the environment
[⚙️ assert] SCRIBA_LOGGER=json produces JSON
✅ got: INFO
[🧪 test] Tag filters are trimmed and empty entries dropped
[⚙️ assert] Only the matching tag stream survives
✅ got: [INFO] web
[🧪 test] Unknown backends fall back to the console
[⚙️ assert] A typo does not leave the program without a logger
✅ got: [INFO] hello
[🧪 test] Color console backend is selected by the environment
[⚙️ assert] SCRIBA_LOGGER=color-console emits ANSI escapes
✅ got: #t
[🧪 test] Auto JSON pretty printing is honoredwarning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
;;; note: source file ./test/veritas/unit/file-log-spec.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/test/veritas/unit/file-log-spec.scm.go
;;; compiling ./test/veritas/unit/file-log-spec.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/test/veritas/unit/file-log-spec.scm.go
;;; note: source file ./test/veritas/unit/env-config-spec.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/test/veritas/unit/env-config-spec.scm.go
;;; compiling ./test/veritas/unit/env-config-spec.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/test/veritas/unit/env-config-spec.scm.go
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
[⚙️ assert] SCRIBA_JSON_PRETTY=true reaches the backend
✅ got: #t
[🧪 test] A space separated SCRIBA_LOG_LAYOUT is rejected
[⚙️ assert] Fields are comma separated, so a typo fails loudly
✅ success catching error: scriba-invalid-layout: (make-filtered-logger Unknown log layout field #{level message}#; expected one of (level tags time host name context message) () #f)
[🧪 test] SCRIBA_LOG_LAYOUT is honored
[⚙️ assert] Comma separated fields drive the rendered line
✅ got: [INFO] hello [tenant=acme]
[🧪 test] Environment level filters the stream
[⚙️ assert] SCRIBA_LOG_LEVEL is enforced
✅ got: [WARNING] kept
ℹ️ info - ran 9 tasks in: 0 seconds, 46569 microseconds
running unit tests from file: file-log-spec.scm, entrypoint: spec
ℹ️ info - shuffled with seed 943010741 (replay with VERITAS_SEED=943010741)
+----------------------------------------------+
[📑 suite] Console Backend - File System Destination
[🧪 test] File Destination Logging Operations
[⚙️ assert] Enforces severity thresholds and drops formatted payloads to a file stream without faults
✅ success running without errors
[⚙️ assert] Appends dynamic Mapped Diagnostic Context (MDC) properties onto a file-bound record
✅ success running without errors
ℹ️ info - ran 1 tasks in: 0 seconds, 3428 microseconds
running unit tests from file: env-config-spec.scm, entrypoint: spec
ℹ️ info - shuffled with seed 943010741 (replay with VERITAS_SEED=943010741)
+----------------------------------------------+
[📑 suite] Environment Driven Auto-Logger Configuration
[🧪 test] Environment context filters match structured context
[⚙️ assert] Parses key;value environment pairs into a real alist
✅ got: [INFO] kept [type=performance]
[🧪 test] Environment line ending is honored
[⚙️ assert] Routes SCRIBA_LINE_ENDING into the backend
✅ got:
[INFO] hello
[🧪 test] Auto syslog keeps an RFC 5424 timestamp by default
[⚙️ assert] Does not leak the human console timestamp format into syslog
✅ got: #t
ℹ️ info - ran 1 tasks in: 0 seconds, 9415 microseconds
running unit tests from file: config-spec.scm, entrypoint: spec
ℹ️ info - shuffled with seed 943010741 (replay with VERITAS_SEED=943010741)
+----------------------------------------------+
[📑 suite] Memoization Honors Dynamically Scoped Defaults
[🧪 test] Cached loggers follow the parameterized out-port
[⚙️ assert] Different default-out-port values must not share a cached logger
✅ got: #f
[⚙️ assert] The same default-out-port value must resolve to the cached logger
✅ got: #t
[⚙️ assert] The first logger keeps writing to its own port
✅ got: first port
[⚙️ assert] The second logger keeps writing to its own port
✅ got: second port
[🧪 test] Explicit keyword arguments bypass parameter defaults
[⚙️ assert] Explicit out-port wins over the parameterized default
✅ got: explicit
+----------------------------------------------+
[📑 suite] Configurable Log Line Termination
[🧪 test] Leading newline remains available
[⚙️ assert] Opting into 'leading restores the prefixed newline
✅ got:
[INFO] hello
[🧪 test] Trailing newline is the defaultwarning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
;;; note: source file ./test/veritas/unit/config-spec.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/test/veritas/unit/config-spec.scm.go
;;; compiling ./test/veritas/unit/config-spec.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/test/veritas/unit/config-spec.scm.go
;;; note: source file ./test/veritas/unit/file-spec.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/test/veritas/unit/file-spec.scm.go
;;; compiling ./test/veritas/unit/file-spec.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/test/veritas/unit/file-spec.scm.go
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
[⚙️ assert] Log lines end with a newline and no leading blank line
✅ got: [INFO] hello
[🧪 test] Invalid line endings are rejected
[⚙️ assert] Logging with an unknown line-ending raises an error
✅ success catching error: misc-error: (#f Scriba: invalid line-ending, expected 'trailing or 'leading ~S (middle) #f)
+----------------------------------------------+
[📑 suite] Constructor Argument Validation
[🧪 test] Unknown log levels are rejected
[⚙️ assert] A typo such as 'verbose fails at construction time
✅ success catching error: scriba-invalid-log-level: (make-filtered-logger Invalid log level verbose; expected #t, #f or one of (trace debug info success warning error critical) () #f)
[🧪 test] Boolean and known levels are accepted
[⚙️ assert] #t means always log
✅ got: #t
[⚙️ assert] #f means never log
✅ got: #t
[⚙️ assert] Known severities are valid
✅ got: #t
[⚙️ assert] Unknown severities are invalid
✅ got: #f
[🧪 test] JSON pretty printing follows its parameter
[⚙️ assert] default-json-pretty? drives the JSON logger default
✅ got: #t
[🧪 test] Unknown layout fields are rejected
[⚙️ assert] A mistyped field fails instead of silently writing blank lines
✅ success catching error: scriba-invalid-layout: (make-filtered-logger Unknown log layout field nonsense; expected one of (level tags time host name context message) () #f)
[⚙️ assert] A space separated SCRIBA_LOG_LAYOUT becomes one unknown field
✅ success catching error: scriba-invalid-layout: (make-filtered-logger Unknown log layout field #{level message}#; expected one of (level tags time host name context message) () #f)
[⚙️ assert] An empty layout would log empty lines, so it is rejected
✅ success catching error: scriba-invalid-layout: (make-filtered-logger Invalid log layout (); expected a non-empty list of (level tags time host name context message) () #f)
[🧪 test] Layout fields are backend specific
[⚙️ assert] The process id is not a JSON field
✅ success catching error: scriba-invalid-layout: (make-filtered-logger Unknown log layout field process-id; expected one of (level tags time host name message context) () #f)
[⚙️ assert] The process id is a syslog field
✅ got: #t
[⚙️ assert] message is a known field
✅ got: #t
[⚙️ assert] nonsense is not
✅ got: #f
ℹ️ info - ran 3 tasks in: 0 seconds, 21281 microseconds
running unit tests from file: file-spec.scm, entrypoint: spec
ℹ️ info - shuffled with seed 943010741 (replay with VERITAS_SEED=943010741)
+----------------------------------------------+
[📑 suite] File Backend - Plaintext Writing
[🧪 test] Leaves a literal message untouched
[⚙️ assert] Messages without arguments skip the formatter
✅ got: 100% done ~ not a directive
[🧪 test] Renders name, tags and context in layout order
[⚙️ assert] The file backend uses the same formatting as the console
✅ got: [INFO] [app] [#db #performance] done [tenant=acme]
[🧪 test] Creates the file and appends formatted lines
[⚙️ assert] Logging creates a missing log file
✅ got: #t
[⚙️ assert] Lines are appended in order with their levels
✅ got: ([INFO] hello [WARNING] careful)
[🧪 test] Formats messages carrying arguments
[⚙️ assert] Format arguments are substituted as usual
✅ got: 2 + 2 = 4
[🧪 test] Appends to a file that already exists
[⚙️ assert] Logging never truncates an existing file
✅ got: (first run second run)
[🧪 test] Honors level thresholds
[⚙️ assert] Only lines at or above the threshold reach the file
✅ got: ([ERROR] kept error)
[🧪 test] Supports leading newline placement
[⚙️ assert] Leading mode prefixes each line with a newline
✅ got:
first
second
+----------------------------------------------+
[📑 suite] File Backend - Size Based Rotation
[🧪 test] Never rotates when max-size is #f
[⚙️ assert] No backup file appears
✅ got: #f
[⚙️ assert] Every line stays in the one file
✅ got: 100
[🧪 test] Keeps only the configured number of backups
[⚙️ assert] The first backup is kept
✅ got: #t
[⚙️ assert] The second backup is kept
✅ got: #t
[⚙️ assert] Backups beyond the limit are dropped
✅ got: #f
[🧪 test] Counts UTF-8 bytes, not characters
[⚙️ assert] The threshold accounts for encoded length
✅ got: 5
[🧪 test] max-backups 0 truncates instead of keeping history
[⚙️ assert] No backups are left behind
✅ got: #f
[⚙️ assert] The file is truncated whenever it fills up
✅ got: #t
[🧪 test] A later logger can change the rotation policy
[⚙️ assert] Reconfiguring a path updates its shared sink
✅ got: #t
[🧪 test] rotate-file! refuses an unknown path
[⚙️ assert] Rotating a file Scriba does not write needs a logger first
✅ success catching error: misc-error: (#f Scriba: no file sink is open for this path, create a file logger first ~S (/tmp/scriba-file-spec-OY4VLc/never-opened.log) #f)
[🧪 test] rotate-file! reports success
[⚙️ assert] rotate-file! returns #t
✅ got: #t
[🧪 test] Rotates before a line would exceed the limit
[⚙️ assert] A full file is renamed to its first backup
✅ got: #t
[⚙️ assert] The backup holds the lines written before rotation
✅ got: 9
[⚙️ assert] The current file starts over after rotation
✅ got: 1
[⚙️ assert] The current file stays within the size limit
✅ got: #t
[🧪 test] rotate-file! moves the current file into its first backup
[⚙️ assert] The written lines move into the backup
✅ got: (one two)
[⚙️ assert] The current file is empty after rotation
✅ got: 0
+----------------------------------------------+
[📑 suite] File Backend - Argument Validation
[🧪 test] Rejects impossible rotation settings
[⚙️ assert] A zero byte limit is rejected
✅ success catching error: misc-error: (#f Scriba: #:max-size must be #f (never rotate) or a positive integer number of bytes, got ~S (0) #f)
[⚙️ assert] A negative byte limit is rejected
✅ success catching error: misc-error: (#f Scriba: #:max-size must be #f (never rotate) or a positive integer number of bytes, got ~S (-5) #f)
[⚙️ assert] A non-numeric byte limit is rejected
✅ success catching error: misc-error: (#f Scriba: #:max-size must be #f (never rotate) or a positive integer number of bytes, got ~S (ten) #f)
[⚙️ assert] A negative backup count is rejected
✅ success catching error: misc-error: (#f Scriba: #:max-backups must be a non-negative integer, got ~S (-1) #f)
[⚙️ assert] A non-numeric backup count is rejected
✅ success catching error: misc-error: (#f Scriba: #:max-backups must be a non-negative integer, got ~S (3) #f)
[🧪 test] Requires a path
[⚙️ assert] No path, no file logger
✅ success catching error: misc-error: (#f Scriba: a file logger needs #:path (or default-file-path) ~S (#f) #f)
[⚙️ assert] A blank path is rejected
✅ success catching error: misc-error: (#f Scriba: a file logger needs #:path (or default-file-path) ~S ( ) #f)
[🧪 test] Honors the default-file-path parameter
[⚙️ assert] default-file-path supplies the destination
✅ got: (from parameter)
+----------------------------------------------+
[📑 suite] File Backend - Environment Driven Configuration
[🧪 test] Changing SCRIBA_FILE_PATH yields a different logger
[⚙️ assert] The path is part of the memoization key
✅ got: #f
[⚙️ assert] The old logger keeps writing to its file
✅ got: ([INFO] first)
[⚙️ assert] The new logger writes to the new file
✅ got: ([INFO] second)
[🧪 test] A missing SCRIBA_FILE_PATH is reported
[⚙️ assert] file logging without a path fails loudly
✅ success catching error: misc-error: (#f Scriba: SCRIBA_LOGGER=file needs SCRIBA_FILE_PATH (or the #:path argument) () #f)
[🧪 test] SCRIBA_LOGGER=file writes to SCRIBA_FILE_PATH
[⚙️ assert] The auto logger routes to the file backend
✅ got: ([INFO] from environment [ERROR] second)
[🧪 test] SCRIBA_FILE_MAX_SIZE rotates the env configured file
[⚙️ assert] The environment threshold drives rotation
✅ got: #t
[🧪 test] An invalid SCRIBA_FILE_MAX_SIZE is reported
[⚙️ assert] A malformed size is not silently ignored
✅ success catching error: misc-error: (#f Scriba: SCRIBA_FILE_MAX_SIZE must be a positive byte count or 'off' ~S (banana) #f)
[🧪 test] SCRIBA_FILE_MAX_SIZE=off disables rotation
[⚙️ assert] Off really means no backups
✅ got: #f
ℹ️ info - ran 4 tasks in: 0 seconds, 33406 microseconds
running unit tests from file: auto-log-spec.scm, entrypoint: spec
ℹ️ info - shuffled with seed 943010741 (replay with VERITAS_SEED=943010741)[WARNING] [2026-10-26 13:19:08 CET] some kind of warning
[SUCCESS] [2026-10-26 13:19:08 CET] yes! we made it
[INFO] [2026-10-26 13:19:08 CET] Hello Scriba, 2 + 2 = 4!
[INFO] [2026-10-26 13:19:08 CET] Some log with context [sample-1=value-1]
[INFO] [2026-10-26 13:19:08 CET] Hello Scriba!
[#performance] [2026-10-26 13:19:08 CET] Slept 0 seconds
[2026-10-26 13:19:08 CET] While any editor can save your files only Emacs can save your soul !
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
further behavior unspecified.
;;; note: source file ./test/veritas/unit/auto-log-spec.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/test/veritas/unit/auto-log-spec.scm.go
;;; compiling ./test/veritas/unit/auto-log-spec.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/test/veritas/unit/auto-log-spec.scm.go
+----------------------------------------------+
[📑 suite] Adaptive Auto-Logger Routing Backend
[🧪 test] Severity Enforcement and Argument Expansion
[⚙️ assert] Intercepts low-priority severities and cleanly expands layout format arguments
✅ success running without errors
[🧪 test] Context Metadata Mapping
[⚙️ assert] Safely threads structured Mapped Diagnostic Context (MDC) scopes onto active pipelines
✅ success running without errors
[🧪 test] Baseline Routing and Dynamic Tag Binding
[⚙️ assert] Dispatches unformatted strings and appends active tags without execution faults
✅ success running without errors
ℹ️ info - ran 1 tasks in: 0 seconds, 4821 microseconds
running unit tests from file: string-log-spec.scm, entrypoint: spec
ℹ️ info - shuffled with seed 943010741 (replay with VERITAS_SEED=943010741)
+----------------------------------------------+
[📑 suite] Console Backend - String Stream Output
[🧪 test] Layout and Context Layout Rendering
[⚙️ assert] Formats severe levels and layout records to raw string buffers accurately
✅ success running without errors
+----------------------------------------------+
[📑 suite] Dynamic Tag Filtering Pipeline
[🧪 test] Non-Matching Tag Suppression
[⚙️ assert] Intercepts unlisted tag streams and silently drops them via log-unit redirection
✅ success running without errors
[🧪 test] Matching Tag Interception
[⚙️ assert] Passes execution and prepends active tags when context matches the filter hash
✅ success running without errors
+----------------------------------------------+
[📑 suite] Dynamic Context Filtering Pipeline
[🧪 test] Non-Matching Context Suppression
[⚙️ assert] Intercepts unlisted context streams and silently drops them via log-unit redirection
✅ success running without errors
[🧪 test] Matching Context Interception
[⚙️ assert] Passes execution and prepends active contexts when context matches the filter hash
✅ success running without errors
ℹ️ info - ran 3 tasks in: 0 seconds, 4894 microseconds
finished running tests
--------------------------------------------------------------
Maak 0.14.0: the infinitely extensible command runner
Loading tasks from Maak file: /etc/byggsteg/job-clone/scriba/trunk/maak.scm
Executing Maak tasks: test
--------------------------------------------------------------
=> Running Maak task: test
Run project's tests.
Executing: guix time-machine --channels=channels.scm -- shell -m manifest.scm -- guile -L ./src -L ./test -c '((@ (veritas runner) run-tests))'
→ running command: cd /etc/byggsteg/job-clone/scriba/trunk && sudo maak deploy
--------------------------------------------------------------
Maak 0.14.0: the infinitely extensible command runner
Loading tasks from Maak file: /etc/byggsteg/job-clone/scriba/trunk/maak.scm
Executing Maak tasks: deploy
--------------------------------------------------------------
=> Running Maak task: deploy
Generate documentation for the project and publish to web directory.
;;; note: source file /etc/byggsteg/job-clone/scriba/trunk/src/scriba/auto.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/scriba/trunk/src/scriba/auto.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;; or pass the --no-auto-compile argument to disable.
;;; compiling /etc/byggsteg/job-clone/scriba/trunk/src/scriba/auto.scm
;;; note: source file /etc/byggsteg/job-clone/scriba/trunk/src/scriba/scriba.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/scriba/trunk/src/scriba/scriba.scm.go
;;; compiling /etc/byggsteg/job-clone/scriba/trunk/src/scriba/scriba.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/scriba/trunk/src/scriba/scriba.scm.go
;;; note: source file /etc/byggsteg/job-clone/scriba/trunk/src/scriba/json.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/scriba/trunk/src/scriba/json.scm.go
;;; compiling /etc/byggsteg/job-clone/scriba/trunk/src/scriba/json.scm
;;; note: source file /etc/byggsteg/job-clone/scriba/trunk/src/scriba/layout.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/scriba/trunk/src/scriba/layout.scm.go
;;; compiling /etc/byggsteg/job-clone/scriba/trunk/src/scriba/layout.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/scriba/trunk/src/scriba/layout.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/scriba/trunk/src/scriba/json.scm.go
;;; note: source file /etc/byggsteg/job-clone/scriba/trunk/src/scriba/color-console.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/scriba/trunk/src/scriba/color-console.scm.go
;;; compiling /etc/byggsteg/job-clone/scriba/trunk/src/scriba/color-console.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/scriba/trunk/src/scriba/color-console.scm.go
;;; note: source file /etc/byggsteg/job-clone/scriba/trunk/src/scriba/console.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/scriba/trunk/src/scriba/console.scm.go
;;; compiling /etc/byggsteg/job-clone/scriba/trunk/src/scriba/console.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/scriba/trunk/src/scriba/console.scm.go
;;; note: source file /etc/byggsteg/job-clone/scriba/trunk/src/scriba/file.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/scriba/trunk/src/scriba/file.scm.go
;;; compiling /etc/byggsteg/job-clone/scriba/trunk/src/scriba/file.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/scriba/trunk/src/scriba/file.scm.go
;;; note: source file /etc/byggsteg/job-clone/scriba/trunk/src/scriba/syslog.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/scriba/trunk/src/scriba/syslog.scm.go
;;; compiling /etc/byggsteg/job-clone/scriba/trunk/src/scriba/syslog.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/scriba/trunk/src/scriba/syslog.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/scriba/trunk/src/scriba/auto.scm.go
API documentation saved to doc/api
index.texi: warning: must specify a title with a title command or @top
Executing: guix time-machine --channels=channels.scm -- shell -m manifest.scm -- documenta api ./src/scriba
Executing: guix time-machine --channels=channels.scm -- shell -m manifest.scm -- texi2any -v --html --css-ref=https://jointhefreeworld.org/static/css/jointhefreeworld.css -o index_html ./doc/api/index.texi
renamed './index_html' -> './doc/api-dist'
removed '/srv/http/jointhefreeworld.org/api-docs/scriba/API.html'
removed '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fauto.html'
removed '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fcolor_002dconsole.html'
removed '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fconsole.html'
removed '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005ffile.html'
removed '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fjson.html'
removed '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005flayout.html'
removed '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fscriba.html'
removed '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fsyslog.html'
removed directory '/srv/http/jointhefreeworld.org/api-docs/scriba'
mkdir: created directory '/srv/http/jointhefreeworld.org/api-docs/scriba'
renamed 'doc/api-dist/API.html' -> '/srv/http/jointhefreeworld.org/api-docs/scriba/API.html'
renamed 'doc/api-dist/scriba_005fauto.html' -> '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fauto.html'
renamed 'doc/api-dist/scriba_005fcolor_002dconsole.html' -> '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fcolor_002dconsole.html'
renamed 'doc/api-dist/scriba_005fconsole.html' -> '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fconsole.html'
renamed 'doc/api-dist/scriba_005ffile.html' -> '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005ffile.html'
renamed 'doc/api-dist/scriba_005fjson.html' -> '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fjson.html'
renamed 'doc/api-dist/scriba_005flayout.html' -> '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005flayout.html'
renamed 'doc/api-dist/scriba_005fscriba.html' -> '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fscriba.html'
renamed 'doc/api-dist/scriba_005fsyslog.html' -> '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fsyslog.html'
Executing: mv -v doc/api-dist/* /srv/http/jointhefreeworld.org/api-docs/scriba
removed 'doc/api/index.texi'
removed directory 'doc/api'
removed directory 'doc/api-dist'
removed directory 'doc'