Radicle repository id rad:zjxyd2A1A7FnxtC69qDfoAajfTHo
[2025-09-22T12:00:46Z 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 6.1M 1 disk
vdc 254:32 0 3.4M 1 disk
vdd 254:48 0 9.3G 0 disk
vde 254:64 0 46.6G 0 disk
vdf 254:80 0 628.1M 1 disk
INFO: Extracting tar archive from /dev/vdb
drwxr-xr-x _rad/_rad 0 2025-09-22 11:57 ./
-rw-r--r-- _rad/_rad 1119 2025-09-22 11:57 ./plan.yaml
-rwxr-xr-x _rad/_rad 6410400 2025-09-22 11:57 ./run-ci
INFO: Extracted files:
4587526 4 drwxr-xr-x 2 1001 1001 4096 Sep 22 11:57 .
4587527 4 -rw-r--r-- 1 1001 1001 1119 Sep 22 11:57 ./plan.yaml
4587530 6264 -rwxr-xr-x 1 1001 1001 6410400 Sep 22 11:57 ./run-ci
INFO: Running run-ci from /dev/vdb
================================ BEGIN ================================
[2025-09-22T11:57:34Z TRACE ambient_execute_plan] ambient-execute-plan version 0.7.0@12daec3 starts
[2025-09-22T11:57:34Z DEBUG ambient_execute_plan] ambient-execute-plan version 0.7.0@12daec3 starts
[2025-09-22T11:57:34Z INFO ambient_execute_plan] ambient-execute-plan version 0.7.0@12daec3 starts
[2025-09-22T11:57:34Z WARN ambient_execute_plan] ambient-execute-plan version 0.7.0@12daec3 starts
[2025-09-22T11:57:34Z ERROR ambient_execute_plan] ambient-execute-plan version 0.7.0@12daec3 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: |
make OFFLINE="--offline"
# Clean up after tests and documentation building.
git reset --hard
git clean -fdx
git status --ignored
- action: custom
name: dch
args:
debfullname: Lars Wirzenius
debemail: liw@liw.fi
- 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
[2025-09-22T11:57:34Z DEBUG ambient_ci::plan] RUN: Action Mkdir {
pathname: "/workspace",
}
[2025-09-22T11:57:34Z DEBUG ambient_ci::action] Plan::execute: plan=Mkdir {
pathname: "/workspace",
}
[2025-09-22T11:57:34Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
[2025-09-22T11:57:34Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T11:57:34Z DEBUG ambient_ci::plan] RUN: Action Mkdir {
pathname: "/workspace/artifacts",
}
[2025-09-22T11:57:34Z DEBUG ambient_ci::action] Plan::execute: plan=Mkdir {
pathname: "/workspace/artifacts",
}
[2025-09-22T11:57:34Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
[2025-09-22T11:57:34Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T11:57:34Z DEBUG ambient_ci::plan] RUN: Action TarExtract {
archive: "/dev/vdc",
directory: "/workspace/src",
}
[2025-09-22T11:57:34Z DEBUG ambient_ci::action] Plan::execute: plan=TarExtract {
archive: "/dev/vdc",
directory: "/workspace/src",
}
[2025-09-22T11:57:34Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
[2025-09-22T11:57:34Z TRACE ambient_ci::vdrive] extracting /dev/vdc to /workspace/src
[2025-09-22T11:57:34Z TRACE ambient_ci::vdrive] extraction OK
[2025-09-22T11:57:34Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T11:57:34Z DEBUG ambient_ci::plan] RUN: Action TarExtract {
archive: "/dev/vdf",
directory: "/workspace/deps",
}
[2025-09-22T11:57:34Z DEBUG ambient_ci::action] Plan::execute: plan=TarExtract {
archive: "/dev/vdf",
directory: "/workspace/deps",
}
[2025-09-22T11:57:34Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
[2025-09-22T11:57:34Z TRACE ambient_ci::vdrive] extracting /dev/vdf to /workspace/deps
[2025-09-22T11:57:36Z TRACE ambient_ci::vdrive] extraction OK
[2025-09-22T11:57:36Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T11:57:36Z DEBUG ambient_ci::plan] RUN: Action TarExtract {
archive: "/dev/vde",
directory: "/workspace/cache",
}
[2025-09-22T11:57:36Z DEBUG ambient_ci::action] Plan::execute: plan=TarExtract {
archive: "/dev/vde",
directory: "/workspace/cache",
}
[2025-09-22T11:57:36Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
[2025-09-22T11:57:36Z TRACE ambient_ci::vdrive] extracting /dev/vde to /workspace/cache
[2025-09-22T11:57:36Z TRACE ambient_ci::vdrive] extraction OK
[2025-09-22T11:57:36Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T11:57:36Z DEBUG ambient_ci::plan] RUN: Action Spawn {
argv: [
"find",
"/workspace",
"-maxdepth",
"2",
"-ls",
],
}
[2025-09-22T11:57:36Z DEBUG ambient_ci::action] Plan::execute: plan=Spawn {
argv: [
"find",
"/workspace",
"-maxdepth",
"2",
"-ls",
],
}
[2025-09-22T11:57:36Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
SPAWN: argv=["find", "/workspace", "-maxdepth", "2", "-ls"]
cwd=/workspace/src (exists? true)
2621441 4 drwxr-xr-x 6 root root 4096 Sep 22 11:57 /workspace
2621975 4 drwxr-xr-x 3 root root 4096 Sep 22 11:57 /workspace/deps
2621976 0 -rw-r--r-- 1 root root 0 Sep 22 11:57 /workspace/deps/.package-cache-mutate
2621979 4 drwxr-xr-x 5 root root 4096 Sep 22 11:57 /workspace/deps/registry
2621977 88 -rw-r--r-- 1 root root 90112 Sep 22 11:57 /workspace/deps/.global-cache
2621978 0 -rw-r--r-- 1 root root 0 Sep 22 11:57 /workspace/deps/.package-cache
2621443 4 drwxr-xr-x 16 root root 4096 Sep 22 11:57 /workspace/src
2621501 4 drwxr-xr-x 2 root root 4096 Sep 22 11:57 /workspace/src/book
2621515 4 -rw-r--r-- 1 root root 1564 Sep 22 11:57 /workspace/src/Cargo.toml
2621973 8 -rw-r--r-- 1 root root 5176 Sep 22 11:57 /workspace/src/CONTRIBUTING.md
2621485 24 -rw-r--r-- 1 root root 21606 Sep 22 11:57 /workspace/src/NEWS.md
2621512 8 -rw-r--r-- 1 root root 5617 Sep 22 11:57 /workspace/src/build.rs
2621586 4 drwxr-xr-x 8 root root 4096 Sep 22 11:57 /workspace/src/.git
2621447 4 -rw-r--r-- 1 root root 1366 Sep 22 11:57 /workspace/src/DCO-1-1.txt
2621477 4 -rwxr-xr-x 1 root root 489 Sep 22 11:57 /workspace/src/install-debian.sh
2621516 8 -rw-r--r-- 1 root root 6501 Sep 22 11:57 /workspace/src/DECISIONS.md
2621449 4 drwxr-xr-x 3 root root 4096 Sep 22 11:57 /workspace/src/.gitlab
2621478 4 -rw-r--r-- 1 root root 2648 Sep 22 11:57 /workspace/src/subplot.yaml
2621455 4 drwxr-xr-x 2 root root 4096 Sep 22 11:57 /workspace/src/src
2621500 4 -rw-r--r-- 1 root root 1286 Sep 22 11:57 /workspace/src/reference.md
2621505 4 -rw-r--r-- 1 root root 3623 Sep 22 11:57 /workspace/src/README.md
2621453 4 drwxr-xr-x 2 root root 4096 Sep 22 11:57 /workspace/src/.ambient
2621517 4 -rw-r--r-- 1 root root 284 Sep 22 11:57 /workspace/src/subplot.subplot
2621563 4 -rw-r--r-- 1 root root 689 Sep 22 11:57 /workspace/src/reference.py
2621445 4 drwxr-xr-x 2 root root 4096 Sep 22 11:57 /workspace/src/.radicle
2621486 4 drwxr-xr-x 3 root root 4096 Sep 22 11:57 /workspace/src/debian
2621972 4 -rw-r--r-- 1 root root 3387 Sep 22 11:57 /workspace/src/RELEASE.md
2621484 4 -rw-r--r-- 1 root root 10 Sep 22 11:57 /workspace/src/.envrc
2621483 4 -rw-r--r-- 1 root root 56 Sep 22 11:57 /workspace/src/flake8.ini
2621974 48 -rw-r--r-- 1 root root 48928 Sep 22 11:57 /workspace/src/Cargo.lock
2621514 4 -rw-r--r-- 1 root root 142 Sep 22 11:57 /workspace/src/.gitignore
2621585 4 -rw-r--r-- 1 root root 678 Sep 22 11:57 /workspace/src/.gitlab-ci.yml
2621551 4 drwxr-xr-x 3 root root 4096 Sep 22 11:57 /workspace/src/tests
2621518 4 drwxr-xr-x 5 root root 4096 Sep 22 11:57 /workspace/src/subplotlib
2621499 4 -rw-r--r-- 1 root root 196 Sep 22 11:57 /workspace/src/reference.yaml
2621971 4 -rw-r--r-- 1 root root 1385 Sep 22 11:57 /workspace/src/flake.lock
2621479 4 drwxr-xr-x 3 root root 4096 Sep 22 11:57 /workspace/src/subplot-build
2621513 4 -rw-r--r-- 1 root root 1334 Sep 22 11:57 /workspace/src/flake.nix
2621444 4 -rw-r--r-- 1 root root 3473 Sep 22 11:57 /workspace/src/subplot.py
2621566 4 drwxr-xr-x 5 root root 4096 Sep 22 11:57 /workspace/src/examples
2621565 4 -rw-r--r-- 1 root root 295 Sep 22 11:57 /workspace/src/deny.toml
2621506 4 drwxr-xr-x 3 root root 4096 Sep 22 11:57 /workspace/src/subplotlib-derive
2621448 4 -rw-r--r-- 1 root root 1325 Sep 22 11:57 /workspace/src/LICENSE.md
2621504 96 -rw-r--r-- 1 root root 96411 Sep 22 11:57 /workspace/src/subplot.md
2621940 8 -rw-r--r-- 1 root root 4300 Sep 22 11:57 /workspace/src/Makefile
2621941 4 drwxr-xr-x 5 root root 4096 Sep 22 11:57 /workspace/src/share
2621934 4 drwxr-xr-x 3 root root 4096 Sep 22 11:57 /workspace/src/bin
2621564 4 -rw-r--r-- 1 root root 273 Sep 22 11:57 /workspace/src/reference.subplot.disabled
2621442 4 drwxr-xr-x 2 root root 4096 Sep 22 11:57 /workspace/artifacts
2637438 4 drwxr-xr-x 2 root root 4096 Sep 22 11:57 /workspace/cache
2637439 4 -rw-r--r-- 1 root root 1038 Sep 22 11:57 /workspace/cache/.rustc_info.json
[2025-09-22T11:57:36Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T11:57:36Z DEBUG ambient_ci::plan] RUN: Action CargoFmt
[2025-09-22T11:57:36Z DEBUG ambient_ci::action] Plan::execute: plan=CargoFmt
[2025-09-22T11:57:36Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
SPAWN: argv=["cargo", "--version"]
cwd=/workspace/src (exists? true)
cargo 1.88.0 (873a06493 2025-05-10)
SPAWN: argv=["cargo", "clippy", "--version"]
cwd=/workspace/src (exists? true)
clippy 0.1.88 (6b00bc3880 2025-06-23)
SPAWN: argv=["rustc", "--version"]
cwd=/workspace/src (exists? true)
rustc 1.88.0 (6b00bc388 2025-06-23)
SPAWN: argv=["cargo", "fmt", "--check"]
cwd=/workspace/src (exists? true)
[2025-09-22T11:57:37Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T11:57:37Z DEBUG ambient_ci::plan] RUN: Action CargoClippy
[2025-09-22T11:57:37Z DEBUG ambient_ci::action] Plan::execute: plan=CargoClippy
[2025-09-22T11:57:37Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
SPAWN: argv=["cargo", "--version"]
cwd=/workspace/src (exists? true)
cargo 1.88.0 (873a06493 2025-05-10)
SPAWN: argv=["cargo", "clippy", "--version"]
cwd=/workspace/src (exists? true)
clippy 0.1.88 (6b00bc3880 2025-06-23)
SPAWN: argv=["rustc", "--version"]
cwd=/workspace/src (exists? true)
rustc 1.88.0 (6b00bc388 2025-06-23)
SPAWN: argv=["cargo", "clippy", "--offline", "--locked", "--workspace", "--all-targets", "--no-deps", "--", "--deny", "warnings"]
cwd=/workspace/src (exists? true)
Compiling proc-macro2 v1.0.101
Compiling unicode-ident v1.0.18
Checking cfg-if v1.0.3
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 libc v0.2.175
Compiling ahash v0.8.12
Compiling thiserror v2.0.16
Compiling quote v1.0.40
Checking once_cell v1.21.3
Compiling syn v2.0.106
Checking bitflags v2.9.3
Compiling anyhow v1.0.99
Compiling doc-comment v0.3.3
Compiling getrandom v0.3.3
Checking aho-corasick v1.1.3
Checking regex-syntax v0.8.5
Compiling rustix v1.0.8
Compiling libm v0.2.15
Compiling same-file v1.0.6
Compiling walkdir v2.5.0
Compiling ucd-trie v0.1.7
Checking itoa v1.0.15
Compiling serde_json v1.0.143
Compiling shlex v1.3.0
Checking regex-automata v0.4.9
Compiling cc v1.2.34
Checking linux-raw-sys v0.9.4
Compiling pulldown-cmark v0.13.0
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.16
Compiling tracing-attributes v0.1.30
Checking ryu v1.0.20
Checking base64 v0.22.1
Compiling log v0.4.27
Checking tempfile v3.21.0
Compiling pest v2.8.1
Compiling pest_meta v2.8.1
Compiling pest_generator v2.8.1
Compiling pest_derive v2.8.1
Compiling encoding_rs v0.8.35
Compiling time-core v0.1.4
Compiling num-conv v0.1.0
Compiling arraydeque v0.5.1
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-char-range v0.9.0
Compiling foldhash v0.1.5
Compiling unicode-width v0.2.1
Compiling unic-common v0.9.0
Compiling unic-ucd-version v0.9.0
Compiling hashbrown v0.15.5
Compiling globset v0.4.16
Compiling unic-char-property v0.9.0
Compiling rand_core v0.6.4
Compiling hashlink v0.9.1
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 rand_chacha v0.3.1
Compiling nix v0.29.0
Compiling yaml-rust2 v0.9.0
Compiling hashlink v0.10.0
Compiling ignore v0.4.23
Compiling unic-ucd-segment v0.9.0
Checking powerfmt v0.2.0
Compiling deunicode v1.6.2
Compiling unicode-linebreak v0.1.5
Compiling smawk v0.3.2
Compiling textwrap v0.16.2
Compiling humansize v2.1.3
Compiling slug v0.1.6
Checking deranged v0.4.0
Compiling globwalk v0.9.1
Compiling unic-segment v0.9.0
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 pulldown-cmark-escape v0.11.0
Compiling percent-encoding v2.3.2
Compiling pin-project-lite v0.2.16
Compiling tracing v0.1.41
Compiling tera v1.20.0
Checking time v0.3.41
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 descape v3.0.0
Compiling line-col v0.2.1
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 fs2 v0.4.3
Checking filetime v0.2.26
Checking state v0.6.0
Checking shell-words v1.1.0
Checking utf8parse v0.2.2
Checking anstyle-parse v0.2.7
Checking anstyle v1.0.11
Checking is_terminal_polyfill v1.70.1
Checking colorchoice v1.0.4
Checking anstyle-query v1.1.4
Checking anstream v0.6.20
Compiling heck v0.5.0
Checking clap_lex v0.7.5
Checking strsim v0.11.1
Compiling clap_derive v4.5.45
Checking clap_builder v4.5.44
Compiling subplotlib-derive v0.13.0 (/workspace/src/subplotlib-derive)
Checking clap v4.5.45
Checking regex-syntax v0.6.29
Checking regex-automata v0.1.10
Checking overload v0.1.1
Checking nu-ansi-term v0.46.0
Checking matchers v0.1.0
Compiling git-testament-derive v0.2.1
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-seq-example v0.1.0 (/workspace/src/examples/seq)
Checking subplot-bin v0.13.0 (/workspace/src/bin)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 29.88s
[2025-09-22T11:58:07Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T11:58:07Z DEBUG ambient_ci::plan] RUN: Action Shell {
shell: "make OFFLINE=\"--offline\"\n\n# Clean up after tests and documentation building.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n",
}
[2025-09-22T11:58:07Z DEBUG ambient_ci::action] Plan::execute: plan=Shell {
shell: "make OFFLINE=\"--offline\"\n\n# Clean up after tests and documentation building.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n",
}
[2025-09-22T11:58:07Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
SPAWN: argv=["/bin/bash", "-c", "set -xeuo pipefail\nmake OFFLINE=\"--offline\"\n\n# Clean up after tests and documentation building.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n\n"]
cwd=/workspace/src (exists? true)
+ 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.88 (6b00bc3880 2025-06-23)
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 3.94s
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.08s
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.106
Compiling cfg-if v1.0.3
Compiling memchr v2.7.5
Compiling once_cell v1.21.3
Compiling libc v0.2.175
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 bitflags v2.9.3
Compiling same-file v1.0.6
Compiling walkdir v2.5.0
Compiling ahash v0.8.12
Compiling crossbeam-utils v0.8.21
Compiling regex-automata v0.4.9
Compiling encoding_rs v0.8.35
Compiling ucd-trie v0.1.7
Compiling arraydeque v0.5.1
Compiling thiserror-impl v2.0.16
Compiling serde_derive v1.0.219
Compiling crossbeam-epoch v0.9.18
Compiling hashbrown v0.14.5
Compiling thiserror v2.0.16
Compiling pest v2.8.1
Compiling getrandom v0.2.16
Compiling bstr v1.12.0
Compiling utf8parse v0.2.2
Compiling foldhash v0.1.5
Compiling unicode-width v0.2.1
Compiling unic-char-range v0.9.0
Compiling unic-common v0.9.0
Compiling unic-char-property v0.9.0
Compiling unic-ucd-version v0.9.0
Compiling pest_meta v2.8.1
Compiling hashbrown v0.15.5
Compiling anstyle-parse v0.2.7
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.99
Compiling doc-comment v0.3.3
Compiling ppv-lite86 v0.2.21
Compiling tracing-core v0.1.34
Compiling anstyle-query v1.1.4
Compiling lazy_static v1.5.0
Compiling anstyle v1.0.11
Compiling time-core v0.1.4
Compiling num-conv v0.1.0
Compiling linux-raw-sys v0.9.4
Compiling is_terminal_polyfill v1.70.1
Compiling powerfmt v0.2.0
Compiling colorchoice v1.0.4
Compiling anstream v0.6.20
Compiling deranged v0.4.0
Compiling rustix v1.0.8
Compiling time-macros v0.2.22
Compiling rand_chacha v0.3.1
Compiling serde_path_to_error v0.1.17
Compiling ignore v0.4.23
Compiling yaml-rust2 v0.9.0
Compiling pest_generator v2.8.1
Compiling hashlink v0.10.0
Compiling unic-ucd-segment v0.9.0
Compiling getrandom v0.3.3
Compiling libm v0.2.15
Compiling regex v1.11.1
Compiling tracing-attributes v0.1.30
Compiling strsim v0.11.1
Compiling ryu v1.0.20
Compiling clap_lex v0.7.5
Compiling unicode-linebreak v0.1.5
Compiling smawk v0.3.2
Compiling deunicode v1.6.2
Compiling pin-project-lite v0.2.16
Compiling regex-syntax v0.6.29
Compiling fastrand v2.3.0
Compiling slug v0.1.6
Compiling tempfile v3.21.0
Compiling clap_derive v4.5.45
Compiling textwrap v0.16.2
Compiling tracing v0.1.41
Compiling clap_builder v4.5.44
Compiling humansize v2.1.3
Compiling serde_json v1.0.143
Compiling regex-automata v0.1.10
Compiling unic-segment v0.9.0
Compiling pest_derive v2.8.1
Compiling yaml-rust2 v0.10.3
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 percent-encoding v2.3.2
Compiling overload v0.1.1
Compiling pulldown-cmark-escape v0.11.0
Compiling unicase v2.8.1
Compiling utf8-width v0.1.7
Compiling pulldown-cmark v0.13.0
Compiling html-escape v0.2.13
Compiling nu-ansi-term v0.46.0
Compiling tera v1.20.0
Compiling roadmap v0.7.0
Compiling git-testament-derive v0.2.1
Compiling matchers v0.1.0
Compiling marked-yaml v0.8.0
Compiling clap v4.5.45
Compiling pikchr v0.1.4
Compiling tracing-log v0.2.0
Compiling sharded-slab v0.1.7
Compiling thread_local v1.1.9
Compiling descape v3.0.0
Compiling line-col v0.2.1
Compiling smallvec v1.15.1
Compiling base64 v0.22.1
Compiling tracing-subscriber v0.3.19
Compiling git-testament v0.2.6
Compiling subplot-bin v0.13.0 (/workspace/src/bin)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 21.42s
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.175
Compiling serde v1.0.219
Compiling thiserror v2.0.16
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.21.0
Compiling rand_chacha v0.3.1
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.143
Compiling marked-yaml v0.8.0
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 fs2 v0.4.3
Compiling filetime v0.2.26
Compiling fs_at v0.2.1
Compiling remove_dir_all v1.0.0
Compiling state v0.6.0
Compiling shell-words v1.1.0
Compiling clap v4.5.45
Compiling git-testament-derive v0.2.1
Compiling subplotlib-derive v0.13.0 (/workspace/src/subplotlib-derive)
Compiling tracing-subscriber v0.3.19
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 18.99s
Running unittests src/lib.rs (/workspace/cache/debug/deps/subplot-5c9d0880aeb82fb6)
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::does_not_match_with_wrong_text ... ok
test bindings::test_binding::case_sensitive_mismatch ... ok
test bindings::test_binding::match_with_fixed_pattern ... ok
test bindings::test_binding::equal ... ok
test bindings::test_binding::not_equal ... ok
test bindings::test_bindings::add_from_yaml_notices_multiple_keywords ... 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::adds_binding ... ok
test bindings::test_bindings::has_no_bindings_initially ... ok
test bindings::test_bindings::finds_match_for_regexp_pattern ... ok
test bindings::test_bindings::typemap_must_match_pattern ... ok
test bindings::test_bindings::two_matching_bindings ... ok
test bindings::test_bindings::adds_from_yaml ... 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::returns_error_for_stray_closing_brace ... 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_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::simple_int_pattern ... 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_explicit ... ok
test bindings::test_regex_from_simple_pattern::typemap_updated_on_pattern_parse_default ... ok
test bindings::test_regex_from_simple_pattern::simple_uint_pattern ... 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 bindings::test_regex_from_simple_pattern::simple_number_pattern ... ok
test blockattr::test::parse_one_id ... ok
test blockattr::test::parse_one_kv ... 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 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.18s
Running tests/bindings-ubm.rs (/workspace/cache/debug/deps/bindings_ubm-44ea2cade278754c)
running 1 test
test bindings_microbenchmark ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.98s
Running unittests src/subplot.rs (/workspace/cache/debug/deps/subplot-71197578057431cc)
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-8946a65e3a8db4ef)
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-7420a83dda944e03)
running 4 tests
test one_number ... ok
test more_than_one_number ... ok
test not_a_number ... ok
test no_arguments ... 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-8db7b55ae60d2448)
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-cbcc64c67cf3cf26)
running 7 tests
test file_and_directory_removal ... ok
test create_on_disk_files_from_embedded_files ... ok
test directories ... ok
test file_equality ... ok
test file_modification_time ... ok
test file_metadata ... ok
test file_contents ... 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-2f9869c52b96ac20)
running 21 tests
test check_stderr_is_exactly_as_wanted ... ok
test check_stderr_doesn_t_contain_sub_string ... ok
test check_stderr_is_not_exactly_something ... ok
test check_stderr_doesn_t_match_regular_expressions ... ok
test check_stderr_using_regular_expressions ... ok
test check_stderr_using_sub_string_search ... ok
test check_stdout_doesn_t_contain_sub_string ... 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_contains_exactly ... ok
test stdin_comes_from_a_named_file ... ok
test successful_execution_in_a_sub_directory ... 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-329f1e2bdb7458dd)
running 29 tests
test capture_using_regular_expressions ... ok
test capture_using_simple_patterns ... ok
test code_generator_gives_an_error_if_input_document_lacks_title ... ok
test cleanup_functions_get_called_on_failure__python_ ... 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 files_not_in_current_working_directory ... ok
test missing_functions_file ... ok
test misuse_of_continuation_keywords ... ok
test lowest_level_heading_is_name_of_scenario ... ok
test no_scenarios_means_codegen_fails ... ok
test empty_lines_in_scenarios ... ok
test no_template_means_you_can_docgen_but_not_codegen ... ok
test next_heading_at_higher_level_starts_new_scenario ... ok
test next_heading_at_same_level_starts_new_scenario ... ok
test recall_values_for_use_in_later_steps ... ok
test running_only_chosen_scenarios_with_python ... 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 steps_which_do_not_match_bindings_do_not_work ... ok
test simple_patterns_with_regex_metacharacters__allowed_case ... ok
test steps_which_match_more_than_one_binding_do_not_work ... ok
test smoke_test ... ok
test subplot_accepts_title_and_headings_with_inline_markup ... ok
test subheadings_don_t_start_new_scenario ... ok
test set_environment_variables_in_generated_test_programs ... 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.44s
Running tests/subplot-diagrams.rs (/workspace/cache/debug/deps/subplot_diagrams-63d090e98edb93b3)
running 4 tests
test pikchr ... ok
test roadmap ... ok
test dot ... ok
test plantuml ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.12s
Running tests/subplot-docgen.rs (/workspace/cache/debug/deps/subplot_docgen-7acf1411889c2ba4)
running 30 tests
test bindings_file_strictness___unknown_field ... ok
test bad__add_newline__value ... ok
test attempt_to_use_definition_list ... ok
test bindings_file_strictness___given_when_then ... ok
test class_name_validation ... ok
test date_given_on_command_line ... ok
test date_given_in_metadata ... ok
test document_generator_gives_an_error_if_input_document_lacks_title ... ok
test css_urls ... ok
test dot ... ok
test embedded_css ... ok
test examples_may_be_unused ... ok
test fail_if_embedded_file_isn_t_used ... ok
test extract_embedded_file ... ok
test fail_if_two_filenames_only_differ_in_case ... ok
test missing_bindings_file ... ok
test multiple_markdown_files ... ok
test indented_scenario_steps_are_not_allowed ... ok
test no_date_anywhere ... ok
test named_code_blocks_must_have_an_appropriate_class ... ok
test no_template_means_you_can_docgen_but_not_codegen ... ok
test pikchr ... ok
test roadmap ... ok
test scenario_before_the_first_heading ... ok
test files_not_in_current_working_directory ... ok
test empty_lines_in_scenarios ... 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.59s
Running tests/subplot-extract.rs (/workspace/cache/debug/deps/subplot_extract-3fc6f0e96c6489c9)
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-b244e90b5479b2b0)
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.06s
Running tests/subplot-others.rs (/workspace/cache/debug/deps/subplot_others-e634aba5de45aa1d)
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 capture_using_simple_patterns ... ok
test code_generator_gives_an_error_if_input_document_lacks_title ... 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 examples_may_be_unused ... ok
test embedded_css ... ok
test extract_embedded_file__automatically_add_missing_newline ... ok
test cleanup_functions_gets_called_on_success__python_ ... ok
test extract_embedded_file ... 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 fail_if_two_filenames_only_differ_in_case ... ok
test indented_scenario_steps_are_not_allowed ... ok
test extracting_metadata_from_a_document ... ok
test list_embedded_files ... ok
test missing_bindings_file ... ok
test missing_functions_file ... ok
test empty_lines_in_scenarios ... ok
test multiple_markdown_files ... ok
test files_not_in_current_working_directory ... ok
test misuse_of_continuation_keywords ... ok
test named_code_blocks_must_have_an_appropriate_class ... ok
test no_date_anywhere ... 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 pikchr ... ok
test next_heading_at_higher_level_starts_new_scenario ... ok
test next_heading_at_same_level_starts_new_scenario ... ok
test roadmap ... ok
test scenario_before_the_first_heading ... ok
test scenario_titles ... ok
test recall_values_for_use_in_later_steps ... 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 subheadings_don_t_start_new_scenario ... ok
test title_markup ... ok
test use_embedded_file ... ok
test subplot_accepts_title_and_headings_with_inline_markup ... 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 0.91s
Running tests/subplotlib.rs (/workspace/cache/debug/deps/subplotlib-814894de6c38e2be)
running 3 tests
test fundamentals ... ok
test embedded_files ... ok
test data_directory ... 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-c5d57c1ca6507e44)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
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::DotMarkup (line 149) ... ok
test src/diagrams.rs - diagrams::PikchrMarkup (line 116) ... 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 1.71s
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.36s
Doc-tests subplotlib
running 73 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::data (line 120) ... 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/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_with_other_name_executable::call (line 129) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::create_executable_from_embedded::call (line 93) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::create_executable_from_embedded_with_other_name::call (line 111) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::create_from_embedded::call (line 56) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::create_from_embedded_with_other_name::call (line 70) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::create_from_text::call (line 220) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_and_embedded_file_do_not_match::call (line 469) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_and_embedded_file_match::call (line 443) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_contains::call (line 341) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_do_not_match::call (line 417) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_does_not_exist::call (line 296) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_doesnt_contain::call (line 357) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_exists::call (line 276) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_match::call (line 390) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_matches_regex::call (line 374) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::has_different_metadata::call (line 544) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::has_remembered_metadata::call (line 505) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::make_directory::call (line 609) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::mtime_is_ancient::call (line 593) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::mtime_is_recent::call (line 577) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::only_these_exist::call (line 322) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::path_does_not_exist::call (line 659) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::path_exists::call (line 642) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::path_is_empty::call (line 678) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::path_is_not_empty::call (line 696) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::remember_metadata::call (line 231) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::remove_directory::call (line 619) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::remove_empty_directory::call (line 630) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::remove_file::call (line 181) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::touch::call (line 255) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::touch_with_timestamp::call (line 193) ... 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/step.rs - step::ScenarioStep (line 24) ... ok
test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::Runcmd::join_paths (line 155) ... ok
test subplotlib/src/utils.rs - utils::base64_decode (line 9) ... ok
test result: ok. 14 passed; 0 failed; 59 ignored; 0 measured; 0 filtered out; finished in 1.36s
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/tmp4t3bry49
scenario: Steps which do not case-sensitively match sensitive bindings do not work
step 1: given file casemismatch.subplot
step 2: given file casemismatch.md
step 3: given file badbindings.yaml
step 4: given an installed subplot
step 5: when I try to run subplot codegen --run casemismatch.subplot -o test.py
step 6: then command fails
cleanup 4: given an installed subplot
scenario: Scenario titles
step 1: given file scenario-titles.subplot
step 2: given file scenario-titles.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I run subplot metadata scenario-titles.subplot
step 7: then stdout contains "My fun scenario title"
cleanup 5: given an installed subplot
scenario: Dot
step 1: given file dot.subplot
step 2: given file dot.md
step 3: given file b.yaml
step 4: given an installed subplot
step 5: when I run subplot docgen dot.subplot -o dot.html
step 6: then file dot.html matches regex /src="data:image/svg\\+xml;base64,/
cleanup 4: given an installed subplot
scenario: Extract embedded files
step 1: given file embedded-file.subplot
step 2: given file embedded-file.md
step 3: given file expected.txt
step 4: given an installed subplot
step 5: when I run subplot extract --merciful embedded-file.subplot foo.txt -d .
step 6: then files foo.txt and expected.txt match
cleanup 4: given an installed subplot
scenario: PlantUML
step 1: given file plantuml.subplot
step 2: given file plantuml.md
step 3: given file b.yaml
step 4: given an installed subplot
step 5: when I run subplot docgen plantuml.subplot -o plantuml.html
step 6: then file plantuml.html matches regex /src="data:image/svg\\+xml;base64,/
cleanup 4: given an installed subplot
scenario: Fail if the same filename is used twice
step 1: given file onefiletwice.md
step 2: given an installed subplot
step 3: when I try to run subplot docgen onefiletwice.md -o onefiletwice.html
step 4: then command fails
step 5: then file onefiletwice.html does not exist
cleanup 2: given an installed subplot
scenario: Subheadings don't start new scenario
step 1: given file subisnotnewscenario.subplot
step 2: given file subisnotnewscenario.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I run subplot codegen --run subisnotnewscenario.subplot -o test.py
step 7: then scenario "heading 1.1a" was run
step 8: then command is successful
cleanup 5: given an installed subplot
scenario: Extract embedded file, do not automatically add second newline
step 1: given file auto-has-newline.txt
step 2: then auto-has-newline.txt ends in one newline
scenario: No scenarios means codegen fails
step 1: given file noscenarios.subplot
step 2: given file noscenarios.md
step 3: given an installed subplot
step 4: when I try to run subplot codegen noscenarios.subplot -o test.py
step 5: then command fails
step 6: then stderr contains "no scenarios were found"
cleanup 3: given an installed subplot
scenario: No template means you can docgen but not codegen
step 1: given file notemplate.subplot
step 2: given file notemplate.md
step 3: given an installed subplot
step 4: when I run subplot docgen notemplate.subplot -o notemplate.html
step 5: then file notemplate.html exists
step 6: when I try to run subplot codegen notemplate.subplot -o test.py
step 7: then command fails
step 8: then stderr contains "document has no template"
cleanup 3: given an installed subplot
scenario: Document generator gives an error if input document lacks title
step 1: given file notitle.subplot
step 2: given file notitle.md
step 3: given an installed subplot
step 4: when I try to run subplot docgen notitle.subplot -o foo.md
step 5: then command fails
cleanup 3: given an installed subplot
scenario: CSS URLs
step 1: given file css-urls.subplot
step 2: given file css-urls.md
step 3: given file b.yaml
step 4: given an installed subplot
step 5: when I run subplot docgen css-urls.subplot -o foo.html
step 6: then file foo.html contains "https://example.com/flushing.css"
cleanup 4: given an installed subplot
scenario: Next heading at higher level starts new scenario
step 1: given file higherisnewscenario.subplot
step 2: given file higherisnewscenario.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I run subplot codegen --run higherisnewscenario.subplot -o test.py
step 7: then scenario "heading 1.1.1" was run
step 8: then scenario "heading 1.2" was run
step 9: then command is successful
cleanup 5: given an installed subplot
scenario: Cleanup functions get called on failure (Python)
step 1: given file cleanup-fail-python.subplot
step 2: given file cleanup-fail-python.md
step 3: given file cleanup.yaml
step 4: given file cleanup.py
step 5: given an installed subplot
step 6: when I try to run subplot codegen --run cleanup-fail-python.subplot -o test.py
step 7: then scenario "Cleanup" was run
step 8: then step "given foo" was run, and then step "given bar"
step 9: then cleanup for "given bar" was run, and then for "given foo"
step 10: then cleanup for "given failure" was not run
step 11: then command fails
cleanup 5: given an installed subplot
scenario: Bindings file strictness - given when then
step 1: given file badbindingsgwt.subplot
step 2: given file badbindingsgwt.md
step 3: given file badbindingsgwt.yaml
step 4: given an installed subplot
step 5: when I try to run subplot docgen --output ignored.html badbindingsgwt.subplot
step 6: then command fails
step 7: then stderr contains "binding has more than one keyword"
cleanup 4: given an installed subplot
scenario: Missing functions file
step 1: given file missing-functions.subplot
step 2: given file missing-functions.md
step 3: given file b.yaml
step 4: given an installed subplot
step 5: when I try to run subplot codegen --run missing-functions.subplot -o foo.py
step 6: then command fails
step 7: then stderr contains "could not be found"
step 8: then stderr contains "missing-functions.py"
cleanup 4: given an installed subplot
scenario: Roadmap
step 1: given file roadmap.subplot
step 2: given file roadmap.md
step 3: given file b.yaml
step 4: given an installed subplot
step 5: when I run subplot docgen roadmap.subplot -o roadmap.html
step 6: then file roadmap.html matches regex /src="data:image/svg\\+xml;base64,/
cleanup 4: given an installed subplot
scenario: Attempt to use definition list
step 1: given an installed subplot
step 2: given file dl.subplot
step 3: given file dl.md
step 4: when I try to run subplot docgen dl.subplot -o /dev/null
step 5: then command fails
step 6: then stderr contains "ERROR dl.md:3:1: attempt to use definition lists in Markdown"
cleanup 1: given an installed subplot
scenario: Bindings file strictness - unknown field
step 1: given file badbindingsuf.subplot
step 2: given file badbindingsuf.md
step 3: given file badbindingsuf.yaml
step 4: given an installed subplot
step 5: when I try to run subplot docgen --output ignored.html badbindingsuf.subplot
step 6: then command fails
step 7: then stderr contains "Unknown field `function`"
cleanup 4: given an installed subplot
scenario: Running only chosen scenarios with Python
step 1: given file twoscenarios-python.subplot
step 2: given file twoscenarios-python.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I run subplot codegen twoscenarios-python.subplot -o test.py
step 7: when I run python3 test.py on
step 8: then scenario "One" was run
step 9: then scenario "Two" was not run
step 10: then command is successful
cleanup 5: given an installed subplot
scenario: Extract embedded file
step 1: given file embedded.subplot
step 2: given file embedded.md
step 3: given an installed subplot
step 4: when I run subplot docgen --merciful embedded.subplot -o foo.html
step 5: then file foo.html exists
step 6: then file foo.html matches regex /embedded\\.txt/
cleanup 3: given an installed subplot
scenario: Class name validation
step 1: given file unknown-class-name.subplot
step 2: given file unknown-class-name.md
step 3: given file known-class-name.subplot
step 4: given file known-class-name.md
step 5: given file b.yaml
step 6: given an installed subplot
step 7: when I try to run subplot docgen unknown-class-name.subplot -o unknown-class-name.html
step 8: then command fails
step 9: then file unknown-class-name.html does not exist
step 10: then stderr contains "Unknown classes found in the document: foobar"
step 11: when I run subplot docgen known-class-name.subplot -o known-class-name.html
step 12: then file known-class-name.html exists
cleanup 6: given an installed subplot
scenario: Capture using simple patterns
step 1: given file simplepattern.subplot
step 2: given file simplepattern.md
step 3: given file simplepattern.yaml
step 4: given file capture.py
step 5: given an installed subplot
step 6: when I run subplot codegen --run simplepattern.subplot -o test.py
step 7: then scenario "Simple pattern" was run
step 8: then step "given I am Tomjon" was run
step 9: then stdout contains "function got argument name as Tomjon"
step 10: then command is successful
cleanup 5: given an installed subplot
scenario: Indented scenario steps are not allowed
step 1: given file indented-step.subplot
step 2: given file indented-step.md
step 3: given file b.yaml
step 4: given an installed subplot
step 5: when I try to run subplot docgen indented-step.subplot -o foo.html
step 6: then command fails
step 7: then stderr contains "indented"
cleanup 4: given an installed subplot
scenario: Extract embedded file, by default add missing newline
step 1: given file default-without-newline.txt
step 2: then default-without-newline.txt ends in one newline
scenario: Examples may be unused
step 1: given file unusedexample.subplot
step 2: given file unusedexample.md
step 3: given an installed subplot
step 4: when I try to run subplot docgen --merciful unusedexample.subplot -o unusedexample.html
step 5: then command is successful
step 6: then file unusedexample.html exists
step 7: then stderr doesn't contain "thisisnotused.txt"
cleanup 3: given an installed subplot
scenario: Code generator gives an error if input document lacks title
step 1: given file notitle.subplot
step 2: given file notitle.md
step 3: given an installed subplot
step 4: when I try to run subplot codegen --run notitle.subplot -o test.py
step 5: then command fails
cleanup 3: given an installed subplot
scenario: Embedded file name didn't match
step 1: given file badfilename.subplot
step 2: given file badfilename.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I try to run subplot codegen --run badfilename.md -o test.py
step 7: then command fails
cleanup 5: given an installed subplot
scenario: Date given in metadata
step 1: given file metadate.subplot
step 2: given file metadate.md
step 3: given an installed subplot
step 4: when I run subplot docgen metadate.subplot -o metadate.html
step 5: when I run cat metadate.html
step 6: then file metadate.html exists
step 7: then file metadate.html contains "<title>The Fabulous Title</title>"
step 8: then file metadate.html contains "Alfred Pennyworth"
step 9: then file metadate.html contains "Geoffrey Butler"
step 10: then file metadate.html contains "WIP"
cleanup 3: given an installed subplot
scenario: Scenario before the first heading
step 1: given an installed subplot
step 2: given file scenario-before-heading.subplot
step 3: given file scenario-before-heading.md
step 4: when I try to run subplot docgen scenario-before-heading.subplot -o /dev/null
step 5: then command fails
step 6: then stderr contains "ERROR scenario-before-heading.md:1:1: first scenario is before first heading"
cleanup 1: given an installed subplot
scenario: No date anywhere
step 1: given file dateless.subplot
step 2: given file dateless.md
step 3: given file dateless.md has modification time 2020-02-26 07:53:17
step 4: given an installed subplot
step 5: when I run subplot docgen dateless.subplot -o mtime.html
step 6: then file mtime.html exists
step 7: then file mtime.html contains "<title>The Fabulous Title</title>"
step 8: then file mtime.html contains "Alfred Pennyworth"
step 9: then file mtime.html contains "Geoffrey Butler"
step 10: then file mtime.html contains "2020-02-26 07:53"
cleanup 4: given an installed subplot
scenario: Lowest level heading is name of scenario
step 1: given file scenarioislowest.subplot
step 2: given file scenarioislowest.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I run subplot codegen --run scenarioislowest.subplot -o test.py
step 7: then scenario "heading 1.1.1" was run
step 8: then command is successful
cleanup 5: given an installed subplot
scenario: Embedded CSS
step 1: given file embedded-css.subplot
step 2: given file embedded-css.md
step 3: given file embedded-css.css
step 4: given file b.yaml
step 5: given an installed subplot
step 6: when I run subplot docgen embedded-css.subplot -o foo.html
step 7: then file foo.html contains "silly: property;"
cleanup 5: given an installed subplot
scenario: Bad "add-newline" value
step 1: given an installed subplot
step 2: given file add-newline.subplot
step 3: given file add-newline.md
step 4: when I try to run subplot docgen add-newline.subplot -o /dev/null
step 5: then command fails
step 6: then stderr contains "ERROR add-newline.md:1:1: value of add-newline attribute is not understood: xyzzy"
cleanup 1: given an installed subplot
scenario: Use embedded file
step 1: given file numbered-lines.txt
step 2: given file not-numbered-lines.txt
scenario: Capture using regular expressions
step 1: given file regex.subplot
step 2: given file regex.md
step 3: given file regex.yaml
step 4: given file capture.py
step 5: given an installed subplot
step 6: when I run subplot codegen --run regex.subplot -o test.py
step 7: then scenario "Regex" was run
step 8: then step "given I am Tomjon" was run
step 9: then stdout contains "function got argument name as Tomjon"
step 10: then command is successful
cleanup 5: given an installed subplot
scenario: Temporary files in scenarios in Python
step 1: given file tmpdir.subplot
step 2: given file tmpdir.md
step 3: given file tmpdir.yaml
step 4: given file tmpdir.py
step 5: given an installed subplot
step 6: when I run subplot codegen --run tmpdir.subplot -o test.py
step 7: then command is successful
step 8: then scenario "TMPDIR" was run
step 9: then step "then TMPDIR is set" was run
cleanup 5: given an installed subplot
scenario: Pikchr
step 1: given file pikchr.subplot
step 2: given file pikchr.md
step 3: given an installed subplot
step 4: when I run subplot docgen pikchr.subplot -o pikchr.html
step 5: then file pikchr.html matches regex /src="data:image/svg\\+xml;base64,/
cleanup 3: given an installed subplot
scenario: Multiple markdown files
step 1: given file multimd.subplot
step 2: given file md1.md
step 3: given file md2.md
step 4: given an installed subplot
step 5: when I run subplot docgen multimd.subplot -o multimd.html
step 6: when I run cat multimd.html
step 7: then file multimd.html exists
step 8: then file multimd.html contains "<title>The Fabulous Title</title>"
step 9: then file multimd.html contains "First markdown file."
step 10: then file multimd.html contains "Second markdown file."
cleanup 4: given an installed subplot
scenario: Extract embedded file, by default do not add a second newline
step 1: given file default-has-newline.txt
step 2: then default-has-newline.txt ends in one newline
scenario: Steps which match more than one binding do not work
step 1: given file twobindings.subplot
step 2: given file twobindings.md
step 3: given file twobindings.yaml
step 4: given file a_function.py
step 5: given an installed subplot
step 6: when I try to run subplot codegen --run twobindings.subplot -o test.py
step 7: then command fails
step 8: then stderr contains "xyzzy"
step 9: then stderr contains "plugh"
cleanup 5: given an installed subplot
scenario: Title markup
step 1: given file title-markup.subplot
step 2: given file title-markup.md
step 3: given an installed subplot
step 4: when I run subplot docgen title-markup.subplot -o foo.html
step 5: then file foo.html exists
cleanup 3: given an installed subplot
scenario: Empty lines in scenarios
step 1: given file emptylines.subplot
step 2: given file emptylines.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I run subplot docgen emptylines.subplot -o emptylines.html
step 7: then file emptylines.html exists
step 8: when I run subplot codegen --run emptylines.subplot -o test.py
step 9: then scenario "Simple" was run
step 10: then step "given precondition foo" was run
step 11: then step "when I do bar" was run
step 12: then step "then bar was done" was run
step 13: then command is successful
cleanup 5: given an installed subplot
scenario: Recall values for use in later steps
step 1: given file values.subplot
step 2: given file values.md
step 3: given file values.yaml
step 4: given file values.py
step 5: given an installed subplot
step 6: when I run subplot codegen values.subplot -o test.py
step 7: when I run python3 test.py
step 8: then command is successful
cleanup 5: given an installed subplot
scenario: List embedded files
step 1: given file two-embedded.subplot
step 2: given file two-embedded.md
step 3: given an installed subplot
step 4: when I run subplot metadata --merciful two-embedded.subplot
step 5: then stdout contains "foo.txt"
step 6: then stdout contains "bar.yaml"
cleanup 3: given an installed subplot
scenario: Subplot accepts title and headings with inline markup
step 1: given file fancytitle.subplot
step 2: given file fancytitle.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I try to run subplot docgen fancytitle.subplot -o foo.md
step 7: then command is successful
step 8: when I try to run subplot codegen fancytitle.subplot -o foo.md
step 9: then command is successful
cleanup 5: given an installed subplot
scenario: Extract embedded file, do not add missing newline
step 1: given file no-adding-without-newline.txt
step 2: then no-adding-without-newline.txt does not end in a newline
scenario: Set environment variables in generated test programs
step 1: given file env.subplot
step 2: given file env.md
step 3: given file env.yaml
step 4: given file env.py
step 5: given an installed subplot
step 6: when I run subplot codegen env.subplot -o test.py
step 7: when I try to run python3 test.py
step 8: then command fails
step 9: when I try to run python3 test.py --env FOO=foo
step 10: then command fails
step 11: when I try to run python3 test.py --env FOO=bar
step 12: then command is successful
cleanup 5: given an installed subplot
scenario: Examples are not files
step 1: given file examplesnotfiles.subplot
step 2: given file examplesnotfiles.md
step 3: given an installed subplot
step 4: when I try to run subplot codegen examplesnotfiles.subplot -t python -o examplesnotfiles.html
step 5: then command fails
step 6: then file examplesnotfiles.html does not exist
step 7: then stderr contains "thisisanexample.txt"
cleanup 3: given an installed subplot
scenario: Fail if embedded file isn't used
step 1: given file unusedfile.subplot
step 2: given file unusedfile.md
step 3: given an installed subplot
step 4: when I try to run subplot docgen --merciful unusedfile.subplot -o unusedfile.html
step 5: then command is successful
step 6: then file unusedfile.html exists
step 7: then stderr contains "thisisnotused.txt"
cleanup 3: given an installed subplot
scenario: Extract embedded file, explicitly add missing newline
step 1: given file add-without-newline.txt
step 2: then add-without-newline.txt ends in one newline
scenario: Extracting metadata from a document
step 1: given file images.subplot
step 2: given file images.md
step 3: given file b.yaml
step 4: given file other.yaml
step 5: given file f.py
step 6: given file other.py
step 7: given file expected.json
step 8: given an installed subplot
step 9: when I run subplot metadata images.subplot
step 10: then stdout contains "source: images.md"
step 11: then stdout contains "source: b.yaml"
step 12: then stdout contains "source: other.yaml"
step 13: then stdout contains "source: f.py"
step 14: then stdout contains "source: other.py"
step 15: then stdout contains "source: image.gif"
step 16: then stdout contains "bindings: b.yaml"
step 17: then stdout contains "bindings: other.yaml"
step 18: then stdout contains "functions[python]: f.py"
step 19: when I run subplot metadata images.subplot -o json
step 20: then JSON output matches expected.json
cleanup 8: given an installed subplot
scenario: Extract embedded file, explicitly add second newline
step 1: given file add-has-newline.txt
step 2: then add-has-newline.txt ends in two newlines
scenario: Misuse of continuation keywords
step 1: given file continuationmisuse.subplot
step 2: given file continuationmisuse.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I try to run subplot codegen --run continuationmisuse.subplot -o test.py
step 7: then command fails
cleanup 5: given an installed subplot
scenario: Cleanup functions gets called on success (Python)
step 1: given file cleanup-success-python.subplot
step 2: given file cleanup-success-python.md
step 3: given file cleanup.yaml
step 4: given file cleanup.py
step 5: given an installed subplot
step 6: when I run subplot codegen --run cleanup-success-python.subplot -o test.py
step 7: then scenario "Cleanup" was run
step 8: then step "given foo" was run, and then step "given bar"
step 9: then cleanup for "given bar" was run, and then for "given foo"
step 10: then command is successful
cleanup 5: given an installed subplot
scenario: Date given on command line
step 1: given file dateless.subplot
step 2: given file dateless.md
step 3: given an installed subplot
step 4: when I run subplot docgen dateless.subplot -o dateoption.html --date=FANCYDATE
step 5: then file dateoption.html exists
step 6: then file dateoption.html contains "<title>The Fabulous Title</title>"
step 7: then file dateoption.html contains "Alfred Pennyworth"
step 8: then file dateoption.html contains "Geoffrey Butler"
step 9: then file dateoption.html contains "FANCYDATE"
cleanup 3: given an installed subplot
scenario: Steps which do not match bindings do not work
step 1: given file nobinding.subplot
step 2: given file nobinding.md
step 3: given file badbindings.yaml
step 4: given an installed subplot
step 5: when I try to run subplot codegen --run nobinding.subplot -o test.py
step 6: then command fails
cleanup 4: given an installed subplot
scenario: Next heading at same level starts new scenario
step 1: given file samelevelisnewscenario.subplot
step 2: given file samelevelisnewscenario.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I run subplot codegen --run samelevelisnewscenario.subplot -o test.py
step 7: then scenario "heading 1.1.1" was run
step 8: then scenario "heading 1.1.2" was run
step 9: then command is successful
cleanup 5: given an installed subplot
scenario: Smoke test
step 1: given file simple.subplot
step 2: given file simple.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I run subplot docgen simple.subplot -o simple.html
step 7: then file simple.html exists
step 8: when I run subplot codegen --run simple.subplot -o test.py
step 9: then scenario "Simple" was run
step 10: then step "given precondition foo" was run
step 11: then step "when I do bar" was run
step 12: then step "then bar was done" was run
step 13: then command is successful
cleanup 5: given an installed subplot
scenario: Missing bindings file
step 1: given file missing-binding.subplot
step 2: given file missing-binding.md
step 3: given an installed subplot
step 4: when I try to run subplot docgen missing-binding.subplot -o foo.html
step 5: then command fails
step 6: then stderr contains "could not be found"
step 7: then stderr contains "missing-binding.yaml"
cleanup 3: given an installed subplot
scenario: Fail if two filenames only differ in case
step 1: given file casediff.md
step 2: given an installed subplot
step 3: when I try to run subplot docgen casediff.md -o casediff.html
step 4: then command fails
step 5: then file casediff.html does not exist
cleanup 2: given an installed subplot
scenario: Named code blocks must have an appropriate class
step 1: given file named-code-blocks-appropriate.subplot
step 2: given file named-code-blocks-appropriate.md
step 3: given file b.yaml
step 4: given an installed subplot
step 5: when I try to run subplot docgen named-code-blocks-appropriate.subplot -o foo.html
step 6: then command fails
step 7: then stderr contains "#example-1 at named-code-blocks-appropriate.md:7:1"
step 8: then stderr doesn't contain "example-2"
step 9: then stderr doesn't contain "example-3"
cleanup 4: given an installed subplot
scenario: Simple patterns with regex metacharacters: forbidden case
step 1: given file confusedpattern.subplot
step 2: given file confusedpattern.md
step 3: given file confusedpattern.yaml
step 4: given file capture.py
step 5: given an installed subplot
step 6: when I try to run subplot codegen --run confusedpattern.subplot -o test.py
step 7: then command fails
step 8: then stderr contains "simple pattern contains regex"
cleanup 5: given an installed subplot
scenario: Duplicate scenario titles
step 1: given file duplicate-scenario-titles.subplot
step 2: given file duplicate-scenario-titles.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I try to run subplot metadata duplicate-scenario-titles.subplot
step 7: then command fails
step 8: then stderr contains "duplicate"
cleanup 5: given an installed subplot
scenario: All the keywords
step 1: given file allkeywords.subplot
step 2: given file allkeywords.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I run subplot codegen --run allkeywords.subplot -o test.py
step 7: then scenario "All keywords" was run
step 8: then step "given precondition foo" was run
step 9: then step "when I do bar" was run
step 10: then step "then bar was done" was run
step 11: then command is successful
cleanup 5: given an installed subplot
scenario: Extract embedded file, automatically add missing newline
step 1: given file auto-without-newline.txt
step 2: then auto-without-newline.txt ends in one newline
scenario: Files not in current working directory
step 1: given file x/simple.subplot from simple.subplot
step 2: given file x/simple.md from simple.md
step 3: given file x/b.yaml from b.yaml
step 4: given file x/f.py from f.py
step 5: given an installed subplot
step 6: when I run subplot metadata x/simple.subplot
step 7: then command is successful
step 8: when I run subplot codegen x/simple.subplot -o test.py
step 9: then file test.py exists
step 10: when I run subplot docgen x/simple.subplot -o simple.html
step 11: then file simple.html exists
cleanup 5: given an installed subplot
scenario: Simple patterns with regex metacharacters: allowed case
step 1: given file confusedbutok.subplot
step 2: given file confusedbutok.md
step 3: given file confusedbutok.yaml
step 4: given file capture.py
step 5: given an installed subplot
step 6: when I run subplot codegen --run confusedbutok.subplot -o test.py
step 7: then command is successful
cleanup 5: 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/tmpi4o6eksm
scenario: Restarting Muck
step 1: given a fresh Muck server
step 2: given I am Tomjon, with super capability
step 3: when I do POST /res with {"foo": "bar"}
step 4: then header Muck-Id is ID
step 5: then header Muck-Revision is REV1
step 6: when I restart Muck
step 7: when I do GET /res with Muck-Id: {ID}
step 8: then response code is 200
step 9: then header Muck-Revision matches {REV1}
step 10: then body matches {"foo": "bar"}
scenario: Basic object handling
step 1: given a fresh Muck server
step 2: given I am Tomjon
step 3: when I do POST /res with {"foo": "bar"}
step 4: then response code is 201
step 5: then header Muck-Id is ID
step 6: then header Muck-Revision is REV1
step 7: when I do GET /res with Muck-Id: {ID}
step 8: then response code is 200
step 9: then header Muck-Revision matches {REV1}
step 10: then body matches {"foo": "bar"}
step 11: when I do PUT /res with Muck-Id: {ID}, Muck-Revision: {REV1}, and body {"foo":"yo"}
step 12: then response code is 200
step 13: then header Muck-Revision is {REV2}
step 14: then revisions {REV1} and {REV2} are different
step 15: when I do PUT /res with Muck-Id: {ID}, Muck-Revision: {REV1}, and body {"foo":"yo"}
step 16: then response code is 409
step 17: when I do GET /res with Muck-Id: {ID}
step 18: then response code is 200
step 19: then header Muck-Revision matches {REV2}
step 20: then body matches {"foo": "yo"}
step 21: when I do DELETE /res with Muck-Id: {ID}
step 22: then response code is 200
step 23: when I do GET /res with Muck-Id: {ID}
step 24: then response code is 404
scenario: Accessing someone else's data
step 1: given a fresh Muck server
step 2: given I am Tomjon
step 3: when I do POST /res with {"foo": "bar"}
step 4: then header Muck-Id is ID
step 5: then header Muck-Revision is REV1
step 6: when I do GET /res with Muck-Id: {ID}
step 7: then response code is 200
step 8: then header Muck-Revision matches {REV1}
step 9: then body matches {"foo": "bar"}
step 10: given I am Verence
step 11: when I do GET /res with Muck-Id: {ID}
step 12: then response code is 404
scenario: Deleting someone else's data
step 1: given a fresh Muck server
step 2: given I am Tomjon
step 3: when I do POST /res with {"foo": "bar"}
step 4: then header Muck-Id is ID
step 5: then header Muck-Revision is REV1
step 6: given I am Verence
step 7: when I do DELETE /res with Muck-Id: {ID}
step 8: then response code is 404
scenario: Updating someone else's data
step 1: given a fresh Muck server
step 2: given I am Tomjon
step 3: when I do POST /res with {"foo": "bar"}
step 4: then header Muck-Id is ID
step 5: then header Muck-Revision is REV1
step 6: given I am Verence
step 7: when I do PUT /res with Muck-Id: {ID}, Muck-Revision: {REV1}, and body {"foo":"yo"}
step 8: 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 serde v1.0.219
Compiling thiserror v2.0.16
Compiling crossbeam-utils v0.8.21
Compiling ahash v0.8.12
Compiling regex-automata v0.4.9
Compiling encoding_rs v0.8.35
Compiling anyhow v1.0.99
Compiling doc-comment v0.3.3
Compiling pest v2.8.1
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 crossbeam-deque v0.8.6
Compiling rand_core v0.6.4
Compiling pest_meta v2.8.1
Compiling hashlink v0.9.1
Compiling serde_path_to_error v0.1.17
Compiling ppv-lite86 v0.2.21
Compiling serde_json v1.0.143
Compiling yaml-rust2 v0.9.0
Compiling ignore v0.4.23
Compiling rand_chacha v0.3.1
Compiling pest_generator v2.8.1
Compiling pulldown-cmark v0.13.0
Compiling tempfile v3.21.0
Compiling pest_derive v2.8.1
Compiling pikchr v0.1.4
Compiling humansize v2.1.3
Compiling yaml-rust2 v0.10.3
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 roadmap v0.7.0
Compiling tera v1.20.0
Compiling aho-corasick v1.1.3
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 12.69s
Running tests/seq.rs (/workspace/cache/debug/deps/seq-4cd2295912851a64)
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.01s
/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 a05b915 Merge branch 'dch' into 'main'
+ 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 a05b915
nothing to commit, working tree clean
[2025-09-22T11:59:21Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T11:59:21Z DEBUG ambient_ci::plan] RUN: Action Custom(
Custom {
name: "dch",
args: {
"debemail": String("liw@liw.fi"),
"debfullname": String("Lars Wirzenius"),
},
},
)
[2025-09-22T11:59:21Z DEBUG ambient_ci::action] Plan::execute: plan=Custom(
Custom {
name: "dch",
args: {
"debemail": String("liw@liw.fi"),
"debfullname": String("Lars Wirzenius"),
},
},
)
[2025-09-22T11:59:21Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
custom: source=/workspace/src
custom: exe=".ambient/dch" exists=false
HEAD is now at a05b915 Merge branch 'dch' into 'main'
custom action "dch" exit code Some(0)
[2025-09-22T11:59:21Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T11:59:21Z DEBUG ambient_ci::plan] RUN: Action Deb
[2025-09-22T11:59:21Z DEBUG ambient_ci::action] Plan::execute: plan=Deb
[2025-09-22T11:59:21Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
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)
+ 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=284
LANG=C.UTF-8
CARGO_HOME=/workspace/deps
DEBEMAIL=liw@liw.fi
INVOCATION_ID=f845ecea7210465abfef2239e72bf032
SHLVL=2
JOURNAL_STREAM=8:14706
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.88.0 (873a06493 2025-05-10)
+ rustc --version
rustc 1.88.0 (6b00bc388 2025-06-23)
++ dpkg-parsechangelog -SSource
+ name=subplot
++ dpkg-parsechangelog -SVersion
+ version=0.13.0.ci20250922T115921-1
++ sed 's/-[^-]*$//'
++ echo 0.13.0.ci20250922T115921-1
+ uv=0.13.0.ci20250922T115921
++ dpkg --print-architecture
+ arch=amd64
+ orig=../subplot_0.13.0.ci20250922T115921.orig.tar.xz
+ deb=../subplot_0.13.0.ci20250922T115921-1_amd64.deb
+ changes=../subplot_0.13.0.ci20250922T115921-1_amd64.changes
+ git archive HEAD
+ xz
+ dpkg-buildpackage -us -uc
[1mdpkg-buildpackage: [0m[32minfo[0m: source package subplot
[1mdpkg-buildpackage: [0m[32minfo[0m: source version 0.13.0.ci20250922T115921-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.ci20250922T115921.orig.tar.xz
[1mdpkg-source: [0m[32minfo[0m: building subplot in subplot_0.13.0.ci20250922T115921-1.debian.tar.xz
[1mdpkg-source: [0m[32minfo[0m: building subplot in subplot_0.13.0.ci20250922T115921-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.101
Compiling unicode-ident v1.0.18
Compiling cfg-if v1.0.3
Compiling zerocopy v0.8.26
Compiling memchr v2.7.5
Compiling libc v0.2.175
Compiling thiserror v2.0.16
Compiling once_cell v1.21.3
Compiling quote v1.0.40
Compiling syn v2.0.106
Compiling serde v1.0.219
Compiling version_check v0.9.5
Compiling aho-corasick v1.1.3
Compiling ahash v0.8.12
Compiling itoa v1.0.15
Compiling anyhow v1.0.99
Compiling regex-syntax v0.8.5
Compiling crossbeam-utils v0.8.21
Compiling log v0.4.27
Compiling bitflags v2.9.3
Compiling regex-automata v0.4.9
Compiling thiserror-impl v2.0.16
Compiling serde_derive v1.0.219
Compiling encoding_rs v0.8.35
Compiling doc-comment v0.3.3
Compiling arraydeque v0.5.1
Compiling ucd-trie v0.1.7
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 utf8parse v0.2.2
Compiling unicode-width v0.2.1
Compiling num-conv v0.1.0
Compiling getrandom v0.3.3
Compiling foldhash v0.1.5
Compiling shlex v1.3.0
Compiling rustix v1.0.8
Compiling time-core v0.1.4
Compiling unic-common v0.9.0
Compiling same-file v1.0.6
Compiling libm v0.2.15
Compiling unic-char-range v0.9.0
Compiling unic-char-property v0.9.0
Compiling unic-ucd-version v0.9.0
Compiling walkdir v2.5.0
Compiling time-macros v0.2.22
Compiling cc v1.2.34
Compiling hashbrown v0.15.5
Compiling globset v0.4.16
Compiling hashlink v0.9.1
Compiling anstyle-parse v0.2.7
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-query v1.1.4
Compiling powerfmt v0.2.0
Compiling serde_json v1.0.143
Compiling is_terminal_polyfill v1.70.1
Compiling colorchoice v1.0.4
Compiling lazy_static v1.5.0
Compiling linux-raw-sys v0.9.4
Compiling anstyle v1.0.11
Compiling anstream v0.6.20
Compiling deranged v0.4.0
Compiling rand_chacha v0.3.1
Compiling pest_generator v2.8.1
Compiling ignore v0.4.23
Compiling yaml-rust2 v0.9.0
Compiling hashlink v0.10.0
Compiling pikchr v0.1.4
Compiling unic-ucd-segment v0.9.0
Compiling regex v1.11.1
Compiling tracing-attributes v0.1.30
Compiling pin-project-lite v0.2.16
Compiling regex-syntax v0.6.29
Compiling deunicode v1.6.2
Compiling ryu v1.0.20
Compiling fastrand v2.3.0
Compiling smawk v0.3.2
Compiling unicode-linebreak v0.1.5
Compiling strsim v0.11.1
Compiling pulldown-cmark v0.13.0
Compiling clap_lex v0.7.5
Compiling heck v0.5.0
Compiling clap_derive v4.5.45
Compiling regex-automata v0.1.10
Compiling clap_builder v4.5.44
Compiling textwrap v0.16.2
Compiling tempfile v3.21.0
Compiling slug v0.1.6
Compiling tracing v0.1.41
Compiling time v0.3.41
Compiling unic-segment v0.9.0
Compiling humansize v2.1.3
Compiling marked-yaml v0.7.2
Compiling yaml-rust2 v0.10.3
Compiling globwalk v0.9.1
Compiling pest_derive v2.8.1
Compiling rand v0.8.5
Compiling subplot v0.13.0 (/workspace/src)
Compiling getopts v0.2.23
Compiling pulldown-cmark-escape v0.11.0
Compiling percent-encoding v2.3.2
Compiling unicase v2.8.1
Compiling overload v0.1.1
Compiling utf8-width v0.1.7
Compiling html-escape v0.2.13
Compiling nu-ansi-term v0.46.0
Compiling git-testament-derive v0.2.1
Compiling tera v1.20.0
Compiling marked-yaml v0.8.0
Compiling roadmap v0.7.0
Compiling clap v4.5.45
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 v3.0.0
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 49.01s
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' in '../subplot_0.13.0.ci20250922T115921-1_amd64.deb'.
[1mdpkg-deb:[0m building package 'subplot-dbgsym' in '../subplot-dbgsym_0.13.0.ci20250922T115921-1_amd64.deb'.
[1;35m dpkg-genbuildinfo -O../subplot_0.13.0.ci20250922T115921-1_amd64.buildinfo
[0m[1;35m dpkg-genchanges -O../subplot_0.13.0.ci20250922T115921-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 2372
drwxr-xr-x 2 root root 4096 Sep 22 11:57 artifacts
drwxr-xr-x 5 root root 4096 Sep 22 11:59 cache
drwxr-xr-x 3 root root 4096 Sep 22 11:57 deps
drwxr-xr-x 16 root root 4096 Sep 22 11:59 src
-rw-r--r-- 1 root root 274368 Sep 22 12:00 subplot-dbgsym_0.13.0.ci20250922T115921-1_amd64.deb
-rw-r--r-- 1 root root 2388 Sep 22 11:59 subplot_0.13.0.ci20250922T115921-1.debian.tar.xz
-rw-r--r-- 1 root root 1018 Sep 22 11:59 subplot_0.13.0.ci20250922T115921-1.dsc
-rw-r--r-- 1 root root 10151 Sep 22 12:00 subplot_0.13.0.ci20250922T115921-1_amd64.buildinfo
-rw-r--r-- 1 root root 2392 Sep 22 12:00 subplot_0.13.0.ci20250922T115921-1_amd64.changes
-rw-r--r-- 1 root root 1959232 Sep 22 12:00 subplot_0.13.0.ci20250922T115921-1_amd64.deb
-rw-r--r-- 1 root root 149688 Sep 22 11:59 subplot_0.13.0.ci20250922T115921.orig.tar.xz
+ for x in ../*.deb
+ dpkg -c ../subplot-dbgsym_0.13.0.ci20250922T115921-1_amd64.deb
drwxr-xr-x root/root 0 2025-09-22 11:59 ./
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/lib/
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/lib/debug/
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/lib/debug/.build-id/
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/lib/debug/.build-id/1c/
-rw-r--r-- root/root 1804424 2025-09-22 11:59 ./usr/lib/debug/.build-id/1c/e346aaea5000d6687f7fb9cb70d35b3e888f92.debug
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/share/
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/share/doc/
lrwxrwxrwx root/root 0 2025-09-22 11:59 ./usr/share/doc/subplot-dbgsym -> subplot
+ for x in ../*.deb
+ dpkg -c ../subplot_0.13.0.ci20250922T115921-1_amd64.deb
drwxr-xr-x root/root 0 2025-09-22 11:59 ./
drwxr-xr-x root/root 0 2025-09-22 11:59 ./bin/
-rwxr-xr-x root/root 8146328 2025-09-22 11:59 ./bin/subplot
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/share/
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/share/doc/
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/share/doc/subplot/
-rw-r--r-- root/root 3623 2025-09-22 11:57 ./usr/share/doc/subplot/README.md
-rw-r--r-- root/root 659 2025-09-22 11:59 ./usr/share/doc/subplot/changelog.Debian.gz
-rw-r--r-- root/root 1394 2025-09-22 11:57 ./usr/share/doc/subplot/copyright
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/share/lintian/
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/share/lintian/overrides/
-rw-r--r-- root/root 103 2025-09-22 11:57 ./usr/share/lintian/overrides/subplot
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/share/subplot/
drwxr-xr-x root/root 0 2025-09-22 11:57 ./usr/share/subplot/common/
drwxr-xr-x root/root 0 2025-09-22 11:57 ./usr/share/subplot/common/lib/
-rw-r--r-- root/root 10268 2025-09-22 11:57 ./usr/share/subplot/common/lib/files.yaml
-rw-r--r-- root/root 8470 2025-09-22 11:57 ./usr/share/subplot/common/lib/runcmd.yaml
drwxr-xr-x root/root 0 2025-09-22 11:57 ./usr/share/subplot/python/
drwxr-xr-x root/root 0 2025-09-22 11:57 ./usr/share/subplot/python/lib/
-rw-r--r-- root/root 10415 2025-09-22 11:57 ./usr/share/subplot/python/lib/daemon.py
-rw-r--r-- root/root 4434 2025-09-22 11:57 ./usr/share/subplot/python/lib/daemon.yaml
-rw-r--r-- root/root 8048 2025-09-22 11:57 ./usr/share/subplot/python/lib/files.py
-rw-r--r-- root/root 8657 2025-09-22 11:57 ./usr/share/subplot/python/lib/runcmd.py
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/share/subplot/python/template/
-rw-r--r-- root/root 1275 2025-09-22 11:57 ./usr/share/subplot/python/template/asserts.py
-rw-r--r-- root/root 2457 2025-09-22 11:57 ./usr/share/subplot/python/template/context.py
-rw-r--r-- root/root 4611 2025-09-22 11:57 ./usr/share/subplot/python/template/context_tests.py
-rw-r--r-- root/root 201 2025-09-22 11:57 ./usr/share/subplot/python/template/encoding.py
-rw-r--r-- root/root 474 2025-09-22 11:57 ./usr/share/subplot/python/template/encoding_tests.py
-rw-r--r-- root/root 412 2025-09-22 11:57 ./usr/share/subplot/python/template/files.py
-rw-r--r-- root/root 4557 2025-09-22 11:57 ./usr/share/subplot/python/template/main.py
-rw-r--r-- root/root 2785 2025-09-22 11:57 ./usr/share/subplot/python/template/scenarios.py
-rw-r--r-- root/root 2565 2025-09-22 11:57 ./usr/share/subplot/python/template/template.py.tera
-rw-r--r-- root/root 137 2025-09-22 11:57 ./usr/share/subplot/python/template/template.yaml
drwxr-xr-x root/root 0 2025-09-22 11:57 ./usr/share/subplot/rust/
drwxr-xr-x root/root 0 2025-09-22 11:57 ./usr/share/subplot/rust/lib/
-rw-r--r-- root/root 788 2025-09-22 11:57 ./usr/share/subplot/rust/lib/datadir.yaml
drwxr-xr-x root/root 0 2025-09-22 11:57 ./usr/share/subplot/rust/template/
-rw-r--r-- root/root 1449 2025-09-22 11:57 ./usr/share/subplot/rust/template/macros.rs.tera
-rw-r--r-- root/root 1213 2025-09-22 11:57 ./usr/share/subplot/rust/template/template.rs.tera
-rw-r--r-- root/root 71 2025-09-22 11:57 ./usr/share/subplot/rust/template/template.yaml
-rw-r--r-- root/root 2103 2025-09-22 11:57 ./usr/share/subplot/subplot.css
+ mv ../subplot-dbgsym_0.13.0.ci20250922T115921-1_amd64.deb ../subplot_0.13.0.ci20250922T115921-1.debian.tar.xz ../subplot_0.13.0.ci20250922T115921-1.dsc ../subplot_0.13.0.ci20250922T115921-1_amd64.buildinfo ../subplot_0.13.0.ci20250922T115921-1_amd64.changes ../subplot_0.13.0.ci20250922T115921-1_amd64.deb ../subplot_0.13.0.ci20250922T115921.orig.tar.xz /workspace/artifacts
[2025-09-22T12:00:16Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T12:00:16Z DEBUG ambient_ci::plan] RUN: Action TarCreate {
archive: "/dev/vde",
directory: "/workspace/cache",
}
[2025-09-22T12:00:16Z DEBUG ambient_ci::action] Plan::execute: plan=TarCreate {
archive: "/dev/vde",
directory: "/workspace/cache",
}
[2025-09-22T12:00:16Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
[2025-09-22T12:00:16Z TRACE ambient_ci::vdrive] creating virtual drive (tar archive): VirtualDriveBuilder {
filename: Some(
"/dev/vde",
),
root: Some(
"/workspace/cache",
),
size: None,
}
[2025-09-22T12:00:16Z TRACE ambient_ci::vdrive] tar archive to be created: /dev/vde; exists? true
[2025-09-22T12:00:16Z TRACE ambient_ci::vdrive] create archive file /dev/vde
[2025-09-22T12:00:16Z TRACE ambient_ci::vdrive] directory /workspace/cache exists? true
[2025-09-22T12:00:16Z TRACE ambient_ci::vdrive] add contents of /workspace/cache as .
[2025-09-22T12:00:16Z TRACE ambient_ci::vdrive] calling tar_create
[2025-09-22T12:00:27Z TRACE ambient_ci::vdrive] created virtual drive /dev/vde
[2025-09-22T12:00:27Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T12:00:27Z DEBUG ambient_ci::plan] RUN: Action TarCreate {
archive: "/dev/vdd",
directory: "/workspace/artifacts",
}
[2025-09-22T12:00:27Z DEBUG ambient_ci::action] Plan::execute: plan=TarCreate {
archive: "/dev/vdd",
directory: "/workspace/artifacts",
}
[2025-09-22T12:00:27Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
[2025-09-22T12:00:27Z TRACE ambient_ci::vdrive] creating virtual drive (tar archive): VirtualDriveBuilder {
filename: Some(
"/dev/vdd",
),
root: Some(
"/workspace/artifacts",
),
size: None,
}
[2025-09-22T12:00:27Z TRACE ambient_ci::vdrive] tar archive to be created: /dev/vdd; exists? true
[2025-09-22T12:00:27Z TRACE ambient_ci::vdrive] create archive file /dev/vdd
[2025-09-22T12:00:27Z TRACE ambient_ci::vdrive] directory /workspace/artifacts exists? true
[2025-09-22T12:00:27Z TRACE ambient_ci::vdrive] add contents of /workspace/artifacts as .
[2025-09-22T12:00:27Z TRACE ambient_ci::vdrive] calling tar_create
[2025-09-22T12:00:27Z TRACE ambient_ci::vdrive] created virtual drive /dev/vdd
[2025-09-22T12:00:27Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T12:00:27Z DEBUG ambient_ci::plan] All actions were performed successfully
ambient-execute-plan ends
EXIT CODE: 0
[2025-09-22T12:00:46Z INFO ambient] ambient ends successfully
{
"request": "trigger",
"version": 1,
"event_type": "push",
"repository": {
"id": "rad:zjxyd2A1A7FnxtC69qDfoAajfTHo",
"name": "subplot",
"description": "Capture and communicate acceptance criteria and their verification",
"private": false,
"default_branch": "main",
"delegates": [
"did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV"
]
},
"pusher": {
"id": "did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV",
"alias": "liw"
},
"before": "a05b915082b5075e6b2f28645a627c8b45bc4d9c",
"after": "a05b915082b5075e6b2f28645a627c8b45bc4d9c",
"branch": "main",
"commits": [
"a05b915082b5075e6b2f28645a627c8b45bc4d9c",
"056cfc6617e84934ec614c108333ab7408096ed6"
]
}[2025-09-22T11:57:20Z INFO ambient] ambient starts
[2025-09-22T11:57:20Z DEBUG ambient] load default configuration file /home/_rad/.config/ambient/config.yaml if it exists
[2025-09-22T11:57:20Z DEBUG ambient] load files named with --config: /tmp/.tmpHZggZV/ambient_extra_values.yaml
[2025-09-22T11:57: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: Some(
"ci@http.liw.fi:/srv/http/doc.subplot.tech",
),
rsync_target_base: None,
rsync_target_map: None,
dput_target: Some(
"apt.liw.fi",
),
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-09-22T11:57: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: Some(
"ci@http.liw.fi:/srv/http/doc.subplot.tech",
),
rsync_target_base: None,
rsync_target_map: None,
dput_target: Some(
"apt.liw.fi",
),
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-09-22T11:57:20Z DEBUG ambient_ci::project] load project state from /srv/ambient-state/subplot/meta.yaml
[2025-09-22T11:57:20Z DEBUG ambient_ci::run] no latest commit stored
[2025-09-22T11:57:20Z DEBUG ambient_ci::run] is a git repository
[2025-09-22T11:57:20Z DEBUG ambient_ci::run] git repository is clean
[2025-09-22T11:57:20Z DEBUG ambient_ci::run] current (HEAD) commit: a05b915082b5075e6b2f28645a627c8b45bc4d9c
[2025-09-22T11:57:20Z DEBUG ambient_ci::run] no dry run requested
[2025-09-22T11:57:20Z DEBUG ambient_ci::run] forced run requested
[2025-09-22T11:57:20Z DEBUG ambient_ci::run] run? true
[2025-09-22T11:57:20Z INFO ambient_ci::run] project subplot: running CI
[2025-09-22T11:57:20Z DEBUG ambient_ci::run] Executing pre-plan steps
[2025-09-22T11:57:20Z DEBUG ambient_ci::plan] RUN: Action CargoFetch {
sourcedir: "/tmp/.tmpzWnOhx/src",
}
[2025-09-22T11:57:20Z DEBUG ambient_ci::action] Plan::execute: plan=CargoFetch {
sourcedir: "/tmp/.tmpzWnOhx/src",
}
[2025-09-22T11:57:20Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"PATH": "/root/.cargo/bin:/bin:/home/_rad/.radicle/bin:/home/_rad/.cargo/bin",
"CARGO_TARGET_DIR": "/srv/ambient-state/subplot/cache",
"CARGO_HOME": "/srv/ambient-state/subplot/dependencies",
},
source_dir: "/tmp/.tmpzWnOhx/src",
}
SPAWN: argv=["cargo", "--version"]
cwd=/tmp/.tmpzWnOhx/src (exists? true)
cargo 1.90.0 (840b83a10 2025-07-30)
SPAWN: argv=["cargo", "clippy", "--version"]
cwd=/tmp/.tmpzWnOhx/src (exists? true)
clippy 0.1.90 (1159e78c47 2025-09-14)
SPAWN: argv=["rustc", "--version"]
cwd=/tmp/.tmpzWnOhx/src (exists? true)
rustc 1.90.0 (1159e78c4 2025-09-14)
SPAWN: argv=["cargo", "fetch"]
cwd=/tmp/.tmpzWnOhx/src (exists? true)
Updating crates.io index
Downloading crates ...
Downloaded tracing-log v0.2.0
Downloaded tracing-core v0.1.34
Downloaded valuable v0.1.1
Downloaded log v0.4.27
Downloaded tracing-attributes v0.1.30
Downloaded once_cell v1.21.3
Downloaded tracing v0.1.41
Downloaded lazy_static v1.5.0
Downloaded cfg-if v1.0.3
Downloaded unic-char-property v0.9.0
Downloaded time-core v0.1.4
Downloaded crossbeam-utils v0.8.21
Downloaded slug v0.1.6
Downloaded unic-char-range v0.9.0
Downloaded num-conv v0.1.0
Downloaded matchers v0.1.0
Downloaded rand_core v0.6.4
Downloaded unic-ucd-version v0.9.0
Downloaded rand_chacha v0.3.1
Downloaded wasm-bindgen-macro v0.2.100
Downloaded same-file v1.0.6
Downloaded humansize v2.1.3
Downloaded block-buffer v0.10.4
Downloaded textwrap v0.16.2
Downloaded roadmap v0.7.0
Downloaded crossbeam-deque v0.8.6
Downloaded wasm-bindgen-backend v0.2.100
Downloaded libredox v0.1.9
Downloaded digest v0.10.7
Downloaded ucd-trie v0.1.7
Downloaded cpufeatures v0.2.17
Downloaded filetime v0.2.26
Downloaded sha2 v0.10.9
Downloaded cfg_aliases v0.2.1
Downloaded redox_syscall v0.5.17
Downloaded crossbeam-epoch v0.9.18
Downloaded sharded-slab v0.1.7
Downloaded typenum v1.18.0
Downloaded zerocopy-derive v0.8.26
Downloaded pulldown-cmark-escape v0.11.0
Downloaded pest v2.8.1
Downloaded regex-automata v0.1.10
Downloaded rand v0.8.5
Downloaded tera v1.20.0
Downloaded tracing-subscriber v0.3.19
Downloaded bumpalo v3.19.0
Downloaded proc-macro2 v1.0.101
Downloaded utf8parse v0.2.2
Downloaded ryu v1.0.20
Downloaded unicode-ident v1.0.18
Downloaded cvt v0.1.2
Downloaded stable_deref_trait v1.2.0
Downloaded anstyle v1.0.11
Downloaded shlex v1.3.0
Downloaded aho-corasick v1.1.3
Downloaded hashlink v0.10.0
Downloaded colorchoice v1.0.4
Downloaded zerocopy v0.8.26
Downloaded fs2 v0.4.3
Downloaded windows-targets v0.48.5
Downloaded regex-syntax v0.6.29
Downloaded state v0.6.0
Downloaded aligned v0.4.2
Downloaded arraydeque v0.5.1
Downloaded errno v0.3.13
Downloaded serde_path_to_error v0.1.17
Downloaded bstr v1.12.0
Downloaded anyhow v1.0.99
Downloaded regex-syntax v0.8.5
Downloaded clap_derive v4.5.45
Downloaded anstream v0.6.20
Downloaded unicase v2.8.1
Downloaded hashlink v0.9.1
Downloaded tempfile v3.21.0
Downloaded marked-yaml v0.7.2
Downloaded regex-automata v0.4.9
Downloaded ahash v0.8.12
Downloaded fastrand v2.3.0
Downloaded smawk v0.3.2
Downloaded as-slice v0.2.1
Downloaded fs_at v0.2.1
Downloaded normpath v1.3.0
Downloaded generator v0.7.5
Downloaded libc v0.2.175
Downloaded windows_aarch64_gnullvm v0.53.0
Downloaded r-efi v5.3.0
Downloaded scoped-tls v1.0.1
Downloaded windows_x86_64_gnullvm v0.53.0
Downloaded loom v0.5.6
Downloaded getrandom v0.3.3
Downloaded windows_i686_gnullvm v0.53.0
Downloaded windows_x86_64_gnu v0.53.0
Downloaded windows_i686_msvc v0.53.0
Downloaded base64 v0.22.1
Downloaded windows_i686_gnu v0.53.0
Downloaded windows_x86_64_msvc v0.53.0
Downloaded clap v4.5.45
Downloaded yaml-rust2 v0.10.3
Downloaded windows_aarch64_msvc v0.53.0
Downloaded cc v1.2.34
Downloaded culpa v1.0.2
Downloaded anstyle-wincon v3.0.10
Downloaded hashbrown v0.15.5
Downloaded wit-bindgen-rt v0.39.0
Downloaded regex v1.11.1
Downloaded hashbrown v0.14.5
Downloaded yaml-rust2 v0.9.0
Downloaded wasi v0.14.2+wasi-0.2.4
Downloaded winapi v0.3.9
Downloaded syn v2.0.106
Downloaded clap_builder v4.5.44
Downloaded pulldown-cmark v0.13.0
Downloaded deunicode v1.6.2
Downloaded ignore v0.4.23
Downloaded remove_dir_all v1.0.0
Downloaded shell-words v1.1.0
Downloaded anstyle-parse v0.2.7
Downloaded anstyle-query v1.1.4
Downloaded once_cell_polyfill v1.70.1
Downloaded is_terminal_polyfill v1.70.1
Downloaded clap_lex v0.7.5
Downloaded strsim v0.11.1
Downloaded heck v0.5.0
Downloaded html-escape v0.2.13
Downloaded foldhash v0.1.5
Downloaded getopts v0.2.23
Downloaded libm v0.2.15
Downloaded serde_json v1.0.143
Downloaded time v0.3.41
Downloaded unicode-width v0.2.1
Downloaded culpa-macros v1.0.2
Downloaded utf8-width v0.1.7
Downloaded line-col v0.2.1
Downloaded doc-comment v0.3.3
Downloaded windows-targets v0.52.6
Downloaded globset v0.4.16
Downloaded percent-encoding v2.3.2
Downloaded pest_derive v2.8.1
Downloaded serde_derive v1.0.219
Downloaded smallvec v1.15.1
Downloaded wasm-bindgen-macro-support v0.2.100
Downloaded unic-segment v0.9.0
Downloaded thiserror-impl v2.0.16
Downloaded unicode-linebreak v0.1.5
Downloaded bitflags v2.9.3
Downloaded ppv-lite86 v0.2.21
Downloaded wasm-bindgen v0.2.100
Downloaded winapi-util v0.1.10
Downloaded generic-array v0.14.7
Downloaded pest_meta v2.8.1
Downloaded wasi v0.11.1+wasi-snapshot-preview1
Downloaded unic-ucd-segment v0.9.0
Downloaded memchr v2.7.5
Downloaded powerfmt v0.2.0
Downloaded serde v1.0.219
Downloaded thiserror v2.0.16
Downloaded walkdir v2.5.0
Downloaded nu-ansi-term v0.46.0
Downloaded globwalk v0.9.1
Downloaded pest_generator v2.8.1
Downloaded getrandom v0.2.16
Downloaded rustversion v1.0.22
Downloaded overload v0.1.1
Downloaded pin-project-lite v0.2.16
Downloaded time-macros v0.2.22
Downloaded quote v1.0.40
Downloaded version_check v0.9.5
Downloaded crypto-common v0.1.6
Downloaded windows-link v0.1.3
Downloaded itoa v1.0.15
Downloaded windows-targets v0.53.3
Downloaded deranged v0.4.0
Downloaded wasm-bindgen-shared v0.2.100
Downloaded windows-sys v0.60.2
Downloaded unic-common v0.9.0
Downloaded thread_local v1.1.9
Downloaded winapi-i686-pc-windows-gnu v0.4.0
Downloaded nix v0.29.0
Downloaded winapi-x86_64-pc-windows-gnu v0.4.0
Downloaded windows_aarch64_gnullvm v0.52.6
Downloaded rustix v1.0.8
Downloaded windows_x86_64_gnullvm v0.48.5
Downloaded windows_aarch64_gnullvm v0.48.5
Downloaded git-testament-derive v0.2.1
Downloaded descape v3.0.0
Downloaded git-testament v0.2.6
Downloaded windows_i686_gnullvm v0.52.6
Downloaded windows_x86_64_gnullvm v0.52.6
Downloaded marked-yaml v0.8.0
Downloaded windows_aarch64_msvc v0.48.5
Downloaded windows_x86_64_msvc v0.52.6
Downloaded windows_x86_64_msvc v0.48.5
Downloaded windows_aarch64_msvc v0.52.6
Downloaded windows_i686_gnu v0.48.5
Downloaded windows_i686_msvc v0.52.6
Downloaded windows_i686_gnu v0.52.6
Downloaded windows_i686_msvc v0.48.5
Downloaded windows_x86_64_gnu v0.52.6
Downloaded pikchr v0.1.4
Downloaded windows_x86_64_gnu v0.48.5
Downloaded encoding_rs v0.8.35
Downloaded linux-raw-sys v0.9.4
Downloaded windows-sys v0.59.0
Downloaded windows-sys v0.52.0
Downloaded windows v0.48.0
[2025-09-22T11:57:25Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T11:57:25Z DEBUG ambient_ci::plan] All actions were performed successfully
[2025-09-22T11:57:25Z DEBUG ambient_ci::run] create virtual drive /srv/tmp/.tmpwtIQYP/src.tar
[2025-09-22T11:57:25Z DEBUG ambient_ci::run] create virtual drive /srv/tmp/.tmpwtIQYP/deps.tar
[2025-09-22T11:57:26Z DEBUG ambient_ci::run] create_executor_vdrive: executor="/usr/bin/ambient-execute-plan"
[2025-09-22T11:57:26Z 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: "make OFFLINE=\"--offline\"\n\n# Clean up after tests and documentation building.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n",
},
Custom(
Custom {
name: "dch",
args: {
"debfullname": String("Lars Wirzenius"),
"debemail": String("liw@liw.fi"),
},
},
),
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-09-22T11:57:26Z DEBUG ambient_ci::run] executor bin /usr/bin/ambient-execute-plan
[2025-09-22T11:57:26Z DEBUG ambient_ci::run] copying /usr/bin/ambient-execute-plan to /srv/tmp/.tmpwtIQYP/ambient-execute-plan/run-ci
[2025-09-22T11:57:26Z DEBUG ambient_ci::run] copy OK: true
[2025-09-22T11:57:26Z DEBUG ambient_ci::run] create virtual drive /srv/tmp/.tmpwtIQYP/executor.tar
[2025-09-22T11:57:26Z DEBUG ambient_ci::project] removing run log file /srv/ambient-state/subplot/run.log
[2025-09-22T11:57:26Z DEBUG ambient_ci::project] statedir is /srv/ambient-state/subplot, exists? true
[2025-09-22T11:57:26Z DEBUG ambient_ci::project] creating run log file /srv/ambient-state/subplot/run.log
[2025-09-22T11:57:26Z DEBUG ambient_ci::project] created run log file /srv/ambient-state/subplot/run.log OK
[2025-09-22T11:57:26Z DEBUG ambient_ci::cloud_init] with_hostname called: "ambient"
[2025-09-22T11:57:26Z DEBUG ambient_ci::cloud_init] with_runcmd called: "echo xyzzy > /dev/ttyS1"
[2025-09-22T11:57:26Z 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-09-22T11:57:26Z DEBUG ambient_ci::cloud_init] with_runcmd called: "poweroff"
[2025-09-22T11:57:26Z 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-09-22T11:57:26Z DEBUG ambient_ci::qemu] run QEMU
[2025-09-22T11:57:26Z DEBUG ambient_ci::qemu] create copy-on-write image and UEFI vars file
[2025-09-22T11:57:26Z DEBUG ambient_ci::qemu_utils] qemu-img create /srv/tmp/.tmpToKmz6/.tmpLliRl9/vm.qcow2 backing on /home/_rad/ambient.qcow2
[2025-09-22T11:57:27Z DEBUG ambient_ci::qemu] create cloud-init ISO file
[2025-09-22T11:57:27Z 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-09-22T11:57:27Z DEBUG ambient_ci::cloud_init] write /tmp/.tmpImCVFI/meta-data
[2025-09-22T11:57:27Z DEBUG ambient_ci::cloud_init] write /tmp/.tmpImCVFI/user-data
[2025-09-22T11:57:27Z DEBUG ambient_ci::qemu] set console log file to /srv/tmp/.tmpToKmz6/.tmpLliRl9/console.log
[2025-09-22T11:57:27Z DEBUG ambient_ci::util] create file /srv/tmp/.tmpToKmz6/.tmpLliRl9/console.log
[2025-09-22T11:57:27Z DEBUG ambient_ci::qemu] set run file to /srv/ambient-state/subplot/run.log
[2025-09-22T11:57:27Z DEBUG ambient_ci::util] create file /srv/ambient-state/subplot/run.log
[2025-09-22T11:57:27Z 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/.tmpToKmz6/.tmpLliRl9/console.log",
"-serial",
"file:/srv/ambient-state/subplot/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/.tmpToKmz6/.tmpLliRl9/vars.fd",
"-drive",
"format=qcow2,if=virtio,file=/srv/tmp/.tmpToKmz6/.tmpLliRl9/vm.qcow2",
"-drive",
"format=raw,if=virtio,file=/srv/tmp/.tmpwtIQYP/executor.tar,readonly=on",
"-cdrom",
"/srv/tmp/.tmpToKmz6/.tmpLliRl9/cloud_init.iso",
"-drive",
"format=raw,if=virtio,file=/srv/tmp/.tmpwtIQYP/src.tar,readonly=on",
"-drive",
"format=raw,if=virtio,file=/srv/tmp/.tmpwtIQYP/artifacts.tar",
"-drive",
"format=raw,if=virtio,file=/srv/tmp/.tmpwtIQYP/cache.tar",
"-drive",
"format=raw,if=virtio,file=/srv/tmp/.tmpwtIQYP/deps.tar,readonly=on",
"-nodefaults",
"-no-user-config",
],
}
[2025-09-22T12:00:40Z DEBUG ambient_ci::qemu] QEMU finished OK
[2025-09-22T12:00:40Z DEBUG ambient_ci::qemu] run log:
--------------------==========
[2025-09-22T11:57:34Z TRACE ambient_execute_plan] ambient-execute-plan version 0.7.0@12daec3 starts
[2025-09-22T11:57:34Z DEBUG ambient_execute_plan] ambient-execute-plan version 0.7.0@12daec3 starts
[2025-09-22T11:57:34Z INFO ambient_execute_plan] ambient-execute-plan version 0.7.0@12daec3 starts
[2025-09-22T11:57:34Z WARN ambient_execute_plan] ambient-execute-plan version 0.7.0@12daec3 starts
[2025-09-22T11:57:34Z ERROR ambient_execute_plan] ambient-execute-plan version 0.7.0@12daec3 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: |
make OFFLINE="--offline"
# Clean up after tests and documentation building.
git reset --hard
git clean -fdx
git status --ignored
- action: custom
name: dch
args:
debfullname: Lars Wirzenius
debemail: liw@liw.fi
- 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
[2025-09-22T11:57:34Z DEBUG ambient_ci::plan] RUN: Action Mkdir {
pathname: "/workspace",
}
[2025-09-22T11:57:34Z DEBUG ambient_ci::action] Plan::execute: plan=Mkdir {
pathname: "/workspace",
}
[2025-09-22T11:57:34Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
[2025-09-22T11:57:34Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T11:57:34Z DEBUG ambient_ci::plan] RUN: Action Mkdir {
pathname: "/workspace/artifacts",
}
[2025-09-22T11:57:34Z DEBUG ambient_ci::action] Plan::execute: plan=Mkdir {
pathname: "/workspace/artifacts",
}
[2025-09-22T11:57:34Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
[2025-09-22T11:57:34Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T11:57:34Z DEBUG ambient_ci::plan] RUN: Action TarExtract {
archive: "/dev/vdc",
directory: "/workspace/src",
}
[2025-09-22T11:57:34Z DEBUG ambient_ci::action] Plan::execute: plan=TarExtract {
archive: "/dev/vdc",
directory: "/workspace/src",
}
[2025-09-22T11:57:34Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
[2025-09-22T11:57:34Z TRACE ambient_ci::vdrive] extracting /dev/vdc to /workspace/src
[2025-09-22T11:57:34Z TRACE ambient_ci::vdrive] extraction OK
[2025-09-22T11:57:34Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T11:57:34Z DEBUG ambient_ci::plan] RUN: Action TarExtract {
archive: "/dev/vdf",
directory: "/workspace/deps",
}
[2025-09-22T11:57:34Z DEBUG ambient_ci::action] Plan::execute: plan=TarExtract {
archive: "/dev/vdf",
directory: "/workspace/deps",
}
[2025-09-22T11:57:34Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
[2025-09-22T11:57:34Z TRACE ambient_ci::vdrive] extracting /dev/vdf to /workspace/deps
[2025-09-22T11:57:36Z TRACE ambient_ci::vdrive] extraction OK
[2025-09-22T11:57:36Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T11:57:36Z DEBUG ambient_ci::plan] RUN: Action TarExtract {
archive: "/dev/vde",
directory: "/workspace/cache",
}
[2025-09-22T11:57:36Z DEBUG ambient_ci::action] Plan::execute: plan=TarExtract {
archive: "/dev/vde",
directory: "/workspace/cache",
}
[2025-09-22T11:57:36Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
[2025-09-22T11:57:36Z TRACE ambient_ci::vdrive] extracting /dev/vde to /workspace/cache
[2025-09-22T11:57:36Z TRACE ambient_ci::vdrive] extraction OK
[2025-09-22T11:57:36Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T11:57:36Z DEBUG ambient_ci::plan] RUN: Action Spawn {
argv: [
"find",
"/workspace",
"-maxdepth",
"2",
"-ls",
],
}
[2025-09-22T11:57:36Z DEBUG ambient_ci::action] Plan::execute: plan=Spawn {
argv: [
"find",
"/workspace",
"-maxdepth",
"2",
"-ls",
],
}
[2025-09-22T11:57:36Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
SPAWN: argv=["find", "/workspace", "-maxdepth", "2", "-ls"]
cwd=/workspace/src (exists? true)
2621441 4 drwxr-xr-x 6 root root 4096 Sep 22 11:57 /workspace
2621975 4 drwxr-xr-x 3 root root 4096 Sep 22 11:57 /workspace/deps
2621976 0 -rw-r--r-- 1 root root 0 Sep 22 11:57 /workspace/deps/.package-cache-mutate
2621979 4 drwxr-xr-x 5 root root 4096 Sep 22 11:57 /workspace/deps/registry
2621977 88 -rw-r--r-- 1 root root 90112 Sep 22 11:57 /workspace/deps/.global-cache
2621978 0 -rw-r--r-- 1 root root 0 Sep 22 11:57 /workspace/deps/.package-cache
2621443 4 drwxr-xr-x 16 root root 4096 Sep 22 11:57 /workspace/src
2621501 4 drwxr-xr-x 2 root root 4096 Sep 22 11:57 /workspace/src/book
2621515 4 -rw-r--r-- 1 root root 1564 Sep 22 11:57 /workspace/src/Cargo.toml
2621973 8 -rw-r--r-- 1 root root 5176 Sep 22 11:57 /workspace/src/CONTRIBUTING.md
2621485 24 -rw-r--r-- 1 root root 21606 Sep 22 11:57 /workspace/src/NEWS.md
2621512 8 -rw-r--r-- 1 root root 5617 Sep 22 11:57 /workspace/src/build.rs
2621586 4 drwxr-xr-x 8 root root 4096 Sep 22 11:57 /workspace/src/.git
2621447 4 -rw-r--r-- 1 root root 1366 Sep 22 11:57 /workspace/src/DCO-1-1.txt
2621477 4 -rwxr-xr-x 1 root root 489 Sep 22 11:57 /workspace/src/install-debian.sh
2621516 8 -rw-r--r-- 1 root root 6501 Sep 22 11:57 /workspace/src/DECISIONS.md
2621449 4 drwxr-xr-x 3 root root 4096 Sep 22 11:57 /workspace/src/.gitlab
2621478 4 -rw-r--r-- 1 root root 2648 Sep 22 11:57 /workspace/src/subplot.yaml
2621455 4 drwxr-xr-x 2 root root 4096 Sep 22 11:57 /workspace/src/src
2621500 4 -rw-r--r-- 1 root root 1286 Sep 22 11:57 /workspace/src/reference.md
2621505 4 -rw-r--r-- 1 root root 3623 Sep 22 11:57 /workspace/src/README.md
2621453 4 drwxr-xr-x 2 root root 4096 Sep 22 11:57 /workspace/src/.ambient
2621517 4 -rw-r--r-- 1 root root 284 Sep 22 11:57 /workspace/src/subplot.subplot
2621563 4 -rw-r--r-- 1 root root 689 Sep 22 11:57 /workspace/src/reference.py
2621445 4 drwxr-xr-x 2 root root 4096 Sep 22 11:57 /workspace/src/.radicle
2621486 4 drwxr-xr-x 3 root root 4096 Sep 22 11:57 /workspace/src/debian
2621972 4 -rw-r--r-- 1 root root 3387 Sep 22 11:57 /workspace/src/RELEASE.md
2621484 4 -rw-r--r-- 1 root root 10 Sep 22 11:57 /workspace/src/.envrc
2621483 4 -rw-r--r-- 1 root root 56 Sep 22 11:57 /workspace/src/flake8.ini
2621974 48 -rw-r--r-- 1 root root 48928 Sep 22 11:57 /workspace/src/Cargo.lock
2621514 4 -rw-r--r-- 1 root root 142 Sep 22 11:57 /workspace/src/.gitignore
2621585 4 -rw-r--r-- 1 root root 678 Sep 22 11:57 /workspace/src/.gitlab-ci.yml
2621551 4 drwxr-xr-x 3 root root 4096 Sep 22 11:57 /workspace/src/tests
2621518 4 drwxr-xr-x 5 root root 4096 Sep 22 11:57 /workspace/src/subplotlib
2621499 4 -rw-r--r-- 1 root root 196 Sep 22 11:57 /workspace/src/reference.yaml
2621971 4 -rw-r--r-- 1 root root 1385 Sep 22 11:57 /workspace/src/flake.lock
2621479 4 drwxr-xr-x 3 root root 4096 Sep 22 11:57 /workspace/src/subplot-build
2621513 4 -rw-r--r-- 1 root root 1334 Sep 22 11:57 /workspace/src/flake.nix
2621444 4 -rw-r--r-- 1 root root 3473 Sep 22 11:57 /workspace/src/subplot.py
2621566 4 drwxr-xr-x 5 root root 4096 Sep 22 11:57 /workspace/src/examples
2621565 4 -rw-r--r-- 1 root root 295 Sep 22 11:57 /workspace/src/deny.toml
2621506 4 drwxr-xr-x 3 root root 4096 Sep 22 11:57 /workspace/src/subplotlib-derive
2621448 4 -rw-r--r-- 1 root root 1325 Sep 22 11:57 /workspace/src/LICENSE.md
2621504 96 -rw-r--r-- 1 root root 96411 Sep 22 11:57 /workspace/src/subplot.md
2621940 8 -rw-r--r-- 1 root root 4300 Sep 22 11:57 /workspace/src/Makefile
2621941 4 drwxr-xr-x 5 root root 4096 Sep 22 11:57 /workspace/src/share
2621934 4 drwxr-xr-x 3 root root 4096 Sep 22 11:57 /workspace/src/bin
2621564 4 -rw-r--r-- 1 root root 273 Sep 22 11:57 /workspace/src/reference.subplot.disabled
2621442 4 drwxr-xr-x 2 root root 4096 Sep 22 11:57 /workspace/artifacts
2637438 4 drwxr-xr-x 2 root root 4096 Sep 22 11:57 /workspace/cache
2637439 4 -rw-r--r-- 1 root root 1038 Sep 22 11:57 /workspace/cache/.rustc_info.json
[2025-09-22T11:57:36Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T11:57:36Z DEBUG ambient_ci::plan] RUN: Action CargoFmt
[2025-09-22T11:57:36Z DEBUG ambient_ci::action] Plan::execute: plan=CargoFmt
[2025-09-22T11:57:36Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
SPAWN: argv=["cargo", "--version"]
cwd=/workspace/src (exists? true)
cargo 1.88.0 (873a06493 2025-05-10)
SPAWN: argv=["cargo", "clippy", "--version"]
cwd=/workspace/src (exists? true)
clippy 0.1.88 (6b00bc3880 2025-06-23)
SPAWN: argv=["rustc", "--version"]
cwd=/workspace/src (exists? true)
rustc 1.88.0 (6b00bc388 2025-06-23)
SPAWN: argv=["cargo", "fmt", "--check"]
cwd=/workspace/src (exists? true)
[2025-09-22T11:57:37Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T11:57:37Z DEBUG ambient_ci::plan] RUN: Action CargoClippy
[2025-09-22T11:57:37Z DEBUG ambient_ci::action] Plan::execute: plan=CargoClippy
[2025-09-22T11:57:37Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
SPAWN: argv=["cargo", "--version"]
cwd=/workspace/src (exists? true)
cargo 1.88.0 (873a06493 2025-05-10)
SPAWN: argv=["cargo", "clippy", "--version"]
cwd=/workspace/src (exists? true)
clippy 0.1.88 (6b00bc3880 2025-06-23)
SPAWN: argv=["rustc", "--version"]
cwd=/workspace/src (exists? true)
rustc 1.88.0 (6b00bc388 2025-06-23)
SPAWN: argv=["cargo", "clippy", "--offline", "--locked", "--workspace", "--all-targets", "--no-deps", "--", "--deny", "warnings"]
cwd=/workspace/src (exists? true)
Compiling proc-macro2 v1.0.101
Compiling unicode-ident v1.0.18
Checking cfg-if v1.0.3
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 libc v0.2.175
Compiling ahash v0.8.12
Compiling thiserror v2.0.16
Compiling quote v1.0.40
Checking once_cell v1.21.3
Compiling syn v2.0.106
Checking bitflags v2.9.3
Compiling anyhow v1.0.99
Compiling doc-comment v0.3.3
Compiling getrandom v0.3.3
Checking aho-corasick v1.1.3
Checking regex-syntax v0.8.5
Compiling rustix v1.0.8
Compiling libm v0.2.15
Compiling same-file v1.0.6
Compiling walkdir v2.5.0
Compiling ucd-trie v0.1.7
Checking itoa v1.0.15
Compiling serde_json v1.0.143
Compiling shlex v1.3.0
Checking regex-automata v0.4.9
Compiling cc v1.2.34
Checking linux-raw-sys v0.9.4
Compiling pulldown-cmark v0.13.0
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.16
Compiling tracing-attributes v0.1.30
Checking ryu v1.0.20
Checking base64 v0.22.1
Compiling log v0.4.27
Checking tempfile v3.21.0
Compiling pest v2.8.1
Compiling pest_meta v2.8.1
Compiling pest_generator v2.8.1
Compiling pest_derive v2.8.1
Compiling encoding_rs v0.8.35
Compiling time-core v0.1.4
Compiling num-conv v0.1.0
Compiling arraydeque v0.5.1
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-char-range v0.9.0
Compiling foldhash v0.1.5
Compiling unicode-width v0.2.1
Compiling unic-common v0.9.0
Compiling unic-ucd-version v0.9.0
Compiling hashbrown v0.15.5
Compiling globset v0.4.16
Compiling unic-char-property v0.9.0
Compiling rand_core v0.6.4
Compiling hashlink v0.9.1
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 rand_chacha v0.3.1
Compiling nix v0.29.0
Compiling yaml-rust2 v0.9.0
Compiling hashlink v0.10.0
Compiling ignore v0.4.23
Compiling unic-ucd-segment v0.9.0
Checking powerfmt v0.2.0
Compiling deunicode v1.6.2
Compiling unicode-linebreak v0.1.5
Compiling smawk v0.3.2
Compiling textwrap v0.16.2
Compiling humansize v2.1.3
Compiling slug v0.1.6
Checking deranged v0.4.0
Compiling globwalk v0.9.1
Compiling unic-segment v0.9.0
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 pulldown-cmark-escape v0.11.0
Compiling percent-encoding v2.3.2
Compiling pin-project-lite v0.2.16
Compiling tracing v0.1.41
Compiling tera v1.20.0
Checking time v0.3.41
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 descape v3.0.0
Compiling line-col v0.2.1
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 fs2 v0.4.3
Checking filetime v0.2.26
Checking state v0.6.0
Checking shell-words v1.1.0
Checking utf8parse v0.2.2
Checking anstyle-parse v0.2.7
Checking anstyle v1.0.11
Checking is_terminal_polyfill v1.70.1
Checking colorchoice v1.0.4
Checking anstyle-query v1.1.4
Checking anstream v0.6.20
Compiling heck v0.5.0
Checking clap_lex v0.7.5
Checking strsim v0.11.1
Compiling clap_derive v4.5.45
Checking clap_builder v4.5.44
Compiling subplotlib-derive v0.13.0 (/workspace/src/subplotlib-derive)
Checking clap v4.5.45
Checking regex-syntax v0.6.29
Checking regex-automata v0.1.10
Checking overload v0.1.1
Checking nu-ansi-term v0.46.0
Checking matchers v0.1.0
Compiling git-testament-derive v0.2.1
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-seq-example v0.1.0 (/workspace/src/examples/seq)
Checking subplot-bin v0.13.0 (/workspace/src/bin)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 29.88s
[2025-09-22T11:58:07Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T11:58:07Z DEBUG ambient_ci::plan] RUN: Action Shell {
shell: "make OFFLINE=\"--offline\"\n\n# Clean up after tests and documentation building.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n",
}
[2025-09-22T11:58:07Z DEBUG ambient_ci::action] Plan::execute: plan=Shell {
shell: "make OFFLINE=\"--offline\"\n\n# Clean up after tests and documentation building.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n",
}
[2025-09-22T11:58:07Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
SPAWN: argv=["/bin/bash", "-c", "set -xeuo pipefail\nmake OFFLINE=\"--offline\"\n\n# Clean up after tests and documentation building.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n\n"]
cwd=/workspace/src (exists? true)
+ 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.88 (6b00bc3880 2025-06-23)
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 3.94s
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.08s
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.106
Compiling cfg-if v1.0.3
Compiling memchr v2.7.5
Compiling once_cell v1.21.3
Compiling libc v0.2.175
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 bitflags v2.9.3
Compiling same-file v1.0.6
Compiling walkdir v2.5.0
Compiling ahash v0.8.12
Compiling crossbeam-utils v0.8.21
Compiling regex-automata v0.4.9
Compiling encoding_rs v0.8.35
Compiling ucd-trie v0.1.7
Compiling arraydeque v0.5.1
Compiling thiserror-impl v2.0.16
Compiling serde_derive v1.0.219
Compiling crossbeam-epoch v0.9.18
Compiling hashbrown v0.14.5
Compiling thiserror v2.0.16
Compiling pest v2.8.1
Compiling getrandom v0.2.16
Compiling bstr v1.12.0
Compiling utf8parse v0.2.2
Compiling foldhash v0.1.5
Compiling unicode-width v0.2.1
Compiling unic-char-range v0.9.0
Compiling unic-common v0.9.0
Compiling unic-char-property v0.9.0
Compiling unic-ucd-version v0.9.0
Compiling pest_meta v2.8.1
Compiling hashbrown v0.15.5
Compiling anstyle-parse v0.2.7
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.99
Compiling doc-comment v0.3.3
Compiling ppv-lite86 v0.2.21
Compiling tracing-core v0.1.34
Compiling anstyle-query v1.1.4
Compiling lazy_static v1.5.0
Compiling anstyle v1.0.11
Compiling time-core v0.1.4
Compiling num-conv v0.1.0
Compiling linux-raw-sys v0.9.4
Compiling is_terminal_polyfill v1.70.1
Compiling powerfmt v0.2.0
Compiling colorchoice v1.0.4
Compiling anstream v0.6.20
Compiling deranged v0.4.0
Compiling rustix v1.0.8
Compiling time-macros v0.2.22
Compiling rand_chacha v0.3.1
Compiling serde_path_to_error v0.1.17
Compiling ignore v0.4.23
Compiling yaml-rust2 v0.9.0
Compiling pest_generator v2.8.1
Compiling hashlink v0.10.0
Compiling unic-ucd-segment v0.9.0
Compiling getrandom v0.3.3
Compiling libm v0.2.15
Compiling regex v1.11.1
Compiling tracing-attributes v0.1.30
Compiling strsim v0.11.1
Compiling ryu v1.0.20
Compiling clap_lex v0.7.5
Compiling unicode-linebreak v0.1.5
Compiling smawk v0.3.2
Compiling deunicode v1.6.2
Compiling pin-project-lite v0.2.16
Compiling regex-syntax v0.6.29
Compiling fastrand v2.3.0
Compiling slug v0.1.6
Compiling tempfile v3.21.0
Compiling clap_derive v4.5.45
Compiling textwrap v0.16.2
Compiling tracing v0.1.41
Compiling clap_builder v4.5.44
Compiling humansize v2.1.3
Compiling serde_json v1.0.143
Compiling regex-automata v0.1.10
Compiling unic-segment v0.9.0
Compiling pest_derive v2.8.1
Compiling yaml-rust2 v0.10.3
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 percent-encoding v2.3.2
Compiling overload v0.1.1
Compiling pulldown-cmark-escape v0.11.0
Compiling unicase v2.8.1
Compiling utf8-width v0.1.7
Compiling pulldown-cmark v0.13.0
Compiling html-escape v0.2.13
Compiling nu-ansi-term v0.46.0
Compiling tera v1.20.0
Compiling roadmap v0.7.0
Compiling git-testament-derive v0.2.1
Compiling matchers v0.1.0
Compiling marked-yaml v0.8.0
Compiling clap v4.5.45
Compiling pikchr v0.1.4
Compiling tracing-log v0.2.0
Compiling sharded-slab v0.1.7
Compiling thread_local v1.1.9
Compiling descape v3.0.0
Compiling line-col v0.2.1
Compiling smallvec v1.15.1
Compiling base64 v0.22.1
Compiling tracing-subscriber v0.3.19
Compiling git-testament v0.2.6
Compiling subplot-bin v0.13.0 (/workspace/src/bin)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 21.42s
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.175
Compiling serde v1.0.219
Compiling thiserror v2.0.16
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.21.0
Compiling rand_chacha v0.3.1
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.143
Compiling marked-yaml v0.8.0
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 fs2 v0.4.3
Compiling filetime v0.2.26
Compiling fs_at v0.2.1
Compiling remove_dir_all v1.0.0
Compiling state v0.6.0
Compiling shell-words v1.1.0
Compiling clap v4.5.45
Compiling git-testament-derive v0.2.1
Compiling subplotlib-derive v0.13.0 (/workspace/src/subplotlib-derive)
Compiling tracing-subscriber v0.3.19
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 18.99s
Running unittests src/lib.rs (/workspace/cache/debug/deps/subplot-5c9d0880aeb82fb6)
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::does_not_match_with_wrong_text ... ok
test bindings::test_binding::case_sensitive_mismatch ... ok
test bindings::test_binding::match_with_fixed_pattern ... ok
test bindings::test_binding::equal ... ok
test bindings::test_binding::not_equal ... ok
test bindings::test_bindings::add_from_yaml_notices_multiple_keywords ... 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::adds_binding ... ok
test bindings::test_bindings::has_no_bindings_initially ... ok
test bindings::test_bindings::finds_match_for_regexp_pattern ... ok
test bindings::test_bindings::typemap_must_match_pattern ... ok
test bindings::test_bindings::two_matching_bindings ... ok
test bindings::test_bindings::adds_from_yaml ... 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::returns_error_for_stray_closing_brace ... 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_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::simple_int_pattern ... 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_explicit ... ok
test bindings::test_regex_from_simple_pattern::typemap_updated_on_pattern_parse_default ... ok
test bindings::test_regex_from_simple_pattern::simple_uint_pattern ... 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 bindings::test_regex_from_simple_pattern::simple_number_pattern ... ok
test blockattr::test::parse_one_id ... ok
test blockattr::test::parse_one_kv ... 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 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.18s
Running tests/bindings-ubm.rs (/workspace/cache/debug/deps/bindings_ubm-44ea2cade278754c)
running 1 test
test bindings_microbenchmark ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.98s
Running unittests src/subplot.rs (/workspace/cache/debug/deps/subplot-71197578057431cc)
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-8946a65e3a8db4ef)
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-7420a83dda944e03)
running 4 tests
test one_number ... ok
test more_than_one_number ... ok
test not_a_number ... ok
test no_arguments ... 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-8db7b55ae60d2448)
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-cbcc64c67cf3cf26)
running 7 tests
test file_and_directory_removal ... ok
test create_on_disk_files_from_embedded_files ... ok
test directories ... ok
test file_equality ... ok
test file_modification_time ... ok
test file_metadata ... ok
test file_contents ... 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-2f9869c52b96ac20)
running 21 tests
test check_stderr_is_exactly_as_wanted ... ok
test check_stderr_doesn_t_contain_sub_string ... ok
test check_stderr_is_not_exactly_something ... ok
test check_stderr_doesn_t_match_regular_expressions ... ok
test check_stderr_using_regular_expressions ... ok
test check_stderr_using_sub_string_search ... ok
test check_stdout_doesn_t_contain_sub_string ... 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_contains_exactly ... ok
test stdin_comes_from_a_named_file ... ok
test successful_execution_in_a_sub_directory ... 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-329f1e2bdb7458dd)
running 29 tests
test capture_using_regular_expressions ... ok
test capture_using_simple_patterns ... ok
test code_generator_gives_an_error_if_input_document_lacks_title ... ok
test cleanup_functions_get_called_on_failure__python_ ... 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 files_not_in_current_working_directory ... ok
test missing_functions_file ... ok
test misuse_of_continuation_keywords ... ok
test lowest_level_heading_is_name_of_scenario ... ok
test no_scenarios_means_codegen_fails ... ok
test empty_lines_in_scenarios ... ok
test no_template_means_you_can_docgen_but_not_codegen ... ok
test next_heading_at_higher_level_starts_new_scenario ... ok
test next_heading_at_same_level_starts_new_scenario ... ok
test recall_values_for_use_in_later_steps ... ok
test running_only_chosen_scenarios_with_python ... 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 steps_which_do_not_match_bindings_do_not_work ... ok
test simple_patterns_with_regex_metacharacters__allowed_case ... ok
test steps_which_match_more_than_one_binding_do_not_work ... ok
test smoke_test ... ok
test subplot_accepts_title_and_headings_with_inline_markup ... ok
test subheadings_don_t_start_new_scenario ... ok
test set_environment_variables_in_generated_test_programs ... 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.44s
Running tests/subplot-diagrams.rs (/workspace/cache/debug/deps/subplot_diagrams-63d090e98edb93b3)
running 4 tests
test pikchr ... ok
test roadmap ... ok
test dot ... ok
test plantuml ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.12s
Running tests/subplot-docgen.rs (/workspace/cache/debug/deps/subplot_docgen-7acf1411889c2ba4)
running 30 tests
test bindings_file_strictness___unknown_field ... ok
test bad__add_newline__value ... ok
test attempt_to_use_definition_list ... ok
test bindings_file_strictness___given_when_then ... ok
test class_name_validation ... ok
test date_given_on_command_line ... ok
test date_given_in_metadata ... ok
test document_generator_gives_an_error_if_input_document_lacks_title ... ok
test css_urls ... ok
test dot ... ok
test embedded_css ... ok
test examples_may_be_unused ... ok
test fail_if_embedded_file_isn_t_used ... ok
test extract_embedded_file ... ok
test fail_if_two_filenames_only_differ_in_case ... ok
test missing_bindings_file ... ok
test multiple_markdown_files ... ok
test indented_scenario_steps_are_not_allowed ... ok
test no_date_anywhere ... ok
test named_code_blocks_must_have_an_appropriate_class ... ok
test no_template_means_you_can_docgen_but_not_codegen ... ok
test pikchr ... ok
test roadmap ... ok
test scenario_before_the_first_heading ... ok
test files_not_in_current_working_directory ... ok
test empty_lines_in_scenarios ... 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.59s
Running tests/subplot-extract.rs (/workspace/cache/debug/deps/subplot_extract-3fc6f0e96c6489c9)
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-b244e90b5479b2b0)
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.06s
Running tests/subplot-others.rs (/workspace/cache/debug/deps/subplot_others-e634aba5de45aa1d)
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 capture_using_simple_patterns ... ok
test code_generator_gives_an_error_if_input_document_lacks_title ... 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 examples_may_be_unused ... ok
test embedded_css ... ok
test extract_embedded_file__automatically_add_missing_newline ... ok
test cleanup_functions_gets_called_on_success__python_ ... ok
test extract_embedded_file ... 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 fail_if_two_filenames_only_differ_in_case ... ok
test indented_scenario_steps_are_not_allowed ... ok
test extracting_metadata_from_a_document ... ok
test list_embedded_files ... ok
test missing_bindings_file ... ok
test missing_functions_file ... ok
test empty_lines_in_scenarios ... ok
test multiple_markdown_files ... ok
test files_not_in_current_working_directory ... ok
test misuse_of_continuation_keywords ... ok
test named_code_blocks_must_have_an_appropriate_class ... ok
test no_date_anywhere ... 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 pikchr ... ok
test next_heading_at_higher_level_starts_new_scenario ... ok
test next_heading_at_same_level_starts_new_scenario ... ok
test roadmap ... ok
test scenario_before_the_first_heading ... ok
test scenario_titles ... ok
test recall_values_for_use_in_later_steps ... 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 subheadings_don_t_start_new_scenario ... ok
test title_markup ... ok
test use_embedded_file ... ok
test subplot_accepts_title_and_headings_with_inline_markup ... 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 0.91s
Running tests/subplotlib.rs (/workspace/cache/debug/deps/subplotlib-814894de6c38e2be)
running 3 tests
test fundamentals ... ok
test embedded_files ... ok
test data_directory ... 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-c5d57c1ca6507e44)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
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::DotMarkup (line 149) ... ok
test src/diagrams.rs - diagrams::PikchrMarkup (line 116) ... 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 1.71s
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.36s
Doc-tests subplotlib
running 73 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::data (line 120) ... 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/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_with_other_name_executable::call (line 129) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::create_executable_from_embedded::call (line 93) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::create_executable_from_embedded_with_other_name::call (line 111) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::create_from_embedded::call (line 56) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::create_from_embedded_with_other_name::call (line 70) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::create_from_text::call (line 220) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_and_embedded_file_do_not_match::call (line 469) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_and_embedded_file_match::call (line 443) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_contains::call (line 341) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_do_not_match::call (line 417) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_does_not_exist::call (line 296) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_doesnt_contain::call (line 357) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_exists::call (line 276) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_match::call (line 390) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::file_matches_regex::call (line 374) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::has_different_metadata::call (line 544) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::has_remembered_metadata::call (line 505) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::make_directory::call (line 609) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::mtime_is_ancient::call (line 593) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::mtime_is_recent::call (line 577) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::only_these_exist::call (line 322) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::path_does_not_exist::call (line 659) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::path_exists::call (line 642) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::path_is_empty::call (line 678) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::path_is_not_empty::call (line 696) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::remember_metadata::call (line 231) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::remove_directory::call (line 619) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::remove_empty_directory::call (line 630) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::remove_file::call (line 181) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::touch::call (line 255) ... ignored
test subplotlib/src/steplibrary/files.rs - steplibrary::files::touch_with_timestamp::call (line 193) ... 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/step.rs - step::ScenarioStep (line 24) ... ok
test subplotlib/src/steplibrary/runcmd.rs - steplibrary::runcmd::Runcmd::join_paths (line 155) ... ok
test subplotlib/src/utils.rs - utils::base64_decode (line 9) ... ok
test result: ok. 14 passed; 0 failed; 59 ignored; 0 measured; 0 filtered out; finished in 1.36s
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/tmp4t3bry49
scenario: Steps which do not case-sensitively match sensitive bindings do not work
step 1: given file casemismatch.subplot
step 2: given file casemismatch.md
step 3: given file badbindings.yaml
step 4: given an installed subplot
step 5: when I try to run subplot codegen --run casemismatch.subplot -o test.py
step 6: then command fails
cleanup 4: given an installed subplot
scenario: Scenario titles
step 1: given file scenario-titles.subplot
step 2: given file scenario-titles.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I run subplot metadata scenario-titles.subplot
step 7: then stdout contains "My fun scenario title"
cleanup 5: given an installed subplot
scenario: Dot
step 1: given file dot.subplot
step 2: given file dot.md
step 3: given file b.yaml
step 4: given an installed subplot
step 5: when I run subplot docgen dot.subplot -o dot.html
step 6: then file dot.html matches regex /src="data:image/svg\\+xml;base64,/
cleanup 4: given an installed subplot
scenario: Extract embedded files
step 1: given file embedded-file.subplot
step 2: given file embedded-file.md
step 3: given file expected.txt
step 4: given an installed subplot
step 5: when I run subplot extract --merciful embedded-file.subplot foo.txt -d .
step 6: then files foo.txt and expected.txt match
cleanup 4: given an installed subplot
scenario: PlantUML
step 1: given file plantuml.subplot
step 2: given file plantuml.md
step 3: given file b.yaml
step 4: given an installed subplot
step 5: when I run subplot docgen plantuml.subplot -o plantuml.html
step 6: then file plantuml.html matches regex /src="data:image/svg\\+xml;base64,/
cleanup 4: given an installed subplot
scenario: Fail if the same filename is used twice
step 1: given file onefiletwice.md
step 2: given an installed subplot
step 3: when I try to run subplot docgen onefiletwice.md -o onefiletwice.html
step 4: then command fails
step 5: then file onefiletwice.html does not exist
cleanup 2: given an installed subplot
scenario: Subheadings don't start new scenario
step 1: given file subisnotnewscenario.subplot
step 2: given file subisnotnewscenario.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I run subplot codegen --run subisnotnewscenario.subplot -o test.py
step 7: then scenario "heading 1.1a" was run
step 8: then command is successful
cleanup 5: given an installed subplot
scenario: Extract embedded file, do not automatically add second newline
step 1: given file auto-has-newline.txt
step 2: then auto-has-newline.txt ends in one newline
scenario: No scenarios means codegen fails
step 1: given file noscenarios.subplot
step 2: given file noscenarios.md
step 3: given an installed subplot
step 4: when I try to run subplot codegen noscenarios.subplot -o test.py
step 5: then command fails
step 6: then stderr contains "no scenarios were found"
cleanup 3: given an installed subplot
scenario: No template means you can docgen but not codegen
step 1: given file notemplate.subplot
step 2: given file notemplate.md
step 3: given an installed subplot
step 4: when I run subplot docgen notemplate.subplot -o notemplate.html
step 5: then file notemplate.html exists
step 6: when I try to run subplot codegen notemplate.subplot -o test.py
step 7: then command fails
step 8: then stderr contains "document has no template"
cleanup 3: given an installed subplot
scenario: Document generator gives an error if input document lacks title
step 1: given file notitle.subplot
step 2: given file notitle.md
step 3: given an installed subplot
step 4: when I try to run subplot docgen notitle.subplot -o foo.md
step 5: then command fails
cleanup 3: given an installed subplot
scenario: CSS URLs
step 1: given file css-urls.subplot
step 2: given file css-urls.md
step 3: given file b.yaml
step 4: given an installed subplot
step 5: when I run subplot docgen css-urls.subplot -o foo.html
step 6: then file foo.html contains "https://example.com/flushing.css"
cleanup 4: given an installed subplot
scenario: Next heading at higher level starts new scenario
step 1: given file higherisnewscenario.subplot
step 2: given file higherisnewscenario.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I run subplot codegen --run higherisnewscenario.subplot -o test.py
step 7: then scenario "heading 1.1.1" was run
step 8: then scenario "heading 1.2" was run
step 9: then command is successful
cleanup 5: given an installed subplot
scenario: Cleanup functions get called on failure (Python)
step 1: given file cleanup-fail-python.subplot
step 2: given file cleanup-fail-python.md
step 3: given file cleanup.yaml
step 4: given file cleanup.py
step 5: given an installed subplot
step 6: when I try to run subplot codegen --run cleanup-fail-python.subplot -o test.py
step 7: then scenario "Cleanup" was run
step 8: then step "given foo" was run, and then step "given bar"
step 9: then cleanup for "given bar" was run, and then for "given foo"
step 10: then cleanup for "given failure" was not run
step 11: then command fails
cleanup 5: given an installed subplot
scenario: Bindings file strictness - given when then
step 1: given file badbindingsgwt.subplot
step 2: given file badbindingsgwt.md
step 3: given file badbindingsgwt.yaml
step 4: given an installed subplot
step 5: when I try to run subplot docgen --output ignored.html badbindingsgwt.subplot
step 6: then command fails
step 7: then stderr contains "binding has more than one keyword"
cleanup 4: given an installed subplot
scenario: Missing functions file
step 1: given file missing-functions.subplot
step 2: given file missing-functions.md
step 3: given file b.yaml
step 4: given an installed subplot
step 5: when I try to run subplot codegen --run missing-functions.subplot -o foo.py
step 6: then command fails
step 7: then stderr contains "could not be found"
step 8: then stderr contains "missing-functions.py"
cleanup 4: given an installed subplot
scenario: Roadmap
step 1: given file roadmap.subplot
step 2: given file roadmap.md
step 3: given file b.yaml
step 4: given an installed subplot
step 5: when I run subplot docgen roadmap.subplot -o roadmap.html
step 6: then file roadmap.html matches regex /src="data:image/svg\\+xml;base64,/
cleanup 4: given an installed subplot
scenario: Attempt to use definition list
step 1: given an installed subplot
step 2: given file dl.subplot
step 3: given file dl.md
step 4: when I try to run subplot docgen dl.subplot -o /dev/null
step 5: then command fails
step 6: then stderr contains "ERROR dl.md:3:1: attempt to use definition lists in Markdown"
cleanup 1: given an installed subplot
scenario: Bindings file strictness - unknown field
step 1: given file badbindingsuf.subplot
step 2: given file badbindingsuf.md
step 3: given file badbindingsuf.yaml
step 4: given an installed subplot
step 5: when I try to run subplot docgen --output ignored.html badbindingsuf.subplot
step 6: then command fails
step 7: then stderr contains "Unknown field `function`"
cleanup 4: given an installed subplot
scenario: Running only chosen scenarios with Python
step 1: given file twoscenarios-python.subplot
step 2: given file twoscenarios-python.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I run subplot codegen twoscenarios-python.subplot -o test.py
step 7: when I run python3 test.py on
step 8: then scenario "One" was run
step 9: then scenario "Two" was not run
step 10: then command is successful
cleanup 5: given an installed subplot
scenario: Extract embedded file
step 1: given file embedded.subplot
step 2: given file embedded.md
step 3: given an installed subplot
step 4: when I run subplot docgen --merciful embedded.subplot -o foo.html
step 5: then file foo.html exists
step 6: then file foo.html matches regex /embedded\\.txt/
cleanup 3: given an installed subplot
scenario: Class name validation
step 1: given file unknown-class-name.subplot
step 2: given file unknown-class-name.md
step 3: given file known-class-name.subplot
step 4: given file known-class-name.md
step 5: given file b.yaml
step 6: given an installed subplot
step 7: when I try to run subplot docgen unknown-class-name.subplot -o unknown-class-name.html
step 8: then command fails
step 9: then file unknown-class-name.html does not exist
step 10: then stderr contains "Unknown classes found in the document: foobar"
step 11: when I run subplot docgen known-class-name.subplot -o known-class-name.html
step 12: then file known-class-name.html exists
cleanup 6: given an installed subplot
scenario: Capture using simple patterns
step 1: given file simplepattern.subplot
step 2: given file simplepattern.md
step 3: given file simplepattern.yaml
step 4: given file capture.py
step 5: given an installed subplot
step 6: when I run subplot codegen --run simplepattern.subplot -o test.py
step 7: then scenario "Simple pattern" was run
step 8: then step "given I am Tomjon" was run
step 9: then stdout contains "function got argument name as Tomjon"
step 10: then command is successful
cleanup 5: given an installed subplot
scenario: Indented scenario steps are not allowed
step 1: given file indented-step.subplot
step 2: given file indented-step.md
step 3: given file b.yaml
step 4: given an installed subplot
step 5: when I try to run subplot docgen indented-step.subplot -o foo.html
step 6: then command fails
step 7: then stderr contains "indented"
cleanup 4: given an installed subplot
scenario: Extract embedded file, by default add missing newline
step 1: given file default-without-newline.txt
step 2: then default-without-newline.txt ends in one newline
scenario: Examples may be unused
step 1: given file unusedexample.subplot
step 2: given file unusedexample.md
step 3: given an installed subplot
step 4: when I try to run subplot docgen --merciful unusedexample.subplot -o unusedexample.html
step 5: then command is successful
step 6: then file unusedexample.html exists
step 7: then stderr doesn't contain "thisisnotused.txt"
cleanup 3: given an installed subplot
scenario: Code generator gives an error if input document lacks title
step 1: given file notitle.subplot
step 2: given file notitle.md
step 3: given an installed subplot
step 4: when I try to run subplot codegen --run notitle.subplot -o test.py
step 5: then command fails
cleanup 3: given an installed subplot
scenario: Embedded file name didn't match
step 1: given file badfilename.subplot
step 2: given file badfilename.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I try to run subplot codegen --run badfilename.md -o test.py
step 7: then command fails
cleanup 5: given an installed subplot
scenario: Date given in metadata
step 1: given file metadate.subplot
step 2: given file metadate.md
step 3: given an installed subplot
step 4: when I run subplot docgen metadate.subplot -o metadate.html
step 5: when I run cat metadate.html
step 6: then file metadate.html exists
step 7: then file metadate.html contains "<title>The Fabulous Title</title>"
step 8: then file metadate.html contains "Alfred Pennyworth"
step 9: then file metadate.html contains "Geoffrey Butler"
step 10: then file metadate.html contains "WIP"
cleanup 3: given an installed subplot
scenario: Scenario before the first heading
step 1: given an installed subplot
step 2: given file scenario-before-heading.subplot
step 3: given file scenario-before-heading.md
step 4: when I try to run subplot docgen scenario-before-heading.subplot -o /dev/null
step 5: then command fails
step 6: then stderr contains "ERROR scenario-before-heading.md:1:1: first scenario is before first heading"
cleanup 1: given an installed subplot
scenario: No date anywhere
step 1: given file dateless.subplot
step 2: given file dateless.md
step 3: given file dateless.md has modification time 2020-02-26 07:53:17
step 4: given an installed subplot
step 5: when I run subplot docgen dateless.subplot -o mtime.html
step 6: then file mtime.html exists
step 7: then file mtime.html contains "<title>The Fabulous Title</title>"
step 8: then file mtime.html contains "Alfred Pennyworth"
step 9: then file mtime.html contains "Geoffrey Butler"
step 10: then file mtime.html contains "2020-02-26 07:53"
cleanup 4: given an installed subplot
scenario: Lowest level heading is name of scenario
step 1: given file scenarioislowest.subplot
step 2: given file scenarioislowest.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I run subplot codegen --run scenarioislowest.subplot -o test.py
step 7: then scenario "heading 1.1.1" was run
step 8: then command is successful
cleanup 5: given an installed subplot
scenario: Embedded CSS
step 1: given file embedded-css.subplot
step 2: given file embedded-css.md
step 3: given file embedded-css.css
step 4: given file b.yaml
step 5: given an installed subplot
step 6: when I run subplot docgen embedded-css.subplot -o foo.html
step 7: then file foo.html contains "silly: property;"
cleanup 5: given an installed subplot
scenario: Bad "add-newline" value
step 1: given an installed subplot
step 2: given file add-newline.subplot
step 3: given file add-newline.md
step 4: when I try to run subplot docgen add-newline.subplot -o /dev/null
step 5: then command fails
step 6: then stderr contains "ERROR add-newline.md:1:1: value of add-newline attribute is not understood: xyzzy"
cleanup 1: given an installed subplot
scenario: Use embedded file
step 1: given file numbered-lines.txt
step 2: given file not-numbered-lines.txt
scenario: Capture using regular expressions
step 1: given file regex.subplot
step 2: given file regex.md
step 3: given file regex.yaml
step 4: given file capture.py
step 5: given an installed subplot
step 6: when I run subplot codegen --run regex.subplot -o test.py
step 7: then scenario "Regex" was run
step 8: then step "given I am Tomjon" was run
step 9: then stdout contains "function got argument name as Tomjon"
step 10: then command is successful
cleanup 5: given an installed subplot
scenario: Temporary files in scenarios in Python
step 1: given file tmpdir.subplot
step 2: given file tmpdir.md
step 3: given file tmpdir.yaml
step 4: given file tmpdir.py
step 5: given an installed subplot
step 6: when I run subplot codegen --run tmpdir.subplot -o test.py
step 7: then command is successful
step 8: then scenario "TMPDIR" was run
step 9: then step "then TMPDIR is set" was run
cleanup 5: given an installed subplot
scenario: Pikchr
step 1: given file pikchr.subplot
step 2: given file pikchr.md
step 3: given an installed subplot
step 4: when I run subplot docgen pikchr.subplot -o pikchr.html
step 5: then file pikchr.html matches regex /src="data:image/svg\\+xml;base64,/
cleanup 3: given an installed subplot
scenario: Multiple markdown files
step 1: given file multimd.subplot
step 2: given file md1.md
step 3: given file md2.md
step 4: given an installed subplot
step 5: when I run subplot docgen multimd.subplot -o multimd.html
step 6: when I run cat multimd.html
step 7: then file multimd.html exists
step 8: then file multimd.html contains "<title>The Fabulous Title</title>"
step 9: then file multimd.html contains "First markdown file."
step 10: then file multimd.html contains "Second markdown file."
cleanup 4: given an installed subplot
scenario: Extract embedded file, by default do not add a second newline
step 1: given file default-has-newline.txt
step 2: then default-has-newline.txt ends in one newline
scenario: Steps which match more than one binding do not work
step 1: given file twobindings.subplot
step 2: given file twobindings.md
step 3: given file twobindings.yaml
step 4: given file a_function.py
step 5: given an installed subplot
step 6: when I try to run subplot codegen --run twobindings.subplot -o test.py
step 7: then command fails
step 8: then stderr contains "xyzzy"
step 9: then stderr contains "plugh"
cleanup 5: given an installed subplot
scenario: Title markup
step 1: given file title-markup.subplot
step 2: given file title-markup.md
step 3: given an installed subplot
step 4: when I run subplot docgen title-markup.subplot -o foo.html
step 5: then file foo.html exists
cleanup 3: given an installed subplot
scenario: Empty lines in scenarios
step 1: given file emptylines.subplot
step 2: given file emptylines.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I run subplot docgen emptylines.subplot -o emptylines.html
step 7: then file emptylines.html exists
step 8: when I run subplot codegen --run emptylines.subplot -o test.py
step 9: then scenario "Simple" was run
step 10: then step "given precondition foo" was run
step 11: then step "when I do bar" was run
step 12: then step "then bar was done" was run
step 13: then command is successful
cleanup 5: given an installed subplot
scenario: Recall values for use in later steps
step 1: given file values.subplot
step 2: given file values.md
step 3: given file values.yaml
step 4: given file values.py
step 5: given an installed subplot
step 6: when I run subplot codegen values.subplot -o test.py
step 7: when I run python3 test.py
step 8: then command is successful
cleanup 5: given an installed subplot
scenario: List embedded files
step 1: given file two-embedded.subplot
step 2: given file two-embedded.md
step 3: given an installed subplot
step 4: when I run subplot metadata --merciful two-embedded.subplot
step 5: then stdout contains "foo.txt"
step 6: then stdout contains "bar.yaml"
cleanup 3: given an installed subplot
scenario: Subplot accepts title and headings with inline markup
step 1: given file fancytitle.subplot
step 2: given file fancytitle.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I try to run subplot docgen fancytitle.subplot -o foo.md
step 7: then command is successful
step 8: when I try to run subplot codegen fancytitle.subplot -o foo.md
step 9: then command is successful
cleanup 5: given an installed subplot
scenario: Extract embedded file, do not add missing newline
step 1: given file no-adding-without-newline.txt
step 2: then no-adding-without-newline.txt does not end in a newline
scenario: Set environment variables in generated test programs
step 1: given file env.subplot
step 2: given file env.md
step 3: given file env.yaml
step 4: given file env.py
step 5: given an installed subplot
step 6: when I run subplot codegen env.subplot -o test.py
step 7: when I try to run python3 test.py
step 8: then command fails
step 9: when I try to run python3 test.py --env FOO=foo
step 10: then command fails
step 11: when I try to run python3 test.py --env FOO=bar
step 12: then command is successful
cleanup 5: given an installed subplot
scenario: Examples are not files
step 1: given file examplesnotfiles.subplot
step 2: given file examplesnotfiles.md
step 3: given an installed subplot
step 4: when I try to run subplot codegen examplesnotfiles.subplot -t python -o examplesnotfiles.html
step 5: then command fails
step 6: then file examplesnotfiles.html does not exist
step 7: then stderr contains "thisisanexample.txt"
cleanup 3: given an installed subplot
scenario: Fail if embedded file isn't used
step 1: given file unusedfile.subplot
step 2: given file unusedfile.md
step 3: given an installed subplot
step 4: when I try to run subplot docgen --merciful unusedfile.subplot -o unusedfile.html
step 5: then command is successful
step 6: then file unusedfile.html exists
step 7: then stderr contains "thisisnotused.txt"
cleanup 3: given an installed subplot
scenario: Extract embedded file, explicitly add missing newline
step 1: given file add-without-newline.txt
step 2: then add-without-newline.txt ends in one newline
scenario: Extracting metadata from a document
step 1: given file images.subplot
step 2: given file images.md
step 3: given file b.yaml
step 4: given file other.yaml
step 5: given file f.py
step 6: given file other.py
step 7: given file expected.json
step 8: given an installed subplot
step 9: when I run subplot metadata images.subplot
step 10: then stdout contains "source: images.md"
step 11: then stdout contains "source: b.yaml"
step 12: then stdout contains "source: other.yaml"
step 13: then stdout contains "source: f.py"
step 14: then stdout contains "source: other.py"
step 15: then stdout contains "source: image.gif"
step 16: then stdout contains "bindings: b.yaml"
step 17: then stdout contains "bindings: other.yaml"
step 18: then stdout contains "functions[python]: f.py"
step 19: when I run subplot metadata images.subplot -o json
step 20: then JSON output matches expected.json
cleanup 8: given an installed subplot
scenario: Extract embedded file, explicitly add second newline
step 1: given file add-has-newline.txt
step 2: then add-has-newline.txt ends in two newlines
scenario: Misuse of continuation keywords
step 1: given file continuationmisuse.subplot
step 2: given file continuationmisuse.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I try to run subplot codegen --run continuationmisuse.subplot -o test.py
step 7: then command fails
cleanup 5: given an installed subplot
scenario: Cleanup functions gets called on success (Python)
step 1: given file cleanup-success-python.subplot
step 2: given file cleanup-success-python.md
step 3: given file cleanup.yaml
step 4: given file cleanup.py
step 5: given an installed subplot
step 6: when I run subplot codegen --run cleanup-success-python.subplot -o test.py
step 7: then scenario "Cleanup" was run
step 8: then step "given foo" was run, and then step "given bar"
step 9: then cleanup for "given bar" was run, and then for "given foo"
step 10: then command is successful
cleanup 5: given an installed subplot
scenario: Date given on command line
step 1: given file dateless.subplot
step 2: given file dateless.md
step 3: given an installed subplot
step 4: when I run subplot docgen dateless.subplot -o dateoption.html --date=FANCYDATE
step 5: then file dateoption.html exists
step 6: then file dateoption.html contains "<title>The Fabulous Title</title>"
step 7: then file dateoption.html contains "Alfred Pennyworth"
step 8: then file dateoption.html contains "Geoffrey Butler"
step 9: then file dateoption.html contains "FANCYDATE"
cleanup 3: given an installed subplot
scenario: Steps which do not match bindings do not work
step 1: given file nobinding.subplot
step 2: given file nobinding.md
step 3: given file badbindings.yaml
step 4: given an installed subplot
step 5: when I try to run subplot codegen --run nobinding.subplot -o test.py
step 6: then command fails
cleanup 4: given an installed subplot
scenario: Next heading at same level starts new scenario
step 1: given file samelevelisnewscenario.subplot
step 2: given file samelevelisnewscenario.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I run subplot codegen --run samelevelisnewscenario.subplot -o test.py
step 7: then scenario "heading 1.1.1" was run
step 8: then scenario "heading 1.1.2" was run
step 9: then command is successful
cleanup 5: given an installed subplot
scenario: Smoke test
step 1: given file simple.subplot
step 2: given file simple.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I run subplot docgen simple.subplot -o simple.html
step 7: then file simple.html exists
step 8: when I run subplot codegen --run simple.subplot -o test.py
step 9: then scenario "Simple" was run
step 10: then step "given precondition foo" was run
step 11: then step "when I do bar" was run
step 12: then step "then bar was done" was run
step 13: then command is successful
cleanup 5: given an installed subplot
scenario: Missing bindings file
step 1: given file missing-binding.subplot
step 2: given file missing-binding.md
step 3: given an installed subplot
step 4: when I try to run subplot docgen missing-binding.subplot -o foo.html
step 5: then command fails
step 6: then stderr contains "could not be found"
step 7: then stderr contains "missing-binding.yaml"
cleanup 3: given an installed subplot
scenario: Fail if two filenames only differ in case
step 1: given file casediff.md
step 2: given an installed subplot
step 3: when I try to run subplot docgen casediff.md -o casediff.html
step 4: then command fails
step 5: then file casediff.html does not exist
cleanup 2: given an installed subplot
scenario: Named code blocks must have an appropriate class
step 1: given file named-code-blocks-appropriate.subplot
step 2: given file named-code-blocks-appropriate.md
step 3: given file b.yaml
step 4: given an installed subplot
step 5: when I try to run subplot docgen named-code-blocks-appropriate.subplot -o foo.html
step 6: then command fails
step 7: then stderr contains "#example-1 at named-code-blocks-appropriate.md:7:1"
step 8: then stderr doesn't contain "example-2"
step 9: then stderr doesn't contain "example-3"
cleanup 4: given an installed subplot
scenario: Simple patterns with regex metacharacters: forbidden case
step 1: given file confusedpattern.subplot
step 2: given file confusedpattern.md
step 3: given file confusedpattern.yaml
step 4: given file capture.py
step 5: given an installed subplot
step 6: when I try to run subplot codegen --run confusedpattern.subplot -o test.py
step 7: then command fails
step 8: then stderr contains "simple pattern contains regex"
cleanup 5: given an installed subplot
scenario: Duplicate scenario titles
step 1: given file duplicate-scenario-titles.subplot
step 2: given file duplicate-scenario-titles.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I try to run subplot metadata duplicate-scenario-titles.subplot
step 7: then command fails
step 8: then stderr contains "duplicate"
cleanup 5: given an installed subplot
scenario: All the keywords
step 1: given file allkeywords.subplot
step 2: given file allkeywords.md
step 3: given file b.yaml
step 4: given file f.py
step 5: given an installed subplot
step 6: when I run subplot codegen --run allkeywords.subplot -o test.py
step 7: then scenario "All keywords" was run
step 8: then step "given precondition foo" was run
step 9: then step "when I do bar" was run
step 10: then step "then bar was done" was run
step 11: then command is successful
cleanup 5: given an installed subplot
scenario: Extract embedded file, automatically add missing newline
step 1: given file auto-without-newline.txt
step 2: then auto-without-newline.txt ends in one newline
scenario: Files not in current working directory
step 1: given file x/simple.subplot from simple.subplot
step 2: given file x/simple.md from simple.md
step 3: given file x/b.yaml from b.yaml
step 4: given file x/f.py from f.py
step 5: given an installed subplot
step 6: when I run subplot metadata x/simple.subplot
step 7: then command is successful
step 8: when I run subplot codegen x/simple.subplot -o test.py
step 9: then file test.py exists
step 10: when I run subplot docgen x/simple.subplot -o simple.html
step 11: then file simple.html exists
cleanup 5: given an installed subplot
scenario: Simple patterns with regex metacharacters: allowed case
step 1: given file confusedbutok.subplot
step 2: given file confusedbutok.md
step 3: given file confusedbutok.yaml
step 4: given file capture.py
step 5: given an installed subplot
step 6: when I run subplot codegen --run confusedbutok.subplot -o test.py
step 7: then command is successful
cleanup 5: 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/tmpi4o6eksm
scenario: Restarting Muck
step 1: given a fresh Muck server
step 2: given I am Tomjon, with super capability
step 3: when I do POST /res with {"foo": "bar"}
step 4: then header Muck-Id is ID
step 5: then header Muck-Revision is REV1
step 6: when I restart Muck
step 7: when I do GET /res with Muck-Id: {ID}
step 8: then response code is 200
step 9: then header Muck-Revision matches {REV1}
step 10: then body matches {"foo": "bar"}
scenario: Basic object handling
step 1: given a fresh Muck server
step 2: given I am Tomjon
step 3: when I do POST /res with {"foo": "bar"}
step 4: then response code is 201
step 5: then header Muck-Id is ID
step 6: then header Muck-Revision is REV1
step 7: when I do GET /res with Muck-Id: {ID}
step 8: then response code is 200
step 9: then header Muck-Revision matches {REV1}
step 10: then body matches {"foo": "bar"}
step 11: when I do PUT /res with Muck-Id: {ID}, Muck-Revision: {REV1}, and body {"foo":"yo"}
step 12: then response code is 200
step 13: then header Muck-Revision is {REV2}
step 14: then revisions {REV1} and {REV2} are different
step 15: when I do PUT /res with Muck-Id: {ID}, Muck-Revision: {REV1}, and body {"foo":"yo"}
step 16: then response code is 409
step 17: when I do GET /res with Muck-Id: {ID}
step 18: then response code is 200
step 19: then header Muck-Revision matches {REV2}
step 20: then body matches {"foo": "yo"}
step 21: when I do DELETE /res with Muck-Id: {ID}
step 22: then response code is 200
step 23: when I do GET /res with Muck-Id: {ID}
step 24: then response code is 404
scenario: Accessing someone else's data
step 1: given a fresh Muck server
step 2: given I am Tomjon
step 3: when I do POST /res with {"foo": "bar"}
step 4: then header Muck-Id is ID
step 5: then header Muck-Revision is REV1
step 6: when I do GET /res with Muck-Id: {ID}
step 7: then response code is 200
step 8: then header Muck-Revision matches {REV1}
step 9: then body matches {"foo": "bar"}
step 10: given I am Verence
step 11: when I do GET /res with Muck-Id: {ID}
step 12: then response code is 404
scenario: Deleting someone else's data
step 1: given a fresh Muck server
step 2: given I am Tomjon
step 3: when I do POST /res with {"foo": "bar"}
step 4: then header Muck-Id is ID
step 5: then header Muck-Revision is REV1
step 6: given I am Verence
step 7: when I do DELETE /res with Muck-Id: {ID}
step 8: then response code is 404
scenario: Updating someone else's data
step 1: given a fresh Muck server
step 2: given I am Tomjon
step 3: when I do POST /res with {"foo": "bar"}
step 4: then header Muck-Id is ID
step 5: then header Muck-Revision is REV1
step 6: given I am Verence
step 7: when I do PUT /res with Muck-Id: {ID}, Muck-Revision: {REV1}, and body {"foo":"yo"}
step 8: 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 serde v1.0.219
Compiling thiserror v2.0.16
Compiling crossbeam-utils v0.8.21
Compiling ahash v0.8.12
Compiling regex-automata v0.4.9
Compiling encoding_rs v0.8.35
Compiling anyhow v1.0.99
Compiling doc-comment v0.3.3
Compiling pest v2.8.1
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 crossbeam-deque v0.8.6
Compiling rand_core v0.6.4
Compiling pest_meta v2.8.1
Compiling hashlink v0.9.1
Compiling serde_path_to_error v0.1.17
Compiling ppv-lite86 v0.2.21
Compiling serde_json v1.0.143
Compiling yaml-rust2 v0.9.0
Compiling ignore v0.4.23
Compiling rand_chacha v0.3.1
Compiling pest_generator v2.8.1
Compiling pulldown-cmark v0.13.0
Compiling tempfile v3.21.0
Compiling pest_derive v2.8.1
Compiling pikchr v0.1.4
Compiling humansize v2.1.3
Compiling yaml-rust2 v0.10.3
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 roadmap v0.7.0
Compiling tera v1.20.0
Compiling aho-corasick v1.1.3
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 12.69s
Running tests/seq.rs (/workspace/cache/debug/deps/seq-4cd2295912851a64)
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.01s
/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 a05b915 Merge branch 'dch' into 'main'
+ 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 a05b915
nothing to commit, working tree clean
[2025-09-22T11:59:21Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T11:59:21Z DEBUG ambient_ci::plan] RUN: Action Custom(
Custom {
name: "dch",
args: {
"debemail": String("liw@liw.fi"),
"debfullname": String("Lars Wirzenius"),
},
},
)
[2025-09-22T11:59:21Z DEBUG ambient_ci::action] Plan::execute: plan=Custom(
Custom {
name: "dch",
args: {
"debemail": String("liw@liw.fi"),
"debfullname": String("Lars Wirzenius"),
},
},
)
[2025-09-22T11:59:21Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
custom: source=/workspace/src
custom: exe=".ambient/dch" exists=false
HEAD is now at a05b915 Merge branch 'dch' into 'main'
custom action "dch" exit code Some(0)
[2025-09-22T11:59:21Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T11:59:21Z DEBUG ambient_ci::plan] RUN: Action Deb
[2025-09-22T11:59:21Z DEBUG ambient_ci::action] Plan::execute: plan=Deb
[2025-09-22T11:59:21Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
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)
+ 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=284
LANG=C.UTF-8
CARGO_HOME=/workspace/deps
DEBEMAIL=liw@liw.fi
INVOCATION_ID=f845ecea7210465abfef2239e72bf032
SHLVL=2
JOURNAL_STREAM=8:14706
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.88.0 (873a06493 2025-05-10)
+ rustc --version
rustc 1.88.0 (6b00bc388 2025-06-23)
++ dpkg-parsechangelog -SSource
+ name=subplot
++ dpkg-parsechangelog -SVersion
+ version=0.13.0.ci20250922T115921-1
++ sed 's/-[^-]*$//'
++ echo 0.13.0.ci20250922T115921-1
+ uv=0.13.0.ci20250922T115921
++ dpkg --print-architecture
+ arch=amd64
+ orig=../subplot_0.13.0.ci20250922T115921.orig.tar.xz
+ deb=../subplot_0.13.0.ci20250922T115921-1_amd64.deb
+ changes=../subplot_0.13.0.ci20250922T115921-1_amd64.changes
+ git archive HEAD
+ xz
+ dpkg-buildpackage -us -uc
dpkg-buildpackage: info: source package subplot
dpkg-buildpackage: info: source version 0.13.0.ci20250922T115921-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.ci20250922T115921.orig.tar.xz
dpkg-source: info: building subplot in subplot_0.13.0.ci20250922T115921-1.debian.tar.xz
dpkg-source: info: building subplot in subplot_0.13.0.ci20250922T115921-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.101
Compiling unicode-ident v1.0.18
Compiling cfg-if v1.0.3
Compiling zerocopy v0.8.26
Compiling memchr v2.7.5
Compiling libc v0.2.175
Compiling thiserror v2.0.16
Compiling once_cell v1.21.3
Compiling quote v1.0.40
Compiling syn v2.0.106
Compiling serde v1.0.219
Compiling version_check v0.9.5
Compiling aho-corasick v1.1.3
Compiling ahash v0.8.12
Compiling itoa v1.0.15
Compiling anyhow v1.0.99
Compiling regex-syntax v0.8.5
Compiling crossbeam-utils v0.8.21
Compiling log v0.4.27
Compiling bitflags v2.9.3
Compiling regex-automata v0.4.9
Compiling thiserror-impl v2.0.16
Compiling serde_derive v1.0.219
Compiling encoding_rs v0.8.35
Compiling doc-comment v0.3.3
Compiling arraydeque v0.5.1
Compiling ucd-trie v0.1.7
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 utf8parse v0.2.2
Compiling unicode-width v0.2.1
Compiling num-conv v0.1.0
Compiling getrandom v0.3.3
Compiling foldhash v0.1.5
Compiling shlex v1.3.0
Compiling rustix v1.0.8
Compiling time-core v0.1.4
Compiling unic-common v0.9.0
Compiling same-file v1.0.6
Compiling libm v0.2.15
Compiling unic-char-range v0.9.0
Compiling unic-char-property v0.9.0
Compiling unic-ucd-version v0.9.0
Compiling walkdir v2.5.0
Compiling time-macros v0.2.22
Compiling cc v1.2.34
Compiling hashbrown v0.15.5
Compiling globset v0.4.16
Compiling hashlink v0.9.1
Compiling anstyle-parse v0.2.7
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-query v1.1.4
Compiling powerfmt v0.2.0
Compiling serde_json v1.0.143
Compiling is_terminal_polyfill v1.70.1
Compiling colorchoice v1.0.4
Compiling lazy_static v1.5.0
Compiling linux-raw-sys v0.9.4
Compiling anstyle v1.0.11
Compiling anstream v0.6.20
Compiling deranged v0.4.0
Compiling rand_chacha v0.3.1
Compiling pest_generator v2.8.1
Compiling ignore v0.4.23
Compiling yaml-rust2 v0.9.0
Compiling hashlink v0.10.0
Compiling pikchr v0.1.4
Compiling unic-ucd-segment v0.9.0
Compiling regex v1.11.1
Compiling tracing-attributes v0.1.30
Compiling pin-project-lite v0.2.16
Compiling regex-syntax v0.6.29
Compiling deunicode v1.6.2
Compiling ryu v1.0.20
Compiling fastrand v2.3.0
Compiling smawk v0.3.2
Compiling unicode-linebreak v0.1.5
Compiling strsim v0.11.1
Compiling pulldown-cmark v0.13.0
Compiling clap_lex v0.7.5
Compiling heck v0.5.0
Compiling clap_derive v4.5.45
Compiling regex-automata v0.1.10
Compiling clap_builder v4.5.44
Compiling textwrap v0.16.2
Compiling tempfile v3.21.0
Compiling slug v0.1.6
Compiling tracing v0.1.41
Compiling time v0.3.41
Compiling unic-segment v0.9.0
Compiling humansize v2.1.3
Compiling marked-yaml v0.7.2
Compiling yaml-rust2 v0.10.3
Compiling globwalk v0.9.1
Compiling pest_derive v2.8.1
Compiling rand v0.8.5
Compiling subplot v0.13.0 (/workspace/src)
Compiling getopts v0.2.23
Compiling pulldown-cmark-escape v0.11.0
Compiling percent-encoding v2.3.2
Compiling unicase v2.8.1
Compiling overload v0.1.1
Compiling utf8-width v0.1.7
Compiling html-escape v0.2.13
Compiling nu-ansi-term v0.46.0
Compiling git-testament-derive v0.2.1
Compiling tera v1.20.0
Compiling marked-yaml v0.8.0
Compiling roadmap v0.7.0
Compiling clap v4.5.45
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 v3.0.0
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 49.01s
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' in '../subplot_0.13.0.ci20250922T115921-1_amd64.deb'.
dpkg-deb: building package 'subplot-dbgsym' in '../subplot-dbgsym_0.13.0.ci20250922T115921-1_amd64.deb'.
dpkg-genbuildinfo -O../subplot_0.13.0.ci20250922T115921-1_amd64.buildinfo
dpkg-genchanges -O../subplot_0.13.0.ci20250922T115921-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 2372
drwxr-xr-x 2 root root 4096 Sep 22 11:57 artifacts
drwxr-xr-x 5 root root 4096 Sep 22 11:59 cache
drwxr-xr-x 3 root root 4096 Sep 22 11:57 deps
drwxr-xr-x 16 root root 4096 Sep 22 11:59 src
-rw-r--r-- 1 root root 274368 Sep 22 12:00 subplot-dbgsym_0.13.0.ci20250922T115921-1_amd64.deb
-rw-r--r-- 1 root root 2388 Sep 22 11:59 subplot_0.13.0.ci20250922T115921-1.debian.tar.xz
-rw-r--r-- 1 root root 1018 Sep 22 11:59 subplot_0.13.0.ci20250922T115921-1.dsc
-rw-r--r-- 1 root root 10151 Sep 22 12:00 subplot_0.13.0.ci20250922T115921-1_amd64.buildinfo
-rw-r--r-- 1 root root 2392 Sep 22 12:00 subplot_0.13.0.ci20250922T115921-1_amd64.changes
-rw-r--r-- 1 root root 1959232 Sep 22 12:00 subplot_0.13.0.ci20250922T115921-1_amd64.deb
-rw-r--r-- 1 root root 149688 Sep 22 11:59 subplot_0.13.0.ci20250922T115921.orig.tar.xz
+ for x in ../*.deb
+ dpkg -c ../subplot-dbgsym_0.13.0.ci20250922T115921-1_amd64.deb
drwxr-xr-x root/root 0 2025-09-22 11:59 ./
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/lib/
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/lib/debug/
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/lib/debug/.build-id/
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/lib/debug/.build-id/1c/
-rw-r--r-- root/root 1804424 2025-09-22 11:59 ./usr/lib/debug/.build-id/1c/e346aaea5000d6687f7fb9cb70d35b3e888f92.debug
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/share/
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/share/doc/
lrwxrwxrwx root/root 0 2025-09-22 11:59 ./usr/share/doc/subplot-dbgsym -> subplot
+ for x in ../*.deb
+ dpkg -c ../subplot_0.13.0.ci20250922T115921-1_amd64.deb
drwxr-xr-x root/root 0 2025-09-22 11:59 ./
drwxr-xr-x root/root 0 2025-09-22 11:59 ./bin/
-rwxr-xr-x root/root 8146328 2025-09-22 11:59 ./bin/subplot
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/share/
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/share/doc/
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/share/doc/subplot/
-rw-r--r-- root/root 3623 2025-09-22 11:57 ./usr/share/doc/subplot/README.md
-rw-r--r-- root/root 659 2025-09-22 11:59 ./usr/share/doc/subplot/changelog.Debian.gz
-rw-r--r-- root/root 1394 2025-09-22 11:57 ./usr/share/doc/subplot/copyright
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/share/lintian/
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/share/lintian/overrides/
-rw-r--r-- root/root 103 2025-09-22 11:57 ./usr/share/lintian/overrides/subplot
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/share/subplot/
drwxr-xr-x root/root 0 2025-09-22 11:57 ./usr/share/subplot/common/
drwxr-xr-x root/root 0 2025-09-22 11:57 ./usr/share/subplot/common/lib/
-rw-r--r-- root/root 10268 2025-09-22 11:57 ./usr/share/subplot/common/lib/files.yaml
-rw-r--r-- root/root 8470 2025-09-22 11:57 ./usr/share/subplot/common/lib/runcmd.yaml
drwxr-xr-x root/root 0 2025-09-22 11:57 ./usr/share/subplot/python/
drwxr-xr-x root/root 0 2025-09-22 11:57 ./usr/share/subplot/python/lib/
-rw-r--r-- root/root 10415 2025-09-22 11:57 ./usr/share/subplot/python/lib/daemon.py
-rw-r--r-- root/root 4434 2025-09-22 11:57 ./usr/share/subplot/python/lib/daemon.yaml
-rw-r--r-- root/root 8048 2025-09-22 11:57 ./usr/share/subplot/python/lib/files.py
-rw-r--r-- root/root 8657 2025-09-22 11:57 ./usr/share/subplot/python/lib/runcmd.py
drwxr-xr-x root/root 0 2025-09-22 11:59 ./usr/share/subplot/python/template/
-rw-r--r-- root/root 1275 2025-09-22 11:57 ./usr/share/subplot/python/template/asserts.py
-rw-r--r-- root/root 2457 2025-09-22 11:57 ./usr/share/subplot/python/template/context.py
-rw-r--r-- root/root 4611 2025-09-22 11:57 ./usr/share/subplot/python/template/context_tests.py
-rw-r--r-- root/root 201 2025-09-22 11:57 ./usr/share/subplot/python/template/encoding.py
-rw-r--r-- root/root 474 2025-09-22 11:57 ./usr/share/subplot/python/template/encoding_tests.py
-rw-r--r-- root/root 412 2025-09-22 11:57 ./usr/share/subplot/python/template/files.py
-rw-r--r-- root/root 4557 2025-09-22 11:57 ./usr/share/subplot/python/template/main.py
-rw-r--r-- root/root 2785 2025-09-22 11:57 ./usr/share/subplot/python/template/scenarios.py
-rw-r--r-- root/root 2565 2025-09-22 11:57 ./usr/share/subplot/python/template/template.py.tera
-rw-r--r-- root/root 137 2025-09-22 11:57 ./usr/share/subplot/python/template/template.yaml
drwxr-xr-x root/root 0 2025-09-22 11:57 ./usr/share/subplot/rust/
drwxr-xr-x root/root 0 2025-09-22 11:57 ./usr/share/subplot/rust/lib/
-rw-r--r-- root/root 788 2025-09-22 11:57 ./usr/share/subplot/rust/lib/datadir.yaml
drwxr-xr-x root/root 0 2025-09-22 11:57 ./usr/share/subplot/rust/template/
-rw-r--r-- root/root 1449 2025-09-22 11:57 ./usr/share/subplot/rust/template/macros.rs.tera
-rw-r--r-- root/root 1213 2025-09-22 11:57 ./usr/share/subplot/rust/template/template.rs.tera
-rw-r--r-- root/root 71 2025-09-22 11:57 ./usr/share/subplot/rust/template/template.yaml
-rw-r--r-- root/root 2103 2025-09-22 11:57 ./usr/share/subplot/subplot.css
+ mv ../subplot-dbgsym_0.13.0.ci20250922T115921-1_amd64.deb ../subplot_0.13.0.ci20250922T115921-1.debian.tar.xz ../subplot_0.13.0.ci20250922T115921-1.dsc ../subplot_0.13.0.ci20250922T115921-1_amd64.buildinfo ../subplot_0.13.0.ci20250922T115921-1_amd64.changes ../subplot_0.13.0.ci20250922T115921-1_amd64.deb ../subplot_0.13.0.ci20250922T115921.orig.tar.xz /workspace/artifacts
[2025-09-22T12:00:16Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T12:00:16Z DEBUG ambient_ci::plan] RUN: Action TarCreate {
archive: "/dev/vde",
directory: "/workspace/cache",
}
[2025-09-22T12:00:16Z DEBUG ambient_ci::action] Plan::execute: plan=TarCreate {
archive: "/dev/vde",
directory: "/workspace/cache",
}
[2025-09-22T12:00:16Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
[2025-09-22T12:00:16Z TRACE ambient_ci::vdrive] creating virtual drive (tar archive): VirtualDriveBuilder {
filename: Some(
"/dev/vde",
),
root: Some(
"/workspace/cache",
),
size: None,
}
[2025-09-22T12:00:16Z TRACE ambient_ci::vdrive] tar archive to be created: /dev/vde; exists? true
[2025-09-22T12:00:16Z TRACE ambient_ci::vdrive] create archive file /dev/vde
[2025-09-22T12:00:16Z TRACE ambient_ci::vdrive] directory /workspace/cache exists? true
[2025-09-22T12:00:16Z TRACE ambient_ci::vdrive] add contents of /workspace/cache as .
[2025-09-22T12:00:16Z TRACE ambient_ci::vdrive] calling tar_create
[2025-09-22T12:00:27Z TRACE ambient_ci::vdrive] created virtual drive /dev/vde
[2025-09-22T12:00:27Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T12:00:27Z DEBUG ambient_ci::plan] RUN: Action TarCreate {
archive: "/dev/vdd",
directory: "/workspace/artifacts",
}
[2025-09-22T12:00:27Z DEBUG ambient_ci::action] Plan::execute: plan=TarCreate {
archive: "/dev/vdd",
directory: "/workspace/artifacts",
}
[2025-09-22T12:00:27Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"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",
},
source_dir: "/workspace/src",
}
[2025-09-22T12:00:27Z TRACE ambient_ci::vdrive] creating virtual drive (tar archive): VirtualDriveBuilder {
filename: Some(
"/dev/vdd",
),
root: Some(
"/workspace/artifacts",
),
size: None,
}
[2025-09-22T12:00:27Z TRACE ambient_ci::vdrive] tar archive to be created: /dev/vdd; exists? true
[2025-09-22T12:00:27Z TRACE ambient_ci::vdrive] create archive file /dev/vdd
[2025-09-22T12:00:27Z TRACE ambient_ci::vdrive] directory /workspace/artifacts exists? true
[2025-09-22T12:00:27Z TRACE ambient_ci::vdrive] add contents of /workspace/artifacts as .
[2025-09-22T12:00:27Z TRACE ambient_ci::vdrive] calling tar_create
[2025-09-22T12:00:27Z TRACE ambient_ci::vdrive] created virtual drive /dev/vdd
[2025-09-22T12:00:27Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T12:00:27Z DEBUG ambient_ci::plan] All actions were performed successfully
ambient-execute-plan ends
EXIT CODE: 0
====================
[2025-09-22T12:00:40Z DEBUG ambient_ci::run] remove old cache
[2025-09-22T12:00:40Z DEBUG ambient_ci::run] extract cache
[2025-09-22T12:00:42Z DEBUG ambient_ci::run] Executing post-plan steps
[2025-09-22T12:00:42Z DEBUG ambient_ci::plan] RUN: Action Dput {
artifactsdir: "/srv/ambient-state/subplot/artifacts",
dput_target: Some(
"apt.liw.fi",
),
}
[2025-09-22T12:00:42Z DEBUG ambient_ci::action] Plan::execute: plan=Dput {
artifactsdir: "/srv/ambient-state/subplot/artifacts",
dput_target: Some(
"apt.liw.fi",
),
}
[2025-09-22T12:00:42Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"CARGO_HOME": "/srv/ambient-state/subplot/dependencies",
"PATH": "/root/.cargo/bin:/bin:/home/_rad/.radicle/bin:/home/_rad/.cargo/bin",
"CARGO_TARGET_DIR": "/srv/ambient-state/subplot/cache",
},
source_dir: "/tmp/.tmpzWnOhx/src",
}
[2025-09-22T12:00:42Z DEBUG ambient_ci::util] found /srv/ambient-state/subplot/artifacts
[2025-09-22T12:00:42Z DEBUG ambient_ci::util] found /srv/ambient-state/subplot/artifacts/subplot_0.13.0.ci20250922T115921-1.debian.tar.xz
[2025-09-22T12:00:42Z DEBUG ambient_ci::util] found /srv/ambient-state/subplot/artifacts/subplot-dbgsym_0.13.0.ci20250922T115921-1_amd64.deb
[2025-09-22T12:00:42Z DEBUG ambient_ci::util] found /srv/ambient-state/subplot/artifacts/subplot_0.13.0.ci20250922T115921-1.dsc
[2025-09-22T12:00:42Z DEBUG ambient_ci::util] found /srv/ambient-state/subplot/artifacts/subplot_0.13.0.ci20250922T115921-1_amd64.changes
[2025-09-22T12:00:42Z DEBUG ambient_ci::util] found /srv/ambient-state/subplot/artifacts/subplot_0.13.0.ci20250922T115921.orig.tar.xz
[2025-09-22T12:00:42Z DEBUG ambient_ci::util] found /srv/ambient-state/subplot/artifacts/subplot_0.13.0.ci20250922T115921-1_amd64.deb
[2025-09-22T12:00:42Z DEBUG ambient_ci::util] found /srv/ambient-state/subplot/artifacts/subplot_0.13.0.ci20250922T115921-1_amd64.buildinfo
[2025-09-22T12:00:42Z INFO ambient_ci::util] dput apt.liw.fi /srv/ambient-state/subplot/artifacts/subplot_0.13.0.ci20250922T115921-1_amd64.changes
[2025-09-22T12:00:45Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T12:00:45Z DEBUG ambient_ci::plan] RUN: Action Rsync {
artifactsdir: "/srv/ambient-state/subplot/artifacts",
rsync_target: Some(
"ci@http.liw.fi:/srv/http/doc.subplot.tech",
),
}
[2025-09-22T12:00:45Z DEBUG ambient_ci::action] Plan::execute: plan=Rsync {
artifactsdir: "/srv/ambient-state/subplot/artifacts",
rsync_target: Some(
"ci@http.liw.fi:/srv/http/doc.subplot.tech",
),
}
[2025-09-22T12:00:45Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"CARGO_HOME": "/srv/ambient-state/subplot/dependencies",
"PATH": "/root/.cargo/bin:/bin:/home/_rad/.radicle/bin:/home/_rad/.cargo/bin",
"CARGO_TARGET_DIR": "/srv/ambient-state/subplot/cache",
},
source_dir: "/tmp/.tmpzWnOhx/src",
}
[2025-09-22T12:00:45Z INFO ambient_ci::util] rsync /srv/ambient-state/subplot/artifacts/. -> ci@http.liw.fi:/srv/http/doc.subplot.tech/.
[2025-09-22T12:00:46Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-22T12:00:46Z DEBUG ambient_ci::plan] All actions were performed successfully
[2025-09-22T12:00:46Z DEBUG ambient_ci::project] write project state to /srv/ambient-state/subplot/meta.yaml
[2025-09-22T12:00:46Z INFO ambient] ambient ends successfully
<empty log>