iter-vitae-b8595165-6098

job succeeded

starting new job...
rundir='/etc/byggsteg/job-clone//iter-vitae/trunk succeeded43 lines · 0.6s
branch='trunk'
if ! command -v git >/dev/null 2>&1; then
  echo 'byggsteg: git is not on this deployment PATH, so the clone cannot be updated' >&2
  exit 1
fi
if ! cd "$dir"; then
  echo "byggsteg: cannot enter the clone $dir" >&2
  exit 1
fi
root=$(git rev-parse --show-toplevel 2>/dev/null)
if [ "$root" != "$(pwd -P)" ]; then
  echo "byggsteg: $dir is not a git checkout; remove it and the next run clones it again" >&2
  exit 1
fi
if ! origin=$(git remote get-url origin 2>/dev/null); then
  echo "byggsteg: $dir has no origin remote to fetch $branch from" >&2
  exit 1
fi
before=$(git rev-parse --short HEAD 2>/dev/null) || before=none
attempt=1
while :; do
  if GIT_TERMINAL_PROMPT=0 git fetch --quiet origin "+refs/heads/$branch:refs/remotes/origin/$branch"; then
    break
  fi
  if [ "$attempt" -ge 3 ]; then
    echo "byggsteg: could not fetch $branch from $origin after 3 attempts; is the branch still there, and is the remote reachable?" >&2
    exit 1
  fi
  echo "byggsteg: fetching $branch from $origin failed; retrying in $((attempt * 2))s" >&2
  sleep $((attempt * 2))
  attempt=$((attempt + 1))
done
if ! git checkout --quiet --force -B "$branch" FETCH_HEAD; then
  echo "byggsteg: fetched $branch from $origin but could not check it out" >&2
  exit 1
fi
after=$(git rev-parse --short HEAD)
if [ "$before" = "$after" ]; then
  echo "byggsteg: $branch was already at $after"
else
  echo "byggsteg: $branch moved from $before to $after"
fi


byggsteg: trunk moved from 1ed1c7d to 797c5ac
setupuname -a succeeded1 lines · 0.0s
Linux wolk-jjba 7.2.11-gnu #1 SMP PREEMPT_DYNAMIC 1 x86_64 GNU/Linux
setupgit log --name-status HEAD^..HEAD succeeded5 lines · 0.1s
commit 797c5ac47d00b6e97a7a9ceb5a6155f5b7c45047
Author: Josep Bigorra (Joe) <jjbigorra@gmail.com>
Date:   Tue Nov 10 20:47:17 2026 +0100

    chore: show the sponsor button

A       .github/FUNDING.yml
testmaak test succeeded650 lines · 36s
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-0VldZp/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-0VldZp/persona.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-3Z88cy/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-3Z88cy/persona.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-tIaSnY/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-tIaSnY/persona.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-8RXmNF/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-8RXmNF/persona.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-HGlO5S/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-HGlO5S/persona.scm.go
Backtrace:
In ice-9/boot-9.scm:
  1784:12  6 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
In unknown file:
           5 (apply-smob/0 #<thunk 7f91b5316320>)
In ice-9/boot-9.scm:
    733:2  4 (call-with-prompt _ _ #<procedure default-prompt-handler (k proc)>)
In ice-9/eval.scm:
    619:8  3 (_ #(#(#<directory (guile-user) 7f91b5319c80>)))
In ice-9/command-line.scm:
   187:19  2 (_ #<input: custom-port 7f91b53003f0>)
In unknown file:
           1 (eval ((@ (iter-vitae main) main)) #<directory (guile-user) 7f91b5319c80>)
In iter-vitae/main.scm:
    54:12  0 (main #:args _)

iter-vitae/main.scm:54:12: In procedure main:
The --file option is required (or use --init to create a persona)
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-S32WCs/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-S32WCs/persona.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-LmvMmu/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-LmvMmu/persona.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-BGyODv/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-BGyODv/persona.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-A4Jt50/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-A4Jt50/persona.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-VECtyZ/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-VECtyZ/persona.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-zgAk9o/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-zgAk9o/persona.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-obRqsQ/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-obRqsQ/persona.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-tb4acC/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-tb4acC/persona.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-MVHDsp/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-MVHDsp/persona.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-YyJ4HD/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-YyJ4HD/persona.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-41EsFJ/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-41EsFJ/persona.scm.go
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 7f62b6ef6320>)
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) 7f62b6ef9c80>)))
In ice-9/command-line.scm:
   187:19  3 (_ #<input: custom-port 7f62b6ee03f0>)
In unknown file:
           2 (eval ((@ (iter-vitae renderer) render-curriculum) #:locale (quote en) #:destination "/tmp/iter-vitae-test-svHzmF/dist" #:resources "/tmp/iter-vitae-test-svHzmF/resources" #:format "html" #:all-locales? #f #:all-themes? #f #:file "/tmp/iter-vitae-test-svHzmF/missing.scm") #<directory (guile-user) 7f62b6ef9c80>)
In iter-vitae/renderer.scm:
   176:15  1 (render-curriculum #:locale _ #:destination _ #:resources _ #:file _ #:format _ #:all-locales? _ #:all-themes? _)
In unknown file:
           0 (canonicalize-path "/tmp/iter-vitae-test-svHzmF/missing.scm")

ERROR: In procedure canonicalize-path:
In procedure canonicalize-path: No such file or directory
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-IiNF49/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-IiNF49/persona.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-YFuatL/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-YFuatL/persona.scm.go
;;; note: source file /tmp/iter-vitae-test-YFuatL/persona.scm
;;;       newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-YFuatL/persona.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-YFuatL/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-YFuatL/persona.scm.go
;;; note: source file /tmp/iter-vitae-test-YFuatL/persona.scm
;;;       newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-YFuatL/persona.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-YFuatL/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-YFuatL/persona.scm.go
;;; note: source file /tmp/iter-vitae-test-YFuatL/persona.scm
;;;       newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-YFuatL/persona.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-YFuatL/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-YFuatL/persona.scm.go
Backtrace:
In ice-9/boot-9.scm:
  1784:12  6 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
In unknown file:
           5 (apply-smob/0 #<thunk 7fb26bb16320>)
In ice-9/boot-9.scm:
    733:2  4 (call-with-prompt _ _ #<procedure default-prompt-handler (k proc)>)
In ice-9/eval.scm:
    619:8  3 (_ #(#(#<directory (guile-user) 7fb26bb19c80>)))
In ice-9/command-line.scm:
   187:19  2 (_ #<input: custom-port 7fb26bb003f0>)
In unknown file:
           1 (eval ((@ (iter-vitae renderer) render-curriculum) #:locale (quote en) #:destination "/tmp/iter-vitae-test-VDuIma/dist" #:resources "/tmp/iter-vitae-test-VDuIma/resources" #:format "text" #:all-locales? #f #:all-themes? #t #:file "/tmp/iter-vitae-test-VDuIma/persona.scm") #<directory (guile-user) 7fb26bb19c80>)
In iter-vitae/renderer.scm:
    192:6  0 (render-curriculum #:locale _ #:destination _ #:resources _ #:file _ #:format _ #:all-locales? _ #:all-themes? _)

iter-vitae/renderer.scm:192:6: In procedure render-curriculum:
--all-themes cannot be combined with --format text
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-Gr08Yr/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-Gr08Yr/persona.scm.go
Backtrace:
In ice-9/boot-9.scm:
  1784:12  6 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
In unknown file:
           5 (apply-smob/0 #<thunk 7f8223116320>)
In ice-9/boot-9.scm:
    733:2  4 (call-with-prompt _ _ #<procedure default-prompt-handler (k proc)>)
In ice-9/eval.scm:
    619:8  3 (_ #(#(#<directory (guile-user) 7f8223119c80>)))
In ice-9/command-line.scm:
   187:19  2 (_ #<input: custom-port 7f82231003f0>)
In unknown file:
           1 (eval ((@ (iter-vitae renderer) render-curriculum) #:locale (quote en) #:destination "/tmp/iter-vitae-test-3kt6zC/dist" #:resources "/tmp/iter-vitae-test-3kt6zC/resources" #:format "docx" #:all-locales? #f #:all-themes? #f #:file "/tmp/iter-vitae-test-3kt6zC/persona.scm") #<directory (guile-user) 7f8223119c80>)
In iter-vitae/renderer.scm:
   187:29  0 (render-curriculum #:locale _ #:destination _ #:resources _ #:file _ #:format _ #:all-locales? _ #:all-themes? _)

iter-vitae/renderer.scm:187:29: In procedure render-curriculum:
Unknown output format; expected 'html, 'text or 'pdf: "docx"

scanning directories for unit tests...
scanning present working directory for unit tests...

shuffled the files with seed 83276691 (replay with VERITAS_SEED=83276691)

found unit tests: (iter-vitae/main.scm iter-vitae/text.scm iter-vitae/renderer.scm iter-vitae/html.scm iter-vitae/prelude.scm iter-vitae/themes.scm iter-vitae/wizard.scm)


running unit tests from file: iter-vitae/main.scm, entrypoint: spec


ℹ️ info - shuffled with seed 83276691 (replay with VERITAS_SEED=83276691)
+----------------------------------------------+
[📑 suite] main entrypoint
  [🧪 test] uses ./resources when --resources is omitted
    ✅ got: 0
    ✅ got: #t
  [🧪 test] honours the locale argument
    ✅ got: 0
    ✅ got: locale: nl
    ✅ got: Ingenieur
    ✅ got: >Engineer<
  [🧪 test] renders a curriculum from command line arguments
    ✅ got: 0
    ✅ got: #t
    ✅ got: Iter Vitae: Generate
    ✅ got: Completed rendering
    ✅ got: ("guile"
  [🧪 test] renders every persona locale with --all-locales
    ✅ got: 0
    ✅ got: #t
    ✅ got: #t
    ✅ got: #f
    ✅ got: Ada Voorbeeld
    ✅ got: rendering ef-cyprus for nl
  [🧪 test] writes a text resume with --format text
    ✅ got: 0
    ✅ got: #t
    ✅ got: #f
    ✅ got: PROFESSIONAL SUMMARY
    ✅ got: format: text
    ✅ got: Completed rendering
  [🧪 test] reports a failure when --file is missing
    ✅ got: #f
    ✅ got: #f
ℹ️ info - ran 1 tasks in: 1 seconds, 198959 microseconds

running unit tests from file: iter-vitae/text.scm, entrypoint: spec


ℹ️ info - shuffled with seed 83276691 (replay with VERITAS_SEED=83276691)
+----------------------------------------------+
[📑 suite] plain-text resume
  [🧪 test] omits sections the persona did not configure
    ✅ success running without errors
  [🧪 test] localizes headings
    ✅ success running without errors
  [🧪 test] wraps long bullets without duplicating words
    ✅ success running without errors
  [🧪 test] contains no markup, CSS or HTML entities
    ✅ success running without errors
  [🧪 test] keeps contact details as visible text
    ✅ success running without errors
  [🧪 test] uses one blank line between blocks
    ✅ success running without errors
  [🧪 test] an empty persona produces an empty file
    ✅ success running without errors
  [🧪 test] normalizes smart punctuation and emoji
    ✅ success running without errors
  [🧪 test] renders every configured section
    ✅ success running without errors
ℹ️ info - ran 1 tasks in: 0 seconds, 150624 microseconds

running unit tests from file: iter-vitae/renderer.scm, entrypoint: spec


ℹ️ info - shuffled with seed 83276691 (replay with VERITAS_SEED=83276691)
+----------------------------------------------+
[📑 suite] renderer
  [🧪 test] writes index.html and clears stale output
    ✅ success running without errors
  [🧪 test] renders one text resume per persona locale
    ✅ success running without errors
  [🧪 test] accepts resource paths containing spaces
    ✅ success running without errors
  [🧪 test] renders one directory per persona locale
    ✅ success running without errors
  [🧪 test] escapes persona text in the generated file
    ✅ success running without errors
  [🧪 test] never evaluates shell metacharacters in the destination
    ✅ success running without errors
  [🧪 test] embeds a local profile picture relative to the persona
    ✅ success running without errors
  [🧪 test] text output ignores profile pictures
    ✅ success running without errors
  [🧪 test] writes resume.txt in plain-text format
    ✅ success running without errors
  [🧪 test] all-locales falls back to the requested locale
    ✅ success running without errors
  [🧪 test] renders every theme to a PDF with the configured browser
    ✅ success running without errors
  [🧪 test] a missing persona file is reported as a failure
    ✅ success running without errors
  [🧪 test] plain-text mode ignores missing theme resources
    ✅ success running without errors
  [🧪 test] renders the persona with every theme
    ✅ success running without errors
  [🧪 test] rejects --all-themes with plain text before clearing output
    ✅ success running without errors
  [🧪 test] accepts destination names containing spaces
    ✅ success running without errors
  [🧪 test] an unknown output format fails without clearing the destination
    ✅ success running without errors
ℹ️ info - ran 1 tasks in: 6 seconds, 116184 microseconds

running unit tests from file: iter-vitae/html.scm, entrypoint: spec


ℹ️ info - shuffled with seed 83276691 (replay with VERITAS_SEED=83276691)
+----------------------------------------------+
[📑 suite] SXML serializer
  [🧪 test] elements and text
    ✅ got: <p>hello</p>
  [🧪 test] empty and false children are ignored
    ✅ got: <p></p>
  [🧪 test] *TOP* serializes its children
    ✅ got: <p>x</p>
  [🧪 test] numbers are serialized as text
    ✅ got: <p>42</p>
  [🧪 test] style and script bodies stay raw
    ✅ got: <style>a > b { color: red; }</style>
    ✅ got: <script>if (a < b) go();</script>
  [🧪 test] nested elements and nodelists
    ✅ got: <div><p>one</p><p>two</p></div>
  [🧪 test] the doctype remains raw while element text is escaped
    ✅ got: <!DOCTYPE html><html><body>a &amp; b</body></html>
  [🧪 test] an element without a body is self-closing
    ✅ got: <meta charset="UTF-8" />
  [🧪 test] attributes are escaped
    ✅ got: <a href="x?a=1&amp;b=2" title="say &quot;hi&quot;">link</a>
  [🧪 test] text is escaped
    ✅ got: <p>a &amp; b &lt; c &gt; d</p>
+----------------------------------------------+
[📑 suite] curriculum page
  [🧪 test] existing themes keep the documented inline HTML
    ✅ success running without errors
  [🧪 test] ef-cyprus renders the complete persona
    ✅ success running without errors
  [🧪 test] fundamental renders without external theme assets
    ✅ success running without errors
  [🧪 test] ats renders plain text with conventional headings
    ✅ success running without errors
  [🧪 test] fatum renders the same persona with its own theme
    ✅ success running without errors
+----------------------------------------------+
[📑 suite] persona options
  [🧪 test] the requested locale is used
    ✅ success running without errors
  [🧪 test] the all entry wins over the locale
    ✅ success running without errors
  [🧪 test] an unknown theme falls back to ef-cyprus
    ✅ success running without errors
  [🧪 test] without a job-title-link the title is not an anchor
    ✅ success running without errors
  [🧪 test] empty optional sections are omitted
    ✅ success running without errors
  [🧪 test] missing personal links produce no empty anchors
    ✅ success running without errors
  [🧪 test] missing resource files raise instead of silently rendering
    ✅ success catching error: system-error: (open-file ~A: ~S (No such file or directory /does/not/exist/css/iter-vitae.olive.min.css) (2))
ℹ️ info - ran 3 tasks in: 0 seconds, 172956 microseconds

running unit tests from file: iter-vitae/prelude.scm, entrypoint: spec


ℹ️ info - shuffled with seed 83276691 (replay with VERITAS_SEED=83276691)
+----------------------------------------------+
[📑 suite] locale-aware alist lookup
  [🧪 test] a missing translation becomes an empty string
    ✅ got: 
  [🧪 test] #f becomes an empty string
    ✅ got: 
  [🧪 test] the all entry wins over a locale entry
    ✅ got: Everywhere
  [🧪 test] the requested locale is used when all is absent
    ✅ got: English
  [🧪 test] an empty alist becomes an empty string
    ✅ got: 
+----------------------------------------------+
[📑 suite] persona accessors
  [🧪 test] contact details are read by key
    ✅ got: ada@example.org
    ✅ got: +31 6 1234 5678
  [🧪 test] missing contact details are #f
    ✅ got: #f
    ✅ got: #f
  [🧪 test] personal links are read by key
    ✅ got: blog.example.org
    ✅ got: https://codeberg.org/ada
  [🧪 test] missing and empty personal links are #f
    ✅ got: #f
    ✅ got: #f
    ✅ got: #f
+----------------------------------------------+
[📑 suite] filesystem helpers
  [🧪 test] deleting a missing path is a no-op
    ✅ success running without errors
  [🧪 test] make-directories creates nested paths
    ✅ got: #f
    ✅ got: #t
    ✅ got: directory
    ✅ success running without errors
  [🧪 test] delete-file-tree removes files and nested directories
    ✅ got: #t
    ✅ got: #f
    ✅ got: #f
+----------------------------------------------+
[📑 suite] resource loading
  [🧪 test] the asset library keys assets by their full path
    ✅ got: ef-test-marker
    ✅ got: fatum-test-marker
  [🧪 test] a missing stylesheet raises
    ✅ success catching error: system-error: (open-file ~A: ~S (No such file or directory /tmp/iter-vitae-test-Jg3ron/css/missing.css) (2))
  [🧪 test] stylesheets are read from the requested resources directory
    ✅ got: .ef-test-marker > span
    ✅ got: #f
    ✅ got: #t
+----------------------------------------------+
[📑 suite] URL helpers
  [🧪 test] an existing https scheme is preserved
    ✅ got: https://example.org
  [🧪 test] empty and non-string links are #f
    ✅ got: #f
    ✅ got: #f
    ✅ got: #f
    ✅ got: #f
  [🧪 test] bare hosts get an https scheme
    ✅ got: https://example.org
  [🧪 test] empty phone numbers are #f
    ✅ got: #f
    ✅ got: #f
  [🧪 test] an existing http scheme is preserved
    ✅ got: http://example.org
  [🧪 test] phone numbers become tel URLs
    ✅ got: tel:+31612345678
    ✅ got: tel:0031612345678
  [🧪 test] surrounding whitespace is removed
    ✅ got: https://example.org
+----------------------------------------------+
[📑 suite] date ranges
  [🧪 test] ordinary ranges and whitespace are preserved
    ✅ got: 2020 - now
  [🧪 test] the Scheme range separator becomes an en dash
    ✅ got: 2020 – now
    ✅ got: 2020 – now
  [🧪 test] empty and non-string dates become an empty string
    ✅ got: 
    ✅ got: 
    ✅ got: 
+----------------------------------------------+
[📑 suite] language levels
  [🧪 test] unknown levels and missing scales become #f
    ✅ got: #f
    ✅ got: #f
  [🧪 test] labels follow the requested document locale
    ✅ got: Native
    ✅ got: Moedertaal
+----------------------------------------------+
[📑 suite] logging
  [🧪 test] log-error prefixes the message
    ✅ got: 
[error] boom

  [🧪 test] log-info formats its arguments
    ✅ got: 
hello 42

  [🧪 test] log formats its arguments
    ✅ got: 
1 + 2 = 3

+----------------------------------------------+
[📑 suite] CSS class helpers
  [🧪 test] class names are sorted, de-duplicated and joined
    ✅ got: a b c
    ✅ got: flex gap-1
  [🧪 test] a single class name is unchanged
    ✅ got: hidden
  [🧪 test] #f becomes an empty string
    ✅ got: 
  [🧪 test] an empty class list becomes an empty string
    ✅ got: 
+----------------------------------------------+
[📑 suite] plain text
  [🧪 test] inline tags are stripped
    ✅ got: greenest moment of the day
  [🧪 test] plain text is left untouched
    ✅ got: C, Lisp & Scheme
  [🧪 test] entities are decoded exactly once
    ✅ got: &mdash;
  [🧪 test] common named entities are decoded
    ✅ got: a – b — c … “q” • 5° €
  [🧪 test] HTML entities are decoded
    ✅ got: Ada & Bob <CEO> "quoted" 'single'
  [🧪 test] comparisons are not mistaken for tags
    ✅ got: latency < 50 > budget
  [🧪 test] non-strings and empty strings become empty text
    ✅ got: 
    ✅ got: 
    ✅ got: 
+----------------------------------------------+
[📑 suite] profile pictures
  [🧪 test] relative paths use the persona directory
    ✅ got: data:image/svg+xml;base64,
  [🧪 test] missing files and unsupported formats fail loudly
    ✅ success catching error: misc-error: (#f Profile picture not found: ~S (/tmp/iter-vitae-test-SFnrvS/missing.png) #f)
    ✅ success catching error: misc-error: (#f Unsupported profile picture format; use PNG, JPEG, WebP, GIF, AVIF or SVG: ~S (/tmp/iter-vitae-test-SFnrvS/portrait.bmp) #f)
  [🧪 test] persona-profile-picture trims and validates the field
    ✅ got: https://example.org/me.png
    ✅ got: #f
  [🧪 test] unknown URI schemes are rejected
    ✅ success catching error: misc-error: (#f Profile picture must use http(s), data:image or a local path: ~S (ftp://example.org/portrait.png) #f)
  [🧪 test] empty and non-string values are ignored
    ✅ got: #f
    ✅ got: #f
    ✅ got: #f
  [🧪 test] a local image becomes a self-contained data URI
    ✅ got: data:image/png;base64,aGVsbG8=
  [🧪 test] remote URLs and data URIs pass through untouched
    ✅ got: https://example.org/portrait.png
    ✅ got: data:image/png;base64,abc
+----------------------------------------------+
[📑 suite] settings
  [🧪 test] a default setting is visible
    ✅ got: ef-cyprus
  [🧪 test] an unknown setting is #f instead of raising
    ✅ success running without errors
    ✅ got: #f
  [🧪 test] job-title-link has an empty default
    ✅ got: ()
  [🧪 test] the default language scale uses five standard levels
    ✅ got: Elementary
    ✅ got: Full professional
    ✅ got: Professional working
    ✅ got: Native or bilingual
ℹ️ info - ran 12 tasks in: 0 seconds, 132886 microseconds

running unit tests from file: iter-vitae/themes.scm, entrypoint: spec


ℹ️ info - shuffled with seed 83276691 (replay with VERITAS_SEED=83276691)
+----------------------------------------------+
[📑 suite] fatum theme
  [🧪 test] escapes persona text inside its own template
    ✅ success running without errors
  [🧪 test] renders every scheduled section
    ✅ success running without errors
  [🧪 test] renders all configured personal links
    ✅ success running without errors
  [🧪 test] supports a persona without optional sections
    ✅ success running without errors
  [🧪 test] prints without the screen card or split entries
    ✅ success running without errors
+----------------------------------------------+
[📑 suite] ats theme
  [🧪 test] renders contact details as selectable text
    ✅ success running without errors
  [🧪 test] keeps the document single-column and free of parser traps
    ✅ success running without errors
  [🧪 test] removes emoji and normalizes date separators
    ✅ success running without errors
  [🧪 test] strips inline HTML and escapes the remaining text
    ✅ success running without errors
  [🧪 test] omits sections the persona did not configure
    ✅ success running without errors
  [🧪 test] renders skills as a scan-friendly list
    ✅ success running without errors
  [🧪 test] has no decorative footer or attribution
    ✅ success running without errors
  [🧪 test] uses the conventional section headings ATS parsers expect
    ✅ success running without errors
  [🧪 test] localizes the standard headings
    ✅ success running without errors
+----------------------------------------------+
[📑 suite] ef-cyprus theme
  [🧪 test] renders every scheduled section
    ✅ success running without errors
  [🧪 test] omits sections the persona did not configure
    ✅ success running without errors
  [🧪 test] prints with the green accent and no split entries
    ✅ success running without errors
  [🧪 test] uses only configured footer links
    ✅ success running without errors
  [🧪 test] renders the complete contact block;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-P8O5Fz/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-P8O5Fz/persona.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-xs8cbL/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-xs8cbL/persona.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/iter-vitae-test-CD6o6H/persona.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/tmp/iter-vitae-test-CD6o6H/persona.scm.go

    ✅ success running without errors
+----------------------------------------------+
[📑 suite] fundamental theme
  [🧪 test] includes print rules
    ✅ success running without errors
  [🧪 test] keeps its inline styling
    ✅ success running without errors
  [🧪 test] renders no footer links when none are configured
    ✅ success running without errors
  [🧪 test] renders every scheduled section
    ✅ success running without errors
  [🧪 test] labels footer links instead of echoing the URL
    ✅ success running without errors
+----------------------------------------------+
[📑 suite] shared theme contract
  [🧪 test] face variables expand into utility classes
    ✅ success running without errors
  [🧪 test] every theme declares the document language
    ✅ success running without errors
  [🧪 test] every theme renders all address lines and languages
    ✅ success running without errors
  [🧪 test] every theme normalizes the job-title link
    ✅ success running without errors
ℹ️ info - ran 5 tasks in: 0 seconds, 815235 microseconds

running unit tests from file: iter-vitae/wizard.scm, entrypoint: spec


ℹ️ info - shuffled with seed 83276691 (replay with VERITAS_SEED=83276691)
+----------------------------------------------+
[📑 suite] persona wizard
  [🧪 test] does not overwrite an existing persona without consent
    ✅ success running without errors
  [🧪 test] writes a persona the renderer can load
    ✅ success running without errors
  [🧪 test] renders the sections that were answered
    ✅ success running without errors
  [🧪 test] does not write when the user declines at the summary
    ✅ success running without errors
  [🧪 test] asks for the languages when --locales is absent
    ✅ success running without errors
  [🧪 test] writes translated lists, jobs and language names
    ✅ success running without errors
  [🧪 test] accepts both numbers and names for the proficiency scale
    ✅ success running without errors
  [🧪 test] parses and validates locale lists
    ✅ success running without errors
  [🧪 test] writes translations and renders the selected locale
    ✅ success running without errors
ℹ️ info - ran 1 tasks in: 3 seconds, -131029 microseconds

finished running tests
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling ./test/veritas/unit/iter-vitae/main.scm
;;; compiling ./src/iter-vitae/prelude.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/iter-vitae/trunk/src/iter-vitae/prelude.scm.go
;;; compiling ./test/veritas/support.scm
;;; compiling ./src/iter-vitae/defaults.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/iter-vitae/trunk/src/iter-vitae/defaults.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/iter-vitae/trunk/test/veritas/support.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/iter-vitae/trunk/test/veritas/unit/iter-vitae/main.scm.go
;;; compiling ./test/veritas/unit/iter-vitae/text.scm
;;; compiling ./src/iter-vitae/text.scm
;;; compiling ./src/iter-vitae/theme/ats.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/iter-vitae/trunk/src/iter-vitae/theme/ats.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/iter-vitae/trunk/src/iter-vitae/text.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/iter-vitae/trunk/test/veritas/unit/iter-vitae/text.scm.go
;;; compiling ./test/veritas/unit/iter-vitae/renderer.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/iter-vitae/trunk/test/veritas/unit/iter-vitae/renderer.scm.go
;;; compiling ./test/veritas/unit/iter-vitae/html.scm
;;; compiling ./src/iter-vitae/html.scm
;;; compiling ./src/iter-vitae/theme/registry.scm
;;; compiling ./src/iter-vitae/theme/ef-cyprus.scm
;;; compiling ./src/iter-vitae/theme/ef-cyprus-faces.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/iter-vitae/trunk/src/iter-vitae/theme/ef-cyprus-faces.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/iter-vitae/trunk/src/iter-vitae/theme/ef-cyprus.scm.go
;;; compiling ./src/iter-vitae/theme/fatum.scm
;;; compiling ./src/iter-vitae/theme/fatum-faces.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/iter-vitae/trunk/src/iter-vitae/theme/fatum-faces.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/iter-vitae/trunk/src/iter-vitae/theme/fatum.scm.go
;;; compiling ./src/iter-vitae/theme/fundamental.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/iter-vitae/trunk/src/iter-vitae/theme/fundamental.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/iter-vitae/trunk/src/iter-vitae/theme/registry.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/iter-vitae/trunk/src/iter-vitae/html.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/iter-vitae/trunk/test/veritas/unit/iter-vitae/html.scm.go
;;; compiling ./test/veritas/unit/iter-vitae/prelude.scm
WARNING: (veritas unit iter-vitae prelude): imported module (iter-vitae prelude) overrides core binding `log'
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/iter-vitae/trunk/test/veritas/unit/iter-vitae/prelude.scm.go
WARNING: (veritas unit iter-vitae prelude): imported module (iter-vitae prelude) overrides core binding `log'
;;; compiling ./test/veritas/unit/iter-vitae/themes.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/iter-vitae/trunk/test/veritas/unit/iter-vitae/themes.scm.go
;;; compiling ./test/veritas/unit/iter-vitae/wizard.scm
;;; compiling ./src/iter-vitae/wizard.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/iter-vitae/trunk/src/iter-vitae/wizard.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/iter-vitae/trunk/test/veritas/unit/iter-vitae/wizard.scm.go


--------------------------------------------------------------

Maak 0.14.0: the infinitely extensible command runner

Loading tasks from Maak file: /etc/byggsteg/job-clone/iter-vitae/trunk/maak.scm

Executing Maak tasks: test


--------------------------------------------------------------

=> Running Maak task: test

  Run the Veritas unit test suite.

  Execute command:
env VERITAS_TEST_TYPE=unit VERITAS_RUN_BENCHMARKS=false guix shell -m manifest.scm -- guile --fresh-auto-compile -L ./src -L ./test -c '((@ (veritas runner) run-tests))'

Executing: env VERITAS_TEST_TYPE=unit VERITAS_RUN_BENCHMARKS=false guix shell -m manifest.scm -- guile --fresh-auto-compile -L ./src -L ./test -c '((@ (veritas runner) run-tests))'
deploysudo maak deploy succeeded152 lines · 23s
substitute: looking for substitutes on 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: looking for substitutes on 'https://ci.guix.gnu.org'... 100.0%
The following derivation will be built:
  /gnu/store/5pbyx0r89y8l4jva5bicr1khp5x18mdy-iter-vitae-dev.drv

building /gnu/store/5pbyx0r89y8l4jva5bicr1khp5x18mdy-iter-vitae-dev.drv...
100% ▕█████████████████████████████████████████████████████████████████████████▏The following derivation will be built:
  /gnu/store/yvrj3l1blnzy9h1g69l5w4hzgl1xcscs-profile.drv

building CA certificate bundle...
listing Emacs sub-directories...
building fonts directory...
building directory of Info manuals...
building profile with 1 package...
-------------------------------------------------
Starting Iter Vitae: guile -L /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0 --resources /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/resources --file ./populus/joe.scm --destination ./dist --locale en
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/main.scm
;;; compiling /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/defaults.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/defaults.scm.go
;;; compiling /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/prelude.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/prelude.scm.go
;;; compiling /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/renderer.scm
;;; compiling /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/html.scm
;;; compiling /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/theme/registry.scm
;;; compiling /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/theme/ats.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/theme/ats.scm.go
;;; compiling /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/theme/ef-cyprus.scm
;;; compiling /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/theme/ef-cyprus-faces.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/theme/ef-cyprus-faces.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/theme/ef-cyprus.scm.go
;;; compiling /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/theme/fatum.scm
;;; compiling /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/theme/fatum-faces.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/theme/fatum-faces.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/theme/fatum.scm.go
;;; compiling /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/theme/fundamental.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/theme/fundamental.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/theme/registry.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/html.scm.go
;;; compiling /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/pdf.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/pdf.scm.go
;;; compiling /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/text.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/text.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/renderer.scm.go
;;; compiling /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/wizard.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/wizard.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0/iter-vitae/main.scm.go

Iter Vitae: Generate an attractive, modern and customizable Curriculum Vitae/Resume

Start rendering curriculum with settings:

        locale: en

        file: /etc/byggsteg/job-clone/iter-vitae/trunk/populus/joe.scm

        resources: /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/resources

        destination: ./dist

        format: html

        all locales: no

        all themes: no

removing: ./dist

creating: ./dist

rendering fatum for en into ./dist

Completed rendering of Curriculum Vitae/Resume


--------------------------------------------------------------

Maak 0.14.0: the infinitely extensible command runner

Loading tasks from Maak file: /etc/byggsteg/job-clone/iter-vitae/trunk/maak.scm

Executing Maak tasks: deploy


--------------------------------------------------------------

=> Running Maak task: deploy

  Deploy Iter Vitae.

Executing: guix time-machine --channels=channels.scm -- shell -f guix.scm -- iter-vitae --file ./populus/joe.scm --destination ./dist --locale en
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/iter-vitae

Executing: guix time-machine --channels=channels.scm -- shell -m manifest.scm -- texi2any -v --html --css-ref=https://jointhefreeworld.org/static/css/jointhefreeworld.css ./doc/api/index.texi
renamed './index' -> './doc/api-dist'
removed '/srv/http/jointhefreeworld.org/joe-cv/index.html'
removed '/srv/http/jointhefreeworld.org/joe-cv/nl/index.html'
removed directory '/srv/http/jointhefreeworld.org/joe-cv/nl'
removed '/srv/http/jointhefreeworld.org/joe-cv/es/index.html'
removed directory '/srv/http/jointhefreeworld.org/joe-cv/es'
removed directory '/srv/http/jointhefreeworld.org/joe-cv'
renamed 'dist' -> '/srv/http/jointhefreeworld.org/joe-cv'
-------------------------------------------------
Starting Iter Vitae: guile -L /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0 --resources /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/resources --file ./populus/joe.scm --destination ./dist --locale nl

Iter Vitae: Generate an attractive, modern and customizable Curriculum Vitae/Resume

Start rendering curriculum with settings:

        locale: nl

        file: /etc/byggsteg/job-clone/iter-vitae/trunk/populus/joe.scm

        resources: /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/resources

        destination: ./dist

        format: html

        all locales: no

        all themes: no

removing: ./dist

creating: ./dist

rendering fatum for nl into ./dist

Completed rendering of Curriculum Vitae/Resume

Executing: guix time-machine --channels=channels.scm -- shell -f guix.scm -- iter-vitae --file ./populus/joe.scm --destination ./dist --locale nl
renamed 'dist' -> '/srv/http/jointhefreeworld.org/joe-cv/nl'
-------------------------------------------------
Starting Iter Vitae: guile -L /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/guile/site/3.0 --resources /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/resources --file ./populus/joe.scm --destination ./dist --locale es

Iter Vitae: Generate an attractive, modern and customizable Curriculum Vitae/Resume

Start rendering curriculum with settings:

        locale: es

        file: /etc/byggsteg/job-clone/iter-vitae/trunk/populus/joe.scm

        resources: /gnu/store/jsll7ljlcfxn0j45as9wywhpq41p7nm0-iter-vitae-dev/share/resources

        destination: ./dist

        format: html

        all locales: no

        all themes: no

removing: ./dist

creating: ./dist

rendering fatum for es into ./dist

Completed rendering of Curriculum Vitae/Resume

Executing: guix time-machine --channels=channels.scm -- shell -f guix.scm -- iter-vitae --file ./populus/joe.scm --destination ./dist --locale es
renamed 'dist' -> '/srv/http/jointhefreeworld.org/joe-cv/es'
removed '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/API.html'
removed '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005fdefaults.html'
removed '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005fhtml.html'
removed '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005fmain.html'
removed '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005fpdf.html'
removed '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005fprelude.html'
removed '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005frenderer.html'
removed '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005ftext.html'
removed '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005ftheme_005fats.html'
removed '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005ftheme_005fef_002dcyprus_002dfaces.html'
removed '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005ftheme_005fef_002dcyprus.html'
removed '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005ftheme_005ffatum_002dfaces.html'
removed '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005ftheme_005ffatum.html'
removed '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005ftheme_005ffundamental.html'
removed '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005ftheme_005fregistry.html'
removed '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005fwizard.html'
removed directory '/srv/http/jointhefreeworld.org/api-docs/iter-vitae'
mkdir: created directory '/srv/http/jointhefreeworld.org/api-docs/iter-vitae'
renamed 'doc/api-dist/API.html' -> '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/API.html'
renamed 'doc/api-dist/iter_002dvitae_005fdefaults.html' -> '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005fdefaults.html'
renamed 'doc/api-dist/iter_002dvitae_005fhtml.html' -> '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005fhtml.html'
renamed 'doc/api-dist/iter_002dvitae_005fmain.html' -> '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005fmain.html'
renamed 'doc/api-dist/iter_002dvitae_005fpdf.html' -> '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005fpdf.html'
renamed 'doc/api-dist/iter_002dvitae_005fprelude.html' -> '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005fprelude.html'
renamed 'doc/api-dist/iter_002dvitae_005frenderer.html' -> '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005frenderer.html'
renamed 'doc/api-dist/iter_002dvitae_005ftext.html' -> '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005ftext.html'
renamed 'doc/api-dist/iter_002dvitae_005ftheme_005fats.html' -> '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005ftheme_005fats.html'
renamed 'doc/api-dist/iter_002dvitae_005ftheme_005fef_002dcyprus_002dfaces.html' -> '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005ftheme_005fef_002dcyprus_002dfaces.html'
renamed 'doc/api-dist/iter_002dvitae_005ftheme_005fef_002dcyprus.html' -> '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005ftheme_005fef_002dcyprus.html'
renamed 'doc/api-dist/iter_002dvitae_005ftheme_005ffatum_002dfaces.html' -> '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005ftheme_005ffatum_002dfaces.html'
renamed 'doc/api-dist/iter_002dvitae_005ftheme_005ffatum.html' -> '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005ftheme_005ffatum.html'
renamed 'doc/api-dist/iter_002dvitae_005ftheme_005ffundamental.html' -> '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005ftheme_005ffundamental.html'
renamed 'doc/api-dist/iter_002dvitae_005ftheme_005fregistry.html' -> '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005ftheme_005fregistry.html'
renamed 'doc/api-dist/iter_002dvitae_005fwizard.html' -> '/srv/http/jointhefreeworld.org/api-docs/iter-vitae/iter_002dvitae_005fwizard.html'

Executing: mv -v doc/api-dist/* /srv/http/jointhefreeworld.org/api-docs/iter-vitae
removed 'doc/api/index.texi'
removed directory 'doc/api'
removed directory 'doc/api-dist'
removed directory 'doc'
inspect the job's lambda expression
(lambda()
  `((task . ("maak-test" "maak-deploy"))
    (project . "iter-vitae")
    (branch-name . "trunk")
    (clone-url . "https://github.com/jjba23/iter-vitae.git")))