Radicle repository id rad:z3248z9KmBQ6Tf4mwXih1zKPtuSw5
{
"request": "trigger",
"version": 1,
"event_type": "patch",
"repository": {
"id": "rad:z3248z9KmBQ6Tf4mwXih1zKPtuSw5",
"name": "clingwrap",
"description": "Utilities for making command line apps in Rust",
"private": false,
"default_branch": "main",
"delegates": [
"did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV"
]
},
"action": "Created",
"patch": {
"id": "8fea2c849eb521cc06fa2c2af197f888020d13f8",
"author": {
"id": "did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV",
"alias": "liw"
},
"title": "feat! simplify loading and validating configuration files",
"state": {
"status": "open",
"conflicts": []
},
"before": "209b98bd14faf834ad8d512c5356f647a0b62d94",
"after": "a7d1dacea9bbb9fba0e24a50437d59df19f65a78",
"commits": [
"a7d1dacea9bbb9fba0e24a50437d59df19f65a78"
],
"target": "209b98bd14faf834ad8d512c5356f647a0b62d94",
"labels": [],
"assignees": [],
"revisions": [
{
"id": "8fea2c849eb521cc06fa2c2af197f888020d13f8",
"author": {
"id": "did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV",
"alias": "liw"
},
"description": "Load, parse, merge, and validate configuration files in one type. Drop\nunnecessary type that only existed to parse, merge, and validate the\nfiles.\n\nWe had types ConfigLoader and ConfigMerger. The first type would read\nthe specified files, without parsing them, and then return a\nConfigMerger value. That value would parse each file, and merge all\nthe files into one, and validate that. This meant that the caller\nwould have to do two steps: first load, then validate.\n\nWe can now do this in one step, which is hopefully simpler. The\n`ConfigLoader::load` method now also parses each file (as JSON or\nYAML), merges the parsed files, and validates the result. This is\nconceptually simpler and less code to the caller.\n\nTo make sure life times of file data and parsed values are correct, we\nkeep the file data in memory until we've validated the merged files.\nThis should not be a significant cost, unless your configuration files\nare very, very large.\n\nFor life time reasons, the `ConfigFile::merge` method has also changed\nso that ownership of the other file is passed, not just a reference.\nThis is unlikely to be a burden, either.\n\nThis is a breaking change, because the API to the config module has\nchanged in backwards incompatible ways.\n\nSigned-off-by: Lars Wirzenius <liw@liw.fi>\nSponsored-by: author",
"base": "209b98bd14faf834ad8d512c5356f647a0b62d94",
"oid": "a7d1dacea9bbb9fba0e24a50437d59df19f65a78",
"timestamp": 1752408823
}
]
}
}[2025-07-13T12:14:05Z 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 950K 1 disk
vdc 254:32 0 360K 1 disk
vdd 254:48 0 9.3G 0 disk
vde 254:64 0 46.6G 0 disk
vdf 254:80 0 198.5M 1 disk
INFO: Extracting tar archive from /dev/vdb
drwxr-xr-x _rad/_rad 0 2025-07-13 12:13 ./
-rw-r--r-- _rad/_rad 881 2025-07-13 12:13 ./plan.yaml
-rwxr-xr-x _rad/_rad 963160 2025-07-13 12:13 ./run-ci
INFO: Extracted files:
3670026 4 drwxr-xr-x 2 1001 1001 4096 Jul 13 12:13 .
3670023 944 -rwxr-xr-x 1 1001 1001 963160 Jul 13 12:13 ./run-ci
3670022 4 -rw-r--r-- 1 1001 1001 881 Jul 13 12:13 ./plan.yaml
INFO: Running run-ci from /dev/vdb
================================ BEGIN ================================
ambient-execute-plan starts
RunnablePlan::from_file: filename=plan.yaml
steps:
- action: mkdir
pathname: /workspace
- action: mkdir
pathname: /workspace/artifacts
- action: tar_extract
archive: /dev/vdc
directory: /workspace/src
- action: tar_extract
archive: /dev/vdf
directory: /workspace/deps
- action: tar_extract
archive: /dev/vde
directory: /workspace/cache
- action: spawn
argv:
- find
- /workspace
- '-maxdepth'
- '2'
- '-ls'
- action: cargo_fmt
- action: cargo_clippy
- action: cargo_build
- action: cargo_test
- action: tar_create
archive: /dev/vde
directory: /workspace/cache
- action: tar_create
archive: /dev/vdd
directory: /workspace/artifacts
executor_drive: /dev/vdb
source_drive: /dev/vdc
artifact_drive: /dev/vdd
cache_drive: /dev/vde
deps_drive: /dev/vdf
workspace_dir: /workspace
source_dir: /workspace/src
deps_dir: /workspace/deps
cache_dir: /workspace/cache
artifacts_dir: /workspace/artifacts
RUN: Action Mkdir {
pathname: "/workspace",
}
RUN: Action finished OK
RUN: Action Mkdir {
pathname: "/workspace/artifacts",
}
RUN: Action finished OK
RUN: Action TarExtract {
archive: "/dev/vdc",
directory: "/workspace/src",
}
RUN: Action finished OK
RUN: Action TarExtract {
archive: "/dev/vdf",
directory: "/workspace/deps",
}
RUN: Action finished OK
RUN: Action TarExtract {
archive: "/dev/vde",
directory: "/workspace/cache",
}
RUN: Action finished OK
RUN: Action Spawn {
argv: [
"find",
"/workspace",
"-maxdepth",
"2",
"-ls",
],
}
SPAWN: argv=["find", "/workspace", "-maxdepth", "2", "-ls"]
cwd=/workspace/src (exists? true)
extra_env=[]
786433 4 drwxr-xr-x 6 root root 4096 Jul 13 12:13 /workspace
786580 4 drwxr-xr-x 3 root root 4096 Jul 13 12:13 /workspace/deps
786584 4 drwxr-xr-x 5 root root 4096 Jul 7 05:07 /workspace/deps/registry
786582 56 -rw-r--r-- 1 root root 57344 Jul 13 12:13 /workspace/deps/.global-cache
786583 0 -rw-r--r-- 1 root root 0 Jul 7 05:07 /workspace/deps/.package-cache
786581 0 -rw-r--r-- 1 root root 0 Jul 7 05:07 /workspace/deps/.package-cache-mutate
790545 4 drwxr-xr-x 3 root root 4096 Jul 7 05:11 /workspace/cache
790546 4 drwxr-xr-x 7 root root 4096 Jul 8 07:24 /workspace/cache/debug
791320 4 -rw-r--r-- 1 root root 1034 Jul 8 07:24 /workspace/cache/.rustc_info.json
786435 4 drwxr-xr-x 6 root root 4096 Jul 13 12:13 /workspace/src
786448 4 drwxr-xr-x 8 root root 4096 Jul 13 12:13 /workspace/src/.git
786579 12 -rw-r--r-- 1 root root 12044 Jul 13 12:13 /workspace/src/Cargo.lock
786446 4 drwxr-xr-x 2 root root 4096 Jul 13 12:13 /workspace/src/examples
786445 4 -rw-r--r-- 1 root root 425 Jul 13 12:13 /workspace/src/Cargo.toml
786578 4 -rw-r--r-- 1 root root 138 Jul 13 12:13 /workspace/src/Makefile
786436 4 drwxr-xr-x 2 root root 4096 Jul 13 12:13 /workspace/src/.radicle
786438 4 drwxr-xr-x 2 root root 4096 Jul 13 12:13 /workspace/src/src
786443 4 -rw-r--r-- 1 root root 1484 Jul 13 12:13 /workspace/src/README.md
786444 4 -rw-r--r-- 1 root root 8 Jul 13 12:13 /workspace/src/.gitignore
786434 4 drwxr-xr-x 2 root root 4096 Jul 13 12:13 /workspace/artifacts
RUN: Action finished OK
RUN: Action CargoFmt
SPAWN: argv=["cargo", "fmt", "--check"]
cwd=/workspace/src (exists? true)
extra_env=[("CARGO_TARGET_DIR", "/workspace/cache"), ("CARGO_HOME", "/workspace/deps"), ("PATH", "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")]
RUN: Action finished OK
RUN: Action CargoClippy
SPAWN: argv=["cargo", "clippy", "--offline", "--locked", "--workspace", "--all-targets", "--no-deps", "--", "--deny", "warnings"]
cwd=/workspace/src (exists? true)
extra_env=[("CARGO_TARGET_DIR", "/workspace/cache"), ("CARGO_HOME", "/workspace/deps"), ("PATH", "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")]
Checking clingwrap v0.1.0 (/workspace/src)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.65s
RUN: Action finished OK
RUN: Action CargoBuild
SPAWN: argv=["cargo", "build", "--offline", "--locked", "--workspace", "--all-targets"]
cwd=/workspace/src (exists? true)
extra_env=[("CARGO_TARGET_DIR", "/workspace/cache"), ("CARGO_HOME", "/workspace/deps"), ("PATH", "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")]
Compiling clingwrap v0.1.0 (/workspace/src)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.85s
RUN: Action finished OK
RUN: Action CargoTest
SPAWN: argv=["cargo", "test", "--offline", "--locked", "--workspace"]
cwd=/workspace/src (exists? true)
extra_env=[("CARGO_TARGET_DIR", "/workspace/cache"), ("CARGO_HOME", "/workspace/deps"), ("PATH", "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")]
Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
Running unittests src/lib.rs (/workspace/cache/debug/deps/clingwrap-51b6662a25549e4e)
running 12 tests
test config::test::merge_simple ... ok
test config::test::overrides ... ok
test config::test::parse_json ... ok
test config::test::load_configs ... ok
test config::test::parse_yaml ... ok
test tildepathbuf::test::deser ... ok
test tildepathbuf::test::just_tilde ... ok
test tildepathbuf::test::no_tilde ... ok
test tildepathbuf::test::tilde_slash ... ok
test tildepathbuf::test::tilde_slash_with_home_from_var ... ok
test tildepathbuf::test::tilde_username ... ok
test config::test::builtin_defaults ... ok
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
Doc-tests clingwrap
running 3 tests
test src/config.rs - config (line 75) ... ok
test src/runner.rs - runner (line 8) ... ok
test src/tildepathbuf.rs - tildepathbuf (line 9) ... ok
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
RUN: Action finished OK
RUN: Action TarCreate {
archive: "/dev/vde",
directory: "/workspace/cache",
}
RUN: Action finished OK
RUN: Action TarCreate {
archive: "/dev/vdd",
directory: "/workspace/artifacts",
}
RUN: Action finished OK
ambient-execute-plan ends
EXIT CODE: 0
[2025-07-13T12:14:05Z INFO ambient] ambient ends successfully