Radicle repository id rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
{ "request": "trigger", "version": 1, "event_type": "patch", "repository": { "id": "rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5", "name": "heartwood", "description": "Radicle Heartwood Protocol & Stack", "private": false, "default_branch": "master", "delegates": [ "did:key:z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT", "did:key:z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW", "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM", "did:key:z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz", "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz" ] }, "action": "Updated", "patch": { "id": "c54883e5ffb1f8a99f432e3ac79c0b728cd0dab3", "author": { "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM", "alias": "fintohaps" }, "title": "Canonical References", "state": { "status": "open", "conflicts": [] }, "before": "f30760d6bb86d2978a5ed4df8ee45b9aa97778b4", "after": "8d0821554a3ce0f26e36dd4c85206d987e1ff2e6", "commits": [ "8d0821554a3ce0f26e36dd4c85206d987e1ff2e6", "cb1da59cf44b61da1ac6ec1a9d256c137c1192ec", "b9c05c739e9dc56742375972d91f5ddb67592db5", "30024882bc649e6503b825c054e09fd4cee6744c", "5bb8800f7de38d92c6bb97a22e328cafb750a0e3", "d9376bf6bc8cb127003c4d2fd3f85b61e9da3b7e" ], "target": "f30760d6bb86d2978a5ed4df8ee45b9aa97778b4", "labels": [], "assignees": [ "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz" ], "revisions": [ { "id": "c54883e5ffb1f8a99f432e3ac79c0b728cd0dab3", "author": { "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM", "alias": "fintohaps" }, "description": "See RIP-0004[^0] for the specification.\n\nThis patch is an implementation of RIP-0004. It implements the rules mechanism\nwithin the `rules` module. This is interplays with the existing `canonical`\nmechanisms, already defined (but slightly refactored).\n\nThe `rules` are then used in pushing and fetching references. A test is added to\nillustrate the canonical references in action via tags.\n\nThere were some incidental changes that were made to ensure the tags use case is\neasy for users. The first change was to add a tags refspec to remotes in order\nto easily fetch tags from peers -- as well ensuring those tags do not pollute\nthe `refs/tags` namespace in the working copy.\n\nThis had a knock on change where there was a bug `libgit2` that didn't allow for\ndeleting `multivar` entries, which the new remote setup fell under. This was\nfixed and so we update to `git2-0.19`.\n\nAs well this, the `rad id update` command would error if the payload identifier\nwas not the project identifier. This would stop adding new payloads to extend\nthe identity -- which was needed for introducing canonical references.\n\n[^0]: https://app.radicle.xyz/nodes/seed.radicle.garden/rad:z3trNYnLWS11cJWC6BbxDs5niGo82/patches/1d1ce874f7c39ecdcd8c318bbae46ffd02fe1ea8?tab=changes", "base": "54551b117435a006acddefbf3850b02d6ee84ffa", "oid": "3e978375aea43528b0ed72d94ca86458ae46d602", "timestamp": 1721297970 }, { "id": "c1a2cc5787f44c0a835c1deae375be04c399dd7e", "author": { "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM", "alias": "fintohaps" }, "description": "Major Update\n\nSee commits for all details, but basically it was the yak shave of a lifetime.", "base": "c8fbcf2a7aeb0dc8b5c2f709532ae464fedc3677", "oid": "58e932ce964e1bbe9eb148203f3e125bbab3cca1", "timestamp": 1725375337 }, { "id": "c55494efc2e780cd6c91a1f90efdae8a3eb1c7ef", "author": { "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM", "alias": "fintohaps" }, "description": "Changes:\n- Remove use of `--tags` flag in `git-tag` test\n- Use `EntryKey` instead of `ObjectId` in `ChangeGraph` to simplify\n getting the root entry. This means that `timestamp_of` is only used\n in the `GraphBuilder`.", "base": "c8fbcf2a7aeb0dc8b5c2f709532ae464fedc3677", "oid": "1b07774def93c135e5f43367de672a36aafab4dd", "timestamp": 1727169095 }, { "id": "583e6b3366c36cc7e67910c29a66750397a60484", "author": { "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM", "alias": "fintohaps" }, "description": "Changes:\n- Introduce `VersionGroupId`\n- Update test SHAs\n- Handle ordering case in identity test, where we expect the commit to\n happen later (uses unsafe and manipulating env var)\n- Introduce migration code for `Doc`s\n- Introduce `rad id migrate`", "base": "c8fbcf2a7aeb0dc8b5c2f709532ae464fedc3677", "oid": "fdd52771765ae0b19a057da61b69034b188f84e3", "timestamp": 1728573242 }, { "id": "d54ddef216909bdd3e54e33e4f82c45df79c00d3", "author": { "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM", "alias": "fintohaps" }, "description": "Changes:\n- Rebased on [Patch 52f287f50c5d62c815bf3878b398b708f60c9b46](https://app.radicle.xyz/nodes/seed.radicle.xyz/rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5/patches/52f287f50c5d62c815bf3878b398b708f60c9b46?tab=activity)\n- Removed `VersionGroupId``", "base": "0c9a7419dcfd265b6c1efe85c915d126feaef649", "oid": "f24f9d89018bf3b074032e68bc77a0dc6aa5c1e1", "timestamp": 1729873668 }, { "id": "ac48ae6e75d4eaa13daed657eed24dfeabb9be94", "author": { "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM", "alias": "fintohaps" }, "description": "Changes:\n- Rebased on c7f00b1c\n- Missing commit for incorporating rules into identity doc", "base": "c7f00b1c6cebd2adeb1738f061990bd131804ca7", "oid": "7d8e4616ebe40839401562a2ad8f98ec8ddcef9e", "timestamp": 1730283252 }, { "id": "2b31e460db7451376dc3e346ee02b5fd597fa5c6", "author": { "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM", "alias": "fintohaps" }, "description": "Changes:\n- Fixups in documentation and tests", "base": "c7f00b1c6cebd2adeb1738f061990bd131804ca7", "oid": "040cfb712250461a1878293e02f47e2cb9694233", "timestamp": 1730286464 }, { "id": "e1c360a1311a0a215bed6eb42e4b0c8c5c44e611", "author": { "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM", "alias": "fintohaps" }, "description": "Changes:\n- Disallow `rad/sigrefs` rule\n- Add test for failing validation with `rad/id` and `rad/sigrefs`", "base": "c7f00b1c6cebd2adeb1738f061990bd131804ca7", "oid": "f0dec88a89d65d0bdae8c422e9f3211554b7206a", "timestamp": 1731322110 }, { "id": "492cfbafd31e4bac85ee73af519ddc6254b47f82", "author": { "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM", "alias": "fintohaps" }, "description": "Changes:\n- Rename delegates field and type to `allow` and `Allowed`\n- Rename token from `$identity` to `delegates`\n- Use `BTreeMap`s instead of `Vec`.\n * This required rethinking using `QualifiedPattern`, and instead using a\n newtype, `Pattern`, that implemented `Ord` by specificity.\n * `Pattern` also disqualifies any use of `refs/rad`\n- Add `From<Did> for doc::Delegates` to infallibly construct the set with a\n single `Did`.\n- Changes `extensions` to a JSON map\n- Derive `Deserialize` for `Rule`, but only via the private `Sealed` trait\n- Changed the `FnMut` resolve callback to be `Fn`\n- Required updating all the `radicle-cli` tests\n- Added other QoL API improvements", "base": "0c9a7419dcfd265b6c1efe85c915d126feaef649", "oid": "f9cb27f65430abbbc549521240054e3e0297cb53", "timestamp": 1738339341 }, { "id": "fbdf18d7683bdac7a76149777eed5cf9bbbf5bd5", "author": { "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM", "alias": "fintohaps" }, "description": "Rebased on master @ 3b5fac178eaf9bca639fbd0c1df0c68619a7f51f", "base": "3b5fac178eaf9bca639fbd0c1df0c68619a7f51f", "oid": "2a6475510a438726189500457d33887872785366", "timestamp": 1738750291 }, { "id": "4baf32afd65f2c4b374d8f21fed6877aa804a003", "author": { "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM", "alias": "fintohaps" }, "description": "Changes:\n- Document `RawCanonicalRefs` and `CanonicalRefs`", "base": "3b5fac178eaf9bca639fbd0c1df0c68619a7f51f", "oid": "0cecae660273ab0c31f481d9078b2d93f0a78965", "timestamp": 1738750973 }, { "id": "d2ebc70caca54a8ba508d72862c1e1c79d718129", "author": { "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM", "alias": "fintohaps" }, "description": "Changes:\n- Rebased\n- Rename `canonical-ref` to `cref`\n- Order enum variant in `canonical-ref.rs`\n- Fix wording in example tests\n- Avoid removing `rad-config` tests\n- Use `saturating_sub` for `threshold` calculation in `radicle-fetch`", "base": "7eb07e1b4d57ddb4660d0363691877fe893af044", "oid": "4515d452ab9ca812825572e38700b5be5eec21ae", "timestamp": 1744810962 }, { "id": "13e9ba641c624db26b6bfe85870daf064f90e9ab", "author": { "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM", "alias": "fintohaps" }, "description": "Rebased", "base": "f30760d6bb86d2978a5ed4df8ee45b9aa97778b4", "oid": "045e4654b281379a968b6b8a8f50639c3d29f2fe", "timestamp": 1745855085 }, { "id": "47495c408ccf5eec49b61c7bdb339e5f2d695a30", "author": { "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM", "alias": "fintohaps" }, "description": "Changes:\n- Stricter version parsing\n- Using `VersionedRawDoc` to enumerate each version of the `RawDoc`s\n- Singleton approach for version numbers in the docs\n- Better renaming of CLI cref module\n- Fix docs for `rad id migrate`", "base": "f30760d6bb86d2978a5ed4df8ee45b9aa97778b4", "oid": "a6be35592e8c78100b76da9832d19ffff035ed21", "timestamp": 1746037637 }, { "id": "e3bdb65d3adb94360dd3449744792f6ecb1f451f", "author": { "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM", "alias": "fintohaps" }, "description": "Changes:\n- Remove `MatchedRule`\n- Refactoring of `Canonical`\n- General fixes", "base": "f30760d6bb86d2978a5ed4df8ee45b9aa97778b4", "oid": "8d0821554a3ce0f26e36dd4c85206d987e1ff2e6", "timestamp": 1746548066 } ] } }
[2025-05-06T16:20:12Z 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 QM00003 " from PciRoot(0x0)/Pci(0x1,0x1)/Ata(Secondary,Master,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: Extracting tar archive from /dev/vdb ./ ./plan.yaml ./run-ci 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: shell shell: | # Because of a (temporary) limitation in Ambient, we need to set # these variables manually. Once Ambient manages environment # variables better, these can be deleted. export CARGO_TARGET_DIR=/workspace/cache export CARGO_HOME=/workspace/deps export HOME=/root export PATH="/root/.cargo/bin:$PATH" cargo doc --workspace --no-deps - action: shell shell: | # Because of a (temporary) limitation in Ambient, we need to set # these variables manually. Once Ambient manages environment # variables better, these can be deleted. export CARGO_TARGET_DIR=/workspace/cache export CARGO_HOME=/workspace/deps export HOME=/root export PATH="/root/.cargo/bin:$PATH" # These are based on debian/control. export DEBEMAIL=liw@liw.fi export DEBFULLNAME="Lars Wirzenius" # Clean up after tests and documentation building. The Debian # package building tools do not want changes outside the # `debian` directory, compared to what is committed to Git, from # which the "upstream tarball" is created. git reset --hard git clean -fdx git status --ignored # Update debian/changelog with a new version so that every run # creates a newer version. This avoids us having to update the # file manually for every CI run. V="$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')" T="$(date -u "+%Y%m%dT%H%M%S")" version="$V.ci$T-1" dch -v "$version" "CI build under Ambient." dch -r '' - action: deb - action: tar_create archive: /dev/vde directory: /workspace/cache - action: tar_create archive: /dev/vdd directory: /workspace/artifacts executor_drive: /dev/vdb source_drive: /dev/vdc artifact_drive: /dev/vdd cache_drive: /dev/vde deps_drive: /dev/vdf workspace_dir: /workspace source_dir: /workspace/src deps_dir: /workspace/deps cache_dir: /workspace/cache artifacts_dir: /workspace/artifacts RUN: Action Mkdir { pathname: "/workspace", } 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=[] 131073 4 drwxr-xr-x 6 root root 4096 May 6 16:16 /workspace 131074 4 drwxr-xr-x 2 root root 4096 May 6 16:16 /workspace/artifacts 131819 4 drwxr-xr-x 3 root root 4096 May 6 16:14 /workspace/deps 131822 4 drwxr-xr-x 5 root root 4096 Apr 11 13:20 /workspace/deps/registry 131820 172 -rw-r--r-- 1 root root 176128 May 6 16:14 /workspace/deps/.global-cache 131821 0 -rw-r--r-- 1 root root 0 Apr 11 13:20 /workspace/deps/.package-cache 169636 4 drwxr-xr-x 6 root root 4096 Apr 22 15:00 /workspace/cache 169638 4 drwxr-xr-x 7 root root 4096 May 5 12:59 /workspace/cache/debug 786433 4 drwxr-xr-x 7 root root 4096 May 5 13:03 /workspace/cache/release 169637 4 drwxr-xr-x 2 root root 4096 Apr 22 14:53 /workspace/cache/tmp 170661 4 drwxr-xr-x 30 root root 4096 May 5 13:02 /workspace/cache/doc 170659 4 -rw-r--r-- 1 root root 218 Apr 22 15:00 /workspace/cache/.rustdoc_fingerprint.json 170660 4 -rw-r--r-- 1 root root 1033 May 5 12:59 /workspace/cache/.rustc_info.json 131075 4 drwxr-xr-x 25 root root 4096 May 6 16:14 /workspace/src 131080 4 drwxr-xr-x 2 root root 4096 May 6 16:14 /workspace/src/scripts 131092 4 drwxr-xr-x 3 root root 4096 May 6 16:14 /workspace/src/radicle-remote-helper 131508 4 drwxr-xr-x 5 root root 4096 May 6 16:14 /workspace/src/radicle-cli 131091 8 -rw-r--r-- 1 root root 7645 May 6 16:14 /workspace/src/HACKING.md 131254 4 drwxr-xr-x 3 root root 4096 May 6 16:14 /workspace/src/radicle-cli-test 131771 4 drwxr-xr-x 3 root root 4096 May 6 16:14 /workspace/src/radicle-node 131296 4 -rw-r--r-- 1 root root 1623 May 6 16:14 /workspace/src/build.rs 131259 4 drwxr-xr-x 3 root root 4096 May 6 16:14 /workspace/src/radicle-tools 131132 4 -rw-r--r-- 1 root root 77 May 6 16:14 /workspace/src/rust-toolchain.toml 131765 4 drwxr-xr-x 3 root root 4096 May 6 16:14 /workspace/src/radicle-dag 131761 4 -rw-r--r-- 1 root root 1203 May 6 16:14 /workspace/src/DCO 131764 4 -rw-r--r-- 1 root root 79 May 6 16:14 /workspace/src/ARCHITECTURE.md 131481 4 drwxr-xr-x 3 root root 4096 May 6 16:14 /workspace/src/radicle-term 131253 4 -rw-r--r-- 1 root root 61 May 6 16:14 /workspace/src/.env.seed 131304 4 drwxr-xr-x 2 root root 4096 May 6 16:14 /workspace/src/.config 131297 8 -rw-r--r-- 1 root root 7913 May 6 16:14 /workspace/src/flake.nix 131480 12 -rw-r--r-- 1 root root 9723 May 6 16:14 /workspace/src/LICENSE-APACHE 131117 4 drwxr-xr-x 2 root root 4096 May 6 16:14 /workspace/src/.cargo 131769 4 -rw-r--r-- 1 root root 1083 May 6 16:14 /workspace/src/.gitsigners 131307 8 -rw-r--r-- 1 root root 5432 May 6 16:14 /workspace/src/deny.toml 131763 12 -rw-r--r-- 1 root root 8326 May 6 16:14 /workspace/src/CONTRIBUTING.md 131102 4 -rw-r--r-- 1 root root 2163 May 6 16:14 /workspace/src/VERSIONING.md 131298 4 -rw-r--r-- 1 root root 86 May 6 16:14 /workspace/src/.gitignore 131438 4 drwxr-xr-x 3 root root 4096 May 6 16:14 /workspace/src/radicle-cob 131252 4 -rw-r--r-- 1 root root 10 May 6 16:14 /workspace/src/.envrc 131270 4 drwxr-xr-x 2 root root 4096 May 6 16:14 /workspace/src/build 131103 4 drwxr-xr-x 3 root root 4096 May 6 16:14 /workspace/src/radicle-crdt 131295 4 -rw-r--r-- 1 root root 3091 May 6 16:14 /workspace/src/README.md 131299 4 drwxr-xr-x 3 root root 4096 May 6 16:14 /workspace/src/radicle-systemd 131076 4 drwxr-xr-x 2 root root 4096 May 6 16:14 /workspace/src/.radicle 131306 4 -rw-r--r-- 1 root root 426 May 6 16:14 /workspace/src/radicle-node.1.adoc 131303 4 -rw-r--r-- 1 root root 725 May 6 16:14 /workspace/src/Cargo.toml 131282 4 drwxr-xr-x 3 root root 4096 May 6 16:14 /workspace/src/debian 131750 4 drwxr-xr-x 3 root root 4096 May 6 16:14 /workspace/src/radicle-ssh 131133 4 drwxr-xr-x 3 root root 4096 May 6 16:14 /workspace/src/radicle 131762 8 -rw-r--r-- 1 root root 5130 May 6 16:14 /workspace/src/flake.lock 131308 4 drwxr-xr-x 3 root root 4096 May 6 16:14 /workspace/src/radicle-signals 131120 4 drwxr-xr-x 3 root root 4096 May 6 16:14 /workspace/src/radicle-crypto 131724 4 drwxr-xr-x 2 root root 4096 May 6 16:14 /workspace/src/systemd 131726 4 drwxr-xr-x 3 root root 4096 May 6 16:14 /workspace/src/radicle-fetch 131079 4 -rw-r--r-- 1 root root 1079 May 6 16:14 /workspace/src/LICENSE-MIT 131119 8 -rw-r--r-- 1 root root 8044 May 6 16:14 /workspace/src/rad.1.adoc 131760 8 -rw-r--r-- 1 root root 6381 May 6 16:14 /workspace/src/rad-id.1.adoc 131101 4 -rw-r--r-- 1 root root 30 May 6 16:14 /workspace/src/.dockerignore 131269 4 -rw-r--r-- 1 root root 571 May 6 16:14 /workspace/src/git-remote-rad.1.adoc 131507 12 -rw-r--r-- 1 root root 10770 May 6 16:14 /workspace/src/rad-patch.1.adoc 131312 4 drwxr-xr-x 8 root root 4096 May 6 16:14 /workspace/src/.git 131770 88 -rw-r--r-- 1 root root 89098 May 6 16:14 /workspace/src/Cargo.lock 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")] Compiling git-ref-format-core v0.3.1 Checking radicle-ssh v0.9.0 (/workspace/src/radicle-ssh) Checking radicle-dag v0.10.0 (/workspace/src/radicle-dag) Checking fast-glob v0.3.3 Checking radicle-signals v0.11.0 (/workspace/src/radicle-signals) Compiling radicle-cli v0.12.1 (/workspace/src/radicle-cli) Compiling radicle-node v0.10.0 (/workspace/src/radicle-node) Checking radicle-term v0.12.0 (/workspace/src/radicle-term) Checking radicle-systemd v0.9.0 (/workspace/src/radicle-systemd) Compiling radicle-remote-helper v0.10.0 (/workspace/src/radicle-remote-helper) Compiling git-ref-format-macro v0.3.1 Checking git-ref-format v0.3.1 Checking radicle-git-ext v0.8.1 Checking radicle-crypto v0.11.0 (/workspace/src/radicle-crypto) Checking radicle-surf v0.22.0 Checking radicle-cob v0.13.0 (/workspace/src/radicle-cob) Checking radicle-crdt v0.1.0 (/workspace/src/radicle-crdt) Checking radicle v0.14.0 (/workspace/src/radicle) Checking radicle-cli-test v0.10.0 (/workspace/src/radicle-cli-test) Checking radicle-fetch v0.10.0 (/workspace/src/radicle-fetch) Checking radicle-tools v0.9.0 (/workspace/src/radicle-tools) Finished `dev` profile [unoptimized + debuginfo] target(s) in 21.80s 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 git-ref-format-core v0.3.1 Compiling radicle-ssh v0.9.0 (/workspace/src/radicle-ssh) Compiling radicle-dag v0.10.0 (/workspace/src/radicle-dag) Compiling fast-glob v0.3.3 Compiling radicle-signals v0.11.0 (/workspace/src/radicle-signals) Compiling radicle-cli v0.12.1 (/workspace/src/radicle-cli) Compiling radicle-node v0.10.0 (/workspace/src/radicle-node) Compiling radicle-systemd v0.9.0 (/workspace/src/radicle-systemd) Compiling radicle-term v0.12.0 (/workspace/src/radicle-term) Compiling radicle-remote-helper v0.10.0 (/workspace/src/radicle-remote-helper) Compiling git-ref-format-macro v0.3.1 Compiling git-ref-format v0.3.1 Compiling radicle-git-ext v0.8.1 Compiling radicle-crypto v0.11.0 (/workspace/src/radicle-crypto) Compiling radicle-surf v0.22.0 Compiling radicle-cob v0.13.0 (/workspace/src/radicle-cob) Compiling radicle-crdt v0.1.0 (/workspace/src/radicle-crdt) Compiling radicle v0.14.0 (/workspace/src/radicle) Compiling radicle-cli-test v0.10.0 (/workspace/src/radicle-cli-test) Compiling radicle-fetch v0.10.0 (/workspace/src/radicle-fetch) Compiling radicle-tools v0.9.0 (/workspace/src/radicle-tools) Finished `dev` profile [unoptimized + debuginfo] target(s) in 40.94s 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.40s Running unittests src/lib.rs (/workspace/cache/debug/deps/radicle-03699755fa65dbd9) running 179 tests test canonical::formatter::test::ascii_control_characters ... ok test canonical::formatter::test::securesystemslib_asserts ... ok test cob::common::test::test_color ... ok test canonical::formatter::test::ordered_nested_object ... ok test cob::common::test::test_emojis ... ok test cob::cache::tests::test_check_version ... ok test cob::cache::migrations::_2::tests::test_patch_json_deserialization ... ok test cob::cache::migrations::_2::tests::test_migration_2 ... ok test cob::cache::tests::test_migrate_to ... ok test cob::identity::test::prop_json_eq_str ... ok test cob::identity::test::test_identity_updates ... ok test cob::issue::cache::tests::test_counts ... ok test cob::issue::cache::tests::test_get ... ok test cob::issue::cache::tests::test_is_empty ... ok test cob::issue::cache::tests::test_list ... ok test cob::issue::cache::tests::test_list_by_status ... ok test cob::issue::cache::tests::test_remove ... ok test cob::identity::test::test_valid_identity ... ok test cob::identity::test::test_identity_redact_revision ... ok test cob::identity::test::test_identity_remove_delegate_concurrent ... ok test cob::identity::test::test_identity_update_rejected ... ok test cob::identity::test::test_identity_reject_concurrent ... ok test cob::identity::test::test_identity_updates_concurrent ... ok test cob::issue::test::test_embeds_edit ... ok test cob::issue::test::test_invalid_actions ... ok test cob::issue::test::test_embeds ... ok test cob::issue::test::test_invalid_tx ... ok test cob::identity::test::test_identity_updates_concurrent_outdated ... ok test cob::issue::test::test_invalid_tx_reference ... ok test cob::issue::test::test_issue_all ... ok test cob::issue::test::test_issue_create_and_assign ... ok test cob::issue::test::test_invalid_cob ... ok test cob::issue::test::test_issue_comment_redact ... ok test cob::issue::test::test_issue_create_and_get ... ok test cob::issue::test::test_issue_comment ... ok test cob::issue::test::test_issue_create_and_change_state ... ok test cob::issue::test::test_issue_edit ... ok test cob::issue::test::test_issue_edit_description ... ok test cob::issue::test::test_issue_state_serde ... ok test cob::issue::test::test_ordering ... ok test cob::issue::test::test_concurrency ... ok test cob::issue::test::test_issue_multilines ... ok test cob::issue::test::test_issue_create_and_reassign ... ok test cob::issue::test::test_issue_create_and_unassign ... ok test cob::patch::cache::tests::test_is_empty ... ok test cob::issue::test::test_issue_react ... ok test cob::patch::cache::tests::test_get ... ok test cob::patch::test::test_json ... ok test cob::patch::test::test_json_serialization ... ok test cob::issue::test::test_issue_label ... ok test cob::patch::test::test_patch_create_and_get ... ok test cob::patch::cache::tests::test_list ... ok test cob::patch::cache::tests::test_remove ... ok test cob::issue::test::test_issue_reply ... ok test cob::patch::test::test_patch_discussion ... ok test cob::patch::cache::tests::test_list_by_status ... ok test cob::patch::test::test_patch_merge ... ok test cob::patch::test::test_patch_review_comment ... ok test cob::patch::test::test_patch_review_duplicate ... ok test cob::patch::test::test_patch_review ... ok test cob::patch::test::test_patch_redact ... ok test cob::patch::test::test_reactions_json_serialization ... ok test cob::patch::test::test_revision_edit_redact ... ok test cob::patch::test::test_revision_reaction ... ok test cob::patch::cache::tests::test_counts ... ok test cob::patch::test::test_revision_review_merge_redacted ... ok test cob::thread::tests::test_comment_edit_missing ... ok test cob::thread::tests::test_comment_edit_redacted ... ok test cob::thread::tests::test_comment_redact_missing ... ok test cob::thread::tests::test_duplicate_comments ... ok test cob::thread::tests::test_edit_comment ... ok test cob::thread::tests::test_redact_comment ... ok test cob::patch::test::test_patch_review_edit ... ok test cob::thread::tests::test_timeline ... ok test git::canonical::rules::tests::test_deserialization ... ok test git::canonical::rules::tests::test_deserialize_extensions ... ok test git::canonical::rules::tests::test_order ... ok test git::canonical::rules::tests::test_roundtrip ... ok test cob::patch::test::test_patch_review_remove_summary ... ok test git::canonical::rules::tests::test_rule_validate_success ... ok test git::canonical::rules::tests::test_special_branches ... ok test cob::patch::test::test_patch_review_revision_redact ... ok test cob::patch::test::test_patch_review_edit_comment ... ok test git::canonical::rules::tests::test_canonical ... FAILED test git::test::test_version_from_str ... ok test git::test::test_version_ord ... ok test identity::did::test::test_did_encode_decode ... ok test identity::did::test::test_did_vectors ... ok test git::canonical::tests::test_quorum_merges ... ok test identity::doc::id::test::prop_from_str ... ok test identity::doc::test::test_canonical_doc ... ok test git::canonical::tests::test_quorum ... ok test identity::doc::test::test_duplicate_dids ... ok test git::canonical::rules::tests::test_rule_validate_failures ... ok test identity::doc::test::test_migrate_v1 ... ok test identity::doc::test::test_not_found ... ok test identity::doc::test::test_version_out_of_range ... ok test identity::doc::test::test_visibility_json ... ok test identity::doc::v1::test::test_parse_version ... ok test identity::project::test::test_project_name ... ok test cob::patch::test::test_patch_update ... ok test identity::doc::test::test_canonical_example ... ok test node::address::store::test::test_alias ... ok test node::address::store::test::test_disconnected ... ok test node::address::store::test::test_disconnected_ban ... ok test node::address::store::test::test_get_none ... ok test node::address::store::test::test_insert_and_get ... ok test node::address::store::test::test_insert_and_remove ... ok test node::address::store::test::test_entries ... ok test node::address::store::test::test_insert_and_update ... ok test node::address::store::test::test_insert_duplicate ... ok test node::address::store::test::test_node_aliases ... ok test node::address::store::test::test_remove_nothing ... ok test node::db::test::test_version ... ok test node::features::test::test_operations ... ok test node::notifications::store::test::test_branch_notifications ... ok test node::notifications::store::test::test_clear ... ok test node::notifications::store::test::test_cob_notifications ... ok test node::notifications::store::test::test_counts_by_repo ... ok test node::notifications::store::test::test_duplicate_notifications ... ok test node::notifications::store::test::test_notification_status ... ok test node::policy::store::test::test_follow_and_unfollow_node ... ok test node::policy::store::test::test_node_policies ... ok test node::policy::store::test::test_node_aliases ... ok test node::policy::store::test::test_node_policy ... ok test node::policy::store::test::test_repo_policies ... ok test node::policy::store::test::test_repo_policy ... ok test node::policy::store::test::test_seed_and_unseed_repo ... ok test node::policy::store::test::test_update_alias ... ok test node::policy::store::test::test_update_scope ... ok test node::refs::store::test::test_count ... ok test node::refs::store::test::test_set_and_delete ... ok test node::refs::store::test::test_set_and_get ... ok test node::address::store::test::test_empty ... ok test node::routing::test::test_entries ... ok test identity::doc::test::test_max_delegates ... ok test node::routing::test::test_count ... ok test node::routing::test::test_insert_duplicate ... ok test node::routing::test::test_insert_and_remove ... ok test node::routing::test::test_insert_and_get ... ok test node::routing::test::test_insert_and_get_resources ... ok test node::routing::test::test_len ... ok test node::routing::test::test_remove_many ... ok test node::routing::test::test_remove_redundant ... ok test node::test::test_alias ... ok test node::test::test_command_result ... ok test node::test::test_user_agent ... ok test node::routing::test::test_update_existing_multi ... ok test node::timestamp::tests::test_timestamp_max ... ok test profile::test::canonicalize_home ... ok test profile::test::test_config ... ok test node::routing::test::test_insert_existing_updated_time ... ok test node::routing::test::test_prune ... ok test serde_ext::test::test_localtime ... ok test serde_ext::test::test_localtime_ext ... ok test cob::patch::cache::tests::test_find_by_revision ... ok test rad::tests::test_checkout ... ok test rad::tests::test_init ... ok test rad::tests::test_fork ... ok test storage::git::transport::local::url::test::test_url_parse ... ok test storage::git::transport::local::url::test::test_url_to_string ... ok test storage::git::transport::remote::url::test::test_url_parse ... ok test storage::git::tests::test_references_of ... ok test storage::refs::tests::prop_canonical_roundtrip ... ok test storage::tests::test_storage ... ok test test::assert::test::assert_with_message ... ok test test::assert::test::test_assert_no_move ... ok test test::assert::test::test_assert_panic_0 - should panic ... ok test test::assert::test::test_assert_panic_1 - should panic ... ok test test::assert::test::test_assert_panic_2 - should panic ... ok test test::assert::test::test_assert_succeed ... ok test test::assert::test::test_panic_message ... ok test version::test::test_version ... ok test storage::git::tests::test_sign_refs ... ok test git::canonical::tests::test_quorum_properties ... ok test storage::git::tests::test_remote_refs ... ok test storage::refs::tests::test_rid_verification ... ok test cob::thread::tests::prop_ordering ... ok test identity::doc::test::prop_encode_decode ... ok failures: ---- git::canonical::rules::tests::test_canonical stdout ---- thread 'git::canonical::rules::tests::test_canonical' panicked at radicle/src/git/canonical/rules.rs:740:39: called `Result::unwrap()` on an `Err` value: Error { code: -3, klass: 7, message: "config value 'user.name' was not found" } note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace failures: git::canonical::rules::tests::test_canonical test result: FAILED. 178 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.93s error: test failed, to rerun pass `-p radicle --lib` ERROR: Action failed: command failed: ["cargo", "test", "--offline", "--locked", "--workspace"] ERROR: command failed: ["cargo", "test", "--offline", "--locked", "--workspace"] EXIT CODE: 1 [2025-05-06T16:20:12Z INFO ambient] ambient ends successfully