starting new job...
→ running command: dir='/etc/byggsteg/job-clone//heks-emacs/trunk'
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 bf60bbb to 9d9585a
→ running command: cd /etc/byggsteg/job-clone/heks-emacs/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/heks-emacs/trunk && git log --name-status HEAD^..HEAD
commit 9d9585ac299b1d46990e58f5c10a4dee9820e87d
Author: Josep Bigorra <jjbigorra@gmail.com>
Date: Tue Nov 3 09:33:11 2026 +0100
feat: Improve GitHub facilities
M src/modules/github-repo.el
M src/modules/theme.el
→ running command: cd /etc/byggsteg/job-clone/heks-emacs/trunk && maak test
--------------------------------------------------------------
Maak 0.14.0: the infinitely extensible command runner
Loading tasks from Maak file: /etc/byggsteg/job-clone/heks-emacs/trunk/maak.scm
Executing Maak tasks: test
--------------------------------------------------------------
=> Running Maak task: test
Run the configuration's own test suite.
The other checks read this configuration and judge what it says; this one
loads the modules and calls the code, which is the only way to find out
that a function does what its docstring says. It needs nothing installed:
the modules are loaded from `src' by name, with `use-package' stubbed out.
Running 239 tests (2026-11-03 09:33:34+0100, selector ‘t’)
passed 1/239 heks/ai/a-chat-that-is-asked-for-is-not-quiet (0.000068 sec)
passed 2/239 heks/ai/a-name-it-does-not-know-is-not-obeyed (0.000087 sec)
passed 3/239 heks/ai/a-prepared-chat-is-made-without-a-window (0.000057 sec)
passed 4/239 heks/ai/a-session-that-is-already-there-is-not-started-again (0.034273 sec)
passed 5/239 heks/ai/a-start-that-fails-is-reported-and-is-not-quiet (0.001235 sec)
passed 6/239 heks/ai/a-start-that-is-not-asked-for-is-not-started (0.000042 sec)
passed 7/239 heks/ai/an-encrypted-key-file-is-decrypted-with-gpg (0.000916 sec)
passed 8/239 heks/ai/copilot-is-what-is-left-without-a-key (0.000067 sec)
passed 9/239 heks/ai/eca-is-prepared-once (0.000040 sec)
passed 10/239 heks/ai/eca-names-the-account-its-own-way (0.000027 sec)
passed 11/239 heks/ai/giving-up-cancels-the-timer (0.000039 sec)
passed 12/239 heks/ai/nothing-is-said-while-preparing (0.000034 sec)
passed 13/239 heks/ai/starting-inside-a-project-needs-no-file-visited (0.000040 sec)
AI: deepseek (some-deepseek-model)
passed 14/239 heks/ai/switching-points-both-tools-at-the-same-account (0.000057 sec)
passed 15/239 heks/ai/the-chat-the-reader-asks-for-shows-itself (0.000035 sec)
passed 16/239 heks/ai/the-daemon-waits-for-the-first-project-file (0.000025 sec)
passed 17/239 heks/ai/the-environment-can-name-one-outright (0.000039 sec)
passed 18/239 heks/ai/the-key-file-is-read-when-the-environment-has-none (0.000958 sec)
passed 19/239 heks/ai/the-key-file-is-what-makes-it-the-personal-machine (0.000169 sec)
passed 20/239 heks/ai/the-key-in-the-environment-is-the-personal-account (0.000040 sec)
passed 21/239 heks/ai/the-setting-does-not-need-the-environment (0.000035 sec)
passed 22/239 heks/ai/the-watch-for-a-project-removes-itself (0.000061 sec)
passed 23/239 heks/ai/there-is-nothing-to-prepare-outside-a-project (0.000034 sec)
Bookmarked under Dev
Bookmarked under Music / Guitar
Already bookmarked, under Dev
passed 24/239 heks/bookmarks/a-bookmark-is-filed-under-its-category-and-only-once (0.295674 sec)
passed 25/239 heks/bookmarks/the-links-under-a-heading-are-its-bookmarks (0.000441 sec)
passed 26/239 heks/contacts/a-birthday-is-read-with-or-without-its-year (0.000066 sec)
Added Ada
passed 27/239 heks/contacts/a-contact-is-added-with-only-the-details-given (0.011378 sec)
passed 28/239 heks/contacts/the-agenda-is-told-whose-birthday-it-is (0.001088 sec)
passed 29/239 heks/dev-folding/a-folded-block-shows-only-its-marker (0.000054 sec)
passed 30/239 heks/dev-folding/a-line-is-as-tall-as-its-font-and-spacing (0.000041 sec)
passed 31/239 heks/dev-folding/a-marker-is-cut-to-the-height-of-a-line (0.000056 sec)
passed 32/239 heks/dev-folding/an-indicator-is-faded-toward-the-background (0.000048 sec)
passed 33/239 heks/dev-folding/every-engine-gets-the-quiet-colour (0.000064 sec)
passed 34/239 heks/dev-folding/every-line-of-a-block-is-drawn-by-its-own-bitmap (0.000090 sec)
passed 35/239 heks/dev-folding/no-fade-leaves-the-markers-alone (0.000021 sec)
passed 36/239 heks/dev-folding/the-guide-is-given-back-five-points (0.000018 sec)
passed 37/239 heks/dev-folding/the-guide-is-one-row-repeated (0.000031 sec)
passed 38/239 heks/dev-folding/the-guide-of-a-block-ends-where-the-block-does (0.000076 sec)
passed 39/239 heks/dev-folding/the-marker-of-an-open-block-ends-in-its-guide (0.000061 sec)
Marking matching files...
2 matching files marked
Copied contents of 2 files to clipboard.
passed 40/239 heks/dired/the-contents-of-the-marked-files-are-copied (0.009995 sec)
passed 41/239 heks/duplicates/a-block-copied-inside-one-file-is-hidden-until-asked-for (0.004714 sec)
passed 42/239 heks/duplicates/a-block-in-two-files-is-one-cluster (0.004013 sec)
passed 43/239 heks/duplicates/a-block-written-once-is-not-a-cluster (0.003718 sec)
passed 44/239 heks/duplicates/a-comment-is-not-code-and-is-not-compared (0.038487 sec)
passed 45/239 heks/duplicates/a-short-block-is-an-idiom-and-not-reported (0.003190 sec)
passed 46/239 heks/duplicates/an-empty-report-says-so (0.000054 sec)
passed 47/239 heks/duplicates/indentation-is-not-a-difference (0.003481 sec)
passed 48/239 heks/duplicates/the-report-has-a-mode-and-keys (0.000110 sec)
passed 49/239 heks/duplicates/the-report-says-where-and-how-much (0.000145 sec)
That is the last cluster
passed 50/239 heks/duplicates/the-report-walks-its-clusters (0.000223 sec)
passed 51/239 heks/duplicates/the-scan-reads-what-is-code (0.002977 sec)
passed 52/239 heks/flymake/a-buffer-no-server-manages-keeps-what-it-has (0.015707 sec)
passed 53/239 heks/flymake/a-server-does-not-take-the-checkers-of-a-buffer (0.000058 sec)
passed 54/239 heks/format/a-language-of-its-own-answers-first (0.000044 sec)
passed 55/239 heks/format/a-predicate-that-does-not-hold-is-passed-over (0.000045 sec)
passed 56/239 heks/github-repo/a-false-setting-is-sent-as-false (0.000087 sec)
passed 57/239 heks/github-repo/a-remote-url-names-its-repository (0.000053 sec)
passed 58/239 heks/github-repo/normalize-ignores-the-capture-not-the-settings (0.000736 sec)
passed 59/239 heks/github-repo/the-most-specific-spec-wins (0.000028 sec)
passed 60/239 heks/github-repo/the-whole-spec-encodes (0.000155 sec)
heks/github-repo: dropping unsupported pull_request parameter: require_extra_approval_for_unattributed_changes
heks/github-repo: dropping unsupported rule: copilot_code_review
heks/github-repo: dropping unsupported rule: code_scanning
heks/github-repo: dropping unsupported rule: code_quality
passed 61/239 heks/github-repo/what-a-repository-cannot-take-is-dropped-last (0.000221 sec)
passed 62/239 heks/graph/notes-and-topics-are-nodes-and-links-and-folders-are-edges (0.002965 sec)
passed 63/239 heks/graph/the-page-carries-its-data-and-cannot-close-its-script (0.001676 sec)
passed 64/239 heks/hover/a-pointer-that-has-not-moved-is-not-asked-about-again (0.000079 sec)
passed 65/239 heks/hover/a-source-with-nothing-to-say-calls-back-nobody (0.716605 sec)
passed 66/239 heks/hover/the-fast-answer-is-not-held-behind-the-slow-one (0.903211 sec)
passed 67/239 heks/import/a-block-that-says-it-is-not-a-heading-is-not-shifted (0.000562 sec)
Org copied to the kill ring
passed 68/239 heks/import/a-buffer-that-cannot-be-written-to-is-copied-from (0.000268 sec)
passed 69/239 heks/import/a-bullet-is-never-written-as-a-headline (0.000367 sec)
passed 70/239 heks/import/a-checked-box-is-the-box-org-reads (0.002720 sec)
passed 71/239 heks/import/a-document-is-what-its-name-says-it-is (0.000085 sec)
passed 72/239 heks/import/a-file-is-imported-next-to-the-source (0.009545 sec)
passed 73/239 heks/import/a-fragment-keeps-its-headings-where-they-are (0.000610 sec)
passed 74/239 heks/import/a-fragment-says-things-the-way-a-note-does (0.000890 sec)
passed 75/239 heks/import/a-link-in-a-document-becomes-the-file-it-names (0.000597 sec)
Finding ID locations (1/2 files): /tmp/heks-ert-notes-uSqN4n/note.org
2 files scanned, 1 files contains IDs, and 1 IDs found.
Finding ID locations (1/2 files): /tmp/heks-ert-notes-uSqN4n/note.org
2 files scanned, 1 files contains IDs, and 1 IDs found.
passed 76/239 heks/import/a-note-imported-into-the-notes-is-a-node (0.013435 sec)
passed 77/239 heks/import/a-note-somebody-wrote-is-not-written-over-unasked (0.003330 sec)
Org copied to the kill ring
passed 78/239 heks/import/a-prefix-argument-copies-and-leaves-the-buffer-alone (0.000332 sec)
passed 79/239 heks/import/a-region-without-a-final-newline-gets-none (0.000266 sec)
passed 80/239 heks/import/a-table-becomes-a-table-org-can-align (0.000615 sec)
passed 81/239 heks/import/a-title-can-be-left-as-a-heading (0.000400 sec)
passed 82/239 heks/import/an-identifier-is-a-uuid (0.000136 sec)
passed 83/239 heks/import/emphasis-links-and-images-become-org-markup (0.000759 sec)
passed 84/239 heks/import/front-matter-is-what-the-note-says-about-itself (0.001566 sec)
passed 85/239 heks/import/nothing-is-shifted-when-there-is-no-title (0.000296 sec)
passed 86/239 heks/import/the-blank-lines-a-document-has-separate-its-blocks (0.000238 sec)
passed 87/239 heks/import/the-heading-a-document-names-itself-with-is-its-title (0.000071 sec)
passed 88/239 heks/import/the-hierarchy-of-a-document-is-the-hierarchy-of-a-note (0.000377 sec)
Imported 2 of 2 Markdown files as Org
passed 89/239 heks/import/the-project-import-asks-once-and-imports-the-markdown (0.004664 sec)
passed 90/239 heks/import/the-region-is-replaced-by-what-it-says-in-org (0.000362 sec)
passed 91/239 heks/jvm/a-directory-that-is-no-project-says-so (0.001055 sec)
passed 92/239 heks/jvm/a-goal-nobody-defined-is-refused (0.000198 sec)
passed 93/239 heks/jvm/a-wrapper-is-preferred-to-a-system-program (0.000997 sec)
passed 94/239 heks/jvm/the-build-file-is-found-above-the-buffer (0.001445 sec)
passed 95/239 heks/jvm/the-project-is-the-nearest-one (0.000846 sec)
passed 96/239 heks/jvm/the-same-goal-has-a-name-in-each-build-tool (0.000049 sec)
passed 97/239 heks/jvm/what-is-offered-is-what-the-table-says (0.000048 sec)
passed 98/239 heks/keys/a-description-is-found-for-what-the-tables-hold (0.000060 sec)
passed 99/239 heks/keys/a-topic-letters-are-letters (0.000392 sec)
passed 100/239 heks/keys/every-key-is-described-once (0.001015 sec)
passed 101/239 heks/keys/every-topic-letter-is-a-key-and-means-one-thing (0.000300 sec)
passed 102/239 heks/keys/the-action-alphabet-has-no-duplicates (0.000112 sec)
passed 103/239 heks/markdown/a-backtick-line-with-backticks-after-is-inline-code (0.000116 sec)
passed 104/239 heks/markdown/a-longer-fence-holds-a-shorter-one (0.000111 sec)
passed 105/239 heks/markdown/a-tilde-fence-is-not-closed-by-backticks (0.000085 sec)
passed 106/239 heks/markdown/an-indented-fence-works (0.000068 sec)
passed 107/239 heks/markdown/an-unclosed-fence-hides-nothing-after-it (0.000064 sec)
passed 108/239 heks/markdown/blocks-get-a-label-and-a-body-face (0.000070 sec)
passed 109/239 heks/markdown/code-blocks-keep-their-characters (0.000088 sec)
passed 110/239 heks/markdown/huge-buffers-are-left-alone (0.000027 sec)
passed 111/239 heks/markdown/inline-delimiters-are-hidden (0.000072 sec)
passed 112/239 heks/markdown/intraword-underscores-are-not-emphasis (0.000064 sec)
passed 113/239 heks/markdown/markup-shows-while-point-is-in-it (0.000108 sec)
passed 114/239 heks/markdown/rehiding-is-idempotent-and-refreshes (0.000060 sec)
passed 115/239 heks/markdown/removing-a-fence-removes-its-look (0.000082 sec)
passed 116/239 heks/markdown/the-readme-style-document-has-balanced-hiding (0.000143 sec)
passed 117/239 heks/markdown/tilde-fences-are-fences (0.000082 sec)
passed 118/239 heks/markdown/two-blocks-are-paired-correctly (0.000079 sec)
passed 119/239 heks/notes/a-directory-nobody-set-is-not-a-directory (0.000023 sec)
passed 120/239 heks/notes/a-directory-that-is-set-is-answered-expanded (0.001330 sec)
passed 121/239 heks/notes/a-note-that-was-created-here-is-offered-at-once (0.001042 sec)
passed 122/239 heks/notes/a-title-changed-on-disk-is-read-again (0.000773 sec)
passed 123/239 heks/notes/an-annotation-says-what-the-note-is (0.001141 sec)
Indexes: 3 written
passed 124/239 heks/notes/an-index-lists-what-is-in-its-folder (0.005399 sec)
Indexes: 1 written
passed 125/239 heks/notes/an-index-written-by-hand-is-left-alone (0.001959 sec)
passed 126/239 heks/notes/moving-a-note-repairs-the-links-to-it-and-in-it (0.000235 sec)
Indexes: 2 written
passed 127/239 heks/notes/regenerating-an-index-changes-nothing-and-keeps-its-description (0.002373 sec)
passed 128/239 heks/notes/the-archive-is-in-no-prompt (0.001305 sec)
passed 129/239 heks/notes/what-is-remembered-is-remembered-for-one-directory (0.001091 sec)
passed 130/239 heks/openapi/a-schema-says-what-a-value-of-it-looks-like (0.000390 sec)
passed 131/239 heks/present/a-buffer-that-is-not-a-document-has-no-slides (0.000062 sec)
passed 132/239 heks/present/a-deck-carries-its-own-stylesheet-and-script (0.001424 sec)
passed 133/239 heks/present/a-deck-of-an-org-note-is-made-too (0.045590 sec)
passed 134/239 heks/present/a-deck-prints-one-slide-per-page (0.001528 sec)
passed 135/239 heks/present/a-slide-boundary-is-inserted-in-the-documents-own-way (0.001329 sec)
passed 136/239 heks/present/an-empty-document-has-no-slides (0.000854 sec)
passed 137/239 heks/present/deck-is-one-section-per-slide (0.001729 sec)
passed 138/239 heks/present/deck-walks-its-slides-with-the-keyboard (0.001560 sec)
passed 139/239 heks/present/markdown-divides-on-a-line-of-dashes (0.000896 sec)
passed 140/239 heks/present/markdown-without-a-break-is-one-slide (0.000875 sec)
passed 141/239 heks/present/org-divides-on-its-own-headings (0.000347 sec)
passed 142/239 heks/present/org-slides-are-the-level-that-repeats (0.000330 sec)
Wrote /tmp/heks-ert-1ozDWW.deck.html
passed 143/239 heks/present/the-deck-of-a-file-is-written-beside-it (0.002428 sec)
Markdown preview: /tmp/heks-preview-waVzXz.html
passed 144/239 heks/preview/rendering-it-again-shows-what-the-buffer-says-now (0.004326 sec)
Markdown preview: /tmp/heks-preview-2egT8z.html
passed 145/239 heks/preview/the-document-is-shown-in-a-buffer-that-survives (0.002103 sec)
passed 146/239 heks/render/a-buffer-with-no-heading-has-no-section-to-follow (0.000066 sec)
passed 147/239 heks/render/a-callout-is-a-quote-that-says-what-it-is (0.000375 sec)
passed 148/239 heks/render/a-fence-says-what-language-it-is (0.000326 sec)
passed 149/239 heks/render/a-footnote-is-answered-at-the-end (0.000356 sec)
passed 150/239 heks/render/a-formula-is-readable-without-a-network (0.000807 sec)
passed 151/239 heks/render/a-heading-that-has-an-id-keeps-it (0.000052 sec)
passed 152/239 heks/render/a-highlighted-phrase-is-marked (0.000150 sec)
passed 153/239 heks/render/a-label-this-document-does-not-define-is-left-alone (0.000237 sec)
passed 154/239 heks/render/a-language-without-a-mode-is-left-as-text (0.000050 sec)
passed 155/239 heks/render/a-note-asks-for-colours-htmlize-can-give-it (0.000823 sec)
passed 156/239 heks/render/a-note-gets-one-contents-list-and-it-is-this-modules (0.007474 sec)
passed 157/239 heks/render/a-reference-link-is-the-link-it-names (0.000234 sec)
passed 158/239 heks/render/an-emoji-is-written-as-its-shortcode (0.000168 sec)
passed 159/239 heks/render/an-org-note-is-exported-by-org-itself (0.006158 sec)
passed 160/239 heks/render/anchors-are-ids-a-link-can-use (0.000119 sec)
passed 161/239 heks/render/code-is-fontified-with-its-modes-faces (0.000248 sec)
passed 162/239 heks/render/contents-are-in-the-document (0.000347 sec)
passed 163/239 heks/render/contents-are-listed-when-there-are-enough (0.000118 sec)
passed 164/239 heks/render/contents-do-not-list-the-title (0.000080 sec)
passed 165/239 heks/render/contents-stop-one-level-under-the-shallowest (0.000030 sec)
passed 166/239 heks/render/escaped-markup-is-text-and-not-markup (0.000378 sec)
passed 167/239 heks/render/every-link-in-a-notes-contents-list-reaches-a-heading (0.005024 sec)
passed 168/239 heks/render/fontified-code-is-still-escaped (0.000201 sec)
passed 169/239 heks/render/footnotes-are-numbered-in-the-order-they-are-read (0.000353 sec)
passed 170/239 heks/render/headings-get-ids-in-the-order-they-appear (0.000079 sec)
passed 171/239 heks/render/the-contents-list-reaches-the-operations-it-names (0.000251 sec)
passed 172/239 heks/render/the-language-of-a-fence-finds-its-mode (0.000055 sec)
passed 173/239 heks/render/the-palette-has-the-colours-a-page-needs (0.000032 sec)
passed 174/239 heks/render/the-section-point-is-in-is-the-one-a-preview-follows (0.000344 sec)
passed 175/239 heks/render/the-stylesheet-colours-the-faces-that-have-colours (0.000055 sec)
passed 176/239 heks/render/two-headings-with-one-name-get-two-ids (0.000071 sec)
passed 177/239 heks/scheme/a-definition-is-the-head-and-not-a-mention (0.000109 sec)
passed 178/239 heks/scheme/a-head-says-which-name-it-defines (0.000048 sec)
passed 179/239 heks/scheme/a-mention-is-a-name-of-its-own (0.000077 sec)
passed 180/239 heks/scheme/a-name-the-repl-knows-asks-it-where-it-is-when-jumped-to (0.005549 sec)
passed 181/239 heks/scheme/a-repl-that-will-not-come-up-is-said-so (0.001455 sec)
passed 182/239 heks/scheme/an-evaluation-brings-up-the-repl-it-needs (0.000059 sec)
passed 183/239 heks/scheme/apropos-is-answered-by-both-sources-once-each (0.000108 sec)
passed 184/239 heks/scheme/no-repl-is-a-question-the-repl-answers-with-nil (0.000043 sec)
passed 185/239 heks/scheme/the-backend-answers-for-a-scheme-buffer-alone (0.000378 sec)
passed 186/239 heks/scheme/the-column-is-where-the-name-is-defined (0.000035 sec)
passed 187/239 heks/scheme/the-files-answer-with-the-definitions (0.029464 sec)
passed 188/239 heks/scheme/the-files-answer-with-the-definitions-that-match (0.019895 sec)
passed 189/239 heks/scheme/the-names-are-read-once-and-remembered (0.000171 sec)
passed 190/239 heks/scheme/the-names-the-files-define-are-what-is-asked-for (0.007186 sec)
passed 191/239 heks/scheme/the-places-a-name-is-used-are-found-in-the-files (0.008892 sec)
passed 192/239 heks/scheme/the-repl-answers-with-the-names-it-has-loaded (0.000121 sec)
passed 193/239 heks/scheme/the-repl-is-asked-before-the-files (0.000084 sec)
passed 194/239 heks/scheme/the-repl-says-a-line-and-the-column-is-read (0.000497 sec)
passed 195/239 heks/scheme/the-repls-false-is-no-answer-at-all (0.000101 sec)
passed 196/239 heks/shell/a-copy-keeps-the-extension-of-the-file (0.000048 sec)
Setting up indent for shell type sh
Indentation variables are now local.
Indentation setup for shell type sh
passed 197/239 heks/shell/both-of-the-modes-of-a-script-are-shell-buffers (0.000237 sec)
passed 198/239 heks/shell/shellcheck-is-told-to-follow-the-sources-of-a-script (0.000058 sec)
passed 199/239 heks/shell/shfmt-arguments-come-before-the-file (0.000179 sec)
skipped 200/239 heks/sift/a-buffer-is-set-up-with-the-mode-and-both-reports (0.002439 sec)
skipped 201/239 heks/sift/a-file-that-does-not-parse-is-said-so (0.000438 sec)
skipped 202/239 heks/sift/a-fix-changes-the-rule-it-was-asked-for (0.000396 sec)
skipped 203/239 heks/sift/a-server-that-is-sift-is-recognised (0.000474 sec)
passed 204/239 heks/sift/eglot-is-told-that-sift-serves-the-lisps (0.000049 sec)
skipped 205/239 heks/sift/emacs-lisp-is-checked-and-not-formatted (0.000601 sec)
skipped 206/239 heks/sift/formatting-replaces-the-buffer-and-nothing-else (0.000544 sec)
skipped 207/239 heks/sift/the-copy-the-formatter-sees-is-named-for-its-dialect (0.000541 sec)
skipped 208/239 heks/sift/the-dialect-is-read-from-the-major-mode (0.000738 sec)
skipped 209/239 heks/sift/the-drift-backend-reports-the-lines-that-would-change (0.000443 sec)
skipped 210/239 heks/sift/the-keys-are-the-scheme-s-own (0.000419 sec)
skipped 211/239 heks/sift/the-lint-backend-reports-what-the-program-found (0.000403 sec)
skipped 212/239 heks/sift/the-mode-s-keys-answer-in-every-lisp (0.000419 sec)
skipped 213/239 heks/sift/the-server-takes-over-what-the-backend-was-reporting (0.000476 sec)
skipped 214/239 heks/terraform/the-commands-say-so-when-there-is-no-terraform (0.000060 sec)
passed 215/239 heks/terraform/the-configuration-is-the-directory-of-the-file (0.008046 sec)
the kotlin grammar did not build on attempt 1 (no library could be loaded); trying once more
the kotlin grammar could not be built: it was built, but no library can be loaded
the scala grammar did not build on attempt 1 (no library could be loaded); trying once more
the scala grammar could not be built: it was built, but no library can be loaded
the nix grammar did not build on attempt 1 (no library could be loaded); trying once more
the nix grammar could not be built: it was built, but no library can be loaded
the bash grammar did not build on attempt 1 (no library could be loaded); trying once more
the bash grammar could not be built: it was built, but no library can be loaded
the yaml grammar did not build on attempt 1 (no library could be loaded); trying once more
the yaml grammar could not be built: it was built, but no library can be loaded
the javascript grammar did not build on attempt 1 (no library could be loaded); trying once more
the javascript grammar could not be built: it was built, but no library can be loaded
the jsdoc grammar did not build on attempt 1 (no library could be loaded); trying once more
the jsdoc grammar could not be built: it was built, but no library can be loaded
the typescript grammar did not build on attempt 1 (no library could be loaded); trying once more
the typescript grammar could not be built: it was built, but no library can be loaded
the tsx grammar did not build on attempt 1 (no library could be loaded); trying once more
the tsx grammar could not be built: it was built, but no library can be loaded
the toml grammar did not build on attempt 1 (no library could be loaded); trying once more
the toml grammar could not be built: it was built, but no library can be loaded
the rust grammar did not build on attempt 1 (no library could be loaded); trying once more
the rust grammar could not be built: it was built, but no library can be loaded
the ruby grammar did not build on attempt 1 (no library could be loaded); trying once more
the ruby grammar could not be built: it was built, but no library can be loaded
the python grammar did not build on attempt 1 (no library could be loaded); trying once more
the python grammar could not be built: it was built, but no library can be loaded
the html grammar did not build on attempt 1 (no library could be loaded); trying once more
the html grammar could not be built: it was built, but no library can be loaded
the css grammar did not build on attempt 1 (no library could be loaded); trying once more
the css grammar could not be built: it was built, but no library can be loaded
the php grammar did not build on attempt 1 (no library could be loaded); trying once more
the php grammar could not be built: it was built, but no library can be loaded
the phpdoc grammar did not build on attempt 1 (no library could be loaded); trying once more
the phpdoc grammar could not be built: it was built, but no library can be loaded
the lua grammar did not build on attempt 1 (no library could be loaded); trying once more
the lua grammar could not be built: it was built, but no library can be loaded
the json grammar did not build on attempt 1 (no library could be loaded); trying once more
the json grammar could not be built: it was built, but no library can be loaded
the java grammar did not build on attempt 1 (no library could be loaded); trying once more
the java grammar could not be built: it was built, but no library can be loaded
the doxygen grammar did not build on attempt 1 (no library could be loaded); trying once more
the doxygen grammar could not be built: it was built, but no library can be loaded
the heex grammar did not build on attempt 1 (no library could be loaded); trying once more
the heex grammar could not be built: it was built, but no library can be loaded
the elixir grammar did not build on attempt 1 (no library could be loaded); trying once more
the elixir grammar could not be built: it was built, but no library can be loaded
the go grammar did not build on attempt 1 (no library could be loaded); trying once more
the go grammar could not be built: it was built, but no library can be loaded
the gomod grammar did not build on attempt 1 (no library could be loaded); trying once more
the gomod grammar could not be built: it was built, but no library can be loaded
the gowork grammar did not build on attempt 1 (no library could be loaded); trying once more
the gowork grammar could not be built: it was built, but no library can be loaded
the dockerfile grammar did not build on attempt 1 (no library could be loaded); trying once more
the dockerfile grammar could not be built: it was built, but no library can be loaded
the c-sharp grammar did not build on attempt 1 (no library could be loaded); trying once more
the c-sharp grammar could not be built: it was built, but no library can be loaded
the cmake grammar did not build on attempt 1 (no library could be loaded); trying once more
the cmake grammar could not be built: it was built, but no library can be loaded
the c grammar did not build on attempt 1 (no library could be loaded); trying once more
the c grammar could not be built: it was built, but no library can be loaded
the cpp grammar did not build on attempt 1 (no library could be loaded); trying once more
the cpp grammar could not be built: it was built, but no library can be loaded
heks-emacs: 0 tree-sitter grammars built, not built: kotlin, scala, nix, bash, yaml, javascript, jsdoc, typescript, tsx, toml, rust, ruby, python, html, css, php, phpdoc, lua, json, java, doxygen, heex, elixir, go, gomod, gowork, dockerfile, c-sharp, cmake, c, cpp
passed 216/239 heks/treesit/a-build-that-produces-nothing-is-not-a-grammar (0.103808 sec)
the kotlin grammar did not build on attempt 1 (the clone timed out); trying once more
the kotlin grammar was built on attempt 2
heks-emacs: 1 tree-sitter grammar built
passed 217/239 heks/treesit/a-grammar-that-fails-once-is-built-on-the-second-try (0.085231 sec)
the kotlin grammar did not build on attempt 1 (no library could be loaded); trying once more
the kotlin grammar could not be built: it was built, but no library can be loaded
the scala grammar did not build on attempt 1 (no library could be loaded); trying once more
the scala grammar could not be built: it was built, but no library can be loaded
the nix grammar did not build on attempt 1 (no library could be loaded); trying once more
the nix grammar could not be built: it was built, but no library can be loaded
the bash grammar did not build on attempt 1 (no library could be loaded); trying once more
the bash grammar could not be built: it was built, but no library can be loaded
the yaml grammar did not build on attempt 1 (no library could be loaded); trying once more
the yaml grammar could not be built: it was built, but no library can be loaded
the javascript grammar did not build on attempt 1 (no library could be loaded); trying once more
the javascript grammar could not be built: it was built, but no library can be loaded
the jsdoc grammar did not build on attempt 1 (no library could be loaded); trying once more
the jsdoc grammar could not be built: it was built, but no library can be loaded
the typescript grammar did not build on attempt 1 (no library could be loaded); trying once more
the typescript grammar could not be built: it was built, but no library can be loaded
the tsx grammar did not build on attempt 1 (no library could be loaded); trying once more
the tsx grammar could not be built: it was built, but no library can be loaded
the toml grammar did not build on attempt 1 (no library could be loaded); trying once more
the toml grammar could not be built: it was built, but no library can be loaded
the rust grammar did not build on attempt 1 (no library could be loaded); trying once more
the rust grammar could not be built: it was built, but no library can be loaded
the ruby grammar did not build on attempt 1 (no library could be loaded); trying once more
the ruby grammar could not be built: it was built, but no library can be loaded
the python grammar did not build on attempt 1 (no library could be loaded); trying once more
the python grammar could not be built: it was built, but no library can be loaded
the html grammar did not build on attempt 1 (no library could be loaded); trying once more
the html grammar could not be built: it was built, but no library can be loaded
the css grammar did not build on attempt 1 (no library could be loaded); trying once more
the css grammar could not be built: it was built, but no library can be loaded
the php grammar did not build on attempt 1 (no library could be loaded); trying once more
the php grammar could not be built: it was built, but no library can be loaded
the phpdoc grammar did not build on attempt 1 (no library could be loaded); trying once more
the phpdoc grammar could not be built: it was built, but no library can be loaded
the lua grammar did not build on attempt 1 (no library could be loaded); trying once more
the lua grammar could not be built: it was built, but no library can be loaded
the json grammar did not build on attempt 1 (no library could be loaded); trying once more
the json grammar could not be built: it was built, but no library can be loaded
the doxygen grammar did not build on attempt 1 (no library could be loaded); trying once more
the doxygen grammar could not be built: it was built, but no library can be loaded
the heex grammar did not build on attempt 1 (no library could be loaded); trying once more
the heex grammar could not be built: it was built, but no library can be loaded
the elixir grammar did not build on attempt 1 (no library could be loaded); trying once more
the elixir grammar could not be built: it was built, but no library can be loaded
the go grammar did not build on attempt 1 (no library could be loaded); trying once more
the go grammar could not be built: it was built, but no library can be loaded
the gomod grammar did not build on attempt 1 (no library could be loaded); trying once more
the gomod grammar could not be built: it was built, but no library can be loaded
the gowork grammar did not build on attempt 1 (no library could be loaded); trying once more
the gowork grammar could not be built: it was built, but no library can be loaded
the dockerfile grammar did not build on attempt 1 (no library could be loaded); trying once more
the dockerfile grammar could not be built: it was built, but no library can be loaded
the c-sharp grammar did not build on attempt 1 (no library could be loaded); trying once more
the c-sharp grammar could not be built: it was built, but no library can be loaded
the cmake grammar did not build on attempt 1 (no library could be loaded); trying once more
the cmake grammar could not be built: it was built, but no library can be loaded
the c grammar did not build on attempt 1 (no library could be loaded); trying once more
the c grammar could not be built: it was built, but no library can be loaded
the cpp grammar did not build on attempt 1 (no library could be loaded); trying once more
the cpp grammar could not be built: it was built, but no library can be loaded
heks-emacs: 0 tree-sitter grammars built, not built: kotlin, scala, nix, bash, yaml, javascript, jsdoc, typescript, tsx, toml, rust, ruby, python, html, css, php, phpdoc, lua, json, doxygen, heex, elixir, go, gomod, gowork, dockerfile, c-sharp, cmake, c, cpp
passed 218/239 heks/treesit/a-grammar-that-is-here-is-not-built-again (0.025803 sec)
the kotlin grammar did not build on attempt 1 (no library could be loaded); trying once more
the kotlin grammar could not be built: it was built, but no library can be loaded
the scala grammar did not build on attempt 1 (no library could be loaded); trying once more
the scala grammar could not be built: it was built, but no library can be loaded
the nix grammar did not build on attempt 1 (no library could be loaded); trying once more
the nix grammar could not be built: it was built, but no library can be loaded
the bash grammar did not build on attempt 1 (no library could be loaded); trying once more
the bash grammar could not be built: it was built, but no library can be loaded
the yaml grammar did not build on attempt 1 (no library could be loaded); trying once more
the yaml grammar could not be built: it was built, but no library can be loaded
the javascript grammar did not build on attempt 1 (no library could be loaded); trying once more
the javascript grammar could not be built: it was built, but no library can be loaded
the jsdoc grammar did not build on attempt 1 (no library could be loaded); trying once more
the jsdoc grammar could not be built: it was built, but no library can be loaded
the typescript grammar did not build on attempt 1 (no library could be loaded); trying once more
the typescript grammar could not be built: it was built, but no library can be loaded
the tsx grammar did not build on attempt 1 (no library could be loaded); trying once more
the tsx grammar could not be built: it was built, but no library can be loaded
the toml grammar did not build on attempt 1 (no library could be loaded); trying once more
the toml grammar could not be built: it was built, but no library can be loaded
the rust grammar did not build on attempt 1 (no library could be loaded); trying once more
the rust grammar could not be built: it was built, but no library can be loaded
the ruby grammar did not build on attempt 1 (no library could be loaded); trying once more
the ruby grammar could not be built: it was built, but no library can be loaded
the python grammar did not build on attempt 1 (no library could be loaded); trying once more
the python grammar could not be built: it was built, but no library can be loaded
the html grammar did not build on attempt 1 (no library could be loaded); trying once more
the html grammar could not be built: it was built, but no library can be loaded
the css grammar did not build on attempt 1 (no library could be loaded); trying once more
the css grammar could not be built: it was built, but no library can be loaded
the php grammar did not build on attempt 1 (no library could be loaded); trying once more
the php grammar could not be built: it was built, but no library can be loaded
the phpdoc grammar did not build on attempt 1 (no library could be loaded); trying once more
the phpdoc grammar could not be built: it was built, but no library can be loaded
the lua grammar did not build on attempt 1 (no library could be loaded); trying once more
the lua grammar could not be built: it was built, but no library can be loaded
the json grammar did not build on attempt 1 (no library could be loaded); trying once more
the json grammar could not be built: it was built, but no library can be loaded
the java grammar did not build on attempt 1 (no compiler here); trying once more
the java grammar could not be built: no compiler here
the doxygen grammar did not build on attempt 1 (no library could be loaded); trying once more
the doxygen grammar could not be built: it was built, but no library can be loaded
the heex grammar did not build on attempt 1 (no library could be loaded); trying once more
the heex grammar could not be built: it was built, but no library can be loaded
the elixir grammar did not build on attempt 1 (no library could be loaded); trying once more
the elixir grammar could not be built: it was built, but no library can be loaded
the go grammar did not build on attempt 1 (no library could be loaded); trying once more
the go grammar could not be built: it was built, but no library can be loaded
the gomod grammar did not build on attempt 1 (no library could be loaded); trying once more
the gomod grammar could not be built: it was built, but no library can be loaded
the gowork grammar did not build on attempt 1 (no library could be loaded); trying once more
the gowork grammar could not be built: it was built, but no library can be loaded
the dockerfile grammar did not build on attempt 1 (no library could be loaded); trying once more
the dockerfile grammar could not be built: it was built, but no library can be loaded
the c-sharp grammar did not build on attempt 1 (no library could be loaded); trying once more
the c-sharp grammar could not be built: it was built, but no library can be loaded
the cmake grammar did not build on attempt 1 (no library could be loaded); trying once more
the cmake grammar could not be built: it was built, but no library can be loaded
the c grammar did not build on attempt 1 (no library could be loaded); trying once more
the c grammar could not be built: it was built, but no library can be loaded
the cpp grammar did not build on attempt 1 (no library could be loaded); trying once more
the cpp grammar could not be built: it was built, but no library can be loaded
heks-emacs: 0 tree-sitter grammars built, not built: kotlin, scala, nix, bash, yaml, javascript, jsdoc, typescript, tsx, toml, rust, ruby, python, html, css, php, phpdoc, lua, json, java, doxygen, heex, elixir, go, gomod, gowork, dockerfile, c-sharp, cmake, c, cpp
passed 219/239 heks/treesit/a-grammar-that-will-not-build-does-not-stop-the-others (0.026260 sec)
passed 220/239 heks/treesit/the-grammars-are-built-by-a-batch-emacs (0.000069 sec)
passed 221/239 heks/treesit/the-grammars-are-installed-where-told-to (0.000036 sec)
the heks-ert-own grammar did not build on attempt 1 (no library could be loaded); trying once more
the heks-ert-own grammar could not be built: it was built, but no library can be loaded
the nix grammar did not build on attempt 1 (no library could be loaded); trying once more
the nix grammar could not be built: it was built, but no library can be loaded
the scala grammar did not build on attempt 1 (no library could be loaded); trying once more
the scala grammar could not be built: it was built, but no library can be loaded
the kotlin grammar did not build on attempt 1 (no library could be loaded); trying once more
the kotlin grammar could not be built: it was built, but no library can be loaded
the bash grammar did not build on attempt 1 (no library could be loaded); trying once more
the bash grammar could not be built: it was built, but no library can be loaded
the yaml grammar did not build on attempt 1 (no library could be loaded); trying once more
the yaml grammar could not be built: it was built, but no library can be loaded
the javascript grammar did not build on attempt 1 (no library could be loaded); trying once more
the javascript grammar could not be built: it was built, but no library can be loaded
the jsdoc grammar did not build on attempt 1 (no library could be loaded); trying once more
the jsdoc grammar could not be built: it was built, but no library can be loaded
the typescript grammar did not build on attempt 1 (no library could be loaded); trying once more
the typescript grammar could not be built: it was built, but no library can be loaded
the tsx grammar did not build on attempt 1 (no library could be loaded); trying once more
the tsx grammar could not be built: it was built, but no library can be loaded
the toml grammar did not build on attempt 1 (no library could be loaded); trying once more
the toml grammar could not be built: it was built, but no library can be loaded
the rust grammar did not build on attempt 1 (no library could be loaded); trying once more
the rust grammar could not be built: it was built, but no library can be loaded
the ruby grammar did not build on attempt 1 (no library could be loaded); trying once more
the ruby grammar could not be built: it was built, but no library can be loaded
the python grammar did not build on attempt 1 (no library could be loaded); trying once more
the python grammar could not be built: it was built, but no library can be loaded
the html grammar did not build on attempt 1 (no library could be loaded); trying once more
the html grammar could not be built: it was built, but no library can be loaded
the css grammar did not build on attempt 1 (no library could be loaded); trying once more
the css grammar could not be built: it was built, but no library can be loaded
the php grammar did not build on attempt 1 (no library could be loaded); trying once more
the php grammar could not be built: it was built, but no library can be loaded
the phpdoc grammar did not build on attempt 1 (no library could be loaded); trying once more
the phpdoc grammar could not be built: it was built, but no library can be loaded
the lua grammar did not build on attempt 1 (no library could be loaded); trying once more
the lua grammar could not be built: it was built, but no library can be loaded
the json grammar did not build on attempt 1 (no library could be loaded); trying once more
the json grammar could not be built: it was built, but no library can be loaded
the java grammar did not build on attempt 1 (no library could be loaded); trying once more
the java grammar could not be built: it was built, but no library can be loaded
the doxygen grammar did not build on attempt 1 (no library could be loaded); trying once more
the doxygen grammar could not be built: it was built, but no library can be loaded
the heex grammar did not build on attempt 1 (no library could be loaded); trying once more
the heex grammar could not be built: it was built, but no library can be loaded
the elixir grammar did not build on attempt 1 (no library could be loaded); trying once more
the elixir grammar could not be built: it was built, but no library can be loaded
the go grammar did not build on attempt 1 (no library could be loaded); trying once more
the go grammar could not be built: it was built, but no library can be loaded
the gomod grammar did not build on attempt 1 (no library could be loaded); trying once more
the gomod grammar could not be built: it was built, but no library can be loaded
the gowork grammar did not build on attempt 1 (no library could be loaded); trying once more
the gowork grammar could not be built: it was built, but no library can be loaded
the dockerfile grammar did not build on attempt 1 (no library could be loaded); trying once more
the dockerfile grammar could not be built: it was built, but no library can be loaded
the c-sharp grammar did not build on attempt 1 (no library could be loaded); trying once more
the c-sharp grammar could not be built: it was built, but no library can be loaded
the cmake grammar did not build on attempt 1 (no library could be loaded); trying once more
the cmake grammar could not be built: it was built, but no library can be loaded
the c grammar did not build on attempt 1 (no library could be loaded); trying once more
the c grammar could not be built: it was built, but no library can be loaded
the cpp grammar did not build on attempt 1 (no library could be loaded); trying once more
the cpp grammar could not be built: it was built, but no library can be loaded
heks-emacs: 0 tree-sitter grammars built, not built: heks-ert-own, nix, scala, kotlin, bash, yaml, javascript, jsdoc, typescript, tsx, toml, rust, ruby, python, html, css, php, phpdoc, lua, json, java, doxygen, heex, elixir, go, gomod, gowork, dockerfile, c-sharp, cmake, c, cpp
passed 222/239 heks/treesit/the-script-builds-the-grammars-emacs-knows (0.028602 sec)
passed 223/239 heks/ui/a-face-that-is-not-there-yet-is-skipped (0.000032 sec)
passed 224/239 heks/ui/a-family-becomes-a-font-spec (0.005184 sec)
passed 225/239 heks/ui/a-font-nothing-provides-falls-back-to-the-last-resort (0.000051 sec)
passed 226/239 heks/ui/a-font-that-cannot-be-set-is-a-warning (0.000042 sec)
passed 227/239 heks/ui/a-missing-font-becomes-the-next-best (0.000055 sec)
passed 228/239 heks/ui/an-eca-face-gets-the-family-of-what-it-prints (0.000075 sec)
passed 229/239 heks/ui/an-installed-font-is-left-alone (0.000029 sec)
passed 230/239 heks/ui/no-eca-face-is-in-both-lists (0.000025 sec)
passed 231/239 heks/ui/no-graphical-frame-means-no-resolution (0.000019 sec)
passed 232/239 heks/which-key/a-mode-that-answers-first-says-its-own-wording (0.000900 sec)
passed 233/239 heks/which-key/no-sentence-of-the-scheme-is-cut (0.000357 sec)
passed 234/239 heks/which-key/the-menu-goes-where-the-frame-has-room (0.000206 sec)
passed 235/239 heks/which-key/the-scheme-is-what-which-key-shows (0.001305 sec)
passed 236/239 heks/xref/the-chaining-backend-is-a-servers-buffers (0.000099 sec)
passed 237/239 heks/xref/the-global-backends-are-part-of-the-chain (0.000110 sec)
passed 238/239 heks/xref/the-name-is-read-by-the-buffers-own-tool (0.000070 sec)
passed 239/239 heks/xref/the-server-is-asked-first-and-the-others-after (0.000044 sec)
Ran 239 tests, 225 results as expected, 0 unexpected, 14 skipped (2026-11-03 09:33:37+0100, 2.615543 sec)
14 skipped results:
SKIPPED heks/sift/a-buffer-is-set-up-with-the-mode-and-both-reports
SKIPPED heks/sift/a-file-that-does-not-parse-is-said-so
SKIPPED heks/sift/a-fix-changes-the-rule-it-was-asked-for
SKIPPED heks/sift/a-server-that-is-sift-is-recognised
SKIPPED heks/sift/emacs-lisp-is-checked-and-not-formatted
SKIPPED heks/sift/formatting-replaces-the-buffer-and-nothing-else
SKIPPED heks/sift/the-copy-the-formatter-sees-is-named-for-its-dialect
SKIPPED heks/sift/the-dialect-is-read-from-the-major-mode
SKIPPED heks/sift/the-drift-backend-reports-the-lines-that-would-change
SKIPPED heks/sift/the-keys-are-the-scheme-s-own
SKIPPED heks/sift/the-lint-backend-reports-what-the-program-found
SKIPPED heks/sift/the-mode-s-keys-answer-in-every-lisp
SKIPPED heks/sift/the-server-takes-over-what-the-backend-was-reporting
SKIPPED heks/terraform/the-commands-say-so-when-there-is-no-terraform