starting new job...
→ running command: cd "/etc/byggsteg/job-clone//byggsteg/trunk" && git reset --hard && git pull
HEAD is now at 7c2c9ae feat: ANSI support
From https://codeberg.org/jjba23/byggsteg
7c2c9ae..e7fc8f0 trunk -> origin/trunk
* [new tag] v1.15.3 -> v1.15.3
* [new tag] v1.15.4 -> v1.15.4
Updating 7c2c9ae..e7fc8f0
Fast-forward
lib/byggsteg/preferences.scm | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
→ running command: cd /etc/byggsteg/job-clone/byggsteg/trunk && uname -a
Linux wolk-jjba 7.1.5-gnu #1 SMP PREEMPT_DYNAMIC 1 x86_64 GNU/Linux
→ running command: cd /etc/byggsteg/job-clone/byggsteg/trunk && git log --name-status HEAD^..HEAD
commit e7fc8f0e87301bc6ecfbb91be85f623846d74e55
Author: Josep Bigorra <jjbigorra@gmail.com>
Date: Wed Oct 14 20:29:52 2026 +0200
feat: Tweak byggsteg defaults
M lib/byggsteg/preferences.scm
→ running command: cd /etc/byggsteg/job-clone/byggsteg/trunk && maak test
scanning directories for unit tests...
scanning present working directory for unit tests...
shuffled the files with seed 404582808 (replay with VERITAS_SEED=404582808)
found unit tests: (form-width-spec.scm about-page-spec.scm heatmap-spec.scm password-reset-spec.scm console-resources-spec.scm job-pipeline-spec.scm retention-spec.scm job-pipelines-spec.scm ansi-spec.scm terminal-glass-spec.scm error-pages-spec.scm retry-spec.scm user-bootstrap-spec.scm artifact-spec.scm job-search-spec.scm log-streaming-spec.scm password-strength-spec.scm deployment-identity-spec.scm)
running unit tests from file: form-width-spec.scm, entrypoint: spec
ℹ️ info - shuffled with seed 404582808 (replay with VERITAS_SEED=404582808)
+----------------------------------------------+
[📑 suite] the width of a field
[🧪 test] the field a job is written in is the console's own, not a copy
[⚙️ assert] the job field carries the face's own height
✅ got: #t
[⚙️ assert] and is as wide as the room it is given
✅ got: #t
[⚙️ assert] and no wider than a reading line
✅ got: #t
[⚙️ assert] with no width of its own written at the call site
✅ got: max-w-196
[⚙️ assert] the address the form leads to is held by a box that may break it
✅ got: #t
[🧪 test] every field is dressed in the console's own faces
[⚙️ assert] the job field is a field of this console
✅ got: ()
[⚙️ assert] so is the profile field
✅ got: ()
[⚙️ assert] so is the search field
✅ got: ()
[⚙️ assert] so is the locale chooser
✅ got: ()
[🧪 test] no page of the console forces a width
[⚙️ assert] the run-job form holds no minimum width
✅ got: ()
[⚙️ assert] the profile form holds no minimum width
✅ got: ()
[⚙️ assert] the search form holds no minimum width
✅ got: ()
[⚙️ assert] the locale chooser holds no minimum width
✅ got: ()
[🧪 test] every field is allowed to be as narrow as the screen
[⚙️ assert] every control of the run-job form may shrink
✅ got: ()
[⚙️ assert] every control of the profile form may shrink
✅ got: ()
[⚙️ assert] every control of the search form may shrink
✅ got: ()
[⚙️ assert] every control of the locale chooser may shrink
✅ got: ()
ℹ️ info - ran 1 tasks in: 0 seconds, 2648 microseconds
running unit tests from file: about-page-spec.scm, entrypoint: spec
ℹ️ info - shuffled with seed 404582808 (replay with VERITAS_SEED=404582808)
+----------------------------------------------+
[📑 suite] about page
[🧪 test] the page can be read on a phone
[⚙️ assert] no panel of it forces a width wider than the screen
✅ got: ()
[⚙️ assert] the panels are told they may shrink
✅ got: min-w-0
[🧪 test] the page is built by the components rather than describing them
[⚙️ assert] no component call was left un-made in the markup
✅ got: ()
[⚙️ assert] every element of the page is an element a browser knows
✅ got: ()
[⚙️ assert] no element of the page is closed on itself
✅ got: ()
[🧪 test] the page a crawler is handed says what it is
[⚙️ assert] it declares itself a document of this deployment
✅ got: <!DOCTYPE html>
[⚙️ assert] it is dressed in the same sheet as every other page
✅ got: /css/byggsteg.olive.min.css
[⚙️ assert] its canonical address is the page's own
✅ got: /about
[⚙️ assert] its title names the deployment and the page
✅ got: <title>byggsteg - about</title>
[🧪 test] the account is on the page, and it is this deployment's
[⚙️ assert] the story names the people, the framework and the three doors
✅ got: ()
[⚙️ assert] and it holds nothing the page was never meant to say
✅ got: ()
[⚙️ assert] the page opens under the console's own prompt
✅ got: $ byggsteg --origin
ℹ️ info - ran 1 tasks in: 0 seconds, 16928 microseconds
running unit tests from file: heatmap-spec.scm, entrypoint: spec
ℹ️ info - shuffled with seed 404582808 (replay with VERITAS_SEED=404582808)
+----------------------------------------------+
[📑 suite] activity heatmap
[🧪 test] the calendar between a day number and a date is the reader's own
[⚙️ assert] every date is read back as the day number it is known by
✅ got: ()
[⚙️ assert] the epoch is day zero, and the day before it is minus one
✅ got: (0 -1)
[⚙️ assert] a leap day is a day of its own
✅ got: 11016
[⚙️ assert] the week starts on Sunday, and the epoch was a Thursday
✅ got: (4 2 3)
[🧪 test] jobs are counted by the day they were queued on
[⚙️ assert] a day is counted once per job, and what is not a date is left out
✅ got: ((20739 . 3) (20730 . 2) (20737 . 1))
[🧪 test] the grid ends with the week today is in
[⚙️ assert] two columns of seven days, from the Sunday before to today
✅ got: ((columns 2) (cells-per-column 7) (first-day 20730) (last-day 20743) (today-is-in-the-last-column 3) (a-day-not-happened-yet #f))
[🧪 test] a square is as dark as its day is busy
[⚙️ assert] the busiest day is darkest, and a day with no jobs is not drawn dark
✅ got: ((20739 . 4) (20730 . 3) (20737 . 2) (20738 . 0))
[⚙️ assert] the four steps between are read off the busiest day
✅ got: ((against-a-busiest-day-of-ten (0 . 0) (2 . 1) (3 . 2) (5 . 2) (6 . 3) (9 . 3) (10 . 4)) (no-busiest-day 1) (a-day-that-has-not-happened #f))
[🧪 test] the months are named along the top of the grid
[⚙️ assert] a year of weeks is labelled, from its first column on
✅ got: ((labels 13) (first-label-name Oct) (first-label-column 0) (two-days-of-one-month-are-named-alike #t) (two-months-are-named-differently #t))
[🧪 test] a deployment with no jobs draws a grid rather than nothing
[⚙️ assert] an empty heatmap has a total, a busiest day and a full year of squares
❌ fail - error, expect: ((total 0) (max 0) (columns 53) (cells 371)), got: ((total 0) (max 0) (columns 50) (cells 350))
ℹ️ info - ran 1 tasks in: 0 seconds, 3930 microseconds
❌ error -
aborting due to error in test case...
WARNING: (hygguile hygguile): imported module (hygguile components select) overrides core binding `select'
;;; note: source file ./lib/byggsteg/preferences.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/byggsteg/trunk/lib/byggsteg/preferences.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;; or pass the --no-auto-compile argument to disable.
;;; compiling ./lib/byggsteg/preferences.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/byggsteg/trunk/lib/byggsteg/preferences.scm.go
WARNING: (byggsteg html): `get-short-commit-sha' imported from both (hygguile hygguile) and (kracht prelude)
WARNING: (byggsteg html): imported module (hygguile hygguile) overrides core binding `select'
Backtrace:
In ice-9/boot-9.scm:
1784:12 7 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
In unknown file:
6 (apply-smob/0 #<thunk 7f2afb3dc340>)
In ice-9/boot-9.scm:
733:2 5 (call-with-prompt _ _ #<procedure default-prompt-handler (k proc)>)
In ice-9/eval.scm:
619:8 4 (_ #(#(#<directory (guile-user) 7f2afb3dfc80>)))
In ice-9/command-line.scm:
187:19 3 (_ #<input: custom-port 7f2afb3c73f0>)
In unknown file:
2 (eval ((@ (maak main) main)) #<directory (guile-user) 7f2afb3dfc80>)
In srfi/srfi-1.scm:
750:9 1 (for-each #<procedure 7f2afa4c6198 at maak/maak.scm:87:12 (task)> (test))
In maak/dsl.scm:
89:12 0 ($ _ #:verbose? _ #:join _)
maak/dsl.scm:89:12: In procedure $:
Non-zero exit code when running!
Command: guix time-machine --channels=channels.scm -- shell -m manifest.scm -- guile -L ./lib -L . -L ./test -c '(begin (setlocale LC_ALL "C.UTF-8") (use-modules (veritas runner)) (run-tests))'
Exit code: 1
--------------------------------------------------------------
Maak: the infinitely extensible command runner
Loading tasks from Maak file: /etc/byggsteg/job-clone/byggsteg/trunk/maak.scm
Executing Maak tasks: test
--------------------------------------------------------------
=> Running Maak task: test
Run the project's test suite.
The specs live under test/veritas/unit. That is where the runner looks for
suites -- given the test root ./test, the module prefix `veritas' and the suite
name `unit' -- and it is also what their own `(veritas unit ...)' module names
resolve to on the load path below.
The run names the locale it reads in rather than inheriting one, and it names it
before the runner is asked for: Guile reads a page by the locale in force, and a
pattern over a page that holds a character outside ASCII reports matches where
there are none under a locale that names no encoding. `C.UTF-8' is that name
for a machine that has never generated a locale -- a service, a container, and
this project's own continuous integration, where the job that tests byggsteg is
run by a byggsteg daemon whose Shepherd unit names no locale at all. The suite
reads the pages of this console, whose prose, whose marks and whose console
output are not ASCII; run without a locale it would find elements no browser
knows and fail for a reason that has nothing to do with the change it was run to
judge. Naming it here is part of what the pinned manifest is for: a run of the
suite reads the same pages wherever the pipeline runs.