Radicle repository id rad:zjxyd2A1A7FnxtC69qDfoAajfTHo
[2025-08-09T04:51:57Z INFO ambient] ambient starts [2J[01;01H[=3h[2J[01;01H[2J[01;01H[=3h[2J[01;01HBdsDxe: failed to load Boot0001 "UEFI QEMU DVD-ROM QM00005 " from PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x2,0xFFFF,0x0): Not Found BdsDxe: loading Boot0002 "UEFI Misc Device" from PciRoot(0x0)/Pci(0x2,0x0) BdsDxe: starting Boot0002 "UEFI Misc Device" from PciRoot(0x0)/Pci(0x2,0x0) [0m[30m[47mWelcome to GRUB! [0m[37m[40m[0m[30m[40m[2J[01;01H[0m[37m[40mINFO: Block devices NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS vda 254:0 0 100G 0 disk ├─vda1 254:1 0 953M 0 part └─vda2 254:2 0 99.1G 0 part / vdb 254:16 0 2.9M 1 disk vdc 254:32 0 3.3M 1 disk vdd 254:48 0 9.3G 0 disk vde 254:64 0 46.6G 0 disk vdf 254:80 0 675.4M 1 disk INFO: Extracting tar archive from /dev/vdb drwxr-xr-x _rad/_rad 0 2025-08-09 04:43 ./ -rw-r--r-- _rad/_rad 1431 2025-08-09 04:43 ./plan.yaml -rwxr-xr-x _rad/_rad 2998936 2025-08-09 04:43 ./run-ci INFO: Extracted files: 1477881 4 drwxr-xr-x 2 1001 1001 4096 Aug 9 04:43 . 1477882 4 -rw-r--r-- 1 1001 1001 1431 Aug 9 04:43 ./plan.yaml 1477883 2932 -rwxr-xr-x 1 1001 1001 2998936 Aug 9 04:43 ./run-ci INFO: Running run-ci from /dev/vdb ================================ BEGIN ================================ [2025-08-09T04:44:42Z TRACE ambient_execute_plan] ambient-execute-plan starts [2025-08-09T04:44:42Z DEBUG ambient_execute_plan] ambient-execute-plan starts [2025-08-09T04:44:42Z INFO ambient_execute_plan] ambient-execute-plan starts [2025-08-09T04:44:42Z WARN ambient_execute_plan] ambient-execute-plan starts [2025-08-09T04:44:42Z ERROR ambient_execute_plan] ambient-execute-plan starts RunnablePlan::from_file: filename=plan.yaml steps: - action: mkdir pathname: /workspace - action: mkdir pathname: /workspace/artifacts - action: tar_extract archive: /dev/vdc directory: /workspace/src - action: tar_extract archive: /dev/vdf directory: /workspace/deps - action: tar_extract archive: /dev/vde directory: /workspace/cache - action: spawn argv: - find - /workspace - '-maxdepth' - '2' - '-ls' - action: cargo_fmt - action: cargo_clippy - action: shell shell: | export DEBEMAIL=liw@liw.fi export DEBFULLNAME="Lars Wirzenius" export CARGO_TARGET_DIR=/workspace/cache export CARGO_HOME=/workspace/deps export HOME=/root export PATH="/root/.cargo/bin:$PATH" make OFFLINE="--offline" # Clean up after tests and documentation building. git reset --hard git clean -fdx git status --ignored V="$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')" T="$(date -u "+%Y%m%dT%H%M%S")" version="$V.ci$T-1" dch -v "$version" "CI build under Ambient." dch -r '' - action: deb - action: tar_create archive: /dev/vde directory: /workspace/cache - action: tar_create archive: /dev/vdd directory: /workspace/artifacts executor_drive: /dev/vdb source_drive: /dev/vdc artifact_drive: /dev/vdd cache_drive: /dev/vde deps_drive: /dev/vdf workspace_dir: /workspace source_dir: /workspace/src deps_dir: /workspace/deps cache_dir: /workspace/cache artifacts_dir: /workspace/artifacts RUN: Action Mkdir { pathname: "/workspace", } [2025-08-09T04:44:42Z DEBUG ambient_ci::action] Plan::execute: Mkdir { pathname: "/workspace", } RUN: Action finished OK RUN: Action Mkdir { pathname: "/workspace/artifacts", } [2025-08-09T04:44:42Z DEBUG ambient_ci::action] Plan::execute: Mkdir { pathname: "/workspace/artifacts", } RUN: Action finished OK RUN: Action TarExtract { archive: "/dev/vdc", directory: "/workspace/src", } [2025-08-09T04:44:42Z DEBUG ambient_ci::action] Plan::execute: TarExtract { archive: "/dev/vdc", directory: "/workspace/src", } [2025-08-09T04:44:42Z TRACE ambient_ci::vdrive] extracting /dev/vdc to /workspace/src [2025-08-09T04:44:42Z TRACE ambient_ci::vdrive] extraction OK RUN: Action finished OK RUN: Action TarExtract { archive: "/dev/vdf", directory: "/workspace/deps", } [2025-08-09T04:44:42Z DEBUG ambient_ci::action] Plan::execute: TarExtract { archive: "/dev/vdf", directory: "/workspace/deps", } [2025-08-09T04:44:42Z TRACE ambient_ci::vdrive] extracting /dev/vdf to /workspace/deps [2025-08-09T04:44:48Z TRACE ambient_ci::vdrive] extraction OK RUN: Action finished OK RUN: Action TarExtract { archive: "/dev/vde", directory: "/workspace/cache", } [2025-08-09T04:44:48Z DEBUG ambient_ci::action] Plan::execute: TarExtract { archive: "/dev/vde", directory: "/workspace/cache", } [2025-08-09T04:44:48Z TRACE ambient_ci::vdrive] extracting /dev/vde to /workspace/cache [2025-08-09T04:46:53Z TRACE ambient_ci::vdrive] extraction OK RUN: Action finished OK RUN: Action Spawn { argv: [ "find", "/workspace", "-maxdepth", "2", "-ls", ], } [2025-08-09T04:46:53Z DEBUG ambient_ci::action] Plan::execute: Spawn { argv: [ "find", "/workspace", "-maxdepth", "2", "-ls", ], } SPAWN: argv=["find", "/workspace", "-maxdepth", "2", "-ls"] cwd=/workspace/src (exists? true) extra_env=[] 3932161 4 drwxr-xr-x 6 root root 4096 Aug 9 04:44 /workspace 3932162 4 drwxr-xr-x 2 root root 4096 Aug 9 04:44 /workspace/artifacts 3932867 4 drwxr-xr-x 3 root root 4096 Aug 9 04:43 /workspace/deps 3932869 100 -rw-r--r-- 1 root root 102400 Aug 9 04:43 /workspace/deps/.global-cache 3932868 0 -rw-r--r-- 1 root root 0 Jun 28 05:56 /workspace/deps/.package-cache-mutate 3932870 0 -rw-r--r-- 1 root root 0 Jun 10 05:26 /workspace/deps/.package-cache 3932871 4 drwxr-xr-x 5 root root 4096 Jun 10 05:26 /workspace/deps/registry 3932163 4 drwxr-xr-x 15 root root 4096 Aug 9 04:43 /workspace/src 3932165 4 drwxr-xr-x 2 root root 4096 Aug 9 04:43 /workspace/src/.radicle 3932203 24 -rw-r--r-- 1 root root 21606 Aug 9 04:43 /workspace/src/NEWS.md 3932864 4 -rw-r--r-- 1 root root 3387 Aug 9 04:43 /workspace/src/RELEASE.md 3932201 4 -rw-r--r-- 1 root root 56 Aug 9 04:43 /workspace/src/flake8.ini 3932304 4 -rw-r--r-- 1 root root 678 Aug 9 04:43 /workspace/src/.gitlab-ci.yml 3932866 48 -rw-r--r-- 1 root root 48925 Aug 9 04:43 /workspace/src/Cargo.lock 3932833 4 drwxr-xr-x 5 root root 4096 Aug 9 04:43 /workspace/src/share 3932167 4 -rw-r--r-- 1 root root 1366 Aug 9 04:43 /workspace/src/DCO-1-1.txt 3932233 4 -rw-r--r-- 1 root root 1568 Aug 9 04:43 /workspace/src/Cargo.toml 3932285 4 drwxr-xr-x 5 root root 4096 Aug 9 04:43 /workspace/src/examples 3932284 4 -rw-r--r-- 1 root root 295 Aug 9 04:43 /workspace/src/deny.toml 3932197 4 drwxr-xr-x 3 root root 4096 Aug 9 04:43 /workspace/src/subplot-build 3932169 4 drwxr-xr-x 3 root root 4096 Aug 9 04:43 /workspace/src/.gitlab 3932231 4 -rw-r--r-- 1 root root 1334 Aug 9 04:43 /workspace/src/flake.nix 3932863 4 -rw-r--r-- 1 root root 1385 Aug 9 04:43 /workspace/src/flake.lock 3932234 8 -rw-r--r-- 1 root root 6501 Aug 9 04:43 /workspace/src/DECISIONS.md 3932232 4 -rw-r--r-- 1 root root 142 Aug 9 04:43 /workspace/src/.gitignore 3932224 4 drwxr-xr-x 3 root root 4096 Aug 9 04:43 /workspace/src/subplotlib-derive 3932168 4 -rw-r--r-- 1 root root 1325 Aug 9 04:43 /workspace/src/LICENSE.md 3932282 4 -rw-r--r-- 1 root root 689 Aug 9 04:43 /workspace/src/reference.py 3932865 8 -rw-r--r-- 1 root root 5176 Aug 9 04:43 /workspace/src/CONTRIBUTING.md 3932832 8 -rw-r--r-- 1 root root 4300 Aug 9 04:43 /workspace/src/Makefile 3932218 4 -rw-r--r-- 1 root root 1286 Aug 9 04:43 /workspace/src/reference.md 3932269 4 drwxr-xr-x 3 root root 4096 Aug 9 04:43 /workspace/src/tests 3932305 4 drwxr-xr-x 8 root root 4096 Aug 9 04:43 /workspace/src/.git 3932202 4 -rw-r--r-- 1 root root 10 Aug 9 04:43 /workspace/src/.envrc 3932204 4 drwxr-xr-x 3 root root 4096 Aug 9 04:43 /workspace/src/debian 3932164 4 -rw-r--r-- 1 root root 3370 Aug 9 04:43 /workspace/src/subplot.py 3932223 4 -rw-r--r-- 1 root root 3623 Aug 9 04:43 /workspace/src/README.md 3932283 4 -rw-r--r-- 1 root root 273 Aug 9 04:43 /workspace/src/reference.subplot.disabled 3932173 4 drwxr-xr-x 2 root root 4096 Aug 9 04:43 /workspace/src/src 3932217 4 -rw-r--r-- 1 root root 196 Aug 9 04:43 /workspace/src/reference.yaml 3932196 4 -rw-r--r-- 1 root root 2648 Aug 9 04:43 /workspace/src/subplot.yaml 3932235 4 -rw-r--r-- 1 root root 284 Aug 9 04:43 /workspace/src/subplot.subplot 3932236 4 drwxr-xr-x 5 root root 4096 Aug 9 04:43 /workspace/src/subplotlib 3932826 4 drwxr-xr-x 3 root root 4096 Aug 9 04:43 /workspace/src/bin 3932230 8 -rw-r--r-- 1 root root 5617 Aug 9 04:43 /workspace/src/build.rs 3932195 4 -rwxr-xr-x 1 root root 489 Aug 9 04:43 /workspace/src/install-debian.sh 3932219 4 drwxr-xr-x 2 root root 4096 Aug 9 04:43 /workspace/src/book 3932222 96 -rw-r--r-- 1 root root 96042 Aug 9 04:43 /workspace/src/subplot.md 3952411 4 drwxr-xr-x 6 root root 4096 Jun 10 05:28 /workspace/cache 3969072 4 drwxr-xr-x 7 root root 4096 Jul 21 09:35 /workspace/cache/release 3971821 4 drwxr-xr-x 11 root root 4096 Jun 10 05:50 /workspace/cache/doc 3952413 4 drwxr-xr-x 7 root root 4096 Jul 21 09:34 /workspace/cache/debug 3952412 4 drwxr-xr-x 2 root root 4096 Jun 10 05:26 /workspace/cache/tmp 3969071 4 -rw-r--r-- 1 root root 218 Jun 10 05:27 /workspace/cache/.rustdoc_fingerprint.json 3971820 4 -rw-r--r-- 1 root root 1033 Jul 21 09:35 /workspace/cache/.rustc_info.json RUN: Action finished OK RUN: Action CargoFmt [2025-08-09T04:46:53Z DEBUG ambient_ci::action] Plan::execute: CargoFmt SPAWN: argv=["cargo", "fmt", "--check"] cwd=/workspace/src (exists? true) extra_env=[("CARGO_TARGET_DIR", "/workspace/cache"), ("CARGO_HOME", "/workspace/deps"), ("PATH", "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")] RUN: Action finished OK RUN: Action CargoClippy [2025-08-09T04:46:54Z DEBUG ambient_ci::action] Plan::execute: CargoClippy SPAWN: argv=["cargo", "clippy", "--offline", "--locked", "--workspace", "--all-targets", "--no-deps", "--", "--deny", "warnings"] cwd=/workspace/src (exists? true) extra_env=[("CARGO_TARGET_DIR", "/workspace/cache"), ("CARGO_HOME", "/workspace/deps"), ("PATH", "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")] Compiling proc-macro2 v1.0.95 Compiling unicode-ident v1.0.18 Checking cfg-if v1.0.1 Compiling zerocopy v0.8.26 Compiling serde v1.0.219 Compiling memchr v2.7.5 Compiling crossbeam-utils v0.8.21 Compiling version_check v0.9.5 Compiling ahash v0.8.12 Compiling quote v1.0.40 Compiling libc v0.2.174 Compiling syn v2.0.104 Compiling thiserror v2.0.12 Checking once_cell v1.21.3 Checking bitflags v2.9.1 Compiling anyhow v1.0.98 Compiling getrandom v0.3.3 Compiling doc-comment v0.3.3 Checking aho-corasick v1.1.3 Compiling rustix v1.0.8 Checking regex-syntax v0.8.5 Compiling same-file v1.0.6 Compiling libm v0.2.15 Compiling walkdir v2.5.0 Checking itoa v1.0.15 Compiling ucd-trie v0.1.7 Compiling shlex v1.3.0 Compiling serde_json v1.0.142 Compiling cc v1.2.31 Compiling pulldown-cmark v0.13.0 Checking regex-automata v0.4.9 Checking linux-raw-sys v0.9.4 Compiling pikchr v0.1.4 Checking lazy_static v1.5.0 Checking fastrand v2.3.0 Checking regex v1.11.1 Compiling serde_derive v1.0.219 Compiling thiserror-impl v2.0.12 Compiling tracing-attributes v0.1.30 Checking ryu v1.0.20 Compiling log v0.4.27 Checking base64 v0.22.1 Compiling pest v2.8.1 Checking tempfile v3.20.0 Compiling pest_meta v2.8.1 Compiling pest_generator v2.8.1 Compiling encoding_rs v0.8.35 Compiling pest_derive v2.8.1 Compiling num-conv v0.1.0 Compiling arraydeque v0.5.1 Compiling time-core v0.1.4 Compiling crossbeam-epoch v0.9.18 Compiling time-macros v0.2.22 Compiling hashbrown v0.14.5 Compiling getrandom v0.2.16 Compiling subplot v0.13.0 (/workspace/src) Checking bstr v1.12.0 Compiling unic-common v0.9.0 Compiling unic-char-range v0.9.0 Compiling foldhash v0.1.5 Compiling unicode-width v0.2.1 Compiling hashbrown v0.15.4 Compiling globset v0.4.16 Compiling unic-char-property v0.9.0 Compiling unic-ucd-version v0.9.0 Compiling hashlink v0.9.1 Compiling rand_core v0.6.4 Compiling crossbeam-deque v0.8.6 Compiling serde_path_to_error v0.1.17 Compiling ppv-lite86 v0.2.21 Compiling culpa-macros v1.0.2 Compiling cfg_aliases v0.2.1 Compiling nix v0.29.0 Compiling rand_chacha v0.3.1 Compiling hashlink v0.10.0 Compiling ignore v0.4.23 Compiling yaml-rust2 v0.9.0 Compiling unic-ucd-segment v0.9.0 Checking powerfmt v0.2.0 Compiling smawk v0.3.2 Compiling deunicode v1.6.2 Compiling unicode-linebreak v0.1.5 Compiling textwrap v0.16.2 Compiling humansize v2.1.3 Compiling slug v0.1.6 Checking deranged v0.4.0 Compiling unic-segment v0.9.0 Compiling globwalk v0.9.1 Compiling marked-yaml v0.7.2 Compiling yaml-rust2 v0.10.3 Compiling rand v0.8.5 Compiling getopts v0.2.23 Compiling tracing-core v0.1.34 Compiling utf8-width v0.1.7 Compiling unicase v2.8.1 Compiling percent-encoding v2.3.1 Compiling pulldown-cmark-escape v0.11.0 Compiling pin-project-lite v0.2.16 Checking time v0.3.41 Compiling tracing v0.1.41 Compiling tera v1.20.0 Compiling html-escape v0.2.13 Compiling marked-yaml v0.8.0 Compiling roadmap v0.7.0 Checking culpa v1.0.2 Checking cvt v0.1.2 Compiling line-col v0.2.1 Compiling descape v2.0.3 Checking fs_at v0.2.1 Compiling subplotlib v0.13.0 (/workspace/src/subplotlib) Checking normpath v1.3.0 Checking remove_dir_all v1.0.0 Checking filetime v0.2.25 Checking fs2 v0.4.3 Checking state v0.6.0 Checking shell-words v1.1.0 Checking utf8parse v0.2.2 Checking anstyle-parse v0.2.7 Checking is_terminal_polyfill v1.70.1 Checking anstyle-query v1.1.3 Checking colorchoice v1.0.4 Checking anstyle v1.0.11 Checking anstream v0.6.19 Compiling heck v0.5.0 Checking clap_lex v0.7.5 Checking strsim v0.11.1 Compiling clap_derive v4.5.41 Checking clap_builder v4.5.42 Compiling subplotlib-derive v0.13.0 (/workspace/src/subplotlib-derive) Checking clap v4.5.42 Checking regex-syntax v0.6.29 Checking regex-automata v0.1.10 Checking overload v0.1.1 Checking nu-ansi-term v0.46.0 Compiling git-testament-derive v0.2.1 Checking matchers v0.1.0 Checking tracing-log v0.2.0 Checking sharded-slab v0.1.7 Checking thread_local v1.1.9 Checking smallvec v1.15.1 Checking tracing-subscriber v0.3.19 Checking git-testament v0.2.6 Checking subplot-build v0.13.0 (/workspace/src/subplot-build) Checking subplot-bin v0.13.0 (/workspace/src/bin) Checking subplot-seq-example v0.1.0 (/workspace/src/examples/seq) Finished `dev` profile [unoptimized + debuginfo] target(s) in 34.51s RUN: Action finished OK RUN: Action Shell { shell: "export DEBEMAIL=liw@liw.fi\nexport DEBFULLNAME=\"Lars Wirzenius\"\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:$PATH\"\n\nmake OFFLINE=\"--offline\"\n\n# Clean up after tests and documentation building.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n\nV=\"$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')\"\nT=\"$(date -u \"+%Y%m%dT%H%M%S\")\"\nversion=\"$V.ci$T-1\"\ndch -v \"$version\" \"CI build under Ambient.\"\ndch -r ''\n", } [2025-08-09T04:47:29Z DEBUG ambient_ci::action] Plan::execute: Shell { shell: "export DEBEMAIL=liw@liw.fi\nexport DEBFULLNAME=\"Lars Wirzenius\"\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:$PATH\"\n\nmake OFFLINE=\"--offline\"\n\n# Clean up after tests and documentation building.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n\nV=\"$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')\"\nT=\"$(date -u \"+%Y%m%dT%H%M%S\")\"\nversion=\"$V.ci$T-1\"\ndch -v \"$version\" \"CI build under Ambient.\"\ndch -r ''\n", } SPAWN: argv=["/bin/bash", "-c", "set -xeuo pipefail\nexport DEBEMAIL=liw@liw.fi\nexport DEBFULLNAME=\"Lars Wirzenius\"\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:$PATH\"\n\nmake OFFLINE=\"--offline\"\n\n# Clean up after tests and documentation building.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n\nV=\"$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')\"\nT=\"$(date -u \"+%Y%m%dT%H%M%S\")\"\nversion=\"$V.ci$T-1\"\ndch -v \"$version\" \"CI build under Ambient.\"\ndch -r ''\n\n"] cwd=/workspace/src (exists? true) extra_env=[] + export DEBEMAIL=liw@liw.fi + DEBEMAIL=liw@liw.fi + export 'DEBFULLNAME=Lars Wirzenius' + DEBFULLNAME='Lars Wirzenius' + export CARGO_TARGET_DIR=/workspace/cache + CARGO_TARGET_DIR=/workspace/cache + export CARGO_HOME=/workspace/deps + CARGO_HOME=/workspace/deps + export HOME=/root + HOME=/root + export PATH=/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + PATH=/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + make OFFLINE=--offline which cargo /root/.cargo/bin/cargo which dot /usr/bin/dot which plantuml /usr/bin/plantuml which python3 /usr/bin/python3 which rustc /root/.cargo/bin/rustc which rustfmt /root/.cargo/bin/rustfmt which tidy /usr/bin/tidy if which shellcheck; then shellcheck *.sh; fi /usr/bin/shellcheck if cargo clippy --version; then \ cargo clippy --locked --offline --workspace --all-targets -- -Dwarnings && \ cd examples/seq && cargo clippy --workspace --all-targets -- -Dwarnings; \ fi clippy 0.1.89 (29483883ee 2025-08-04) Compiling subplot v0.13.0 (/workspace/src) Compiling subplotlib v0.13.0 (/workspace/src/subplotlib) Checking subplotlib-derive v0.13.0 (/workspace/src/subplotlib-derive) Checking subplot-build v0.13.0 (/workspace/src/subplot-build) Checking subplot-bin v0.13.0 (/workspace/src/bin) Checking subplot-seq-example v0.1.0 (/workspace/src/examples/seq) Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.35s Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.14s rm -rf "/workspace/src/inst" cargo install --locked --offline --path=bin --root="/workspace/src/inst" --debug Installing subplot-bin v0.13.0 (/workspace/src/bin) Compiling syn v2.0.104 Compiling cfg-if v1.0.1 Compiling memchr v2.7.5 Compiling once_cell v1.21.3 Compiling libc v0.2.174 Compiling zerocopy v0.8.26 Compiling itoa v1.0.15 Compiling aho-corasick v1.1.3 Compiling regex-syntax v0.8.5 Compiling log v0.4.27 Compiling same-file v1.0.6 Compiling bitflags v2.9.1 Compiling walkdir v2.5.0 Compiling regex-automata v0.4.9 Compiling ahash v0.8.12 Compiling crossbeam-utils v0.8.21 Compiling encoding_rs v0.8.35 Compiling arraydeque v0.5.1 Compiling ucd-trie v0.1.7 Compiling crossbeam-epoch v0.9.18 Compiling serde_derive v1.0.219 Compiling thiserror-impl v2.0.12 Compiling hashbrown v0.14.5 Compiling thiserror v2.0.12 Compiling pest v2.8.1 Compiling getrandom v0.2.16 Compiling bstr v1.12.0 Compiling utf8parse v0.2.2 Compiling unic-common v0.9.0 Compiling unicode-width v0.2.1 Compiling foldhash v0.1.5 Compiling unic-char-range v0.9.0 Compiling unic-char-property v0.9.0 Compiling hashbrown v0.15.4 Compiling unic-ucd-version v0.9.0 Compiling anstyle-parse v0.2.7 Compiling pest_meta v2.8.1 Compiling globset v0.4.16 Compiling rand_core v0.6.4 Compiling serde v1.0.219 Compiling hashlink v0.9.1 Compiling crossbeam-deque v0.8.6 Compiling anyhow v1.0.98 Compiling doc-comment v0.3.3 Compiling ppv-lite86 v0.2.21 Compiling tracing-core v0.1.34 Compiling lazy_static v1.5.0 Compiling is_terminal_polyfill v1.70.1 Compiling powerfmt v0.2.0 Compiling num-conv v0.1.0 Compiling linux-raw-sys v0.9.4 Compiling time-core v0.1.4 Compiling colorchoice v1.0.4 Compiling anstyle-query v1.1.3 Compiling anstyle v1.0.11 Compiling time-macros v0.2.22 Compiling anstream v0.6.19 Compiling rustix v1.0.8 Compiling deranged v0.4.0 Compiling rand_chacha v0.3.1 Compiling serde_path_to_error v0.1.17 Compiling ignore v0.4.23 Compiling pest_generator v2.8.1 Compiling yaml-rust2 v0.9.0 Compiling hashlink v0.10.0 Compiling libm v0.2.15 Compiling unic-ucd-segment v0.9.0 Compiling getrandom v0.3.3 Compiling regex v1.11.1 Compiling tracing-attributes v0.1.30 Compiling strsim v0.11.1 Compiling clap_lex v0.7.5 Compiling fastrand v2.3.0 Compiling regex-syntax v0.6.29 Compiling deunicode v1.6.2 Compiling smawk v0.3.2 Compiling ryu v1.0.20 Compiling pin-project-lite v0.2.16 Compiling unicode-linebreak v0.1.5 Compiling serde_json v1.0.142 Compiling textwrap v0.16.2 Compiling tracing v0.1.41 Compiling slug v0.1.6 Compiling tempfile v3.20.0 Compiling clap_builder v4.5.42 Compiling regex-automata v0.1.10 Compiling clap_derive v4.5.41 Compiling humansize v2.1.3 Compiling unic-segment v0.9.0 Compiling yaml-rust2 v0.10.3 Compiling pest_derive v2.8.1 Compiling marked-yaml v0.7.2 Compiling globwalk v0.9.1 Compiling time v0.3.41 Compiling rand v0.8.5 Compiling subplot v0.13.0 (/workspace/src) Compiling getopts v0.2.23 Compiling overload v0.1.1 Compiling pulldown-cmark-escape v0.11.0 Compiling percent-encoding v2.3.1 Compiling unicase v2.8.1 Compiling utf8-width v0.1.7 Compiling pulldown-cmark v0.13.0 Compiling html-escape v0.2.13 Compiling git-testament-derive v0.2.1 Compiling tera v1.20.0 Compiling nu-ansi-term v0.46.0 Compiling clap v4.5.42 Compiling roadmap v0.7.0 Compiling marked-yaml v0.8.0 Compiling pikchr v0.1.4 Compiling matchers v0.1.0 Compiling tracing-log v0.2.0 Compiling sharded-slab v0.1.7 Compiling thread_local v1.1.9 Compiling descape v2.0.3 Compiling base64 v0.22.1 Compiling line-col v0.2.1 Compiling smallvec v1.15.1 Compiling git-testament v0.2.6 Compiling tracing-subscriber v0.3.19 Compiling subplot-bin v0.13.0 (/workspace/src/bin) Finished `dev` profile [unoptimized + debuginfo] target(s) in 28.48s Installing /workspace/src/inst/bin/subplot Installed package `subplot-bin v0.13.0 (/workspace/src/bin)` (executable `subplot`) warning: be sure to add `/workspace/src/inst/bin` to your PATH to be able to run the installed binaries mv "/workspace/src/inst"/bin/* "/workspace/src/inst" rm -rf "/workspace/src/inst"/.crate* "/workspace/src/inst"/bin cd share/python/template && python3 context_tests.py ............................ ---------------------------------------------------------------------- Ran 28 tests in 0.006s OK cd share/python/template && python3 encoding_tests.py .. ---------------------------------------------------------------------- Ran 2 tests in 0.000s OK env SUBPLOT_DIR="/workspace/src/inst" cargo test --workspace -- Compiling libc v0.2.174 Compiling thiserror v2.0.12 Compiling serde v1.0.219 Compiling getrandom v0.2.16 Compiling pest v2.8.1 Compiling rand_core v0.6.4 Compiling globset v0.4.16 Compiling ignore v0.4.23 Compiling pest_meta v2.8.1 Compiling getrandom v0.3.3 Compiling tempfile v3.20.0 Compiling serde_path_to_error v0.1.17 Compiling pest_generator v2.8.1 Compiling marked-yaml v0.7.2 Compiling serde_json v1.0.142 Compiling marked-yaml v0.8.0 Compiling rand_chacha v0.3.1 Compiling pest_derive v2.8.1 Compiling time-macros v0.2.22 Compiling rand v0.8.5 Compiling globwalk v0.9.1 Compiling subplot v0.13.0 (/workspace/src) Compiling tracing-core v0.1.34 Compiling tera v1.20.0 Compiling roadmap v0.7.0 Compiling tracing v0.1.41 Compiling pikchr v0.1.4 Compiling culpa v1.0.2 Compiling nix v0.29.0 Compiling cvt v0.1.2 Compiling time v0.3.41 Compiling normpath v1.3.0 Compiling subplotlib v0.13.0 (/workspace/src/subplotlib) Compiling filetime v0.2.25 Compiling fs2 v0.4.3 Compiling state v0.6.0 Compiling shell-words v1.1.0 Compiling fs_at v0.2.1 Compiling remove_dir_all v1.0.0 Compiling clap v4.5.42 Compiling tracing-subscriber v0.3.19 Compiling subplotlib-derive v0.13.0 (/workspace/src/subplotlib-derive) Compiling git-testament-derive v0.2.1 Compiling subplot-build v0.13.0 (/workspace/src/subplot-build) Compiling git-testament v0.2.6 Compiling subplot-bin v0.13.0 (/workspace/src/bin) Compiling subplot-seq-example v0.1.0 (/workspace/src/examples/seq) Finished `test` profile [unoptimized + debuginfo] target(s) in 28.98s Running unittests src/lib.rs (/workspace/cache/debug/deps/subplot-e5a783abd4452e95) running 108 tests test bindings::test_binding::does_not_match_with_wrong_kind ... ok test bindings::test_binding::creates_new ... ok test bindings::test_binding::case_sensitive_mismatch ... ok test bindings::test_binding::does_not_match_with_wrong_text ... ok test bindings::test_binding::equal ... ok test bindings::test_binding::match_with_fixed_pattern ... ok test bindings::test_binding::not_equal ... ok test bindings::test_bindings::add_from_yaml_notices_multiple_keywords ... ok test bindings::test_bindings::adds_binding ... ok test bindings::test_bindings::does_not_find_match_for_unmatching_kind ... ok test bindings::test_bindings::does_not_find_match_for_unmatching_pattern ... ok test bindings::test_bindings::finds_match_for_fixed_string_pattern ... ok test bindings::test_binding::match_with_regex ... ok test bindings::test_bindings::finds_match_for_regexp_pattern ... ok test bindings::test_bindings::has_no_bindings_initially ... ok test bindings::test_bindings::adds_from_yaml ... ok test bindings::test_bindings::typemap_must_match_pattern ... ok test bindings::test_bindings::two_matching_bindings ... ok test bindings::test_regex_from_simple_pattern::returns_boring_pattern_as_is ... ok test bindings::test_regex_from_simple_pattern::returns_empty_string_as_is ... ok test bindings::test_regex_from_simple_pattern::kindless_simple_pattern ... ok test bindings::test_regex_from_simple_pattern::returns_error_for_stray_closing_brace ... ok test bindings::test_regex_from_simple_pattern::returns_error_for_stray_closing_brace_before_capture ... ok test bindings::test_regex_from_simple_pattern::returns_error_for_stray_opening_brace ... ok test bindings::test_regex_from_simple_pattern::returns_error_for_stray_opening_brace_before_capture ... ok test bindings::test_regex_from_simple_pattern::returns_pattern_with_regexp_chars_escaped ... ok test bindings::test_regex_from_simple_pattern::simple_text_pattern ... ok test bindings::test_regex_from_simple_pattern::simple_word_pattern ... ok test bindings::test_regex_from_simple_pattern::typemap_and_pattern_kind_must_match ... ok test bindings::test_regex_from_simple_pattern::typemap_checked_on_pattern_parse_and_default_agrees ... ok test bindings::test_regex_from_simple_pattern::typemap_updated_on_pattern_parse_default ... ok test bindings::test_regex_from_simple_pattern::simple_number_pattern ... ok test bindings::test_regex_from_simple_pattern::typemap_updated_on_pattern_parse_explicit ... ok test bindings::test_regex_from_simple_pattern::typemap_used_when_kind_not_present ... ok test blockattr::test::empty_braces ... ok test blockattr::test::empty_string ... ok test blockattr::test::just_word ... ok test blockattr::test::open_brace_without_close ... ok test blockattr::test::parse_one_dotted_word ... ok test blockattr::test::parse_one_id ... ok test blockattr::test::parse_one_kv ... ok test bindings::test_regex_from_simple_pattern::simple_uint_pattern ... ok test blockattr::test::parse_one_kv_with_double_quotes ... ok test blockattr::test::parse_one_kv_with_single_quotes ... ok test blockattr::test::parse_one_word ... ok test blockattr::test::two_ids ... ok test blockattr::test::two_words ... ok test bindings::test_regex_from_simple_pattern::simple_int_pattern ... ok test codegen::test::verify_commentsafe_filter ... ok test codegen::test::verify_name_slugification ... ok test html::test_tag::can_self_close ... ok test html::test_tag::cannot_self_close ... ok test matches::test::returns_text ... ok test matches::test::returns_uncaptured ... ok test matches::test_partial_steps::different_captured_texts_dont_match ... ok test matches::test_partial_steps::different_uncaptured_texts_dont_match ... ok test matches::test_partial_steps::differently_captured_texts_dont_match ... ok test matches::test_partial_steps::differently_named_captured_texts_dont_match ... ok test matches::test_partial_steps::identical_captured_texts_match ... ok test matches::test_partial_steps::identical_uncaptured_texts_match ... ok test md::test::finds_block_classes ... ok test md::test::finds_embedded_files ... ok test md::test::finds_images ... ok test md::test::finds_no_blocks_in_empty_doc ... ok test md::test::finds_no_classes_when_no_blocks_have_them ... ok test md::test::finds_no_embedded_files_in_empty_doc ... ok test md::test::finds_no_images_in_empty_doc ... ok test md::test::finds_no_scenarios_in_empty_doc ... ok test md::test::finds_scenarios ... ok test md::test::loads_empty_doc ... ok test md::test::parses_auto_as_auto ... ok test md::test::parses_empty_as_error ... ok test md::test::parses_garbage_as_error ... ok test md::test::parses_no_as_no ... ok test md::test::parses_no_auto_newline_as_auto ... ok test md::test::parses_yes_as_yes ... ok test md::test_extract::returns_error_if_scenario_has_no_title ... ok test md::test_extract::returns_nothing_if_there_is_no_scenario ... ok test md::test_extract::returns_parent_section_with_scenario_snippet ... ok test md::test_extract::returns_scenario_if_there_is_one ... ok test md::test_extract::skips_scenarioless_deeper_headings ... ok test md::test_extract::skips_scenarioless_parent_heading ... ok test md::test_extract::skips_scenarioless_section_in_favour_of_same_level ... ok test metadata::test::full_meta ... ok test scenarios::filtertest::exclude_slow ... ok test scenarios::filtertest::exclude_unimportant_slow ... ok test scenarios::filtertest::include_all ... ok test scenarios::filtertest::include_fast ... ok test scenarios::filtertest::include_none ... ok test scenarios::test::adds_step ... ok test scenarios::test::has_no_steps_initially ... ok test scenarios::test::has_title ... ok test steps::test::fails_to_parse_and ... ok test steps::test::parses_and ... ok test steps::test::parses_given ... ok test steps::test::parses_given_with_extra_spaces ... ok test steps::test::parses_then ... ok test steps::test::parses_when ... ok test steps::test_steps_parser::empty_string ... ok test steps::test_steps_parser::preserve_nonascii_whitespace ... ok test steps::test_steps_parser::simple ... ok test steps::test_steps_parser::two_simple ... ok test templatespec::test::new_from_yaml ... ok test toc::test_numberer::numbering ... ok test toc::test_slugs::short_and_simple ... ok test toc::test_slugs::unique_for_identical_simple_headings ... ok test toc::test_toc::iterate ... ok test toc::test_toc::uses_given_slug ... ok test result: ok. 108 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s Running tests/bindings-ubm.rs (/workspace/cache/debug/deps/bindings_ubm-5deefc74ee7412f8) running 1 test test bindings_microbenchmark ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.99s Running unittests src/subplot.rs (/workspace/cache/debug/deps/subplot-512d799f3976eca2) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (/workspace/cache/debug/deps/subplot_build-8f5f5c36d87cad31) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/seq.rs (/workspace/cache/debug/deps/seq-b2757f76b4bf0a14) running 4 tests test no_arguments ... ok test not_a_number ... ok test more_than_one_number ... ok test one_number ... ok test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running unittests src/lib.rs (/workspace/cache/debug/deps/subplotlib-99da2f60d8e2adfa) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/files.rs (/workspace/cache/debug/deps/files-2b344c2ad134b7f5) running 7 tests test file_and_directory_removal ... ok test create_on_disk_files_from_embedded_files ... ok test file_equality ... ok test file_metadata ... ok test file_modification_time ... ok test file_contents ... ok test directories ... ok test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running tests/runcmd.rs (/workspace/cache/debug/deps/runcmd-79bc4adef59f278e) running 21 tests test check_stderr_is_not_exactly_something ... ok test check_stderr_is_exactly_as_wanted ... ok test check_stderr_doesn_t_match_regular_expressions ... ok test check_stderr_doesn_t_contain_sub_string ... ok test check_stderr_using_regular_expressions ... ok test check_stdout_doesn_t_contain_sub_string ... ok test check_stderr_using_sub_string_search ... ok test check_stdout_is_exactly_as_wanted ... ok test check_stdout_doesn_t_match_regular_expression ... ok test check_stdout_is_not_exactly_something ... ok test check_stdout_using_regular_expressions ... ok test check_stdout_using_sub_string_search ... ok test check_we_can_prepend_to__path ... ok test execution_in_a_sub_directory_does_not_affect_home ... ok test failed_execution ... ok test failed_execution_in_a_sub_directory ... ok test stdin_comes_from_a_named_file ... ok test successful_execution_in_a_sub_directory ... ok test stdin_contains_exactly ... ok test successful_execution ... ok test setting_and_clearing_of_environment_variables ... ok test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s Running tests/subplot-codegen.rs (/workspace/cache/debug/deps/subplot_codegen-98bc50294b582063) running 29 tests test cleanup_functions_get_called_on_failure__python_ ... ok test capture_using_simple_patterns ... ok test code_generator_gives_an_error_if_input_document_lacks_title ... ok test embedded_file_name_didn_t_match ... ok test all_the_keywords ... ok test examples_are_not_files ... ok test cleanup_functions_gets_called_on_success__python_ ... ok test capture_using_regular_expressions ... ok test missing_functions_file ... ok test empty_lines_in_scenarios ... ok test misuse_of_continuation_keywords ... ok test files_not_in_current_working_directory ... ok test no_scenarios_means_codegen_fails ... ok test no_template_means_you_can_docgen_but_not_codegen ... ok test lowest_level_heading_is_name_of_scenario ... ok test next_heading_at_same_level_starts_new_scenario ... ok test next_heading_at_higher_level_starts_new_scenario ... ok test running_only_chosen_scenarios_with_python ... ok test recall_values_for_use_in_later_steps ... ok test simple_patterns_with_regex_metacharacters__forbidden_case ... ok test steps_which_do_not_case_sensitively_match_sensitive_bindings_do_not_work ... ok test simple_patterns_with_regex_metacharacters__allowed_case ... ok test steps_which_do_not_match_bindings_do_not_work ... ok test steps_which_match_more_than_one_binding_do_not_work ... ok test smoke_test ... ok test set_environment_variables_in_generated_test_programs ... ok test subplot_accepts_title_and_headings_with_inline_markup ... ok test subheadings_don_t_start_new_scenario ... ok test temporary_files_in_scenarios_in_python ... ok test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.48s Running tests/subplot-diagrams.rs (/workspace/cache/debug/deps/subplot_diagrams-5a9057ef2d14a445) running 4 tests test pikchr ... ok test dot ... ok test roadmap ... ok test plantuml ... ok test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.80s Running tests/subplot-docgen.rs (/workspace/cache/debug/deps/subplot_docgen-0410c187f0d58644) running 30 tests test attempt_to_use_definition_list ... ok test bad__add_newline__value ... ok test bindings_file_strictness___given_when_then ... ok test bindings_file_strictness___unknown_field ... ok test class_name_validation ... ok test date_given_on_command_line ... ok test document_generator_gives_an_error_if_input_document_lacks_title ... ok test date_given_in_metadata ... ok test dot ... ok test embedded_css ... ok test examples_may_be_unused ... ok test extract_embedded_file ... ok test fail_if_embedded_file_isn_t_used ... ok test css_urls ... ok test fail_if_two_filenames_only_differ_in_case ... ok test missing_bindings_file ... ok test multiple_markdown_files ... ok test named_code_blocks_must_have_an_appropriate_class ... ok test indented_scenario_steps_are_not_allowed ... ok test no_date_anywhere ... ok test pikchr ... ok test no_template_means_you_can_docgen_but_not_codegen ... ok test files_not_in_current_working_directory ... ok test scenario_before_the_first_heading ... ok test empty_lines_in_scenarios ... ok test roadmap ... ok test title_markup ... ok test subplot_accepts_title_and_headings_with_inline_markup ... ok test smoke_test ... ok test plantuml ... ok test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.74s Running tests/subplot-extract.rs (/workspace/cache/debug/deps/subplot_extract-4d0ad51039c0e237) running 1 test test extract_embedded_files ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running tests/subplot-metadata.rs (/workspace/cache/debug/deps/subplot_metadata-f83680a2906aa9fc) running 5 tests test list_embedded_files ... ok test duplicate_scenario_titles ... ok test scenario_titles ... ok test extracting_metadata_from_a_document ... ok test files_not_in_current_working_directory ... ok test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s Running tests/subplot-others.rs (/workspace/cache/debug/deps/subplot_others-9bece45cabff038e) running 68 tests test bindings_file_strictness___given_when_then ... ok test bad__add_newline__value ... ok test attempt_to_use_definition_list ... ok test bindings_file_strictness___unknown_field ... ok test class_name_validation ... ok test all_the_keywords ... ok test capture_using_regular_expressions ... ok test code_generator_gives_an_error_if_input_document_lacks_title ... ok test capture_using_simple_patterns ... ok test date_given_in_metadata ... ok test date_given_on_command_line ... ok test css_urls ... ok test document_generator_gives_an_error_if_input_document_lacks_title ... ok test cleanup_functions_get_called_on_failure__python_ ... ok test duplicate_scenario_titles ... ok test dot ... ok test embedded_file_name_didn_t_match ... ok test examples_are_not_files ... ok test cleanup_functions_gets_called_on_success__python_ ... ok test examples_may_be_unused ... ok test extract_embedded_file ... ok test extract_embedded_file__automatically_add_missing_newline ... ok test extract_embedded_file__by_default_add_missing_newline ... ok test extract_embedded_file__by_default_do_not_add_a_second_newline ... ok test extract_embedded_file__do_not_add_missing_newline ... ok test extract_embedded_file__do_not_automatically_add_second_newline ... ok test extract_embedded_file__explicitly_add_missing_newline ... ok test extract_embedded_file__explicitly_add_second_newline ... ok test extract_embedded_files ... ok test fail_if_embedded_file_isn_t_used ... ok test fail_if_the_same_filename_is_used_twice ... ok test embedded_css ... ok test fail_if_two_filenames_only_differ_in_case ... ok test extracting_metadata_from_a_document ... ok test indented_scenario_steps_are_not_allowed ... ok test list_embedded_files ... ok test missing_bindings_file ... ok test missing_functions_file ... ok test empty_lines_in_scenarios ... ok test misuse_of_continuation_keywords ... ok test multiple_markdown_files ... ok test files_not_in_current_working_directory ... ok test named_code_blocks_must_have_an_appropriate_class ... ok test no_date_anywhere ... ok test no_scenarios_means_codegen_fails ... ok test lowest_level_heading_is_name_of_scenario ... ok test pikchr ... ok test no_template_means_you_can_docgen_but_not_codegen ... ok test next_heading_at_same_level_starts_new_scenario ... ok test next_heading_at_higher_level_starts_new_scenario ... ok test roadmap ... ok test recall_values_for_use_in_later_steps ... ok test scenario_before_the_first_heading ... ok test scenario_titles ... ok test running_only_chosen_scenarios_with_python ... ok test simple_patterns_with_regex_metacharacters__forbidden_case ... ok test simple_patterns_with_regex_metacharacters__allowed_case ... ok test steps_which_do_not_case_sensitively_match_sensitive_bindings_do_not_work ... ok test steps_which_do_not_match_bindings_do_not_work ... ok test steps_which_match_more_than_one_binding_do_not_work ... ok test smoke_test ... ok test set_environment_variables_in_generated_test_programs ... ok test subplot_accepts_title_and_headings_with_inline_markup ... ok test title_markup ... ok test use_embedded_file ... ok test subheadings_don_t_start_new_scenario ... ok test temporary_files_in_scenarios_in_python ... ok test plantuml ... ok test result: ok. 68 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.01s Running tests/subplotlib.rs (/workspace/cache/debug/deps/subplotlib-d564d755c75e9358) running 3 tests test embedded_files ... ok test data_directory ... ok test fundamentals ... ok test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (/workspace/cache/debug/deps/subplotlib_derive-ce3e4a408d37bb18) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests subplot running 6 tests test src/bindings.rs - bindings::BindingImpl::cleanup (line 163) ... ignored test src/bindings.rs - bindings::BindingImpl::function (line 151) ... ignored test src/bindings.rs - bindings::BindingImpl::new (line 137) ... ignored test src/diagrams.rs - diagrams::PikchrMarkup (line 116) ... ok test src/diagrams.rs - diagrams::DotMarkup (line 149) ... ok test src/diagrams.rs - diagrams::PlantumlMarkup (line 198) ... ok test result: ok. 3 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 3.56s Doc-tests subplot_build running 1 test test subplot-build/src/lib.rs - codegen (line 27) ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.51s Doc-tests subplotlib running 70 tests test subplotlib/src/file.rs - file::SubplotDataFile (line 20) ... ok test subplotlib/src/prelude.rs - prelude (line 6) ... ok test subplotlib/src/prelude.rs - prelude::step (line 100) ... ok test subplotlib/src/prelude.rs - prelude::step (line 73) ... ok test subplotlib/src/file.rs - file::SubplotDataFile::new (line 76) ... ok test subplotlib/src/file.rs - file::SubplotDataFile::name (line 105) ... ok test subplotlib/src/file.rs - file::SubplotDataFile::data (line 120) ... ok test subplotlib/src/prelude.rs - prelude::throws (line 26) ... ok test subplotlib/src/prelude.rs - prelude::throws (line 39) ... ok test subplotlib/src/steplibrary/datadir.rs - steplibrary::datadir::datadir_has_enough_space::call (line 160) ... ignored test subplotlib/src/steplibrary/datadir.rs - steplibrary::datadir::datadir_has_enough_space_megabytes::call (line 171) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::create_from_embedded::call (line 55) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::create_from_embedded_with_other_name::call (line 68) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::create_from_text::call (line 131) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_and_embedded_file_do_not_match::call (line 380) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_and_embedded_file_match::call (line 354) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_contains::call (line 252) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_do_not_match::call (line 328) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_does_not_exist::call (line 207) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_doesnt_contain::call (line 268) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_exists::call (line 187) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_match::call (line 301) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_matches_regex::call (line 285) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::has_different_metadata::call (line 455) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::has_remembered_metadata::call (line 416) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::make_directory::call (line 520) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::mtime_is_ancient::call (line 504) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::mtime_is_recent::call (line 488) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::only_these_exist::call (line 233) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::path_does_not_exist::call (line 570) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::path_exists::call (line 553) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::path_is_empty::call (line 589) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::path_is_not_empty::call (line 607) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::remember_metadata::call (line 142) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::remove_directory::call (line 530) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::remove_empty_directory::call (line 541) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::remove_file::call (line 92) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::touch::call (line 166) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::touch_with_timestamp::call (line 104) ... ignored test subplotlib/src/steplibrary.rs - steplibrary (line 10) ... ok test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::exit_code_is::call (line 403) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::exit_code_is_nonzero::call (line 442) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::exit_code_is_not::call (line 419) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::exit_code_is_zero::call (line 431) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::helper_script::call (line 227) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::helper_srcdir_path::call (line 241) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::run::call (line 254) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::run_in::call (line 271) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::set_environment_variable::call (line 677) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stderr_contains::call (line 594) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stderr_doesnt_contain::call (line 607) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stderr_doesnt_match_regex::call (line 663) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stderr_is::call (line 542) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stderr_isnt::call (line 555) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stderr_matches_regex::call (line 649) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stdin_from_file::call (line 480) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stdin_is::call (line 502) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stdout_contains::call (line 568) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stdout_doesnt_contain::call (line 581) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stdout_doesnt_match_regex::call (line 635) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stdout_is::call (line 516) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stdout_isnt::call (line 529) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stdout_matches_regex::call (line 621) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::try_to_run::call (line 285) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::try_to_run_in::call (line 298) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::unset_environment_variable::call (line 691) ... ignored test subplotlib/src/scenario.rs - scenario::Scenario (line 305) ... ok test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::Runcmd::join_paths (line 155) ... ok test subplotlib/src/step.rs - step::ScenarioStep (line 24) ... ok test subplotlib/src/utils.rs - utils::base64_decode (line 9) ... ok test result: ok. 14 passed; 0 failed; 56 ignored; 0 measured; 0 filtered out; finished in 1.65s Doc-tests subplotlib_derive running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s /workspace/src/inst/subplot --resources /workspace/src/share codegen subplot.subplot -o test.py --template python [32m INFO[0m Starting Subplot [32m INFO[0m Subplot finished successfully rm -f test.log python3 test.py --log test.log --env SUBPLOT_DIR=/workspace/src/inst srcdir /workspace/src datadir /tmp/tmp5h77ytj9 scenario: Use embedded file step: given file numbered-lines.txt step: given file not-numbered-lines.txt scenario: Fail if the same filename is used twice step: given file onefiletwice.md step: given an installed subplot step: when I try to run subplot docgen onefiletwice.md -o onefiletwice.html step: then command fails step: then file onefiletwice.html does not exist cleanup: given an installed subplot scenario: Extract embedded file, by default add missing newline step: given file default-without-newline.txt step: then default-without-newline.txt ends in one newline scenario: Extract embedded file, by default do not add a second newline step: given file default-has-newline.txt step: then default-has-newline.txt ends in one newline scenario: Empty lines in scenarios step: given file emptylines.subplot step: given file emptylines.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I run subplot docgen emptylines.subplot -o emptylines.html step: then file emptylines.html exists step: when I run subplot codegen --run emptylines.subplot -o test.py step: then scenario "Simple" was run step: then step "given precondition foo" was run step: then step "when I do bar" was run step: then step "then bar was done" was run step: then command is successful cleanup: given an installed subplot scenario: Running only chosen scenarios with Python step: given file twoscenarios-python.subplot step: given file twoscenarios-python.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I run subplot codegen twoscenarios-python.subplot -o test.py step: when I run python3 test.py on step: then scenario "One" was run step: then scenario "Two" was not run step: then command is successful cleanup: given an installed subplot scenario: No scenarios means codegen fails step: given file noscenarios.subplot step: given file noscenarios.md step: given an installed subplot step: when I try to run subplot codegen noscenarios.subplot -o test.py step: then command fails step: then stderr contains "no scenarios were found" cleanup: given an installed subplot scenario: Steps which do not case-sensitively match sensitive bindings do not work step: given file casemismatch.subplot step: given file casemismatch.md step: given file badbindings.yaml step: given an installed subplot step: when I try to run subplot codegen --run casemismatch.subplot -o test.py step: then command fails cleanup: given an installed subplot scenario: Temporary files in scenarios in Python step: given file tmpdir.subplot step: given file tmpdir.md step: given file tmpdir.yaml step: given file tmpdir.py step: given an installed subplot step: when I run subplot codegen --run tmpdir.subplot -o test.py step: then command is successful step: then scenario "TMPDIR" was run step: then step "then TMPDIR is set" was run cleanup: given an installed subplot scenario: Extract embedded file, automatically add missing newline step: given file auto-without-newline.txt step: then auto-without-newline.txt ends in one newline scenario: Missing bindings file step: given file missing-binding.subplot step: given file missing-binding.md step: given an installed subplot step: when I try to run subplot docgen missing-binding.subplot -o foo.html step: then command fails step: then stderr contains "could not be found" step: then stderr contains "missing-binding.yaml" cleanup: given an installed subplot scenario: Misuse of continuation keywords step: given file continuationmisuse.subplot step: given file continuationmisuse.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I try to run subplot codegen --run continuationmisuse.subplot -o test.py step: then command fails cleanup: given an installed subplot scenario: All the keywords step: given file allkeywords.subplot step: given file allkeywords.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I run subplot codegen --run allkeywords.subplot -o test.py step: then scenario "All keywords" was run step: then step "given precondition foo" was run step: then step "when I do bar" was run step: then step "then bar was done" was run step: then command is successful cleanup: given an installed subplot scenario: Date given in metadata step: given file metadate.subplot step: given file metadate.md step: given an installed subplot step: when I run subplot docgen metadate.subplot -o metadate.html step: when I run cat metadate.html step: then file metadate.html exists step: then file metadate.html contains "<title>The Fabulous Title</title>" step: then file metadate.html contains "Alfred Pennyworth" step: then file metadate.html contains "Geoffrey Butler" step: then file metadate.html contains "WIP" cleanup: given an installed subplot scenario: Bindings file strictness - given when then step: given file badbindingsgwt.subplot step: given file badbindingsgwt.md step: given file badbindingsgwt.yaml step: given an installed subplot step: when I try to run subplot docgen --output ignored.html badbindingsgwt.subplot step: then command fails step: then stderr contains "binding has more than one keyword" cleanup: given an installed subplot scenario: PlantUML step: given file plantuml.subplot step: given file plantuml.md step: given file b.yaml step: given an installed subplot step: when I run subplot docgen plantuml.subplot -o plantuml.html step: then file plantuml.html matches regex /src="data:image/svg\\+xml;base64,/ cleanup: given an installed subplot scenario: Next heading at same level starts new scenario step: given file samelevelisnewscenario.subplot step: given file samelevelisnewscenario.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I run subplot codegen --run samelevelisnewscenario.subplot -o test.py step: then scenario "heading 1.1.1" was run step: then scenario "heading 1.1.2" was run step: then command is successful cleanup: given an installed subplot scenario: Subheadings don't start new scenario step: given file subisnotnewscenario.subplot step: given file subisnotnewscenario.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I run subplot codegen --run subisnotnewscenario.subplot -o test.py step: then scenario "heading 1.1a" was run step: then command is successful cleanup: given an installed subplot scenario: List embedded files step: given file two-embedded.subplot step: given file two-embedded.md step: given an installed subplot step: when I run subplot metadata --merciful two-embedded.subplot step: then stdout contains "foo.txt" step: then stdout contains "bar.yaml" cleanup: given an installed subplot scenario: Title markup step: given file title-markup.subplot step: given file title-markup.md step: given an installed subplot step: when I run subplot docgen title-markup.subplot -o foo.html step: then file foo.html exists cleanup: given an installed subplot scenario: Duplicate scenario titles step: given file duplicate-scenario-titles.subplot step: given file duplicate-scenario-titles.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I try to run subplot metadata duplicate-scenario-titles.subplot step: then command fails step: then stderr contains "duplicate" cleanup: given an installed subplot scenario: Multiple markdown files step: given file multimd.subplot step: given file md1.md step: given file md2.md step: given an installed subplot step: when I run subplot docgen multimd.subplot -o multimd.html step: when I run cat multimd.html step: then file multimd.html exists step: then file multimd.html contains "<title>The Fabulous Title</title>" step: then file multimd.html contains "First markdown file." step: then file multimd.html contains "Second markdown file." cleanup: given an installed subplot scenario: Extract embedded file step: given file embedded.subplot step: given file embedded.md step: given an installed subplot step: when I run subplot docgen --merciful embedded.subplot -o foo.html step: then file foo.html exists step: then file foo.html matches regex /embedded\\.txt/ cleanup: given an installed subplot scenario: Dot step: given file dot.subplot step: given file dot.md step: given file b.yaml step: given an installed subplot step: when I run subplot docgen dot.subplot -o dot.html step: then file dot.html matches regex /src="data:image/svg\\+xml;base64,/ cleanup: given an installed subplot scenario: Extract embedded file, do not automatically add second newline step: given file auto-has-newline.txt step: then auto-has-newline.txt ends in one newline scenario: Subplot accepts title and headings with inline markup step: given file fancytitle.subplot step: given file fancytitle.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I try to run subplot docgen fancytitle.subplot -o foo.md step: then command is successful step: when I try to run subplot codegen fancytitle.subplot -o foo.md step: then command is successful cleanup: given an installed subplot scenario: No template means you can docgen but not codegen step: given file notemplate.subplot step: given file notemplate.md step: given an installed subplot step: when I run subplot docgen notemplate.subplot -o notemplate.html step: then file notemplate.html exists step: when I try to run subplot codegen notemplate.subplot -o test.py step: then command fails step: then stderr contains "document has no template" cleanup: given an installed subplot scenario: Set environment variables in generated test programs step: given file env.subplot step: given file env.md step: given file env.yaml step: given file env.py step: given an installed subplot step: when I run subplot codegen env.subplot -o test.py step: when I try to run python3 test.py step: then command fails step: when I try to run python3 test.py --env FOO=foo step: then command fails step: when I try to run python3 test.py --env FOO=bar step: then command is successful cleanup: given an installed subplot scenario: Steps which do not match bindings do not work step: given file nobinding.subplot step: given file nobinding.md step: given file badbindings.yaml step: given an installed subplot step: when I try to run subplot codegen --run nobinding.subplot -o test.py step: then command fails cleanup: given an installed subplot scenario: Bad "add-newline" value step: given an installed subplot step: given file add-newline.subplot step: given file add-newline.md step: when I try to run subplot docgen add-newline.subplot -o /dev/null step: then command fails step: then stderr contains "ERROR add-newline.md:1:1: value of add-newline attribute is not understood: xyzzy" cleanup: given an installed subplot scenario: Fail if two filenames only differ in case step: given file casediff.md step: given an installed subplot step: when I try to run subplot docgen casediff.md -o casediff.html step: then command fails step: then file casediff.html does not exist cleanup: given an installed subplot scenario: Examples may be unused step: given file unusedexample.subplot step: given file unusedexample.md step: given an installed subplot step: when I try to run subplot docgen --merciful unusedexample.subplot -o unusedexample.html step: then command is successful step: then file unusedexample.html exists step: then stderr doesn't contain "thisisnotused.txt" cleanup: given an installed subplot scenario: Cleanup functions get called on failure (Python) step: given file cleanup-fail-python.subplot step: given file cleanup-fail-python.md step: given file cleanup.yaml step: given file cleanup.py step: given an installed subplot step: when I try to run subplot codegen --run cleanup-fail-python.subplot -o test.py step: then scenario "Cleanup" was run step: then step "given foo" was run, and then step "given bar" step: then cleanup for "given bar" was run, and then for "given foo" step: then cleanup for "given failure" was not run step: then command fails cleanup: given an installed subplot scenario: Attempt to use definition list step: given an installed subplot step: given file dl.subplot step: given file dl.md step: when I try to run subplot docgen dl.subplot -o /dev/null step: then command fails step: then stderr contains "ERROR dl.md:3:1: attempt to use definition lists in Markdown" cleanup: given an installed subplot scenario: Roadmap step: given file roadmap.subplot step: given file roadmap.md step: given file b.yaml step: given an installed subplot step: when I run subplot docgen roadmap.subplot -o roadmap.html step: then file roadmap.html matches regex /src="data:image/svg\\+xml;base64,/ cleanup: given an installed subplot scenario: Code generator gives an error if input document lacks title step: given file notitle.subplot step: given file notitle.md step: given an installed subplot step: when I try to run subplot codegen --run notitle.subplot -o test.py step: then command fails cleanup: given an installed subplot scenario: Document generator gives an error if input document lacks title step: given file notitle.subplot step: given file notitle.md step: given an installed subplot step: when I try to run subplot docgen notitle.subplot -o foo.md step: then command fails cleanup: given an installed subplot scenario: Capture using regular expressions step: given file regex.subplot step: given file regex.md step: given file regex.yaml step: given file capture.py step: given an installed subplot step: when I run subplot codegen --run regex.subplot -o test.py step: then scenario "Regex" was run step: then step "given I am Tomjon" was run step: then stdout contains "function got argument name as Tomjon" step: then command is successful cleanup: given an installed subplot scenario: No date anywhere step: given file dateless.subplot step: given file dateless.md step: given file dateless.md has modification time 2020-02-26 07:53:17 step: given an installed subplot step: when I run subplot docgen dateless.subplot -o mtime.html step: then file mtime.html exists step: then file mtime.html contains "<title>The Fabulous Title</title>" step: then file mtime.html contains "Alfred Pennyworth" step: then file mtime.html contains "Geoffrey Butler" step: then file mtime.html contains "2020-02-26 07:53" cleanup: given an installed subplot scenario: Bindings file strictness - unknown field step: given file badbindingsuf.subplot step: given file badbindingsuf.md step: given file badbindingsuf.yaml step: given an installed subplot step: when I try to run subplot docgen --output ignored.html badbindingsuf.subplot step: then command fails step: then stderr contains "Unknown field `function`" cleanup: given an installed subplot scenario: Embedded CSS step: given file embedded-css.subplot step: given file embedded-css.md step: given file embedded-css.css step: given file b.yaml step: given an installed subplot step: when I run subplot docgen embedded-css.subplot -o foo.html step: then file foo.html contains "silly: property;" cleanup: given an installed subplot scenario: Missing functions file step: given file missing-functions.subplot step: given file missing-functions.md step: given file b.yaml step: given an installed subplot step: when I try to run subplot codegen --run missing-functions.subplot -o foo.py step: then command fails step: then stderr contains "could not be found" step: then stderr contains "missing-functions.py" cleanup: given an installed subplot scenario: Fail if embedded file isn't used step: given file unusedfile.subplot step: given file unusedfile.md step: given an installed subplot step: when I try to run subplot docgen --merciful unusedfile.subplot -o unusedfile.html step: then command is successful step: then file unusedfile.html exists step: then stderr contains "thisisnotused.txt" cleanup: given an installed subplot scenario: Indented scenario steps are not allowed step: given file indented-step.subplot step: given file indented-step.md step: given file b.yaml step: given an installed subplot step: when I try to run subplot docgen indented-step.subplot -o foo.html step: then command fails step: then stderr contains "indented" cleanup: given an installed subplot scenario: Recall values for use in later steps step: given file values.subplot step: given file values.md step: given file values.yaml step: given file values.py step: given an installed subplot step: when I run subplot codegen values.subplot -o test.py step: when I run python3 test.py step: then command is successful cleanup: given an installed subplot scenario: Extract embedded file, explicitly add second newline step: given file add-has-newline.txt step: then add-has-newline.txt ends in two newlines scenario: Simple patterns with regex metacharacters: allowed case step: given file confusedbutok.subplot step: given file confusedbutok.md step: given file confusedbutok.yaml step: given file capture.py step: given an installed subplot step: when I run subplot codegen --run confusedbutok.subplot -o test.py step: then command is successful cleanup: given an installed subplot scenario: Simple patterns with regex metacharacters: forbidden case step: given file confusedpattern.subplot step: given file confusedpattern.md step: given file confusedpattern.yaml step: given file capture.py step: given an installed subplot step: when I try to run subplot codegen --run confusedpattern.subplot -o test.py step: then command fails step: then stderr contains "simple pattern contains regex" cleanup: given an installed subplot scenario: Cleanup functions gets called on success (Python) step: given file cleanup-success-python.subplot step: given file cleanup-success-python.md step: given file cleanup.yaml step: given file cleanup.py step: given an installed subplot step: when I run subplot codegen --run cleanup-success-python.subplot -o test.py step: then scenario "Cleanup" was run step: then step "given foo" was run, and then step "given bar" step: then cleanup for "given bar" was run, and then for "given foo" step: then command is successful cleanup: given an installed subplot scenario: Pikchr step: given file pikchr.subplot step: given file pikchr.md step: given an installed subplot step: when I run subplot docgen pikchr.subplot -o pikchr.html step: then file pikchr.html matches regex /src="data:image/svg\\+xml;base64,/ cleanup: given an installed subplot scenario: Extract embedded file, do not add missing newline step: given file no-adding-without-newline.txt step: then no-adding-without-newline.txt does not end in a newline scenario: Date given on command line step: given file dateless.subplot step: given file dateless.md step: given an installed subplot step: when I run subplot docgen dateless.subplot -o dateoption.html --date=FANCYDATE step: then file dateoption.html exists step: then file dateoption.html contains "<title>The Fabulous Title</title>" step: then file dateoption.html contains "Alfred Pennyworth" step: then file dateoption.html contains "Geoffrey Butler" step: then file dateoption.html contains "FANCYDATE" cleanup: given an installed subplot scenario: Named code blocks must have an appropriate class step: given file named-code-blocks-appropriate.subplot step: given file named-code-blocks-appropriate.md step: given file b.yaml step: given an installed subplot step: when I try to run subplot docgen named-code-blocks-appropriate.subplot -o foo.html step: then command fails step: then stderr contains "#example-1 at named-code-blocks-appropriate.md:7:1" step: then stderr doesn't contain "example-2" step: then stderr doesn't contain "example-3" cleanup: given an installed subplot scenario: Steps which match more than one binding do not work step: given file twobindings.subplot step: given file twobindings.md step: given file twobindings.yaml step: given file a_function.py step: given an installed subplot step: when I try to run subplot codegen --run twobindings.subplot -o test.py step: then command fails step: then stderr contains "xyzzy" step: then stderr contains "plugh" cleanup: given an installed subplot scenario: Embedded file name didn't match step: given file badfilename.subplot step: given file badfilename.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I try to run subplot codegen --run badfilename.md -o test.py step: then command fails cleanup: given an installed subplot scenario: Class name validation step: given file unknown-class-name.subplot step: given file unknown-class-name.md step: given file known-class-name.subplot step: given file known-class-name.md step: given file b.yaml step: given an installed subplot step: when I try to run subplot docgen unknown-class-name.subplot -o unknown-class-name.html step: then command fails step: then file unknown-class-name.html does not exist step: then stderr contains "Unknown classes found in the document: foobar" step: when I run subplot docgen known-class-name.subplot -o known-class-name.html step: then file known-class-name.html exists cleanup: given an installed subplot scenario: Smoke test step: given file simple.subplot step: given file simple.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I run subplot docgen simple.subplot -o simple.html step: then file simple.html exists step: when I run subplot codegen --run simple.subplot -o test.py step: then scenario "Simple" was run step: then step "given precondition foo" was run step: then step "when I do bar" was run step: then step "then bar was done" was run step: then command is successful cleanup: given an installed subplot scenario: Lowest level heading is name of scenario step: given file scenarioislowest.subplot step: given file scenarioislowest.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I run subplot codegen --run scenarioislowest.subplot -o test.py step: then scenario "heading 1.1.1" was run step: then command is successful cleanup: given an installed subplot scenario: Next heading at higher level starts new scenario step: given file higherisnewscenario.subplot step: given file higherisnewscenario.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I run subplot codegen --run higherisnewscenario.subplot -o test.py step: then scenario "heading 1.1.1" was run step: then scenario "heading 1.2" was run step: then command is successful cleanup: given an installed subplot scenario: Files not in current working directory step: given file x/simple.subplot from simple.subplot step: given file x/simple.md from simple.md step: given file x/b.yaml from b.yaml step: given file x/f.py from f.py step: given an installed subplot step: when I run subplot metadata x/simple.subplot step: then command is successful step: when I run subplot codegen x/simple.subplot -o test.py step: then file test.py exists step: when I run subplot docgen x/simple.subplot -o simple.html step: then file simple.html exists cleanup: given an installed subplot scenario: CSS URLs step: given file css-urls.subplot step: given file css-urls.md step: given file b.yaml step: given an installed subplot step: when I run subplot docgen css-urls.subplot -o foo.html step: then file foo.html contains "https://example.com/flushing.css" cleanup: given an installed subplot scenario: Scenario before the first heading step: given an installed subplot step: given file scenario-before-heading.subplot step: given file scenario-before-heading.md step: when I try to run subplot docgen scenario-before-heading.subplot -o /dev/null step: then command fails step: then stderr contains "ERROR scenario-before-heading.md:1:1: first scenario is before first heading" cleanup: given an installed subplot scenario: Examples are not files step: given file examplesnotfiles.subplot step: given file examplesnotfiles.md step: given an installed subplot step: when I try to run subplot codegen examplesnotfiles.subplot -t python -o examplesnotfiles.html step: then command fails step: then file examplesnotfiles.html does not exist step: then stderr contains "thisisanexample.txt" cleanup: given an installed subplot scenario: Extract embedded files step: given file embedded-file.subplot step: given file embedded-file.md step: given file expected.txt step: given an installed subplot step: when I run subplot extract --merciful embedded-file.subplot foo.txt -d . step: then files foo.txt and expected.txt match cleanup: given an installed subplot scenario: Extracting metadata from a document step: given file images.subplot step: given file images.md step: given file b.yaml step: given file other.yaml step: given file f.py step: given file other.py step: given file expected.json step: given an installed subplot step: when I run subplot metadata images.subplot step: then stdout contains "source: images.md" step: then stdout contains "source: b.yaml" step: then stdout contains "source: other.yaml" step: then stdout contains "source: f.py" step: then stdout contains "source: other.py" step: then stdout contains "source: image.gif" step: then stdout contains "bindings: b.yaml" step: then stdout contains "bindings: other.yaml" step: then stdout contains "functions[python]: f.py" step: when I run subplot metadata images.subplot -o json step: then JSON output matches expected.json cleanup: given an installed subplot scenario: Extract embedded file, explicitly add missing newline step: given file add-without-newline.txt step: then add-without-newline.txt ends in one newline scenario: Capture using simple patterns step: given file simplepattern.subplot step: given file simplepattern.md step: given file simplepattern.yaml step: given file capture.py step: given an installed subplot step: when I run subplot codegen --run simplepattern.subplot -o test.py step: then scenario "Simple pattern" was run step: then step "given I am Tomjon" was run step: then stdout contains "function got argument name as Tomjon" step: then command is successful cleanup: given an installed subplot scenario: Scenario titles step: given file scenario-titles.subplot step: given file scenario-titles.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I run subplot metadata scenario-titles.subplot step: then stdout contains "My fun scenario title" cleanup: given an installed subplot OK, all scenarios finished successfully cd examples/muck && /workspace/src/inst/subplot --resources /workspace/src/share codegen muck.subplot --run --output test.py [32m INFO[0m Starting Subplot srcdir /workspace/src/examples/muck datadir /tmp/tmphxa67_19 scenario: Basic object handling step: given a fresh Muck server step: given I am Tomjon step: when I do POST /res with {"foo": "bar"} step: then response code is 201 step: then header Muck-Id is ID step: then header Muck-Revision is REV1 step: when I do GET /res with Muck-Id: {ID} step: then response code is 200 step: then header Muck-Revision matches {REV1} step: then body matches {"foo": "bar"} step: when I do PUT /res with Muck-Id: {ID}, Muck-Revision: {REV1}, and body {"foo":"yo"} step: then response code is 200 step: then header Muck-Revision is {REV2} step: then revisions {REV1} and {REV2} are different step: when I do PUT /res with Muck-Id: {ID}, Muck-Revision: {REV1}, and body {"foo":"yo"} step: then response code is 409 step: when I do GET /res with Muck-Id: {ID} step: then response code is 200 step: then header Muck-Revision matches {REV2} step: then body matches {"foo": "yo"} step: when I do DELETE /res with Muck-Id: {ID} step: then response code is 200 step: when I do GET /res with Muck-Id: {ID} step: then response code is 404 scenario: Accessing someone else's data step: given a fresh Muck server step: given I am Tomjon step: when I do POST /res with {"foo": "bar"} step: then header Muck-Id is ID step: then header Muck-Revision is REV1 step: when I do GET /res with Muck-Id: {ID} step: then response code is 200 step: then header Muck-Revision matches {REV1} step: then body matches {"foo": "bar"} step: given I am Verence step: when I do GET /res with Muck-Id: {ID} step: then response code is 404 scenario: Restarting Muck step: given a fresh Muck server step: given I am Tomjon, with super capability step: when I do POST /res with {"foo": "bar"} step: then header Muck-Id is ID step: then header Muck-Revision is REV1 step: when I restart Muck step: when I do GET /res with Muck-Id: {ID} step: then response code is 200 step: then header Muck-Revision matches {REV1} step: then body matches {"foo": "bar"} scenario: Updating someone else's data step: given a fresh Muck server step: given I am Tomjon step: when I do POST /res with {"foo": "bar"} step: then header Muck-Id is ID step: then header Muck-Revision is REV1 step: given I am Verence step: when I do PUT /res with Muck-Id: {ID}, Muck-Revision: {REV1}, and body {"foo":"yo"} step: then response code is 404 scenario: Deleting someone else's data step: given a fresh Muck server step: given I am Tomjon step: when I do POST /res with {"foo": "bar"} step: then header Muck-Id is ID step: then header Muck-Revision is REV1 step: given I am Verence step: when I do DELETE /res with Muck-Id: {ID} step: then response code is 404 OK, all scenarios finished successfully [32m INFO[0m Subplot finished successfully if [ "--offline" = "" ] ; then \ cd examples/website && \ /workspace/src/inst/subplot --resources /workspace/src/share codegen website.subplot --run --output test.py; \ fi cd examples/seq && cargo test -- Compiling zerocopy v0.8.26 Compiling thiserror v2.0.12 Compiling serde v1.0.219 Compiling crossbeam-utils v0.8.21 Compiling ahash v0.8.12 Compiling regex-automata v0.4.9 Compiling encoding_rs v0.8.35 Compiling pest v2.8.1 Compiling doc-comment v0.3.3 Compiling anyhow v1.0.98 Compiling hashbrown v0.14.5 Compiling crossbeam-epoch v0.9.18 Compiling getrandom v0.2.16 Compiling libm v0.2.15 Compiling globset v0.4.16 Compiling hashlink v0.9.1 Compiling rand_core v0.6.4 Compiling pest_meta v2.8.1 Compiling crossbeam-deque v0.8.6 Compiling serde_path_to_error v0.1.17 Compiling ppv-lite86 v0.2.21 Compiling serde_json v1.0.142 Compiling ignore v0.4.23 Compiling yaml-rust2 v0.9.0 Compiling rand_chacha v0.3.1 Compiling pest_generator v2.8.1 Compiling pulldown-cmark v0.13.0 Compiling tempfile v3.20.0 Compiling pest_derive v2.8.1 Compiling yaml-rust2 v0.10.3 Compiling humansize v2.1.3 Compiling pikchr v0.1.4 Compiling globwalk v0.9.1 Compiling marked-yaml v0.7.2 Compiling rand v0.8.5 Compiling subplot v0.13.0 (/workspace/src) Compiling regex v1.11.1 Compiling memchr v2.7.5 Compiling tera v1.20.0 Compiling aho-corasick v1.1.3 Compiling roadmap v0.7.0 Compiling marked-yaml v0.8.0 Compiling time-macros v0.2.22 Compiling once_cell v1.21.3 Compiling time v0.3.41 Compiling subplotlib-derive v0.13.0 (/workspace/src/subplotlib-derive) Compiling subplotlib v0.13.0 (/workspace/src/subplotlib) Compiling subplot-seq-example v0.1.0 (/workspace/src/examples/seq) Finished `test` profile [unoptimized + debuginfo] target(s) in 15.99s Running tests/seq.rs (/workspace/cache/debug/deps/seq-24a19ebb57a2180f) running 4 tests test more_than_one_number ... ok test no_arguments ... ok test one_number ... ok test not_a_number ... ok test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s /workspace/src/inst/subplot --resources /workspace/src/share docgen subplot.subplot -o subplot.html [32m INFO[0m Starting Subplot [32m INFO[0m Subplot finished successfully /workspace/src/inst/subplot --resources /workspace/src/share docgen tests/subplots/common/files.subplot -o tests/subplots/common/files.html [32m INFO[0m Starting Subplot [32m INFO[0m Subplot finished successfully /workspace/src/inst/subplot --resources /workspace/src/share docgen tests/subplots/common/runcmd.subplot -o tests/subplots/common/runcmd.html [32m INFO[0m Starting Subplot [32m INFO[0m Subplot finished successfully cd examples/muck && /workspace/src/inst/subplot --resources /workspace/src/share/subplot docgen muck.subplot -o muck.html [32m INFO[0m Starting Subplot [32m INFO[0m Subplot finished successfully cd examples/website && /workspace/src/inst/subplot --resources /workspace/src/share docgen website.subplot -o website.html [32m INFO[0m Starting Subplot [32m INFO[0m Subplot finished successfully cd examples/seq && /workspace/src/inst/subplot --resources /workspace/src/share docgen seq.subplot -o seq.html [32m INFO[0m Starting Subplot [32m INFO[0m Subplot finished successfully /workspace/src/inst/subplot --resources /workspace/src/share libdocgen lib/runcmd.yaml --output /workspace/src/inst/runcmd.md [32m INFO[0m Starting Subplot [32m INFO[0m Subplot finished successfully if which pandoc>/dev/null; then pandoc --toc --standalone --self-contained --metadata "title=lib/runcmd" --output /workspace/src/inst/runcmd.html /workspace/src/inst/runcmd.md; fi /workspace/src/inst/subplot --resources /workspace/src/share libdocgen lib/files.yaml --output /workspace/src/inst/files.md [32m INFO[0m Starting Subplot [32m INFO[0m Subplot finished successfully if which pandoc>/dev/null; then pandoc --toc --standalone --self-contained --metadata "title=lib/files" --output /workspace/src/inst/files.html /workspace/src/inst/files.md; fi /workspace/src/inst/subplot --resources /workspace/src/share libdocgen python/lib/daemon.yaml --output /workspace/src/inst/daemon.md [32m INFO[0m Starting Subplot [32m INFO[0m Subplot finished successfully if which pandoc>/dev/null; then pandoc --toc --standalone --self-contained --metadata "title=lib/daemon" --output /workspace/src/inst/daemon.html /workspace/src/inst/daemon.md; fi /workspace/src/inst/subplot --resources /workspace/src/share docgen book/user-guide.subplot --output book/user-guide.html [32m INFO[0m Starting Subplot [32m INFO[0m Subplot finished successfully mkdir -p doc/libdocs for x in subplot.html tests/subplots/common/*.html examples/*/*.html book/*.html; do if [ -e "$x" ]; then mv "$x" doc; fi; done for x in /workspace/src/inst/*.html; do if [ -e "$x" ]; then mv "$x" doc/libdocs/; fi; done + git reset --hard HEAD is now at b3defc8 refactor: remove unnecessary return + git clean -fdx Removing doc/ Removing examples/muck/test.py Removing inst/ Removing share/python/template/__pycache__/ Removing test.log Removing test.py + git status --ignored HEAD detached at b3defc8 nothing to commit, working tree clean ++ dpkg-parsechangelog -SVersion ++ sed 's/-[^-]*$//' + V=0.13.0 ++ date -u +%Y%m%dT%H%M%S + T=20250809T044909 + version=0.13.0.ci20250809T044909-1 + dch -v 0.13.0.ci20250809T044909-1 'CI build under Ambient.' + dch -r '' RUN: Action finished OK RUN: Action Deb [2025-08-09T04:49:09Z DEBUG ambient_ci::action] Plan::execute: Deb SPAWN: argv=["/bin/bash", "-c", "#!/bin/bash\nset -xeuo pipefail\n\necho \"PATH at start: $PATH\"\nexport PATH=\"/root/.cargo/bin:$PATH\"\nexport CARGO_HOME=/workspace/deps\nexport DEBEMAIL=liw@liw.fi\nexport DEBFULLNAME=\"Lars Wirzenius\"\n/bin/env\n\ncommand -v cargo\ncommand -v rustc\n\ncargo --version\nrustc --version\n\n# Get name and version of source package.\nname=\"$(dpkg-parsechangelog -SSource)\"\nversion=\"$(dpkg-parsechangelog -SVersion)\"\n\n# Get upstream version: everything before the last dash.\nuv=\"$(echo \"$version\" | sed 's/-[^-]*$//')\"\n\n# Files that will be created.\narch=\"$(dpkg --print-architecture)\"\norig=\"../${name}_${uv}.orig.tar.xz\"\ndeb=\"../${name}_${version}_${arch}.deb\"\nchanges=\"../${name}_${version}_${arch}.changes\"\n\n# Create \"upstream tarball\".\ngit archive HEAD | xz >\"$orig\"\n\n# Build package.\ndpkg-buildpackage -us -uc\n\n# Dump some information to make it easier to visually verify\n# everything looks OK. Also, test the package with the lintian tool.\n\nls -l ..\nfor x in ../*.deb; do dpkg -c \"$x\"; done\n# FIXME: disabled while this prevents radicle-native-ci deb from being built.\n# lintian -i --allow-root --fail-on warning ../*.changes\n\n# Move files to artifacts directory.\nmv ../*_* /workspace/artifacts\n "] cwd=/workspace/src (exists? true) extra_env=[("CARGO_TARGET_DIR", "/workspace/cache"), ("CARGO_HOME", "/workspace/deps"), ("PATH", "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")] + echo 'PATH at start: /root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' PATH at start: /root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + export PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + export CARGO_HOME=/workspace/deps + CARGO_HOME=/workspace/deps + export DEBEMAIL=liw@liw.fi + DEBEMAIL=liw@liw.fi + export 'DEBFULLNAME=Lars Wirzenius' + DEBFULLNAME='Lars Wirzenius' + /bin/env DEBFULLNAME=Lars Wirzenius CARGO_TARGET_DIR=/workspace/cache PWD=/workspace/src SYSTEMD_EXEC_PID=270 LANG=C.UTF-8 CARGO_HOME=/workspace/deps DEBEMAIL=liw@liw.fi INVOCATION_ID=76fa874086484c87a57f0c6d3125e0bb SHLVL=2 JOURNAL_STREAM=8:11475 PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin OLDPWD=/ _=/bin/env + command -v cargo /root/.cargo/bin/cargo + command -v rustc /root/.cargo/bin/rustc + cargo --version cargo 1.89.0 (c24e10642 2025-06-23) + rustc --version rustc 1.89.0 (29483883e 2025-08-04) ++ dpkg-parsechangelog -SSource + name=subplot ++ dpkg-parsechangelog -SVersion + version=0.13.0.ci20250809T044909-1 ++ echo 0.13.0.ci20250809T044909-1 ++ sed 's/-[^-]*$//' + uv=0.13.0.ci20250809T044909 ++ dpkg --print-architecture + arch=amd64 + orig=../subplot_0.13.0.ci20250809T044909.orig.tar.xz + deb=../subplot_0.13.0.ci20250809T044909-1_amd64.deb + changes=../subplot_0.13.0.ci20250809T044909-1_amd64.changes + xz + git archive HEAD + dpkg-buildpackage -us -uc [1mdpkg-buildpackage: [0m[32minfo[0m: source package subplot [1mdpkg-buildpackage: [0m[32minfo[0m: source version 0.13.0.ci20250809T044909-1 [1mdpkg-buildpackage: [0m[32minfo[0m: source distribution unstable [1mdpkg-buildpackage: [0m[32minfo[0m: source changed by Lars Wirzenius <liw@liw.fi> [1mdpkg-buildpackage: [0m[32minfo[0m: host architecture amd64 [1;35m dpkg-source --before-build . [0m[1;35m debian/rules clean [0mdh clean dh_auto_clean dh_clean [1;35m dpkg-source -b . [0m[1mdpkg-source: [0m[32minfo[0m: using source format '3.0 (quilt)' [1mdpkg-source: [0m[32minfo[0m: building subplot using existing ./subplot_0.13.0.ci20250809T044909.orig.tar.xz [1mdpkg-source: [0m[32minfo[0m: building subplot in subplot_0.13.0.ci20250809T044909-1.debian.tar.xz [1mdpkg-source: [0m[32minfo[0m: building subplot in subplot_0.13.0.ci20250809T044909-1.dsc [1;35m debian/rules build [0mdh build dh_update_autotools_config dh_autoreconf dh_auto_configure debian/rules override_dh_auto_build make[1]: Entering directory '/workspace/src' true make[1]: Leaving directory '/workspace/src' debian/rules override_dh_auto_test make[1]: Entering directory '/workspace/src' echo disabled disabled make[1]: Leaving directory '/workspace/src' create-stamp debian/debhelper-build-stamp [1;35m debian/rules binary [0mdh binary dh_testroot dh_prep debian/rules override_dh_auto_install make[1]: Entering directory '/workspace/src' cargo install --path=bin --root=debian/subplot --offline --locked Installing subplot-bin v0.13.0 (/workspace/src/bin) Compiling proc-macro2 v1.0.95 Compiling unicode-ident v1.0.18 Compiling cfg-if v1.0.1 Compiling zerocopy v0.8.26 Compiling memchr v2.7.5 Compiling thiserror v2.0.12 Compiling libc v0.2.174 Compiling once_cell v1.21.3 Compiling quote v1.0.40 Compiling syn v2.0.104 Compiling version_check v0.9.5 Compiling serde v1.0.219 Compiling ahash v0.8.12 Compiling aho-corasick v1.1.3 Compiling itoa v1.0.15 Compiling anyhow v1.0.98 Compiling regex-syntax v0.8.5 Compiling crossbeam-utils v0.8.21 Compiling bitflags v2.9.1 Compiling log v0.4.27 Compiling regex-automata v0.4.9 Compiling thiserror-impl v2.0.12 Compiling serde_derive v1.0.219 Compiling encoding_rs v0.8.35 Compiling doc-comment v0.3.3 Compiling ucd-trie v0.1.7 Compiling arraydeque v0.5.1 Compiling pest v2.8.1 Compiling crossbeam-epoch v0.9.18 Compiling hashbrown v0.14.5 Compiling getrandom v0.2.16 Compiling bstr v1.12.0 Compiling rustix v1.0.8 Compiling getrandom v0.3.3 Compiling utf8parse v0.2.2 Compiling shlex v1.3.0 Compiling libm v0.2.15 Compiling unic-char-range v0.9.0 Compiling foldhash v0.1.5 Compiling num-conv v0.1.0 Compiling unicode-width v0.2.1 Compiling unic-common v0.9.0 Compiling time-core v0.1.4 Compiling same-file v1.0.6 Compiling time-macros v0.2.22 Compiling walkdir v2.5.0 Compiling unic-ucd-version v0.9.0 Compiling hashbrown v0.15.4 Compiling unic-char-property v0.9.0 Compiling cc v1.2.31 Compiling globset v0.4.16 Compiling anstyle-parse v0.2.7 Compiling hashlink v0.9.1 Compiling rand_core v0.6.4 Compiling crossbeam-deque v0.8.6 Compiling pest_meta v2.8.1 Compiling serde_path_to_error v0.1.17 Compiling ppv-lite86 v0.2.21 Compiling tracing-core v0.1.34 Compiling anstyle v1.0.11 Compiling serde_json v1.0.142 Compiling powerfmt v0.2.0 Compiling lazy_static v1.5.0 Compiling anstyle-query v1.1.3 Compiling linux-raw-sys v0.9.4 Compiling colorchoice v1.0.4 Compiling is_terminal_polyfill v1.70.1 Compiling anstream v0.6.19 Compiling deranged v0.4.0 Compiling rand_chacha v0.3.1 Compiling pest_generator v2.8.1 Compiling pikchr v0.1.4 Compiling ignore v0.4.23 Compiling yaml-rust2 v0.9.0 Compiling unic-ucd-segment v0.9.0 Compiling hashlink v0.10.0 Compiling regex v1.11.1 Compiling tracing-attributes v0.1.30 Compiling unicode-linebreak v0.1.5 Compiling deunicode v1.6.2 Compiling ryu v1.0.20 Compiling fastrand v2.3.0 Compiling heck v0.5.0 Compiling smawk v0.3.2 Compiling regex-syntax v0.6.29 Compiling clap_lex v0.7.5 Compiling pulldown-cmark v0.13.0 Compiling strsim v0.11.1 Compiling pin-project-lite v0.2.16 Compiling time v0.3.41 Compiling regex-automata v0.1.10 Compiling tracing v0.1.41 Compiling clap_builder v4.5.42 Compiling textwrap v0.16.2 Compiling clap_derive v4.5.41 Compiling tempfile v3.20.0 Compiling slug v0.1.6 Compiling humansize v2.1.3 Compiling yaml-rust2 v0.10.3 Compiling marked-yaml v0.7.2 Compiling unic-segment v0.9.0 Compiling globwalk v0.9.1 Compiling pest_derive v2.8.1 Compiling subplot v0.13.0 (/workspace/src) Compiling rand v0.8.5 Compiling getopts v0.2.23 Compiling pulldown-cmark-escape v0.11.0 Compiling utf8-width v0.1.7 Compiling overload v0.1.1 Compiling percent-encoding v2.3.1 Compiling unicase v2.8.1 Compiling tera v1.20.0 Compiling git-testament-derive v0.2.1 Compiling nu-ansi-term v0.46.0 Compiling html-escape v0.2.13 Compiling roadmap v0.7.0 Compiling marked-yaml v0.8.0 Compiling clap v4.5.42 Compiling matchers v0.1.0 Compiling sharded-slab v0.1.7 Compiling tracing-log v0.2.0 Compiling thread_local v1.1.9 Compiling base64 v0.22.1 Compiling line-col v0.2.1 Compiling descape v2.0.3 Compiling smallvec v1.15.1 Compiling tracing-subscriber v0.3.19 Compiling git-testament v0.2.6 Compiling subplot-bin v0.13.0 (/workspace/src/bin) Finished `release` profile [optimized] target(s) in 1m 00s Installing debian/subplot/bin/subplot Installed package `subplot-bin v0.13.0 (/workspace/src/bin)` (executable `subplot`) warning: be sure to add `debian/subplot/bin` to your PATH to be able to run the installed binaries rm -f debian/subplot/.crates.toml rm -f debian/subplot/.crates2.json dh_lintian make[1]: Leaving directory '/workspace/src' dh_install dh_installdocs dh_installchangelogs [1mdh_installchangelogs[0m: [1;33mwarning[0m: Could not parse timestamp '15 April 2022 15:00:00 +0100'. debian/changelog will not be trimmed. [1mdh_installchangelogs[0m: [1;33mwarning[0m: debian/changelog could not be trimmed. The full changelog will be installed. dh_lintian dh_perl dh_link dh_strip_nondeterminism dh_compress dh_fixperms dh_missing dh_strip dh_makeshlibs dh_shlibdeps dh_installdeb dh_gencontrol [1mdpkg-gencontrol: [0m[1;33mwarning[0m: Built-Using field of package subplot: substitution variable ${cargo:Built-Using} used, but is not defined [1mdpkg-gencontrol: [0m[1;33mwarning[0m: Built-Using field of package subplot: substitution variable ${cargo:Built-Using} used, but is not defined dh_md5sums dh_builddeb [1mdpkg-deb:[0m building package 'subplot-dbgsym' in '../subplot-dbgsym_0.13.0.ci20250809T044909-1_amd64.deb'. [1mdpkg-deb:[0m building package 'subplot' in '../subplot_0.13.0.ci20250809T044909-1_amd64.deb'. [1;35m dpkg-genbuildinfo -O../subplot_0.13.0.ci20250809T044909-1_amd64.buildinfo [0m[1;35m dpkg-genchanges -O../subplot_0.13.0.ci20250809T044909-1_amd64.changes [0m[1mdpkg-genchanges: [0m[32minfo[0m: including full source code in upload [1;35m dpkg-source --after-build . [0m[1mdpkg-buildpackage: [0m[32minfo[0m: full upload (original source is included) + ls -l .. total 2368 drwxr-xr-x 2 root root 4096 Aug 9 04:44 artifacts drwxr-xr-x 6 root root 4096 Jun 10 05:28 cache drwxr-xr-x 3 root root 4096 Aug 9 04:49 deps drwxr-xr-x 15 root root 4096 Aug 9 04:49 src -rw-r--r-- 1 root root 274208 Aug 9 04:50 subplot-dbgsym_0.13.0.ci20250809T044909-1_amd64.deb -rw-r--r-- 1 root root 2372 Aug 9 04:49 subplot_0.13.0.ci20250809T044909-1.debian.tar.xz -rw-r--r-- 1 root root 1018 Aug 9 04:49 subplot_0.13.0.ci20250809T044909-1.dsc -rw-r--r-- 1 root root 10151 Aug 9 04:50 subplot_0.13.0.ci20250809T044909-1_amd64.buildinfo -rw-r--r-- 1 root root 2388 Aug 9 04:50 subplot_0.13.0.ci20250809T044909-1_amd64.changes -rw-r--r-- 1 root root 1955604 Aug 9 04:50 subplot_0.13.0.ci20250809T044909-1_amd64.deb -rw-r--r-- 1 root root 148908 Aug 9 04:49 subplot_0.13.0.ci20250809T044909.orig.tar.xz + for x in ../*.deb + dpkg -c ../subplot-dbgsym_0.13.0.ci20250809T044909-1_amd64.deb drwxr-xr-x root/root 0 2025-08-09 04:49 ./ drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/ drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/lib/ drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/lib/debug/ drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/lib/debug/.build-id/ drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/lib/debug/.build-id/aa/ -rw-r--r-- root/root 1807176 2025-08-09 04:49 ./usr/lib/debug/.build-id/aa/e88cddba7924c98add62e737218b125e921a58.debug drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/share/ drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/share/doc/ lrwxrwxrwx root/root 0 2025-08-09 04:49 ./usr/share/doc/subplot-dbgsym -> subplot + for x in ../*.deb + dpkg -c ../subplot_0.13.0.ci20250809T044909-1_amd64.deb drwxr-xr-x root/root 0 2025-08-09 04:49 ./ drwxr-xr-x root/root 0 2025-08-09 04:49 ./bin/ -rwxr-xr-x root/root 8072600 2025-08-09 04:49 ./bin/subplot drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/ drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/share/ drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/share/doc/ drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/share/doc/subplot/ -rw-r--r-- root/root 3623 2025-08-09 04:43 ./usr/share/doc/subplot/README.md -rw-r--r-- root/root 643 2025-08-09 04:49 ./usr/share/doc/subplot/changelog.Debian.gz -rw-r--r-- root/root 1394 2025-08-09 04:43 ./usr/share/doc/subplot/copyright drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/share/lintian/ drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/share/lintian/overrides/ -rw-r--r-- root/root 103 2025-08-09 04:43 ./usr/share/lintian/overrides/subplot drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/share/subplot/ drwxr-xr-x root/root 0 2025-08-09 04:43 ./usr/share/subplot/common/ drwxr-xr-x root/root 0 2025-08-09 04:43 ./usr/share/subplot/common/lib/ -rw-r--r-- root/root 9355 2025-08-09 04:43 ./usr/share/subplot/common/lib/files.yaml -rw-r--r-- root/root 8470 2025-08-09 04:43 ./usr/share/subplot/common/lib/runcmd.yaml drwxr-xr-x root/root 0 2025-08-09 04:43 ./usr/share/subplot/python/ drwxr-xr-x root/root 0 2025-08-09 04:43 ./usr/share/subplot/python/lib/ -rw-r--r-- root/root 10415 2025-08-09 04:43 ./usr/share/subplot/python/lib/daemon.py -rw-r--r-- root/root 4434 2025-08-09 04:43 ./usr/share/subplot/python/lib/daemon.yaml -rw-r--r-- root/root 7272 2025-08-09 04:43 ./usr/share/subplot/python/lib/files.py -rw-r--r-- root/root 8657 2025-08-09 04:43 ./usr/share/subplot/python/lib/runcmd.py drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/share/subplot/python/template/ -rw-r--r-- root/root 1275 2025-08-09 04:43 ./usr/share/subplot/python/template/asserts.py -rw-r--r-- root/root 2457 2025-08-09 04:43 ./usr/share/subplot/python/template/context.py -rw-r--r-- root/root 4611 2025-08-09 04:43 ./usr/share/subplot/python/template/context_tests.py -rw-r--r-- root/root 201 2025-08-09 04:43 ./usr/share/subplot/python/template/encoding.py -rw-r--r-- root/root 474 2025-08-09 04:43 ./usr/share/subplot/python/template/encoding_tests.py -rw-r--r-- root/root 412 2025-08-09 04:43 ./usr/share/subplot/python/template/files.py -rw-r--r-- root/root 4557 2025-08-09 04:43 ./usr/share/subplot/python/template/main.py -rw-r--r-- root/root 2660 2025-08-09 04:43 ./usr/share/subplot/python/template/scenarios.py -rw-r--r-- root/root 2529 2025-08-09 04:43 ./usr/share/subplot/python/template/template.py.tera -rw-r--r-- root/root 137 2025-08-09 04:43 ./usr/share/subplot/python/template/template.yaml drwxr-xr-x root/root 0 2025-08-09 04:43 ./usr/share/subplot/rust/ drwxr-xr-x root/root 0 2025-08-09 04:43 ./usr/share/subplot/rust/lib/ -rw-r--r-- root/root 788 2025-08-09 04:43 ./usr/share/subplot/rust/lib/datadir.yaml drwxr-xr-x root/root 0 2025-08-09 04:43 ./usr/share/subplot/rust/template/ -rw-r--r-- root/root 1429 2025-08-09 04:43 ./usr/share/subplot/rust/template/macros.rs.tera -rw-r--r-- root/root 1175 2025-08-09 04:43 ./usr/share/subplot/rust/template/template.rs.tera -rw-r--r-- root/root 71 2025-08-09 04:43 ./usr/share/subplot/rust/template/template.yaml -rw-r--r-- root/root 2103 2025-08-09 04:43 ./usr/share/subplot/subplot.css + mv ../subplot-dbgsym_0.13.0.ci20250809T044909-1_amd64.deb ../subplot_0.13.0.ci20250809T044909-1.debian.tar.xz ../subplot_0.13.0.ci20250809T044909-1.dsc ../subplot_0.13.0.ci20250809T044909-1_amd64.buildinfo ../subplot_0.13.0.ci20250809T044909-1_amd64.changes ../subplot_0.13.0.ci20250809T044909-1_amd64.deb ../subplot_0.13.0.ci20250809T044909.orig.tar.xz /workspace/artifacts RUN: Action finished OK RUN: Action TarCreate { archive: "/dev/vde", directory: "/workspace/cache", } [2025-08-09T04:50:18Z DEBUG ambient_ci::action] Plan::execute: TarCreate { archive: "/dev/vde", directory: "/workspace/cache", } [2025-08-09T04:50:18Z TRACE ambient_ci::vdrive] creating virtual drive (tar archive): VirtualDriveBuilder { filename: Some( "/dev/vde", ), root: Some( "/workspace/cache", ), size: None, } [2025-08-09T04:50:18Z TRACE ambient_ci::vdrive] tar archive to be created: /dev/vde; exists? true [2025-08-09T04:50:18Z TRACE ambient_ci::vdrive] create archive file /dev/vde [2025-08-09T04:50:18Z TRACE ambient_ci::vdrive] directory /workspace/cache exists? true [2025-08-09T04:50:18Z TRACE ambient_ci::vdrive] add contents of /workspace/cache as . [2025-08-09T04:51:06Z TRACE ambient_ci::vdrive] created virtual drive /dev/vde RUN: Action finished OK RUN: Action TarCreate { archive: "/dev/vdd", directory: "/workspace/artifacts", } [2025-08-09T04:51:06Z DEBUG ambient_ci::action] Plan::execute: TarCreate { archive: "/dev/vdd", directory: "/workspace/artifacts", } [2025-08-09T04:51:06Z TRACE ambient_ci::vdrive] creating virtual drive (tar archive): VirtualDriveBuilder { filename: Some( "/dev/vdd", ), root: Some( "/workspace/artifacts", ), size: None, } [2025-08-09T04:51:06Z TRACE ambient_ci::vdrive] tar archive to be created: /dev/vdd; exists? true [2025-08-09T04:51:06Z TRACE ambient_ci::vdrive] create archive file /dev/vdd [2025-08-09T04:51:06Z TRACE ambient_ci::vdrive] directory /workspace/artifacts exists? true [2025-08-09T04:51:06Z TRACE ambient_ci::vdrive] add contents of /workspace/artifacts as . [2025-08-09T04:51:06Z TRACE ambient_ci::vdrive] created virtual drive /dev/vdd RUN: Action finished OK ambient-execute-plan ends EXIT CODE: 0 [2025-08-09T04:51:57Z INFO ambient] ambient ends successfully
{ "request": "trigger", "version": 1, "event_type": "patch", "repository": { "id": "rad:zjxyd2A1A7FnxtC69qDfoAajfTHo", "name": "subplot", "description": "Capture and communicate acceptance criteria and their verification", "private": false, "default_branch": "main", "delegates": [ "did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV" ] }, "action": "Created", "patch": { "id": "293aa520fb26428c5fee60d23ff8faea77a45ab4", "author": { "id": "did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV", "alias": "liw" }, "title": "clippy fixes", "state": { "status": "open", "conflicts": [] }, "before": "acf414bc63d13f4f5ff312291fbe5912739f33a5", "after": "b3defc89ad33ef2208bbd1426c9d223b778567d2", "commits": [ "b3defc89ad33ef2208bbd1426c9d223b778567d2", "8aca73554b7af3d2ecd3df648a4266352631c689", "96d5a6debf2cf20d39e715cc5ed1f4aadf59d197" ], "target": "acf414bc63d13f4f5ff312291fbe5912739f33a5", "labels": [], "assignees": [], "revisions": [ { "id": "293aa520fb26428c5fee60d23ff8faea77a45ab4", "author": { "id": "did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV", "alias": "liw" }, "description": "", "base": "acf414bc63d13f4f5ff312291fbe5912739f33a5", "oid": "b3defc89ad33ef2208bbd1426c9d223b778567d2", "timestamp": 1754714599 } ] } }
[2025-08-09T04:43:20Z INFO ambient] ambient starts [2025-08-09T04:43:20Z DEBUG ambient] load default configuration file /home/_rad/.config/ambient/config.yaml if it exists [2025-08-09T04:43:20Z DEBUG ambient] complete configuration: Config { tmpdir: "/srv/tmp", image_store: "/home/_rad/.local/state/ambient-ci/images", projects: "/home/_rad/ambient-projects.yaml", state: "/srv/ambient-state", rsync_target: None, rsync_target_base: None, rsync_target_map: None, dput_target: None, executor: Some( "/usr/bin/ambient-execute-plan", ), artifacts_max_size: Byte( 10000000000, ), cache_max_size: Byte( 50000000000, ), qemu: QemuConfig { cpus: 4, memory: Byte( 8000000000, ), kvm_binary: "/usr/bin/kvm", ovmf_vars_file: "/usr/share/ovmf/OVMF.fd", ovmf_code_file: "/usr/share/ovmf/OVMF.fd", }, } [2025-08-09T04:43:20Z DEBUG ambient] configuration: Config { tmpdir: "/srv/tmp", image_store: "/home/_rad/.local/state/ambient-ci/images", projects: "/home/_rad/ambient-projects.yaml", state: "/srv/ambient-state", rsync_target: None, rsync_target_base: None, rsync_target_map: None, dput_target: None, executor: Some( "/usr/bin/ambient-execute-plan", ), artifacts_max_size: Byte( 10000000000, ), cache_max_size: Byte( 50000000000, ), qemu: QemuConfig { cpus: 4, memory: Byte( 8000000000, ), kvm_binary: "/usr/bin/kvm", ovmf_vars_file: "/usr/share/ovmf/OVMF.fd", ovmf_code_file: "/usr/share/ovmf/OVMF.fd", }, } [2025-08-09T04:43:20Z DEBUG ambient_ci::project] load project state from /srv/ambient-state/rad:zjxyd2A1A7FnxtC69qDfoAajfTHo/meta.yaml [2025-08-09T04:43:20Z DEBUG ambient_ci::run] latest commit: "9c2306d9f39b17639de9bd3fac74ed61ae3cc285" [2025-08-09T04:43:20Z DEBUG ambient_ci::run] is a git repository [2025-08-09T04:43:20Z DEBUG ambient_ci::run] git repository is clean [2025-08-09T04:43:20Z DEBUG ambient_ci::run] current (HEAD) commit: b3defc89ad33ef2208bbd1426c9d223b778567d2 [2025-08-09T04:43:20Z DEBUG ambient_ci::run] no dry run requested [2025-08-09T04:43:20Z DEBUG ambient_ci::run] forced run requested [2025-08-09T04:43:20Z DEBUG ambient_ci::run] run? true [2025-08-09T04:43:20Z INFO ambient_ci::run] project rad:zjxyd2A1A7FnxtC69qDfoAajfTHo: running CI [2025-08-09T04:43:20Z DEBUG ambient_ci::run] Executing pre-plan steps [2025-08-09T04:43:20Z DEBUG ambient_ci::action] Plan::execute: CargoFetch { sourcedir: "/tmp/.tmp7uvA1l/src", dependenciesdir: "/srv/ambient-state/rad:zjxyd2A1A7FnxtC69qDfoAajfTHo/dependencies", } SPAWN: argv=["env", "CARGO_HOME=/srv/ambient-state/rad:zjxyd2A1A7FnxtC69qDfoAajfTHo/dependencies", "cargo", "fetch", "--locked"] cwd=/tmp/.tmp7uvA1l/src (exists? true) extra_env=[] Updating crates.io index Downloading crates ... Downloaded quote v1.0.40 Downloaded unicode-ident v1.0.18 Downloaded thiserror-impl v2.0.12 Downloaded thread_local v1.1.9 Downloaded redox_syscall v0.5.17 Downloaded anstyle-query v1.1.3 Downloaded rustversion v1.0.21 Downloaded anstyle v1.0.11 Downloaded anstyle-parse v0.2.7 Downloaded wasm-bindgen-shared v0.2.100 Downloaded once_cell_polyfill v1.70.1 Downloaded clap_lex v0.7.5 Downloaded globset v0.4.16 Downloaded marked-yaml v0.8.0 Downloaded anstream v0.6.19 Downloaded hashlink v0.10.0 Downloaded ahash v0.8.12 Downloaded anyhow v1.0.98 Downloaded clap v4.5.42 Downloaded getrandom v0.3.3 Downloaded yaml-rust2 v0.10.3 Downloaded pikchr v0.1.4 Downloaded zerocopy-derive v0.8.26 Downloaded cc v1.2.31 Downloaded pest v2.8.1 Downloaded pulldown-cmark v0.13.0 Downloaded hashbrown v0.15.4 Downloaded clap_builder v4.5.42 Downloaded deunicode v1.6.2 Downloaded serde_json v1.0.142 Downloaded syn v2.0.104 Downloaded zerocopy v0.8.26 Downloaded unicode-width v0.2.1 Downloaded libm v0.2.15 Downloaded wasi v0.14.2+wasi-0.2.4 Downloaded bumpalo v3.19.0 Downloaded time v0.3.41 Downloaded bstr v1.12.0 Downloaded serde v1.0.219 Downloaded r-efi v5.3.0 Downloaded typenum v1.18.0 Downloaded rustix v1.0.8 Downloaded memchr v2.7.5 Downloaded textwrap v0.16.2 Downloaded bitflags v2.9.1 Downloaded pest_derive v2.8.1 Downloaded clap_derive v4.5.41 Downloaded errno v0.3.13 Downloaded sha2 v0.10.9 Downloaded wasm-bindgen-macro-support v0.2.100 Downloaded pest_meta v2.8.1 Downloaded wasi v0.11.1+wasi-snapshot-preview1 Downloaded ryu v1.0.20 Downloaded getrandom v0.2.16 Downloaded foldhash v0.1.5 Downloaded serde_path_to_error v0.1.17 Downloaded anstyle-wincon v3.0.9 Downloaded unicase v2.8.1 Downloaded libc v0.2.174 Downloaded windows_aarch64_gnullvm v0.53.0 Downloaded windows_x86_64_gnullvm v0.53.0 Downloaded windows_aarch64_msvc v0.53.0 Downloaded windows_x86_64_msvc v0.53.0 Downloaded colorchoice v1.0.4 Downloaded getopts v0.2.23 Downloaded windows_i686_msvc v0.53.0 Downloaded windows_i686_gnullvm v0.53.0 Downloaded windows_x86_64_gnu v0.53.0 Downloaded windows_i686_gnu v0.53.0 Downloaded pest_generator v2.8.1 Downloaded wit-bindgen-rt v0.39.0 Downloaded cpufeatures v0.2.17 Downloaded wasm-bindgen-backend v0.2.100 Downloaded wasm-bindgen-macro v0.2.100 Downloaded wasm-bindgen v0.2.100 Downloaded serde_derive v1.0.219 Downloaded log v0.4.27 Downloaded tracing-core v0.1.34 Downloaded windows-link v0.1.3 Downloaded tempfile v3.20.0 Downloaded ppv-lite86 v0.2.21 Downloaded thiserror v2.0.12 Downloaded pin-project-lite v0.2.16 Downloaded libredox v0.1.9 Downloaded windows-targets v0.53.3 Downloaded itoa v1.0.15 Downloaded time-macros v0.2.22 Downloaded smallvec v1.15.1 Downloaded once_cell v1.21.3 Downloaded valuable v0.1.1 Downloaded tracing-attributes v0.1.30 Downloaded deranged v0.4.0 Downloaded time-core v0.1.4 Downloaded cfg-if v1.0.1 Downloaded proc-macro2 v1.0.95 Downloaded linux-raw-sys v0.9.4 Downloaded windows-sys v0.60.2 [2025-08-09T04:43:24Z DEBUG ambient_ci::run] create virtual drive /srv/tmp/.tmpizPQAI/src.tar [2025-08-09T04:43:24Z DEBUG ambient_ci::run] create virtual drive /srv/tmp/.tmpizPQAI/deps.tar [2025-08-09T04:43:34Z DEBUG ambient_ci::run] create_executor_vdrive: executor="/usr/bin/ambient-execute-plan" [2025-08-09T04:43:34Z DEBUG ambient_ci::run] create_executor_vdrive: plan=RunnablePlan { steps: [ Mkdir { pathname: "/workspace", }, Mkdir { pathname: "/workspace/artifacts", }, TarExtract { archive: "/dev/vdc", directory: "/workspace/src", }, TarExtract { archive: "/dev/vdf", directory: "/workspace/deps", }, TarExtract { archive: "/dev/vde", directory: "/workspace/cache", }, Spawn { argv: [ "find", "/workspace", "-maxdepth", "2", "-ls", ], }, CargoFmt, CargoClippy, Shell { shell: "export DEBEMAIL=liw@liw.fi\nexport DEBFULLNAME=\"Lars Wirzenius\"\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:$PATH\"\n\nmake OFFLINE=\"--offline\"\n\n# Clean up after tests and documentation building.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n\nV=\"$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')\"\nT=\"$(date -u \"+%Y%m%dT%H%M%S\")\"\nversion=\"$V.ci$T-1\"\ndch -v \"$version\" \"CI build under Ambient.\"\ndch -r ''\n", }, Deb, TarCreate { archive: "/dev/vde", directory: "/workspace/cache", }, TarCreate { archive: "/dev/vdd", directory: "/workspace/artifacts", }, ], executor_drive: Some( "/dev/vdb", ), source_drive: Some( "/dev/vdc", ), artifact_drive: Some( "/dev/vdd", ), cache_drive: Some( "/dev/vde", ), deps_drive: Some( "/dev/vdf", ), workspace_dir: Some( "/workspace", ), source_dir: Some( "/workspace/src", ), deps_dir: Some( "/workspace/deps", ), cache_dir: Some( "/workspace/cache", ), artifacts_dir: Some( "/workspace/artifacts", ), } [2025-08-09T04:43:34Z DEBUG ambient_ci::run] executor bin /usr/bin/ambient-execute-plan [2025-08-09T04:43:34Z DEBUG ambient_ci::run] copying /usr/bin/ambient-execute-plan to /srv/tmp/.tmpizPQAI/ambient-execute-plan/run-ci [2025-08-09T04:43:34Z DEBUG ambient_ci::run] copy OK: true [2025-08-09T04:43:34Z DEBUG ambient_ci::run] create virtual drive /srv/tmp/.tmpizPQAI/executor.tar [2025-08-09T04:44:33Z DEBUG ambient_ci::project] removing run log file /srv/ambient-state/rad:zjxyd2A1A7FnxtC69qDfoAajfTHo/run.log [2025-08-09T04:44:33Z DEBUG ambient_ci::project] statedir is /srv/ambient-state/rad:zjxyd2A1A7FnxtC69qDfoAajfTHo, exists? true [2025-08-09T04:44:33Z DEBUG ambient_ci::project] creating run log file /srv/ambient-state/rad:zjxyd2A1A7FnxtC69qDfoAajfTHo/run.log [2025-08-09T04:44:33Z DEBUG ambient_ci::project] created run log file /srv/ambient-state/rad:zjxyd2A1A7FnxtC69qDfoAajfTHo/run.log OK [2025-08-09T04:44:33Z DEBUG ambient_ci::cloud_init] with_hostname called: "ambient" [2025-08-09T04:44:33Z DEBUG ambient_ci::cloud_init] with_runcmd called: "echo xyzzy > /dev/ttyS1" [2025-08-09T04:44:33Z DEBUG ambient_ci::cloud_init] with_runcmd called: "\n(set -xeu\nenv\ndir=\"$(mktemp -d)\"\ncd \"$dir\"\ntar -xvf /dev/vdb\nfind -ls || true\nldd ./run-ci || true\necho ================================ BEGIN ================================\nexport RUST_BACKTRACE=1\nif ./run-ci; then\n echo \"EXIT CODE: 0\"\nelse\n echo \"EXIT CODE: $?\"\nfi) > /dev/ttyS1 2>&1\n" [2025-08-09T04:44:33Z DEBUG ambient_ci::cloud_init] with_runcmd called: "poweroff" [2025-08-09T04:44:33Z DEBUG ambient_ci::cloud_init] LocalDataStoreBuilder: LocalDataStoreBuilder { hostname: Some( "ambient", ), network: false, bootcmd: [], runcmd: [ "echo xyzzy > /dev/ttyS1", "\n(set -xeu\nenv\ndir=\"$(mktemp -d)\"\ncd \"$dir\"\ntar -xvf /dev/vdb\nfind -ls || true\nldd ./run-ci || true\necho ================================ BEGIN ================================\nexport RUST_BACKTRACE=1\nif ./run-ci; then\n echo \"EXIT CODE: 0\"\nelse\n echo \"EXIT CODE: $?\"\nfi) > /dev/ttyS1 2>&1\n", "poweroff", ], } [2025-08-09T04:44:33Z DEBUG ambient_ci::qemu] run QEMU [2025-08-09T04:44:33Z DEBUG ambient_ci::qemu] create copy-on-write image and UEFI vars file [2025-08-09T04:44:33Z DEBUG ambient_ci::qemu_utils] qemu-img create /srv/tmp/.tmpCd3USY/.tmpuvEk5e/vm.qcow2 backing on /home/_rad/ambient.qcow2 [2025-08-09T04:44:33Z DEBUG ambient_ci::qemu] create cloud-init ISO file [2025-08-09T04:44:33Z DEBUG ambient_ci::cloud_init] LocalDataStore: LocalDataStore { hostname: "ambient", network: false, bootcmd: [], runcmd: [ "echo xyzzy > /dev/ttyS1", "\n(set -xeu\nenv\ndir=\"$(mktemp -d)\"\ncd \"$dir\"\ntar -xvf /dev/vdb\nfind -ls || true\nldd ./run-ci || true\necho ================================ BEGIN ================================\nexport RUST_BACKTRACE=1\nif ./run-ci; then\n echo \"EXIT CODE: 0\"\nelse\n echo \"EXIT CODE: $?\"\nfi) > /dev/ttyS1 2>&1\n", "poweroff", ], } [2025-08-09T04:44:33Z DEBUG ambient_ci::cloud_init] write /tmp/.tmpf4ipA9/meta-data [2025-08-09T04:44:33Z DEBUG ambient_ci::cloud_init] write /tmp/.tmpf4ipA9/user-data [2025-08-09T04:44:33Z DEBUG ambient_ci::qemu] set console log file to /srv/tmp/.tmpCd3USY/.tmpuvEk5e/console.log [2025-08-09T04:44:33Z DEBUG ambient_ci::util] create file /srv/tmp/.tmpCd3USY/.tmpuvEk5e/console.log [2025-08-09T04:44:33Z DEBUG ambient_ci::qemu] set run file to /srv/ambient-state/rad:zjxyd2A1A7FnxtC69qDfoAajfTHo/run.log [2025-08-09T04:44:33Z DEBUG ambient_ci::util] create file /srv/ambient-state/rad:zjxyd2A1A7FnxtC69qDfoAajfTHo/run.log [2025-08-09T04:44:33Z DEBUG ambient_ci::qemu] run QEMU: QemuArgs { args: [ "-m", "7629", "-smp", "cpus=4", "-cpu", "kvm64", "-machine", "type=q35,accel=kvm,usb=off", "-uuid", "a85c9de7-edc0-4e54-bead-112e5733582c", "-boot", "strict=on", "-name", "ambient-ci-vm", "-rtc", "base=utc,driftfix=slew", "-display", "none", "-device", "virtio-rng-pci", "-serial", "file:/srv/tmp/.tmpCd3USY/.tmpuvEk5e/console.log", "-serial", "file:/srv/ambient-state/rad:zjxyd2A1A7FnxtC69qDfoAajfTHo/run.log", "-drive", "if=pflash,format=raw,unit=0,file=/usr/share/ovmf/OVMF.fd,readonly=on", "-drive", "if=pflash,format=raw,unit=1,file=/srv/tmp/.tmpCd3USY/.tmpuvEk5e/vars.fd", "-drive", "format=qcow2,if=virtio,file=/srv/tmp/.tmpCd3USY/.tmpuvEk5e/vm.qcow2", "-drive", "format=raw,if=virtio,file=/srv/tmp/.tmpizPQAI/executor.tar,readonly=on", "-cdrom", "/srv/tmp/.tmpCd3USY/.tmpuvEk5e/cloud_init.iso", "-drive", "format=raw,if=virtio,file=/srv/tmp/.tmpizPQAI/src.tar,readonly=on", "-drive", "format=raw,if=virtio,file=/srv/tmp/.tmpizPQAI/artifacts.tar", "-drive", "format=raw,if=virtio,file=/srv/tmp/.tmpizPQAI/cache.tar", "-drive", "format=raw,if=virtio,file=/srv/tmp/.tmpizPQAI/deps.tar,readonly=on", "-nodefaults", "-no-user-config", ], } [2025-08-09T04:51:17Z DEBUG ambient_ci::qemu] QEMU finished OK [2025-08-09T04:51:17Z DEBUG ambient_ci::qemu] run log: --------------------========== [2025-08-09T04:44:42Z TRACE ambient_execute_plan] ambient-execute-plan starts [2025-08-09T04:44:42Z DEBUG ambient_execute_plan] ambient-execute-plan starts [2025-08-09T04:44:42Z INFO ambient_execute_plan] ambient-execute-plan starts [2025-08-09T04:44:42Z WARN ambient_execute_plan] ambient-execute-plan starts [2025-08-09T04:44:42Z ERROR ambient_execute_plan] ambient-execute-plan starts RunnablePlan::from_file: filename=plan.yaml steps: - action: mkdir pathname: /workspace - action: mkdir pathname: /workspace/artifacts - action: tar_extract archive: /dev/vdc directory: /workspace/src - action: tar_extract archive: /dev/vdf directory: /workspace/deps - action: tar_extract archive: /dev/vde directory: /workspace/cache - action: spawn argv: - find - /workspace - '-maxdepth' - '2' - '-ls' - action: cargo_fmt - action: cargo_clippy - action: shell shell: | export DEBEMAIL=liw@liw.fi export DEBFULLNAME="Lars Wirzenius" export CARGO_TARGET_DIR=/workspace/cache export CARGO_HOME=/workspace/deps export HOME=/root export PATH="/root/.cargo/bin:$PATH" make OFFLINE="--offline" # Clean up after tests and documentation building. git reset --hard git clean -fdx git status --ignored V="$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')" T="$(date -u "+%Y%m%dT%H%M%S")" version="$V.ci$T-1" dch -v "$version" "CI build under Ambient." dch -r '' - action: deb - action: tar_create archive: /dev/vde directory: /workspace/cache - action: tar_create archive: /dev/vdd directory: /workspace/artifacts executor_drive: /dev/vdb source_drive: /dev/vdc artifact_drive: /dev/vdd cache_drive: /dev/vde deps_drive: /dev/vdf workspace_dir: /workspace source_dir: /workspace/src deps_dir: /workspace/deps cache_dir: /workspace/cache artifacts_dir: /workspace/artifacts RUN: Action Mkdir { pathname: "/workspace", } [2025-08-09T04:44:42Z DEBUG ambient_ci::action] Plan::execute: Mkdir { pathname: "/workspace", } RUN: Action finished OK RUN: Action Mkdir { pathname: "/workspace/artifacts", } [2025-08-09T04:44:42Z DEBUG ambient_ci::action] Plan::execute: Mkdir { pathname: "/workspace/artifacts", } RUN: Action finished OK RUN: Action TarExtract { archive: "/dev/vdc", directory: "/workspace/src", } [2025-08-09T04:44:42Z DEBUG ambient_ci::action] Plan::execute: TarExtract { archive: "/dev/vdc", directory: "/workspace/src", } [2025-08-09T04:44:42Z TRACE ambient_ci::vdrive] extracting /dev/vdc to /workspace/src [2025-08-09T04:44:42Z TRACE ambient_ci::vdrive] extraction OK RUN: Action finished OK RUN: Action TarExtract { archive: "/dev/vdf", directory: "/workspace/deps", } [2025-08-09T04:44:42Z DEBUG ambient_ci::action] Plan::execute: TarExtract { archive: "/dev/vdf", directory: "/workspace/deps", } [2025-08-09T04:44:42Z TRACE ambient_ci::vdrive] extracting /dev/vdf to /workspace/deps [2025-08-09T04:44:48Z TRACE ambient_ci::vdrive] extraction OK RUN: Action finished OK RUN: Action TarExtract { archive: "/dev/vde", directory: "/workspace/cache", } [2025-08-09T04:44:48Z DEBUG ambient_ci::action] Plan::execute: TarExtract { archive: "/dev/vde", directory: "/workspace/cache", } [2025-08-09T04:44:48Z TRACE ambient_ci::vdrive] extracting /dev/vde to /workspace/cache [2025-08-09T04:46:53Z TRACE ambient_ci::vdrive] extraction OK RUN: Action finished OK RUN: Action Spawn { argv: [ "find", "/workspace", "-maxdepth", "2", "-ls", ], } [2025-08-09T04:46:53Z DEBUG ambient_ci::action] Plan::execute: Spawn { argv: [ "find", "/workspace", "-maxdepth", "2", "-ls", ], } SPAWN: argv=["find", "/workspace", "-maxdepth", "2", "-ls"] cwd=/workspace/src (exists? true) extra_env=[] 3932161 4 drwxr-xr-x 6 root root 4096 Aug 9 04:44 /workspace 3932162 4 drwxr-xr-x 2 root root 4096 Aug 9 04:44 /workspace/artifacts 3932867 4 drwxr-xr-x 3 root root 4096 Aug 9 04:43 /workspace/deps 3932869 100 -rw-r--r-- 1 root root 102400 Aug 9 04:43 /workspace/deps/.global-cache 3932868 0 -rw-r--r-- 1 root root 0 Jun 28 05:56 /workspace/deps/.package-cache-mutate 3932870 0 -rw-r--r-- 1 root root 0 Jun 10 05:26 /workspace/deps/.package-cache 3932871 4 drwxr-xr-x 5 root root 4096 Jun 10 05:26 /workspace/deps/registry 3932163 4 drwxr-xr-x 15 root root 4096 Aug 9 04:43 /workspace/src 3932165 4 drwxr-xr-x 2 root root 4096 Aug 9 04:43 /workspace/src/.radicle 3932203 24 -rw-r--r-- 1 root root 21606 Aug 9 04:43 /workspace/src/NEWS.md 3932864 4 -rw-r--r-- 1 root root 3387 Aug 9 04:43 /workspace/src/RELEASE.md 3932201 4 -rw-r--r-- 1 root root 56 Aug 9 04:43 /workspace/src/flake8.ini 3932304 4 -rw-r--r-- 1 root root 678 Aug 9 04:43 /workspace/src/.gitlab-ci.yml 3932866 48 -rw-r--r-- 1 root root 48925 Aug 9 04:43 /workspace/src/Cargo.lock 3932833 4 drwxr-xr-x 5 root root 4096 Aug 9 04:43 /workspace/src/share 3932167 4 -rw-r--r-- 1 root root 1366 Aug 9 04:43 /workspace/src/DCO-1-1.txt 3932233 4 -rw-r--r-- 1 root root 1568 Aug 9 04:43 /workspace/src/Cargo.toml 3932285 4 drwxr-xr-x 5 root root 4096 Aug 9 04:43 /workspace/src/examples 3932284 4 -rw-r--r-- 1 root root 295 Aug 9 04:43 /workspace/src/deny.toml 3932197 4 drwxr-xr-x 3 root root 4096 Aug 9 04:43 /workspace/src/subplot-build 3932169 4 drwxr-xr-x 3 root root 4096 Aug 9 04:43 /workspace/src/.gitlab 3932231 4 -rw-r--r-- 1 root root 1334 Aug 9 04:43 /workspace/src/flake.nix 3932863 4 -rw-r--r-- 1 root root 1385 Aug 9 04:43 /workspace/src/flake.lock 3932234 8 -rw-r--r-- 1 root root 6501 Aug 9 04:43 /workspace/src/DECISIONS.md 3932232 4 -rw-r--r-- 1 root root 142 Aug 9 04:43 /workspace/src/.gitignore 3932224 4 drwxr-xr-x 3 root root 4096 Aug 9 04:43 /workspace/src/subplotlib-derive 3932168 4 -rw-r--r-- 1 root root 1325 Aug 9 04:43 /workspace/src/LICENSE.md 3932282 4 -rw-r--r-- 1 root root 689 Aug 9 04:43 /workspace/src/reference.py 3932865 8 -rw-r--r-- 1 root root 5176 Aug 9 04:43 /workspace/src/CONTRIBUTING.md 3932832 8 -rw-r--r-- 1 root root 4300 Aug 9 04:43 /workspace/src/Makefile 3932218 4 -rw-r--r-- 1 root root 1286 Aug 9 04:43 /workspace/src/reference.md 3932269 4 drwxr-xr-x 3 root root 4096 Aug 9 04:43 /workspace/src/tests 3932305 4 drwxr-xr-x 8 root root 4096 Aug 9 04:43 /workspace/src/.git 3932202 4 -rw-r--r-- 1 root root 10 Aug 9 04:43 /workspace/src/.envrc 3932204 4 drwxr-xr-x 3 root root 4096 Aug 9 04:43 /workspace/src/debian 3932164 4 -rw-r--r-- 1 root root 3370 Aug 9 04:43 /workspace/src/subplot.py 3932223 4 -rw-r--r-- 1 root root 3623 Aug 9 04:43 /workspace/src/README.md 3932283 4 -rw-r--r-- 1 root root 273 Aug 9 04:43 /workspace/src/reference.subplot.disabled 3932173 4 drwxr-xr-x 2 root root 4096 Aug 9 04:43 /workspace/src/src 3932217 4 -rw-r--r-- 1 root root 196 Aug 9 04:43 /workspace/src/reference.yaml 3932196 4 -rw-r--r-- 1 root root 2648 Aug 9 04:43 /workspace/src/subplot.yaml 3932235 4 -rw-r--r-- 1 root root 284 Aug 9 04:43 /workspace/src/subplot.subplot 3932236 4 drwxr-xr-x 5 root root 4096 Aug 9 04:43 /workspace/src/subplotlib 3932826 4 drwxr-xr-x 3 root root 4096 Aug 9 04:43 /workspace/src/bin 3932230 8 -rw-r--r-- 1 root root 5617 Aug 9 04:43 /workspace/src/build.rs 3932195 4 -rwxr-xr-x 1 root root 489 Aug 9 04:43 /workspace/src/install-debian.sh 3932219 4 drwxr-xr-x 2 root root 4096 Aug 9 04:43 /workspace/src/book 3932222 96 -rw-r--r-- 1 root root 96042 Aug 9 04:43 /workspace/src/subplot.md 3952411 4 drwxr-xr-x 6 root root 4096 Jun 10 05:28 /workspace/cache 3969072 4 drwxr-xr-x 7 root root 4096 Jul 21 09:35 /workspace/cache/release 3971821 4 drwxr-xr-x 11 root root 4096 Jun 10 05:50 /workspace/cache/doc 3952413 4 drwxr-xr-x 7 root root 4096 Jul 21 09:34 /workspace/cache/debug 3952412 4 drwxr-xr-x 2 root root 4096 Jun 10 05:26 /workspace/cache/tmp 3969071 4 -rw-r--r-- 1 root root 218 Jun 10 05:27 /workspace/cache/.rustdoc_fingerprint.json 3971820 4 -rw-r--r-- 1 root root 1033 Jul 21 09:35 /workspace/cache/.rustc_info.json RUN: Action finished OK RUN: Action CargoFmt [2025-08-09T04:46:53Z DEBUG ambient_ci::action] Plan::execute: CargoFmt SPAWN: argv=["cargo", "fmt", "--check"] cwd=/workspace/src (exists? true) extra_env=[("CARGO_TARGET_DIR", "/workspace/cache"), ("CARGO_HOME", "/workspace/deps"), ("PATH", "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")] RUN: Action finished OK RUN: Action CargoClippy [2025-08-09T04:46:54Z DEBUG ambient_ci::action] Plan::execute: CargoClippy SPAWN: argv=["cargo", "clippy", "--offline", "--locked", "--workspace", "--all-targets", "--no-deps", "--", "--deny", "warnings"] cwd=/workspace/src (exists? true) extra_env=[("CARGO_TARGET_DIR", "/workspace/cache"), ("CARGO_HOME", "/workspace/deps"), ("PATH", "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")] Compiling proc-macro2 v1.0.95 Compiling unicode-ident v1.0.18 Checking cfg-if v1.0.1 Compiling zerocopy v0.8.26 Compiling serde v1.0.219 Compiling memchr v2.7.5 Compiling crossbeam-utils v0.8.21 Compiling version_check v0.9.5 Compiling ahash v0.8.12 Compiling quote v1.0.40 Compiling libc v0.2.174 Compiling syn v2.0.104 Compiling thiserror v2.0.12 Checking once_cell v1.21.3 Checking bitflags v2.9.1 Compiling anyhow v1.0.98 Compiling getrandom v0.3.3 Compiling doc-comment v0.3.3 Checking aho-corasick v1.1.3 Compiling rustix v1.0.8 Checking regex-syntax v0.8.5 Compiling same-file v1.0.6 Compiling libm v0.2.15 Compiling walkdir v2.5.0 Checking itoa v1.0.15 Compiling ucd-trie v0.1.7 Compiling shlex v1.3.0 Compiling serde_json v1.0.142 Compiling cc v1.2.31 Compiling pulldown-cmark v0.13.0 Checking regex-automata v0.4.9 Checking linux-raw-sys v0.9.4 Compiling pikchr v0.1.4 Checking lazy_static v1.5.0 Checking fastrand v2.3.0 Checking regex v1.11.1 Compiling serde_derive v1.0.219 Compiling thiserror-impl v2.0.12 Compiling tracing-attributes v0.1.30 Checking ryu v1.0.20 Compiling log v0.4.27 Checking base64 v0.22.1 Compiling pest v2.8.1 Checking tempfile v3.20.0 Compiling pest_meta v2.8.1 Compiling pest_generator v2.8.1 Compiling encoding_rs v0.8.35 Compiling pest_derive v2.8.1 Compiling num-conv v0.1.0 Compiling arraydeque v0.5.1 Compiling time-core v0.1.4 Compiling crossbeam-epoch v0.9.18 Compiling time-macros v0.2.22 Compiling hashbrown v0.14.5 Compiling getrandom v0.2.16 Compiling subplot v0.13.0 (/workspace/src) Checking bstr v1.12.0 Compiling unic-common v0.9.0 Compiling unic-char-range v0.9.0 Compiling foldhash v0.1.5 Compiling unicode-width v0.2.1 Compiling hashbrown v0.15.4 Compiling globset v0.4.16 Compiling unic-char-property v0.9.0 Compiling unic-ucd-version v0.9.0 Compiling hashlink v0.9.1 Compiling rand_core v0.6.4 Compiling crossbeam-deque v0.8.6 Compiling serde_path_to_error v0.1.17 Compiling ppv-lite86 v0.2.21 Compiling culpa-macros v1.0.2 Compiling cfg_aliases v0.2.1 Compiling nix v0.29.0 Compiling rand_chacha v0.3.1 Compiling hashlink v0.10.0 Compiling ignore v0.4.23 Compiling yaml-rust2 v0.9.0 Compiling unic-ucd-segment v0.9.0 Checking powerfmt v0.2.0 Compiling smawk v0.3.2 Compiling deunicode v1.6.2 Compiling unicode-linebreak v0.1.5 Compiling textwrap v0.16.2 Compiling humansize v2.1.3 Compiling slug v0.1.6 Checking deranged v0.4.0 Compiling unic-segment v0.9.0 Compiling globwalk v0.9.1 Compiling marked-yaml v0.7.2 Compiling yaml-rust2 v0.10.3 Compiling rand v0.8.5 Compiling getopts v0.2.23 Compiling tracing-core v0.1.34 Compiling utf8-width v0.1.7 Compiling unicase v2.8.1 Compiling percent-encoding v2.3.1 Compiling pulldown-cmark-escape v0.11.0 Compiling pin-project-lite v0.2.16 Checking time v0.3.41 Compiling tracing v0.1.41 Compiling tera v1.20.0 Compiling html-escape v0.2.13 Compiling marked-yaml v0.8.0 Compiling roadmap v0.7.0 Checking culpa v1.0.2 Checking cvt v0.1.2 Compiling line-col v0.2.1 Compiling descape v2.0.3 Checking fs_at v0.2.1 Compiling subplotlib v0.13.0 (/workspace/src/subplotlib) Checking normpath v1.3.0 Checking remove_dir_all v1.0.0 Checking filetime v0.2.25 Checking fs2 v0.4.3 Checking state v0.6.0 Checking shell-words v1.1.0 Checking utf8parse v0.2.2 Checking anstyle-parse v0.2.7 Checking is_terminal_polyfill v1.70.1 Checking anstyle-query v1.1.3 Checking colorchoice v1.0.4 Checking anstyle v1.0.11 Checking anstream v0.6.19 Compiling heck v0.5.0 Checking clap_lex v0.7.5 Checking strsim v0.11.1 Compiling clap_derive v4.5.41 Checking clap_builder v4.5.42 Compiling subplotlib-derive v0.13.0 (/workspace/src/subplotlib-derive) Checking clap v4.5.42 Checking regex-syntax v0.6.29 Checking regex-automata v0.1.10 Checking overload v0.1.1 Checking nu-ansi-term v0.46.0 Compiling git-testament-derive v0.2.1 Checking matchers v0.1.0 Checking tracing-log v0.2.0 Checking sharded-slab v0.1.7 Checking thread_local v1.1.9 Checking smallvec v1.15.1 Checking tracing-subscriber v0.3.19 Checking git-testament v0.2.6 Checking subplot-build v0.13.0 (/workspace/src/subplot-build) Checking subplot-bin v0.13.0 (/workspace/src/bin) Checking subplot-seq-example v0.1.0 (/workspace/src/examples/seq) Finished `dev` profile [unoptimized + debuginfo] target(s) in 34.51s RUN: Action finished OK RUN: Action Shell { shell: "export DEBEMAIL=liw@liw.fi\nexport DEBFULLNAME=\"Lars Wirzenius\"\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:$PATH\"\n\nmake OFFLINE=\"--offline\"\n\n# Clean up after tests and documentation building.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n\nV=\"$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')\"\nT=\"$(date -u \"+%Y%m%dT%H%M%S\")\"\nversion=\"$V.ci$T-1\"\ndch -v \"$version\" \"CI build under Ambient.\"\ndch -r ''\n", } [2025-08-09T04:47:29Z DEBUG ambient_ci::action] Plan::execute: Shell { shell: "export DEBEMAIL=liw@liw.fi\nexport DEBFULLNAME=\"Lars Wirzenius\"\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:$PATH\"\n\nmake OFFLINE=\"--offline\"\n\n# Clean up after tests and documentation building.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n\nV=\"$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')\"\nT=\"$(date -u \"+%Y%m%dT%H%M%S\")\"\nversion=\"$V.ci$T-1\"\ndch -v \"$version\" \"CI build under Ambient.\"\ndch -r ''\n", } SPAWN: argv=["/bin/bash", "-c", "set -xeuo pipefail\nexport DEBEMAIL=liw@liw.fi\nexport DEBFULLNAME=\"Lars Wirzenius\"\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:$PATH\"\n\nmake OFFLINE=\"--offline\"\n\n# Clean up after tests and documentation building.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n\nV=\"$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')\"\nT=\"$(date -u \"+%Y%m%dT%H%M%S\")\"\nversion=\"$V.ci$T-1\"\ndch -v \"$version\" \"CI build under Ambient.\"\ndch -r ''\n\n"] cwd=/workspace/src (exists? true) extra_env=[] + export DEBEMAIL=liw@liw.fi + DEBEMAIL=liw@liw.fi + export 'DEBFULLNAME=Lars Wirzenius' + DEBFULLNAME='Lars Wirzenius' + export CARGO_TARGET_DIR=/workspace/cache + CARGO_TARGET_DIR=/workspace/cache + export CARGO_HOME=/workspace/deps + CARGO_HOME=/workspace/deps + export HOME=/root + HOME=/root + export PATH=/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + PATH=/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + make OFFLINE=--offline which cargo /root/.cargo/bin/cargo which dot /usr/bin/dot which plantuml /usr/bin/plantuml which python3 /usr/bin/python3 which rustc /root/.cargo/bin/rustc which rustfmt /root/.cargo/bin/rustfmt which tidy /usr/bin/tidy if which shellcheck; then shellcheck *.sh; fi /usr/bin/shellcheck if cargo clippy --version; then \ cargo clippy --locked --offline --workspace --all-targets -- -Dwarnings && \ cd examples/seq && cargo clippy --workspace --all-targets -- -Dwarnings; \ fi clippy 0.1.89 (29483883ee 2025-08-04) Compiling subplot v0.13.0 (/workspace/src) Compiling subplotlib v0.13.0 (/workspace/src/subplotlib) Checking subplotlib-derive v0.13.0 (/workspace/src/subplotlib-derive) Checking subplot-build v0.13.0 (/workspace/src/subplot-build) Checking subplot-bin v0.13.0 (/workspace/src/bin) Checking subplot-seq-example v0.1.0 (/workspace/src/examples/seq) Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.35s Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.14s rm -rf "/workspace/src/inst" cargo install --locked --offline --path=bin --root="/workspace/src/inst" --debug Installing subplot-bin v0.13.0 (/workspace/src/bin) Compiling syn v2.0.104 Compiling cfg-if v1.0.1 Compiling memchr v2.7.5 Compiling once_cell v1.21.3 Compiling libc v0.2.174 Compiling zerocopy v0.8.26 Compiling itoa v1.0.15 Compiling aho-corasick v1.1.3 Compiling regex-syntax v0.8.5 Compiling log v0.4.27 Compiling same-file v1.0.6 Compiling bitflags v2.9.1 Compiling walkdir v2.5.0 Compiling regex-automata v0.4.9 Compiling ahash v0.8.12 Compiling crossbeam-utils v0.8.21 Compiling encoding_rs v0.8.35 Compiling arraydeque v0.5.1 Compiling ucd-trie v0.1.7 Compiling crossbeam-epoch v0.9.18 Compiling serde_derive v1.0.219 Compiling thiserror-impl v2.0.12 Compiling hashbrown v0.14.5 Compiling thiserror v2.0.12 Compiling pest v2.8.1 Compiling getrandom v0.2.16 Compiling bstr v1.12.0 Compiling utf8parse v0.2.2 Compiling unic-common v0.9.0 Compiling unicode-width v0.2.1 Compiling foldhash v0.1.5 Compiling unic-char-range v0.9.0 Compiling unic-char-property v0.9.0 Compiling hashbrown v0.15.4 Compiling unic-ucd-version v0.9.0 Compiling anstyle-parse v0.2.7 Compiling pest_meta v2.8.1 Compiling globset v0.4.16 Compiling rand_core v0.6.4 Compiling serde v1.0.219 Compiling hashlink v0.9.1 Compiling crossbeam-deque v0.8.6 Compiling anyhow v1.0.98 Compiling doc-comment v0.3.3 Compiling ppv-lite86 v0.2.21 Compiling tracing-core v0.1.34 Compiling lazy_static v1.5.0 Compiling is_terminal_polyfill v1.70.1 Compiling powerfmt v0.2.0 Compiling num-conv v0.1.0 Compiling linux-raw-sys v0.9.4 Compiling time-core v0.1.4 Compiling colorchoice v1.0.4 Compiling anstyle-query v1.1.3 Compiling anstyle v1.0.11 Compiling time-macros v0.2.22 Compiling anstream v0.6.19 Compiling rustix v1.0.8 Compiling deranged v0.4.0 Compiling rand_chacha v0.3.1 Compiling serde_path_to_error v0.1.17 Compiling ignore v0.4.23 Compiling pest_generator v2.8.1 Compiling yaml-rust2 v0.9.0 Compiling hashlink v0.10.0 Compiling libm v0.2.15 Compiling unic-ucd-segment v0.9.0 Compiling getrandom v0.3.3 Compiling regex v1.11.1 Compiling tracing-attributes v0.1.30 Compiling strsim v0.11.1 Compiling clap_lex v0.7.5 Compiling fastrand v2.3.0 Compiling regex-syntax v0.6.29 Compiling deunicode v1.6.2 Compiling smawk v0.3.2 Compiling ryu v1.0.20 Compiling pin-project-lite v0.2.16 Compiling unicode-linebreak v0.1.5 Compiling serde_json v1.0.142 Compiling textwrap v0.16.2 Compiling tracing v0.1.41 Compiling slug v0.1.6 Compiling tempfile v3.20.0 Compiling clap_builder v4.5.42 Compiling regex-automata v0.1.10 Compiling clap_derive v4.5.41 Compiling humansize v2.1.3 Compiling unic-segment v0.9.0 Compiling yaml-rust2 v0.10.3 Compiling pest_derive v2.8.1 Compiling marked-yaml v0.7.2 Compiling globwalk v0.9.1 Compiling time v0.3.41 Compiling rand v0.8.5 Compiling subplot v0.13.0 (/workspace/src) Compiling getopts v0.2.23 Compiling overload v0.1.1 Compiling pulldown-cmark-escape v0.11.0 Compiling percent-encoding v2.3.1 Compiling unicase v2.8.1 Compiling utf8-width v0.1.7 Compiling pulldown-cmark v0.13.0 Compiling html-escape v0.2.13 Compiling git-testament-derive v0.2.1 Compiling tera v1.20.0 Compiling nu-ansi-term v0.46.0 Compiling clap v4.5.42 Compiling roadmap v0.7.0 Compiling marked-yaml v0.8.0 Compiling pikchr v0.1.4 Compiling matchers v0.1.0 Compiling tracing-log v0.2.0 Compiling sharded-slab v0.1.7 Compiling thread_local v1.1.9 Compiling descape v2.0.3 Compiling base64 v0.22.1 Compiling line-col v0.2.1 Compiling smallvec v1.15.1 Compiling git-testament v0.2.6 Compiling tracing-subscriber v0.3.19 Compiling subplot-bin v0.13.0 (/workspace/src/bin) Finished `dev` profile [unoptimized + debuginfo] target(s) in 28.48s Installing /workspace/src/inst/bin/subplot Installed package `subplot-bin v0.13.0 (/workspace/src/bin)` (executable `subplot`) warning: be sure to add `/workspace/src/inst/bin` to your PATH to be able to run the installed binaries mv "/workspace/src/inst"/bin/* "/workspace/src/inst" rm -rf "/workspace/src/inst"/.crate* "/workspace/src/inst"/bin cd share/python/template && python3 context_tests.py ............................ ---------------------------------------------------------------------- Ran 28 tests in 0.006s OK cd share/python/template && python3 encoding_tests.py .. ---------------------------------------------------------------------- Ran 2 tests in 0.000s OK env SUBPLOT_DIR="/workspace/src/inst" cargo test --workspace -- Compiling libc v0.2.174 Compiling thiserror v2.0.12 Compiling serde v1.0.219 Compiling getrandom v0.2.16 Compiling pest v2.8.1 Compiling rand_core v0.6.4 Compiling globset v0.4.16 Compiling ignore v0.4.23 Compiling pest_meta v2.8.1 Compiling getrandom v0.3.3 Compiling tempfile v3.20.0 Compiling serde_path_to_error v0.1.17 Compiling pest_generator v2.8.1 Compiling marked-yaml v0.7.2 Compiling serde_json v1.0.142 Compiling marked-yaml v0.8.0 Compiling rand_chacha v0.3.1 Compiling pest_derive v2.8.1 Compiling time-macros v0.2.22 Compiling rand v0.8.5 Compiling globwalk v0.9.1 Compiling subplot v0.13.0 (/workspace/src) Compiling tracing-core v0.1.34 Compiling tera v1.20.0 Compiling roadmap v0.7.0 Compiling tracing v0.1.41 Compiling pikchr v0.1.4 Compiling culpa v1.0.2 Compiling nix v0.29.0 Compiling cvt v0.1.2 Compiling time v0.3.41 Compiling normpath v1.3.0 Compiling subplotlib v0.13.0 (/workspace/src/subplotlib) Compiling filetime v0.2.25 Compiling fs2 v0.4.3 Compiling state v0.6.0 Compiling shell-words v1.1.0 Compiling fs_at v0.2.1 Compiling remove_dir_all v1.0.0 Compiling clap v4.5.42 Compiling tracing-subscriber v0.3.19 Compiling subplotlib-derive v0.13.0 (/workspace/src/subplotlib-derive) Compiling git-testament-derive v0.2.1 Compiling subplot-build v0.13.0 (/workspace/src/subplot-build) Compiling git-testament v0.2.6 Compiling subplot-bin v0.13.0 (/workspace/src/bin) Compiling subplot-seq-example v0.1.0 (/workspace/src/examples/seq) Finished `test` profile [unoptimized + debuginfo] target(s) in 28.98s Running unittests src/lib.rs (/workspace/cache/debug/deps/subplot-e5a783abd4452e95) running 108 tests test bindings::test_binding::does_not_match_with_wrong_kind ... ok test bindings::test_binding::creates_new ... ok test bindings::test_binding::case_sensitive_mismatch ... ok test bindings::test_binding::does_not_match_with_wrong_text ... ok test bindings::test_binding::equal ... ok test bindings::test_binding::match_with_fixed_pattern ... ok test bindings::test_binding::not_equal ... ok test bindings::test_bindings::add_from_yaml_notices_multiple_keywords ... ok test bindings::test_bindings::adds_binding ... ok test bindings::test_bindings::does_not_find_match_for_unmatching_kind ... ok test bindings::test_bindings::does_not_find_match_for_unmatching_pattern ... ok test bindings::test_bindings::finds_match_for_fixed_string_pattern ... ok test bindings::test_binding::match_with_regex ... ok test bindings::test_bindings::finds_match_for_regexp_pattern ... ok test bindings::test_bindings::has_no_bindings_initially ... ok test bindings::test_bindings::adds_from_yaml ... ok test bindings::test_bindings::typemap_must_match_pattern ... ok test bindings::test_bindings::two_matching_bindings ... ok test bindings::test_regex_from_simple_pattern::returns_boring_pattern_as_is ... ok test bindings::test_regex_from_simple_pattern::returns_empty_string_as_is ... ok test bindings::test_regex_from_simple_pattern::kindless_simple_pattern ... ok test bindings::test_regex_from_simple_pattern::returns_error_for_stray_closing_brace ... ok test bindings::test_regex_from_simple_pattern::returns_error_for_stray_closing_brace_before_capture ... ok test bindings::test_regex_from_simple_pattern::returns_error_for_stray_opening_brace ... ok test bindings::test_regex_from_simple_pattern::returns_error_for_stray_opening_brace_before_capture ... ok test bindings::test_regex_from_simple_pattern::returns_pattern_with_regexp_chars_escaped ... ok test bindings::test_regex_from_simple_pattern::simple_text_pattern ... ok test bindings::test_regex_from_simple_pattern::simple_word_pattern ... ok test bindings::test_regex_from_simple_pattern::typemap_and_pattern_kind_must_match ... ok test bindings::test_regex_from_simple_pattern::typemap_checked_on_pattern_parse_and_default_agrees ... ok test bindings::test_regex_from_simple_pattern::typemap_updated_on_pattern_parse_default ... ok test bindings::test_regex_from_simple_pattern::simple_number_pattern ... ok test bindings::test_regex_from_simple_pattern::typemap_updated_on_pattern_parse_explicit ... ok test bindings::test_regex_from_simple_pattern::typemap_used_when_kind_not_present ... ok test blockattr::test::empty_braces ... ok test blockattr::test::empty_string ... ok test blockattr::test::just_word ... ok test blockattr::test::open_brace_without_close ... ok test blockattr::test::parse_one_dotted_word ... ok test blockattr::test::parse_one_id ... ok test blockattr::test::parse_one_kv ... ok test bindings::test_regex_from_simple_pattern::simple_uint_pattern ... ok test blockattr::test::parse_one_kv_with_double_quotes ... ok test blockattr::test::parse_one_kv_with_single_quotes ... ok test blockattr::test::parse_one_word ... ok test blockattr::test::two_ids ... ok test blockattr::test::two_words ... ok test bindings::test_regex_from_simple_pattern::simple_int_pattern ... ok test codegen::test::verify_commentsafe_filter ... ok test codegen::test::verify_name_slugification ... ok test html::test_tag::can_self_close ... ok test html::test_tag::cannot_self_close ... ok test matches::test::returns_text ... ok test matches::test::returns_uncaptured ... ok test matches::test_partial_steps::different_captured_texts_dont_match ... ok test matches::test_partial_steps::different_uncaptured_texts_dont_match ... ok test matches::test_partial_steps::differently_captured_texts_dont_match ... ok test matches::test_partial_steps::differently_named_captured_texts_dont_match ... ok test matches::test_partial_steps::identical_captured_texts_match ... ok test matches::test_partial_steps::identical_uncaptured_texts_match ... ok test md::test::finds_block_classes ... ok test md::test::finds_embedded_files ... ok test md::test::finds_images ... ok test md::test::finds_no_blocks_in_empty_doc ... ok test md::test::finds_no_classes_when_no_blocks_have_them ... ok test md::test::finds_no_embedded_files_in_empty_doc ... ok test md::test::finds_no_images_in_empty_doc ... ok test md::test::finds_no_scenarios_in_empty_doc ... ok test md::test::finds_scenarios ... ok test md::test::loads_empty_doc ... ok test md::test::parses_auto_as_auto ... ok test md::test::parses_empty_as_error ... ok test md::test::parses_garbage_as_error ... ok test md::test::parses_no_as_no ... ok test md::test::parses_no_auto_newline_as_auto ... ok test md::test::parses_yes_as_yes ... ok test md::test_extract::returns_error_if_scenario_has_no_title ... ok test md::test_extract::returns_nothing_if_there_is_no_scenario ... ok test md::test_extract::returns_parent_section_with_scenario_snippet ... ok test md::test_extract::returns_scenario_if_there_is_one ... ok test md::test_extract::skips_scenarioless_deeper_headings ... ok test md::test_extract::skips_scenarioless_parent_heading ... ok test md::test_extract::skips_scenarioless_section_in_favour_of_same_level ... ok test metadata::test::full_meta ... ok test scenarios::filtertest::exclude_slow ... ok test scenarios::filtertest::exclude_unimportant_slow ... ok test scenarios::filtertest::include_all ... ok test scenarios::filtertest::include_fast ... ok test scenarios::filtertest::include_none ... ok test scenarios::test::adds_step ... ok test scenarios::test::has_no_steps_initially ... ok test scenarios::test::has_title ... ok test steps::test::fails_to_parse_and ... ok test steps::test::parses_and ... ok test steps::test::parses_given ... ok test steps::test::parses_given_with_extra_spaces ... ok test steps::test::parses_then ... ok test steps::test::parses_when ... ok test steps::test_steps_parser::empty_string ... ok test steps::test_steps_parser::preserve_nonascii_whitespace ... ok test steps::test_steps_parser::simple ... ok test steps::test_steps_parser::two_simple ... ok test templatespec::test::new_from_yaml ... ok test toc::test_numberer::numbering ... ok test toc::test_slugs::short_and_simple ... ok test toc::test_slugs::unique_for_identical_simple_headings ... ok test toc::test_toc::iterate ... ok test toc::test_toc::uses_given_slug ... ok test result: ok. 108 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s Running tests/bindings-ubm.rs (/workspace/cache/debug/deps/bindings_ubm-5deefc74ee7412f8) running 1 test test bindings_microbenchmark ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.99s Running unittests src/subplot.rs (/workspace/cache/debug/deps/subplot-512d799f3976eca2) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (/workspace/cache/debug/deps/subplot_build-8f5f5c36d87cad31) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/seq.rs (/workspace/cache/debug/deps/seq-b2757f76b4bf0a14) running 4 tests test no_arguments ... ok test not_a_number ... ok test more_than_one_number ... ok test one_number ... ok test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running unittests src/lib.rs (/workspace/cache/debug/deps/subplotlib-99da2f60d8e2adfa) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/files.rs (/workspace/cache/debug/deps/files-2b344c2ad134b7f5) running 7 tests test file_and_directory_removal ... ok test create_on_disk_files_from_embedded_files ... ok test file_equality ... ok test file_metadata ... ok test file_modification_time ... ok test file_contents ... ok test directories ... ok test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running tests/runcmd.rs (/workspace/cache/debug/deps/runcmd-79bc4adef59f278e) running 21 tests test check_stderr_is_not_exactly_something ... ok test check_stderr_is_exactly_as_wanted ... ok test check_stderr_doesn_t_match_regular_expressions ... ok test check_stderr_doesn_t_contain_sub_string ... ok test check_stderr_using_regular_expressions ... ok test check_stdout_doesn_t_contain_sub_string ... ok test check_stderr_using_sub_string_search ... ok test check_stdout_is_exactly_as_wanted ... ok test check_stdout_doesn_t_match_regular_expression ... ok test check_stdout_is_not_exactly_something ... ok test check_stdout_using_regular_expressions ... ok test check_stdout_using_sub_string_search ... ok test check_we_can_prepend_to__path ... ok test execution_in_a_sub_directory_does_not_affect_home ... ok test failed_execution ... ok test failed_execution_in_a_sub_directory ... ok test stdin_comes_from_a_named_file ... ok test successful_execution_in_a_sub_directory ... ok test stdin_contains_exactly ... ok test successful_execution ... ok test setting_and_clearing_of_environment_variables ... ok test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s Running tests/subplot-codegen.rs (/workspace/cache/debug/deps/subplot_codegen-98bc50294b582063) running 29 tests test cleanup_functions_get_called_on_failure__python_ ... ok test capture_using_simple_patterns ... ok test code_generator_gives_an_error_if_input_document_lacks_title ... ok test embedded_file_name_didn_t_match ... ok test all_the_keywords ... ok test examples_are_not_files ... ok test cleanup_functions_gets_called_on_success__python_ ... ok test capture_using_regular_expressions ... ok test missing_functions_file ... ok test empty_lines_in_scenarios ... ok test misuse_of_continuation_keywords ... ok test files_not_in_current_working_directory ... ok test no_scenarios_means_codegen_fails ... ok test no_template_means_you_can_docgen_but_not_codegen ... ok test lowest_level_heading_is_name_of_scenario ... ok test next_heading_at_same_level_starts_new_scenario ... ok test next_heading_at_higher_level_starts_new_scenario ... ok test running_only_chosen_scenarios_with_python ... ok test recall_values_for_use_in_later_steps ... ok test simple_patterns_with_regex_metacharacters__forbidden_case ... ok test steps_which_do_not_case_sensitively_match_sensitive_bindings_do_not_work ... ok test simple_patterns_with_regex_metacharacters__allowed_case ... ok test steps_which_do_not_match_bindings_do_not_work ... ok test steps_which_match_more_than_one_binding_do_not_work ... ok test smoke_test ... ok test set_environment_variables_in_generated_test_programs ... ok test subplot_accepts_title_and_headings_with_inline_markup ... ok test subheadings_don_t_start_new_scenario ... ok test temporary_files_in_scenarios_in_python ... ok test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.48s Running tests/subplot-diagrams.rs (/workspace/cache/debug/deps/subplot_diagrams-5a9057ef2d14a445) running 4 tests test pikchr ... ok test dot ... ok test roadmap ... ok test plantuml ... ok test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.80s Running tests/subplot-docgen.rs (/workspace/cache/debug/deps/subplot_docgen-0410c187f0d58644) running 30 tests test attempt_to_use_definition_list ... ok test bad__add_newline__value ... ok test bindings_file_strictness___given_when_then ... ok test bindings_file_strictness___unknown_field ... ok test class_name_validation ... ok test date_given_on_command_line ... ok test document_generator_gives_an_error_if_input_document_lacks_title ... ok test date_given_in_metadata ... ok test dot ... ok test embedded_css ... ok test examples_may_be_unused ... ok test extract_embedded_file ... ok test fail_if_embedded_file_isn_t_used ... ok test css_urls ... ok test fail_if_two_filenames_only_differ_in_case ... ok test missing_bindings_file ... ok test multiple_markdown_files ... ok test named_code_blocks_must_have_an_appropriate_class ... ok test indented_scenario_steps_are_not_allowed ... ok test no_date_anywhere ... ok test pikchr ... ok test no_template_means_you_can_docgen_but_not_codegen ... ok test files_not_in_current_working_directory ... ok test scenario_before_the_first_heading ... ok test empty_lines_in_scenarios ... ok test roadmap ... ok test title_markup ... ok test subplot_accepts_title_and_headings_with_inline_markup ... ok test smoke_test ... ok test plantuml ... ok test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.74s Running tests/subplot-extract.rs (/workspace/cache/debug/deps/subplot_extract-4d0ad51039c0e237) running 1 test test extract_embedded_files ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running tests/subplot-metadata.rs (/workspace/cache/debug/deps/subplot_metadata-f83680a2906aa9fc) running 5 tests test list_embedded_files ... ok test duplicate_scenario_titles ... ok test scenario_titles ... ok test extracting_metadata_from_a_document ... ok test files_not_in_current_working_directory ... ok test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s Running tests/subplot-others.rs (/workspace/cache/debug/deps/subplot_others-9bece45cabff038e) running 68 tests test bindings_file_strictness___given_when_then ... ok test bad__add_newline__value ... ok test attempt_to_use_definition_list ... ok test bindings_file_strictness___unknown_field ... ok test class_name_validation ... ok test all_the_keywords ... ok test capture_using_regular_expressions ... ok test code_generator_gives_an_error_if_input_document_lacks_title ... ok test capture_using_simple_patterns ... ok test date_given_in_metadata ... ok test date_given_on_command_line ... ok test css_urls ... ok test document_generator_gives_an_error_if_input_document_lacks_title ... ok test cleanup_functions_get_called_on_failure__python_ ... ok test duplicate_scenario_titles ... ok test dot ... ok test embedded_file_name_didn_t_match ... ok test examples_are_not_files ... ok test cleanup_functions_gets_called_on_success__python_ ... ok test examples_may_be_unused ... ok test extract_embedded_file ... ok test extract_embedded_file__automatically_add_missing_newline ... ok test extract_embedded_file__by_default_add_missing_newline ... ok test extract_embedded_file__by_default_do_not_add_a_second_newline ... ok test extract_embedded_file__do_not_add_missing_newline ... ok test extract_embedded_file__do_not_automatically_add_second_newline ... ok test extract_embedded_file__explicitly_add_missing_newline ... ok test extract_embedded_file__explicitly_add_second_newline ... ok test extract_embedded_files ... ok test fail_if_embedded_file_isn_t_used ... ok test fail_if_the_same_filename_is_used_twice ... ok test embedded_css ... ok test fail_if_two_filenames_only_differ_in_case ... ok test extracting_metadata_from_a_document ... ok test indented_scenario_steps_are_not_allowed ... ok test list_embedded_files ... ok test missing_bindings_file ... ok test missing_functions_file ... ok test empty_lines_in_scenarios ... ok test misuse_of_continuation_keywords ... ok test multiple_markdown_files ... ok test files_not_in_current_working_directory ... ok test named_code_blocks_must_have_an_appropriate_class ... ok test no_date_anywhere ... ok test no_scenarios_means_codegen_fails ... ok test lowest_level_heading_is_name_of_scenario ... ok test pikchr ... ok test no_template_means_you_can_docgen_but_not_codegen ... ok test next_heading_at_same_level_starts_new_scenario ... ok test next_heading_at_higher_level_starts_new_scenario ... ok test roadmap ... ok test recall_values_for_use_in_later_steps ... ok test scenario_before_the_first_heading ... ok test scenario_titles ... ok test running_only_chosen_scenarios_with_python ... ok test simple_patterns_with_regex_metacharacters__forbidden_case ... ok test simple_patterns_with_regex_metacharacters__allowed_case ... ok test steps_which_do_not_case_sensitively_match_sensitive_bindings_do_not_work ... ok test steps_which_do_not_match_bindings_do_not_work ... ok test steps_which_match_more_than_one_binding_do_not_work ... ok test smoke_test ... ok test set_environment_variables_in_generated_test_programs ... ok test subplot_accepts_title_and_headings_with_inline_markup ... ok test title_markup ... ok test use_embedded_file ... ok test subheadings_don_t_start_new_scenario ... ok test temporary_files_in_scenarios_in_python ... ok test plantuml ... ok test result: ok. 68 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.01s Running tests/subplotlib.rs (/workspace/cache/debug/deps/subplotlib-d564d755c75e9358) running 3 tests test embedded_files ... ok test data_directory ... ok test fundamentals ... ok test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (/workspace/cache/debug/deps/subplotlib_derive-ce3e4a408d37bb18) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests subplot running 6 tests test src/bindings.rs - bindings::BindingImpl::cleanup (line 163) ... ignored test src/bindings.rs - bindings::BindingImpl::function (line 151) ... ignored test src/bindings.rs - bindings::BindingImpl::new (line 137) ... ignored test src/diagrams.rs - diagrams::PikchrMarkup (line 116) ... ok test src/diagrams.rs - diagrams::DotMarkup (line 149) ... ok test src/diagrams.rs - diagrams::PlantumlMarkup (line 198) ... ok test result: ok. 3 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 3.56s Doc-tests subplot_build running 1 test test subplot-build/src/lib.rs - codegen (line 27) ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.51s Doc-tests subplotlib running 70 tests test subplotlib/src/file.rs - file::SubplotDataFile (line 20) ... ok test subplotlib/src/prelude.rs - prelude (line 6) ... ok test subplotlib/src/prelude.rs - prelude::step (line 100) ... ok test subplotlib/src/prelude.rs - prelude::step (line 73) ... ok test subplotlib/src/file.rs - file::SubplotDataFile::new (line 76) ... ok test subplotlib/src/file.rs - file::SubplotDataFile::name (line 105) ... ok test subplotlib/src/file.rs - file::SubplotDataFile::data (line 120) ... ok test subplotlib/src/prelude.rs - prelude::throws (line 26) ... ok test subplotlib/src/prelude.rs - prelude::throws (line 39) ... ok test subplotlib/src/steplibrary/datadir.rs - steplibrary::datadir::datadir_has_enough_space::call (line 160) ... ignored test subplotlib/src/steplibrary/datadir.rs - steplibrary::datadir::datadir_has_enough_space_megabytes::call (line 171) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::create_from_embedded::call (line 55) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::create_from_embedded_with_other_name::call (line 68) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::create_from_text::call (line 131) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_and_embedded_file_do_not_match::call (line 380) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_and_embedded_file_match::call (line 354) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_contains::call (line 252) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_do_not_match::call (line 328) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_does_not_exist::call (line 207) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_doesnt_contain::call (line 268) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_exists::call (line 187) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_match::call (line 301) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_matches_regex::call (line 285) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::has_different_metadata::call (line 455) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::has_remembered_metadata::call (line 416) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::make_directory::call (line 520) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::mtime_is_ancient::call (line 504) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::mtime_is_recent::call (line 488) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::only_these_exist::call (line 233) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::path_does_not_exist::call (line 570) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::path_exists::call (line 553) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::path_is_empty::call (line 589) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::path_is_not_empty::call (line 607) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::remember_metadata::call (line 142) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::remove_directory::call (line 530) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::remove_empty_directory::call (line 541) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::remove_file::call (line 92) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::touch::call (line 166) ... ignored test subplotlib/src/steplibrary/files.rs - steplibrary::files::touch_with_timestamp::call (line 104) ... ignored test subplotlib/src/steplibrary.rs - steplibrary (line 10) ... ok test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::exit_code_is::call (line 403) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::exit_code_is_nonzero::call (line 442) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::exit_code_is_not::call (line 419) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::exit_code_is_zero::call (line 431) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::helper_script::call (line 227) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::helper_srcdir_path::call (line 241) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::run::call (line 254) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::run_in::call (line 271) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::set_environment_variable::call (line 677) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stderr_contains::call (line 594) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stderr_doesnt_contain::call (line 607) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stderr_doesnt_match_regex::call (line 663) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stderr_is::call (line 542) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stderr_isnt::call (line 555) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stderr_matches_regex::call (line 649) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stdin_from_file::call (line 480) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stdin_is::call (line 502) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stdout_contains::call (line 568) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stdout_doesnt_contain::call (line 581) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stdout_doesnt_match_regex::call (line 635) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stdout_is::call (line 516) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stdout_isnt::call (line 529) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::stdout_matches_regex::call (line 621) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::try_to_run::call (line 285) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::try_to_run_in::call (line 298) ... ignored test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::unset_environment_variable::call (line 691) ... ignored test subplotlib/src/scenario.rs - scenario::Scenario (line 305) ... ok test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::Runcmd::join_paths (line 155) ... ok test subplotlib/src/step.rs - step::ScenarioStep (line 24) ... ok test subplotlib/src/utils.rs - utils::base64_decode (line 9) ... ok test result: ok. 14 passed; 0 failed; 56 ignored; 0 measured; 0 filtered out; finished in 1.65s Doc-tests subplotlib_derive running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s /workspace/src/inst/subplot --resources /workspace/src/share codegen subplot.subplot -o test.py --template python INFO Starting Subplot INFO Subplot finished successfully rm -f test.log python3 test.py --log test.log --env SUBPLOT_DIR=/workspace/src/inst srcdir /workspace/src datadir /tmp/tmp5h77ytj9 scenario: Use embedded file step: given file numbered-lines.txt step: given file not-numbered-lines.txt scenario: Fail if the same filename is used twice step: given file onefiletwice.md step: given an installed subplot step: when I try to run subplot docgen onefiletwice.md -o onefiletwice.html step: then command fails step: then file onefiletwice.html does not exist cleanup: given an installed subplot scenario: Extract embedded file, by default add missing newline step: given file default-without-newline.txt step: then default-without-newline.txt ends in one newline scenario: Extract embedded file, by default do not add a second newline step: given file default-has-newline.txt step: then default-has-newline.txt ends in one newline scenario: Empty lines in scenarios step: given file emptylines.subplot step: given file emptylines.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I run subplot docgen emptylines.subplot -o emptylines.html step: then file emptylines.html exists step: when I run subplot codegen --run emptylines.subplot -o test.py step: then scenario "Simple" was run step: then step "given precondition foo" was run step: then step "when I do bar" was run step: then step "then bar was done" was run step: then command is successful cleanup: given an installed subplot scenario: Running only chosen scenarios with Python step: given file twoscenarios-python.subplot step: given file twoscenarios-python.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I run subplot codegen twoscenarios-python.subplot -o test.py step: when I run python3 test.py on step: then scenario "One" was run step: then scenario "Two" was not run step: then command is successful cleanup: given an installed subplot scenario: No scenarios means codegen fails step: given file noscenarios.subplot step: given file noscenarios.md step: given an installed subplot step: when I try to run subplot codegen noscenarios.subplot -o test.py step: then command fails step: then stderr contains "no scenarios were found" cleanup: given an installed subplot scenario: Steps which do not case-sensitively match sensitive bindings do not work step: given file casemismatch.subplot step: given file casemismatch.md step: given file badbindings.yaml step: given an installed subplot step: when I try to run subplot codegen --run casemismatch.subplot -o test.py step: then command fails cleanup: given an installed subplot scenario: Temporary files in scenarios in Python step: given file tmpdir.subplot step: given file tmpdir.md step: given file tmpdir.yaml step: given file tmpdir.py step: given an installed subplot step: when I run subplot codegen --run tmpdir.subplot -o test.py step: then command is successful step: then scenario "TMPDIR" was run step: then step "then TMPDIR is set" was run cleanup: given an installed subplot scenario: Extract embedded file, automatically add missing newline step: given file auto-without-newline.txt step: then auto-without-newline.txt ends in one newline scenario: Missing bindings file step: given file missing-binding.subplot step: given file missing-binding.md step: given an installed subplot step: when I try to run subplot docgen missing-binding.subplot -o foo.html step: then command fails step: then stderr contains "could not be found" step: then stderr contains "missing-binding.yaml" cleanup: given an installed subplot scenario: Misuse of continuation keywords step: given file continuationmisuse.subplot step: given file continuationmisuse.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I try to run subplot codegen --run continuationmisuse.subplot -o test.py step: then command fails cleanup: given an installed subplot scenario: All the keywords step: given file allkeywords.subplot step: given file allkeywords.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I run subplot codegen --run allkeywords.subplot -o test.py step: then scenario "All keywords" was run step: then step "given precondition foo" was run step: then step "when I do bar" was run step: then step "then bar was done" was run step: then command is successful cleanup: given an installed subplot scenario: Date given in metadata step: given file metadate.subplot step: given file metadate.md step: given an installed subplot step: when I run subplot docgen metadate.subplot -o metadate.html step: when I run cat metadate.html step: then file metadate.html exists step: then file metadate.html contains "<title>The Fabulous Title</title>" step: then file metadate.html contains "Alfred Pennyworth" step: then file metadate.html contains "Geoffrey Butler" step: then file metadate.html contains "WIP" cleanup: given an installed subplot scenario: Bindings file strictness - given when then step: given file badbindingsgwt.subplot step: given file badbindingsgwt.md step: given file badbindingsgwt.yaml step: given an installed subplot step: when I try to run subplot docgen --output ignored.html badbindingsgwt.subplot step: then command fails step: then stderr contains "binding has more than one keyword" cleanup: given an installed subplot scenario: PlantUML step: given file plantuml.subplot step: given file plantuml.md step: given file b.yaml step: given an installed subplot step: when I run subplot docgen plantuml.subplot -o plantuml.html step: then file plantuml.html matches regex /src="data:image/svg\\+xml;base64,/ cleanup: given an installed subplot scenario: Next heading at same level starts new scenario step: given file samelevelisnewscenario.subplot step: given file samelevelisnewscenario.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I run subplot codegen --run samelevelisnewscenario.subplot -o test.py step: then scenario "heading 1.1.1" was run step: then scenario "heading 1.1.2" was run step: then command is successful cleanup: given an installed subplot scenario: Subheadings don't start new scenario step: given file subisnotnewscenario.subplot step: given file subisnotnewscenario.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I run subplot codegen --run subisnotnewscenario.subplot -o test.py step: then scenario "heading 1.1a" was run step: then command is successful cleanup: given an installed subplot scenario: List embedded files step: given file two-embedded.subplot step: given file two-embedded.md step: given an installed subplot step: when I run subplot metadata --merciful two-embedded.subplot step: then stdout contains "foo.txt" step: then stdout contains "bar.yaml" cleanup: given an installed subplot scenario: Title markup step: given file title-markup.subplot step: given file title-markup.md step: given an installed subplot step: when I run subplot docgen title-markup.subplot -o foo.html step: then file foo.html exists cleanup: given an installed subplot scenario: Duplicate scenario titles step: given file duplicate-scenario-titles.subplot step: given file duplicate-scenario-titles.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I try to run subplot metadata duplicate-scenario-titles.subplot step: then command fails step: then stderr contains "duplicate" cleanup: given an installed subplot scenario: Multiple markdown files step: given file multimd.subplot step: given file md1.md step: given file md2.md step: given an installed subplot step: when I run subplot docgen multimd.subplot -o multimd.html step: when I run cat multimd.html step: then file multimd.html exists step: then file multimd.html contains "<title>The Fabulous Title</title>" step: then file multimd.html contains "First markdown file." step: then file multimd.html contains "Second markdown file." cleanup: given an installed subplot scenario: Extract embedded file step: given file embedded.subplot step: given file embedded.md step: given an installed subplot step: when I run subplot docgen --merciful embedded.subplot -o foo.html step: then file foo.html exists step: then file foo.html matches regex /embedded\\.txt/ cleanup: given an installed subplot scenario: Dot step: given file dot.subplot step: given file dot.md step: given file b.yaml step: given an installed subplot step: when I run subplot docgen dot.subplot -o dot.html step: then file dot.html matches regex /src="data:image/svg\\+xml;base64,/ cleanup: given an installed subplot scenario: Extract embedded file, do not automatically add second newline step: given file auto-has-newline.txt step: then auto-has-newline.txt ends in one newline scenario: Subplot accepts title and headings with inline markup step: given file fancytitle.subplot step: given file fancytitle.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I try to run subplot docgen fancytitle.subplot -o foo.md step: then command is successful step: when I try to run subplot codegen fancytitle.subplot -o foo.md step: then command is successful cleanup: given an installed subplot scenario: No template means you can docgen but not codegen step: given file notemplate.subplot step: given file notemplate.md step: given an installed subplot step: when I run subplot docgen notemplate.subplot -o notemplate.html step: then file notemplate.html exists step: when I try to run subplot codegen notemplate.subplot -o test.py step: then command fails step: then stderr contains "document has no template" cleanup: given an installed subplot scenario: Set environment variables in generated test programs step: given file env.subplot step: given file env.md step: given file env.yaml step: given file env.py step: given an installed subplot step: when I run subplot codegen env.subplot -o test.py step: when I try to run python3 test.py step: then command fails step: when I try to run python3 test.py --env FOO=foo step: then command fails step: when I try to run python3 test.py --env FOO=bar step: then command is successful cleanup: given an installed subplot scenario: Steps which do not match bindings do not work step: given file nobinding.subplot step: given file nobinding.md step: given file badbindings.yaml step: given an installed subplot step: when I try to run subplot codegen --run nobinding.subplot -o test.py step: then command fails cleanup: given an installed subplot scenario: Bad "add-newline" value step: given an installed subplot step: given file add-newline.subplot step: given file add-newline.md step: when I try to run subplot docgen add-newline.subplot -o /dev/null step: then command fails step: then stderr contains "ERROR add-newline.md:1:1: value of add-newline attribute is not understood: xyzzy" cleanup: given an installed subplot scenario: Fail if two filenames only differ in case step: given file casediff.md step: given an installed subplot step: when I try to run subplot docgen casediff.md -o casediff.html step: then command fails step: then file casediff.html does not exist cleanup: given an installed subplot scenario: Examples may be unused step: given file unusedexample.subplot step: given file unusedexample.md step: given an installed subplot step: when I try to run subplot docgen --merciful unusedexample.subplot -o unusedexample.html step: then command is successful step: then file unusedexample.html exists step: then stderr doesn't contain "thisisnotused.txt" cleanup: given an installed subplot scenario: Cleanup functions get called on failure (Python) step: given file cleanup-fail-python.subplot step: given file cleanup-fail-python.md step: given file cleanup.yaml step: given file cleanup.py step: given an installed subplot step: when I try to run subplot codegen --run cleanup-fail-python.subplot -o test.py step: then scenario "Cleanup" was run step: then step "given foo" was run, and then step "given bar" step: then cleanup for "given bar" was run, and then for "given foo" step: then cleanup for "given failure" was not run step: then command fails cleanup: given an installed subplot scenario: Attempt to use definition list step: given an installed subplot step: given file dl.subplot step: given file dl.md step: when I try to run subplot docgen dl.subplot -o /dev/null step: then command fails step: then stderr contains "ERROR dl.md:3:1: attempt to use definition lists in Markdown" cleanup: given an installed subplot scenario: Roadmap step: given file roadmap.subplot step: given file roadmap.md step: given file b.yaml step: given an installed subplot step: when I run subplot docgen roadmap.subplot -o roadmap.html step: then file roadmap.html matches regex /src="data:image/svg\\+xml;base64,/ cleanup: given an installed subplot scenario: Code generator gives an error if input document lacks title step: given file notitle.subplot step: given file notitle.md step: given an installed subplot step: when I try to run subplot codegen --run notitle.subplot -o test.py step: then command fails cleanup: given an installed subplot scenario: Document generator gives an error if input document lacks title step: given file notitle.subplot step: given file notitle.md step: given an installed subplot step: when I try to run subplot docgen notitle.subplot -o foo.md step: then command fails cleanup: given an installed subplot scenario: Capture using regular expressions step: given file regex.subplot step: given file regex.md step: given file regex.yaml step: given file capture.py step: given an installed subplot step: when I run subplot codegen --run regex.subplot -o test.py step: then scenario "Regex" was run step: then step "given I am Tomjon" was run step: then stdout contains "function got argument name as Tomjon" step: then command is successful cleanup: given an installed subplot scenario: No date anywhere step: given file dateless.subplot step: given file dateless.md step: given file dateless.md has modification time 2020-02-26 07:53:17 step: given an installed subplot step: when I run subplot docgen dateless.subplot -o mtime.html step: then file mtime.html exists step: then file mtime.html contains "<title>The Fabulous Title</title>" step: then file mtime.html contains "Alfred Pennyworth" step: then file mtime.html contains "Geoffrey Butler" step: then file mtime.html contains "2020-02-26 07:53" cleanup: given an installed subplot scenario: Bindings file strictness - unknown field step: given file badbindingsuf.subplot step: given file badbindingsuf.md step: given file badbindingsuf.yaml step: given an installed subplot step: when I try to run subplot docgen --output ignored.html badbindingsuf.subplot step: then command fails step: then stderr contains "Unknown field `function`" cleanup: given an installed subplot scenario: Embedded CSS step: given file embedded-css.subplot step: given file embedded-css.md step: given file embedded-css.css step: given file b.yaml step: given an installed subplot step: when I run subplot docgen embedded-css.subplot -o foo.html step: then file foo.html contains "silly: property;" cleanup: given an installed subplot scenario: Missing functions file step: given file missing-functions.subplot step: given file missing-functions.md step: given file b.yaml step: given an installed subplot step: when I try to run subplot codegen --run missing-functions.subplot -o foo.py step: then command fails step: then stderr contains "could not be found" step: then stderr contains "missing-functions.py" cleanup: given an installed subplot scenario: Fail if embedded file isn't used step: given file unusedfile.subplot step: given file unusedfile.md step: given an installed subplot step: when I try to run subplot docgen --merciful unusedfile.subplot -o unusedfile.html step: then command is successful step: then file unusedfile.html exists step: then stderr contains "thisisnotused.txt" cleanup: given an installed subplot scenario: Indented scenario steps are not allowed step: given file indented-step.subplot step: given file indented-step.md step: given file b.yaml step: given an installed subplot step: when I try to run subplot docgen indented-step.subplot -o foo.html step: then command fails step: then stderr contains "indented" cleanup: given an installed subplot scenario: Recall values for use in later steps step: given file values.subplot step: given file values.md step: given file values.yaml step: given file values.py step: given an installed subplot step: when I run subplot codegen values.subplot -o test.py step: when I run python3 test.py step: then command is successful cleanup: given an installed subplot scenario: Extract embedded file, explicitly add second newline step: given file add-has-newline.txt step: then add-has-newline.txt ends in two newlines scenario: Simple patterns with regex metacharacters: allowed case step: given file confusedbutok.subplot step: given file confusedbutok.md step: given file confusedbutok.yaml step: given file capture.py step: given an installed subplot step: when I run subplot codegen --run confusedbutok.subplot -o test.py step: then command is successful cleanup: given an installed subplot scenario: Simple patterns with regex metacharacters: forbidden case step: given file confusedpattern.subplot step: given file confusedpattern.md step: given file confusedpattern.yaml step: given file capture.py step: given an installed subplot step: when I try to run subplot codegen --run confusedpattern.subplot -o test.py step: then command fails step: then stderr contains "simple pattern contains regex" cleanup: given an installed subplot scenario: Cleanup functions gets called on success (Python) step: given file cleanup-success-python.subplot step: given file cleanup-success-python.md step: given file cleanup.yaml step: given file cleanup.py step: given an installed subplot step: when I run subplot codegen --run cleanup-success-python.subplot -o test.py step: then scenario "Cleanup" was run step: then step "given foo" was run, and then step "given bar" step: then cleanup for "given bar" was run, and then for "given foo" step: then command is successful cleanup: given an installed subplot scenario: Pikchr step: given file pikchr.subplot step: given file pikchr.md step: given an installed subplot step: when I run subplot docgen pikchr.subplot -o pikchr.html step: then file pikchr.html matches regex /src="data:image/svg\\+xml;base64,/ cleanup: given an installed subplot scenario: Extract embedded file, do not add missing newline step: given file no-adding-without-newline.txt step: then no-adding-without-newline.txt does not end in a newline scenario: Date given on command line step: given file dateless.subplot step: given file dateless.md step: given an installed subplot step: when I run subplot docgen dateless.subplot -o dateoption.html --date=FANCYDATE step: then file dateoption.html exists step: then file dateoption.html contains "<title>The Fabulous Title</title>" step: then file dateoption.html contains "Alfred Pennyworth" step: then file dateoption.html contains "Geoffrey Butler" step: then file dateoption.html contains "FANCYDATE" cleanup: given an installed subplot scenario: Named code blocks must have an appropriate class step: given file named-code-blocks-appropriate.subplot step: given file named-code-blocks-appropriate.md step: given file b.yaml step: given an installed subplot step: when I try to run subplot docgen named-code-blocks-appropriate.subplot -o foo.html step: then command fails step: then stderr contains "#example-1 at named-code-blocks-appropriate.md:7:1" step: then stderr doesn't contain "example-2" step: then stderr doesn't contain "example-3" cleanup: given an installed subplot scenario: Steps which match more than one binding do not work step: given file twobindings.subplot step: given file twobindings.md step: given file twobindings.yaml step: given file a_function.py step: given an installed subplot step: when I try to run subplot codegen --run twobindings.subplot -o test.py step: then command fails step: then stderr contains "xyzzy" step: then stderr contains "plugh" cleanup: given an installed subplot scenario: Embedded file name didn't match step: given file badfilename.subplot step: given file badfilename.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I try to run subplot codegen --run badfilename.md -o test.py step: then command fails cleanup: given an installed subplot scenario: Class name validation step: given file unknown-class-name.subplot step: given file unknown-class-name.md step: given file known-class-name.subplot step: given file known-class-name.md step: given file b.yaml step: given an installed subplot step: when I try to run subplot docgen unknown-class-name.subplot -o unknown-class-name.html step: then command fails step: then file unknown-class-name.html does not exist step: then stderr contains "Unknown classes found in the document: foobar" step: when I run subplot docgen known-class-name.subplot -o known-class-name.html step: then file known-class-name.html exists cleanup: given an installed subplot scenario: Smoke test step: given file simple.subplot step: given file simple.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I run subplot docgen simple.subplot -o simple.html step: then file simple.html exists step: when I run subplot codegen --run simple.subplot -o test.py step: then scenario "Simple" was run step: then step "given precondition foo" was run step: then step "when I do bar" was run step: then step "then bar was done" was run step: then command is successful cleanup: given an installed subplot scenario: Lowest level heading is name of scenario step: given file scenarioislowest.subplot step: given file scenarioislowest.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I run subplot codegen --run scenarioislowest.subplot -o test.py step: then scenario "heading 1.1.1" was run step: then command is successful cleanup: given an installed subplot scenario: Next heading at higher level starts new scenario step: given file higherisnewscenario.subplot step: given file higherisnewscenario.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I run subplot codegen --run higherisnewscenario.subplot -o test.py step: then scenario "heading 1.1.1" was run step: then scenario "heading 1.2" was run step: then command is successful cleanup: given an installed subplot scenario: Files not in current working directory step: given file x/simple.subplot from simple.subplot step: given file x/simple.md from simple.md step: given file x/b.yaml from b.yaml step: given file x/f.py from f.py step: given an installed subplot step: when I run subplot metadata x/simple.subplot step: then command is successful step: when I run subplot codegen x/simple.subplot -o test.py step: then file test.py exists step: when I run subplot docgen x/simple.subplot -o simple.html step: then file simple.html exists cleanup: given an installed subplot scenario: CSS URLs step: given file css-urls.subplot step: given file css-urls.md step: given file b.yaml step: given an installed subplot step: when I run subplot docgen css-urls.subplot -o foo.html step: then file foo.html contains "https://example.com/flushing.css" cleanup: given an installed subplot scenario: Scenario before the first heading step: given an installed subplot step: given file scenario-before-heading.subplot step: given file scenario-before-heading.md step: when I try to run subplot docgen scenario-before-heading.subplot -o /dev/null step: then command fails step: then stderr contains "ERROR scenario-before-heading.md:1:1: first scenario is before first heading" cleanup: given an installed subplot scenario: Examples are not files step: given file examplesnotfiles.subplot step: given file examplesnotfiles.md step: given an installed subplot step: when I try to run subplot codegen examplesnotfiles.subplot -t python -o examplesnotfiles.html step: then command fails step: then file examplesnotfiles.html does not exist step: then stderr contains "thisisanexample.txt" cleanup: given an installed subplot scenario: Extract embedded files step: given file embedded-file.subplot step: given file embedded-file.md step: given file expected.txt step: given an installed subplot step: when I run subplot extract --merciful embedded-file.subplot foo.txt -d . step: then files foo.txt and expected.txt match cleanup: given an installed subplot scenario: Extracting metadata from a document step: given file images.subplot step: given file images.md step: given file b.yaml step: given file other.yaml step: given file f.py step: given file other.py step: given file expected.json step: given an installed subplot step: when I run subplot metadata images.subplot step: then stdout contains "source: images.md" step: then stdout contains "source: b.yaml" step: then stdout contains "source: other.yaml" step: then stdout contains "source: f.py" step: then stdout contains "source: other.py" step: then stdout contains "source: image.gif" step: then stdout contains "bindings: b.yaml" step: then stdout contains "bindings: other.yaml" step: then stdout contains "functions[python]: f.py" step: when I run subplot metadata images.subplot -o json step: then JSON output matches expected.json cleanup: given an installed subplot scenario: Extract embedded file, explicitly add missing newline step: given file add-without-newline.txt step: then add-without-newline.txt ends in one newline scenario: Capture using simple patterns step: given file simplepattern.subplot step: given file simplepattern.md step: given file simplepattern.yaml step: given file capture.py step: given an installed subplot step: when I run subplot codegen --run simplepattern.subplot -o test.py step: then scenario "Simple pattern" was run step: then step "given I am Tomjon" was run step: then stdout contains "function got argument name as Tomjon" step: then command is successful cleanup: given an installed subplot scenario: Scenario titles step: given file scenario-titles.subplot step: given file scenario-titles.md step: given file b.yaml step: given file f.py step: given an installed subplot step: when I run subplot metadata scenario-titles.subplot step: then stdout contains "My fun scenario title" cleanup: given an installed subplot OK, all scenarios finished successfully cd examples/muck && /workspace/src/inst/subplot --resources /workspace/src/share codegen muck.subplot --run --output test.py INFO Starting Subplot srcdir /workspace/src/examples/muck datadir /tmp/tmphxa67_19 scenario: Basic object handling step: given a fresh Muck server step: given I am Tomjon step: when I do POST /res with {"foo": "bar"} step: then response code is 201 step: then header Muck-Id is ID step: then header Muck-Revision is REV1 step: when I do GET /res with Muck-Id: {ID} step: then response code is 200 step: then header Muck-Revision matches {REV1} step: then body matches {"foo": "bar"} step: when I do PUT /res with Muck-Id: {ID}, Muck-Revision: {REV1}, and body {"foo":"yo"} step: then response code is 200 step: then header Muck-Revision is {REV2} step: then revisions {REV1} and {REV2} are different step: when I do PUT /res with Muck-Id: {ID}, Muck-Revision: {REV1}, and body {"foo":"yo"} step: then response code is 409 step: when I do GET /res with Muck-Id: {ID} step: then response code is 200 step: then header Muck-Revision matches {REV2} step: then body matches {"foo": "yo"} step: when I do DELETE /res with Muck-Id: {ID} step: then response code is 200 step: when I do GET /res with Muck-Id: {ID} step: then response code is 404 scenario: Accessing someone else's data step: given a fresh Muck server step: given I am Tomjon step: when I do POST /res with {"foo": "bar"} step: then header Muck-Id is ID step: then header Muck-Revision is REV1 step: when I do GET /res with Muck-Id: {ID} step: then response code is 200 step: then header Muck-Revision matches {REV1} step: then body matches {"foo": "bar"} step: given I am Verence step: when I do GET /res with Muck-Id: {ID} step: then response code is 404 scenario: Restarting Muck step: given a fresh Muck server step: given I am Tomjon, with super capability step: when I do POST /res with {"foo": "bar"} step: then header Muck-Id is ID step: then header Muck-Revision is REV1 step: when I restart Muck step: when I do GET /res with Muck-Id: {ID} step: then response code is 200 step: then header Muck-Revision matches {REV1} step: then body matches {"foo": "bar"} scenario: Updating someone else's data step: given a fresh Muck server step: given I am Tomjon step: when I do POST /res with {"foo": "bar"} step: then header Muck-Id is ID step: then header Muck-Revision is REV1 step: given I am Verence step: when I do PUT /res with Muck-Id: {ID}, Muck-Revision: {REV1}, and body {"foo":"yo"} step: then response code is 404 scenario: Deleting someone else's data step: given a fresh Muck server step: given I am Tomjon step: when I do POST /res with {"foo": "bar"} step: then header Muck-Id is ID step: then header Muck-Revision is REV1 step: given I am Verence step: when I do DELETE /res with Muck-Id: {ID} step: then response code is 404 OK, all scenarios finished successfully INFO Subplot finished successfully if [ "--offline" = "" ] ; then \ cd examples/website && \ /workspace/src/inst/subplot --resources /workspace/src/share codegen website.subplot --run --output test.py; \ fi cd examples/seq && cargo test -- Compiling zerocopy v0.8.26 Compiling thiserror v2.0.12 Compiling serde v1.0.219 Compiling crossbeam-utils v0.8.21 Compiling ahash v0.8.12 Compiling regex-automata v0.4.9 Compiling encoding_rs v0.8.35 Compiling pest v2.8.1 Compiling doc-comment v0.3.3 Compiling anyhow v1.0.98 Compiling hashbrown v0.14.5 Compiling crossbeam-epoch v0.9.18 Compiling getrandom v0.2.16 Compiling libm v0.2.15 Compiling globset v0.4.16 Compiling hashlink v0.9.1 Compiling rand_core v0.6.4 Compiling pest_meta v2.8.1 Compiling crossbeam-deque v0.8.6 Compiling serde_path_to_error v0.1.17 Compiling ppv-lite86 v0.2.21 Compiling serde_json v1.0.142 Compiling ignore v0.4.23 Compiling yaml-rust2 v0.9.0 Compiling rand_chacha v0.3.1 Compiling pest_generator v2.8.1 Compiling pulldown-cmark v0.13.0 Compiling tempfile v3.20.0 Compiling pest_derive v2.8.1 Compiling yaml-rust2 v0.10.3 Compiling humansize v2.1.3 Compiling pikchr v0.1.4 Compiling globwalk v0.9.1 Compiling marked-yaml v0.7.2 Compiling rand v0.8.5 Compiling subplot v0.13.0 (/workspace/src) Compiling regex v1.11.1 Compiling memchr v2.7.5 Compiling tera v1.20.0 Compiling aho-corasick v1.1.3 Compiling roadmap v0.7.0 Compiling marked-yaml v0.8.0 Compiling time-macros v0.2.22 Compiling once_cell v1.21.3 Compiling time v0.3.41 Compiling subplotlib-derive v0.13.0 (/workspace/src/subplotlib-derive) Compiling subplotlib v0.13.0 (/workspace/src/subplotlib) Compiling subplot-seq-example v0.1.0 (/workspace/src/examples/seq) Finished `test` profile [unoptimized + debuginfo] target(s) in 15.99s Running tests/seq.rs (/workspace/cache/debug/deps/seq-24a19ebb57a2180f) running 4 tests test more_than_one_number ... ok test no_arguments ... ok test one_number ... ok test not_a_number ... ok test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s /workspace/src/inst/subplot --resources /workspace/src/share docgen subplot.subplot -o subplot.html INFO Starting Subplot INFO Subplot finished successfully /workspace/src/inst/subplot --resources /workspace/src/share docgen tests/subplots/common/files.subplot -o tests/subplots/common/files.html INFO Starting Subplot INFO Subplot finished successfully /workspace/src/inst/subplot --resources /workspace/src/share docgen tests/subplots/common/runcmd.subplot -o tests/subplots/common/runcmd.html INFO Starting Subplot INFO Subplot finished successfully cd examples/muck && /workspace/src/inst/subplot --resources /workspace/src/share/subplot docgen muck.subplot -o muck.html INFO Starting Subplot INFO Subplot finished successfully cd examples/website && /workspace/src/inst/subplot --resources /workspace/src/share docgen website.subplot -o website.html INFO Starting Subplot INFO Subplot finished successfully cd examples/seq && /workspace/src/inst/subplot --resources /workspace/src/share docgen seq.subplot -o seq.html INFO Starting Subplot INFO Subplot finished successfully /workspace/src/inst/subplot --resources /workspace/src/share libdocgen lib/runcmd.yaml --output /workspace/src/inst/runcmd.md INFO Starting Subplot INFO Subplot finished successfully if which pandoc>/dev/null; then pandoc --toc --standalone --self-contained --metadata "title=lib/runcmd" --output /workspace/src/inst/runcmd.html /workspace/src/inst/runcmd.md; fi /workspace/src/inst/subplot --resources /workspace/src/share libdocgen lib/files.yaml --output /workspace/src/inst/files.md INFO Starting Subplot INFO Subplot finished successfully if which pandoc>/dev/null; then pandoc --toc --standalone --self-contained --metadata "title=lib/files" --output /workspace/src/inst/files.html /workspace/src/inst/files.md; fi /workspace/src/inst/subplot --resources /workspace/src/share libdocgen python/lib/daemon.yaml --output /workspace/src/inst/daemon.md INFO Starting Subplot INFO Subplot finished successfully if which pandoc>/dev/null; then pandoc --toc --standalone --self-contained --metadata "title=lib/daemon" --output /workspace/src/inst/daemon.html /workspace/src/inst/daemon.md; fi /workspace/src/inst/subplot --resources /workspace/src/share docgen book/user-guide.subplot --output book/user-guide.html INFO Starting Subplot INFO Subplot finished successfully mkdir -p doc/libdocs for x in subplot.html tests/subplots/common/*.html examples/*/*.html book/*.html; do if [ -e "$x" ]; then mv "$x" doc; fi; done for x in /workspace/src/inst/*.html; do if [ -e "$x" ]; then mv "$x" doc/libdocs/; fi; done + git reset --hard HEAD is now at b3defc8 refactor: remove unnecessary return + git clean -fdx Removing doc/ Removing examples/muck/test.py Removing inst/ Removing share/python/template/__pycache__/ Removing test.log Removing test.py + git status --ignored HEAD detached at b3defc8 nothing to commit, working tree clean ++ dpkg-parsechangelog -SVersion ++ sed 's/-[^-]*$//' + V=0.13.0 ++ date -u +%Y%m%dT%H%M%S + T=20250809T044909 + version=0.13.0.ci20250809T044909-1 + dch -v 0.13.0.ci20250809T044909-1 'CI build under Ambient.' + dch -r '' RUN: Action finished OK RUN: Action Deb [2025-08-09T04:49:09Z DEBUG ambient_ci::action] Plan::execute: Deb SPAWN: argv=["/bin/bash", "-c", "#!/bin/bash\nset -xeuo pipefail\n\necho \"PATH at start: $PATH\"\nexport PATH=\"/root/.cargo/bin:$PATH\"\nexport CARGO_HOME=/workspace/deps\nexport DEBEMAIL=liw@liw.fi\nexport DEBFULLNAME=\"Lars Wirzenius\"\n/bin/env\n\ncommand -v cargo\ncommand -v rustc\n\ncargo --version\nrustc --version\n\n# Get name and version of source package.\nname=\"$(dpkg-parsechangelog -SSource)\"\nversion=\"$(dpkg-parsechangelog -SVersion)\"\n\n# Get upstream version: everything before the last dash.\nuv=\"$(echo \"$version\" | sed 's/-[^-]*$//')\"\n\n# Files that will be created.\narch=\"$(dpkg --print-architecture)\"\norig=\"../${name}_${uv}.orig.tar.xz\"\ndeb=\"../${name}_${version}_${arch}.deb\"\nchanges=\"../${name}_${version}_${arch}.changes\"\n\n# Create \"upstream tarball\".\ngit archive HEAD | xz >\"$orig\"\n\n# Build package.\ndpkg-buildpackage -us -uc\n\n# Dump some information to make it easier to visually verify\n# everything looks OK. Also, test the package with the lintian tool.\n\nls -l ..\nfor x in ../*.deb; do dpkg -c \"$x\"; done\n# FIXME: disabled while this prevents radicle-native-ci deb from being built.\n# lintian -i --allow-root --fail-on warning ../*.changes\n\n# Move files to artifacts directory.\nmv ../*_* /workspace/artifacts\n "] cwd=/workspace/src (exists? true) extra_env=[("CARGO_TARGET_DIR", "/workspace/cache"), ("CARGO_HOME", "/workspace/deps"), ("PATH", "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")] + echo 'PATH at start: /root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' PATH at start: /root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + export PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + export CARGO_HOME=/workspace/deps + CARGO_HOME=/workspace/deps + export DEBEMAIL=liw@liw.fi + DEBEMAIL=liw@liw.fi + export 'DEBFULLNAME=Lars Wirzenius' + DEBFULLNAME='Lars Wirzenius' + /bin/env DEBFULLNAME=Lars Wirzenius CARGO_TARGET_DIR=/workspace/cache PWD=/workspace/src SYSTEMD_EXEC_PID=270 LANG=C.UTF-8 CARGO_HOME=/workspace/deps DEBEMAIL=liw@liw.fi INVOCATION_ID=76fa874086484c87a57f0c6d3125e0bb SHLVL=2 JOURNAL_STREAM=8:11475 PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin OLDPWD=/ _=/bin/env + command -v cargo /root/.cargo/bin/cargo + command -v rustc /root/.cargo/bin/rustc + cargo --version cargo 1.89.0 (c24e10642 2025-06-23) + rustc --version rustc 1.89.0 (29483883e 2025-08-04) ++ dpkg-parsechangelog -SSource + name=subplot ++ dpkg-parsechangelog -SVersion + version=0.13.0.ci20250809T044909-1 ++ echo 0.13.0.ci20250809T044909-1 ++ sed 's/-[^-]*$//' + uv=0.13.0.ci20250809T044909 ++ dpkg --print-architecture + arch=amd64 + orig=../subplot_0.13.0.ci20250809T044909.orig.tar.xz + deb=../subplot_0.13.0.ci20250809T044909-1_amd64.deb + changes=../subplot_0.13.0.ci20250809T044909-1_amd64.changes + xz + git archive HEAD + dpkg-buildpackage -us -uc dpkg-buildpackage: info: source package subplot dpkg-buildpackage: info: source version 0.13.0.ci20250809T044909-1 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Lars Wirzenius <liw@liw.fi> dpkg-buildpackage: info: host architecture amd64 dpkg-source --before-build . debian/rules clean dh clean dh_auto_clean dh_clean dpkg-source -b . dpkg-source: info: using source format '3.0 (quilt)' dpkg-source: info: building subplot using existing ./subplot_0.13.0.ci20250809T044909.orig.tar.xz dpkg-source: info: building subplot in subplot_0.13.0.ci20250809T044909-1.debian.tar.xz dpkg-source: info: building subplot in subplot_0.13.0.ci20250809T044909-1.dsc debian/rules build dh build dh_update_autotools_config dh_autoreconf dh_auto_configure debian/rules override_dh_auto_build make[1]: Entering directory '/workspace/src' true make[1]: Leaving directory '/workspace/src' debian/rules override_dh_auto_test make[1]: Entering directory '/workspace/src' echo disabled disabled make[1]: Leaving directory '/workspace/src' create-stamp debian/debhelper-build-stamp debian/rules binary dh binary dh_testroot dh_prep debian/rules override_dh_auto_install make[1]: Entering directory '/workspace/src' cargo install --path=bin --root=debian/subplot --offline --locked Installing subplot-bin v0.13.0 (/workspace/src/bin) Compiling proc-macro2 v1.0.95 Compiling unicode-ident v1.0.18 Compiling cfg-if v1.0.1 Compiling zerocopy v0.8.26 Compiling memchr v2.7.5 Compiling thiserror v2.0.12 Compiling libc v0.2.174 Compiling once_cell v1.21.3 Compiling quote v1.0.40 Compiling syn v2.0.104 Compiling version_check v0.9.5 Compiling serde v1.0.219 Compiling ahash v0.8.12 Compiling aho-corasick v1.1.3 Compiling itoa v1.0.15 Compiling anyhow v1.0.98 Compiling regex-syntax v0.8.5 Compiling crossbeam-utils v0.8.21 Compiling bitflags v2.9.1 Compiling log v0.4.27 Compiling regex-automata v0.4.9 Compiling thiserror-impl v2.0.12 Compiling serde_derive v1.0.219 Compiling encoding_rs v0.8.35 Compiling doc-comment v0.3.3 Compiling ucd-trie v0.1.7 Compiling arraydeque v0.5.1 Compiling pest v2.8.1 Compiling crossbeam-epoch v0.9.18 Compiling hashbrown v0.14.5 Compiling getrandom v0.2.16 Compiling bstr v1.12.0 Compiling rustix v1.0.8 Compiling getrandom v0.3.3 Compiling utf8parse v0.2.2 Compiling shlex v1.3.0 Compiling libm v0.2.15 Compiling unic-char-range v0.9.0 Compiling foldhash v0.1.5 Compiling num-conv v0.1.0 Compiling unicode-width v0.2.1 Compiling unic-common v0.9.0 Compiling time-core v0.1.4 Compiling same-file v1.0.6 Compiling time-macros v0.2.22 Compiling walkdir v2.5.0 Compiling unic-ucd-version v0.9.0 Compiling hashbrown v0.15.4 Compiling unic-char-property v0.9.0 Compiling cc v1.2.31 Compiling globset v0.4.16 Compiling anstyle-parse v0.2.7 Compiling hashlink v0.9.1 Compiling rand_core v0.6.4 Compiling crossbeam-deque v0.8.6 Compiling pest_meta v2.8.1 Compiling serde_path_to_error v0.1.17 Compiling ppv-lite86 v0.2.21 Compiling tracing-core v0.1.34 Compiling anstyle v1.0.11 Compiling serde_json v1.0.142 Compiling powerfmt v0.2.0 Compiling lazy_static v1.5.0 Compiling anstyle-query v1.1.3 Compiling linux-raw-sys v0.9.4 Compiling colorchoice v1.0.4 Compiling is_terminal_polyfill v1.70.1 Compiling anstream v0.6.19 Compiling deranged v0.4.0 Compiling rand_chacha v0.3.1 Compiling pest_generator v2.8.1 Compiling pikchr v0.1.4 Compiling ignore v0.4.23 Compiling yaml-rust2 v0.9.0 Compiling unic-ucd-segment v0.9.0 Compiling hashlink v0.10.0 Compiling regex v1.11.1 Compiling tracing-attributes v0.1.30 Compiling unicode-linebreak v0.1.5 Compiling deunicode v1.6.2 Compiling ryu v1.0.20 Compiling fastrand v2.3.0 Compiling heck v0.5.0 Compiling smawk v0.3.2 Compiling regex-syntax v0.6.29 Compiling clap_lex v0.7.5 Compiling pulldown-cmark v0.13.0 Compiling strsim v0.11.1 Compiling pin-project-lite v0.2.16 Compiling time v0.3.41 Compiling regex-automata v0.1.10 Compiling tracing v0.1.41 Compiling clap_builder v4.5.42 Compiling textwrap v0.16.2 Compiling clap_derive v4.5.41 Compiling tempfile v3.20.0 Compiling slug v0.1.6 Compiling humansize v2.1.3 Compiling yaml-rust2 v0.10.3 Compiling marked-yaml v0.7.2 Compiling unic-segment v0.9.0 Compiling globwalk v0.9.1 Compiling pest_derive v2.8.1 Compiling subplot v0.13.0 (/workspace/src) Compiling rand v0.8.5 Compiling getopts v0.2.23 Compiling pulldown-cmark-escape v0.11.0 Compiling utf8-width v0.1.7 Compiling overload v0.1.1 Compiling percent-encoding v2.3.1 Compiling unicase v2.8.1 Compiling tera v1.20.0 Compiling git-testament-derive v0.2.1 Compiling nu-ansi-term v0.46.0 Compiling html-escape v0.2.13 Compiling roadmap v0.7.0 Compiling marked-yaml v0.8.0 Compiling clap v4.5.42 Compiling matchers v0.1.0 Compiling sharded-slab v0.1.7 Compiling tracing-log v0.2.0 Compiling thread_local v1.1.9 Compiling base64 v0.22.1 Compiling line-col v0.2.1 Compiling descape v2.0.3 Compiling smallvec v1.15.1 Compiling tracing-subscriber v0.3.19 Compiling git-testament v0.2.6 Compiling subplot-bin v0.13.0 (/workspace/src/bin) Finished `release` profile [optimized] target(s) in 1m 00s Installing debian/subplot/bin/subplot Installed package `subplot-bin v0.13.0 (/workspace/src/bin)` (executable `subplot`) warning: be sure to add `debian/subplot/bin` to your PATH to be able to run the installed binaries rm -f debian/subplot/.crates.toml rm -f debian/subplot/.crates2.json dh_lintian make[1]: Leaving directory '/workspace/src' dh_install dh_installdocs dh_installchangelogs dh_installchangelogs: warning: Could not parse timestamp '15 April 2022 15:00:00 +0100'. debian/changelog will not be trimmed. dh_installchangelogs: warning: debian/changelog could not be trimmed. The full changelog will be installed. dh_lintian dh_perl dh_link dh_strip_nondeterminism dh_compress dh_fixperms dh_missing dh_strip dh_makeshlibs dh_shlibdeps dh_installdeb dh_gencontrol dpkg-gencontrol: warning: Built-Using field of package subplot: substitution variable ${cargo:Built-Using} used, but is not defined dpkg-gencontrol: warning: Built-Using field of package subplot: substitution variable ${cargo:Built-Using} used, but is not defined dh_md5sums dh_builddeb dpkg-deb: building package 'subplot-dbgsym' in '../subplot-dbgsym_0.13.0.ci20250809T044909-1_amd64.deb'. dpkg-deb: building package 'subplot' in '../subplot_0.13.0.ci20250809T044909-1_amd64.deb'. dpkg-genbuildinfo -O../subplot_0.13.0.ci20250809T044909-1_amd64.buildinfo dpkg-genchanges -O../subplot_0.13.0.ci20250809T044909-1_amd64.changes dpkg-genchanges: info: including full source code in upload dpkg-source --after-build . dpkg-buildpackage: info: full upload (original source is included) + ls -l .. total 2368 drwxr-xr-x 2 root root 4096 Aug 9 04:44 artifacts drwxr-xr-x 6 root root 4096 Jun 10 05:28 cache drwxr-xr-x 3 root root 4096 Aug 9 04:49 deps drwxr-xr-x 15 root root 4096 Aug 9 04:49 src -rw-r--r-- 1 root root 274208 Aug 9 04:50 subplot-dbgsym_0.13.0.ci20250809T044909-1_amd64.deb -rw-r--r-- 1 root root 2372 Aug 9 04:49 subplot_0.13.0.ci20250809T044909-1.debian.tar.xz -rw-r--r-- 1 root root 1018 Aug 9 04:49 subplot_0.13.0.ci20250809T044909-1.dsc -rw-r--r-- 1 root root 10151 Aug 9 04:50 subplot_0.13.0.ci20250809T044909-1_amd64.buildinfo -rw-r--r-- 1 root root 2388 Aug 9 04:50 subplot_0.13.0.ci20250809T044909-1_amd64.changes -rw-r--r-- 1 root root 1955604 Aug 9 04:50 subplot_0.13.0.ci20250809T044909-1_amd64.deb -rw-r--r-- 1 root root 148908 Aug 9 04:49 subplot_0.13.0.ci20250809T044909.orig.tar.xz + for x in ../*.deb + dpkg -c ../subplot-dbgsym_0.13.0.ci20250809T044909-1_amd64.deb drwxr-xr-x root/root 0 2025-08-09 04:49 ./ drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/ drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/lib/ drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/lib/debug/ drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/lib/debug/.build-id/ drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/lib/debug/.build-id/aa/ -rw-r--r-- root/root 1807176 2025-08-09 04:49 ./usr/lib/debug/.build-id/aa/e88cddba7924c98add62e737218b125e921a58.debug drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/share/ drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/share/doc/ lrwxrwxrwx root/root 0 2025-08-09 04:49 ./usr/share/doc/subplot-dbgsym -> subplot + for x in ../*.deb + dpkg -c ../subplot_0.13.0.ci20250809T044909-1_amd64.deb drwxr-xr-x root/root 0 2025-08-09 04:49 ./ drwxr-xr-x root/root 0 2025-08-09 04:49 ./bin/ -rwxr-xr-x root/root 8072600 2025-08-09 04:49 ./bin/subplot drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/ drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/share/ drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/share/doc/ drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/share/doc/subplot/ -rw-r--r-- root/root 3623 2025-08-09 04:43 ./usr/share/doc/subplot/README.md -rw-r--r-- root/root 643 2025-08-09 04:49 ./usr/share/doc/subplot/changelog.Debian.gz -rw-r--r-- root/root 1394 2025-08-09 04:43 ./usr/share/doc/subplot/copyright drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/share/lintian/ drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/share/lintian/overrides/ -rw-r--r-- root/root 103 2025-08-09 04:43 ./usr/share/lintian/overrides/subplot drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/share/subplot/ drwxr-xr-x root/root 0 2025-08-09 04:43 ./usr/share/subplot/common/ drwxr-xr-x root/root 0 2025-08-09 04:43 ./usr/share/subplot/common/lib/ -rw-r--r-- root/root 9355 2025-08-09 04:43 ./usr/share/subplot/common/lib/files.yaml -rw-r--r-- root/root 8470 2025-08-09 04:43 ./usr/share/subplot/common/lib/runcmd.yaml drwxr-xr-x root/root 0 2025-08-09 04:43 ./usr/share/subplot/python/ drwxr-xr-x root/root 0 2025-08-09 04:43 ./usr/share/subplot/python/lib/ -rw-r--r-- root/root 10415 2025-08-09 04:43 ./usr/share/subplot/python/lib/daemon.py -rw-r--r-- root/root 4434 2025-08-09 04:43 ./usr/share/subplot/python/lib/daemon.yaml -rw-r--r-- root/root 7272 2025-08-09 04:43 ./usr/share/subplot/python/lib/files.py -rw-r--r-- root/root 8657 2025-08-09 04:43 ./usr/share/subplot/python/lib/runcmd.py drwxr-xr-x root/root 0 2025-08-09 04:49 ./usr/share/subplot/python/template/ -rw-r--r-- root/root 1275 2025-08-09 04:43 ./usr/share/subplot/python/template/asserts.py -rw-r--r-- root/root 2457 2025-08-09 04:43 ./usr/share/subplot/python/template/context.py -rw-r--r-- root/root 4611 2025-08-09 04:43 ./usr/share/subplot/python/template/context_tests.py -rw-r--r-- root/root 201 2025-08-09 04:43 ./usr/share/subplot/python/template/encoding.py -rw-r--r-- root/root 474 2025-08-09 04:43 ./usr/share/subplot/python/template/encoding_tests.py -rw-r--r-- root/root 412 2025-08-09 04:43 ./usr/share/subplot/python/template/files.py -rw-r--r-- root/root 4557 2025-08-09 04:43 ./usr/share/subplot/python/template/main.py -rw-r--r-- root/root 2660 2025-08-09 04:43 ./usr/share/subplot/python/template/scenarios.py -rw-r--r-- root/root 2529 2025-08-09 04:43 ./usr/share/subplot/python/template/template.py.tera -rw-r--r-- root/root 137 2025-08-09 04:43 ./usr/share/subplot/python/template/template.yaml drwxr-xr-x root/root 0 2025-08-09 04:43 ./usr/share/subplot/rust/ drwxr-xr-x root/root 0 2025-08-09 04:43 ./usr/share/subplot/rust/lib/ -rw-r--r-- root/root 788 2025-08-09 04:43 ./usr/share/subplot/rust/lib/datadir.yaml drwxr-xr-x root/root 0 2025-08-09 04:43 ./usr/share/subplot/rust/template/ -rw-r--r-- root/root 1429 2025-08-09 04:43 ./usr/share/subplot/rust/template/macros.rs.tera -rw-r--r-- root/root 1175 2025-08-09 04:43 ./usr/share/subplot/rust/template/template.rs.tera -rw-r--r-- root/root 71 2025-08-09 04:43 ./usr/share/subplot/rust/template/template.yaml -rw-r--r-- root/root 2103 2025-08-09 04:43 ./usr/share/subplot/subplot.css + mv ../subplot-dbgsym_0.13.0.ci20250809T044909-1_amd64.deb ../subplot_0.13.0.ci20250809T044909-1.debian.tar.xz ../subplot_0.13.0.ci20250809T044909-1.dsc ../subplot_0.13.0.ci20250809T044909-1_amd64.buildinfo ../subplot_0.13.0.ci20250809T044909-1_amd64.changes ../subplot_0.13.0.ci20250809T044909-1_amd64.deb ../subplot_0.13.0.ci20250809T044909.orig.tar.xz /workspace/artifacts RUN: Action finished OK RUN: Action TarCreate { archive: "/dev/vde", directory: "/workspace/cache", } [2025-08-09T04:50:18Z DEBUG ambient_ci::action] Plan::execute: TarCreate { archive: "/dev/vde", directory: "/workspace/cache", } [2025-08-09T04:50:18Z TRACE ambient_ci::vdrive] creating virtual drive (tar archive): VirtualDriveBuilder { filename: Some( "/dev/vde", ), root: Some( "/workspace/cache", ), size: None, } [2025-08-09T04:50:18Z TRACE ambient_ci::vdrive] tar archive to be created: /dev/vde; exists? true [2025-08-09T04:50:18Z TRACE ambient_ci::vdrive] create archive file /dev/vde [2025-08-09T04:50:18Z TRACE ambient_ci::vdrive] directory /workspace/cache exists? true [2025-08-09T04:50:18Z TRACE ambient_ci::vdrive] add contents of /workspace/cache as . [2025-08-09T04:51:06Z TRACE ambient_ci::vdrive] created virtual drive /dev/vde RUN: Action finished OK RUN: Action TarCreate { archive: "/dev/vdd", directory: "/workspace/artifacts", } [2025-08-09T04:51:06Z DEBUG ambient_ci::action] Plan::execute: TarCreate { archive: "/dev/vdd", directory: "/workspace/artifacts", } [2025-08-09T04:51:06Z TRACE ambient_ci::vdrive] creating virtual drive (tar archive): VirtualDriveBuilder { filename: Some( "/dev/vdd", ), root: Some( "/workspace/artifacts", ), size: None, } [2025-08-09T04:51:06Z TRACE ambient_ci::vdrive] tar archive to be created: /dev/vdd; exists? true [2025-08-09T04:51:06Z TRACE ambient_ci::vdrive] create archive file /dev/vdd [2025-08-09T04:51:06Z TRACE ambient_ci::vdrive] directory /workspace/artifacts exists? true [2025-08-09T04:51:06Z TRACE ambient_ci::vdrive] add contents of /workspace/artifacts as . [2025-08-09T04:51:06Z TRACE ambient_ci::vdrive] created virtual drive /dev/vdd RUN: Action finished OK ambient-execute-plan ends EXIT CODE: 0 ==================== [2025-08-09T04:51:18Z DEBUG ambient_ci::qemu] QEMU exit code 0 [2025-08-09T04:51:18Z DEBUG ambient_ci::run] remove old cache [2025-08-09T04:51:18Z DEBUG ambient_ci::run] extract cache [2025-08-09T04:51:55Z DEBUG ambient_ci::run] Executing post-plan steps [2025-08-09T04:51:55Z DEBUG ambient_ci::project] write project state to /srv/ambient-state/rad:zjxyd2A1A7FnxtC69qDfoAajfTHo/meta.yaml [2025-08-09T04:51:57Z INFO ambient] ambient ends successfully
<empty log>