rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 heartwood29351aacb0ba0f123cfe15b824befb15f4230090
{
"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:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz"
]
},
"action": "Created",
"patch": {
"id": "d5f1c76fef72f1272f8b7e3baf632047a8d14bd6",
"author": {
"id": "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz",
"alias": null
},
"title": "cli: change patch target with `rad patch edit`",
"state": {
"status": "open",
"conflicts": []
},
"before": "3032ba1298c3ef21f14cb5f1146e29882f368997",
"after": "29351aacb0ba0f123cfe15b824befb15f4230090",
"commits": [
"29351aacb0ba0f123cfe15b824befb15f4230090",
"aa5ca123df762c5691d8aae3f3849e08d1aff439",
"f6c7b7348c24210a705be10b3eebbc34eeb996fc",
"08efc1c7c4e26dde0aca26b82f3256d1ca0c7add",
"a42670943b0ed8802bdcf590a8b424031289d72e",
"0a9d57b8317fcb4fd4875c722259dd98e8b0d1d8",
"ce71129be683e86af2cc828e0dd3a2003434152a",
"fee3e5d5ecdc0162662292d9cd303a033ce20f90",
"21292185c470b484f976bd9487bf368b0cbac259",
"079dac57a8068eb0b18a713550a47ca21d763fc2",
"283585bb3ab73b7d69178decf0b9c61dcbc3345b",
"310950bab47b03ffc0a0b8388c327f0696d58012",
"2fa062a63bcb877842e4c76887b2cd80d3dca864"
],
"target": "3032ba1298c3ef21f14cb5f1146e29882f368997",
"labels": [],
"assignees": [],
"revisions": [
{
"id": "d5f1c76fef72f1272f8b7e3baf632047a8d14bd6",
"author": {
"id": "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz",
"alias": null
},
"description": "## Improvements\n\n- `rad patch edit` accepts `--target` to change the branch a patch is\n meant to be merged into. Previously a wrong target could only be\n corrected with a raw `rad cob update` action.\n- Opening a patch with `git push -o patch.target=<branch>` now warns when\n the target has no canonical reference rule, or has a rule but no commits\n yet. The push and subsequent patch creation still succeeds, because a branch only becomes a canonical\n reference after a push to it reaches quorum.\n\n## Fixes\n\n- `rad patch show` no longer fails with `reference '<branch>' not found`\n when the patch targets a branch that is not a canonical reference of the\n repository. The commit count is reported as unknown and the rest of the\n patch is shown.",
"base": "3419821106e274c96f56948a05d2f51f28f5a6c7",
"oid": "e1977d8f71527009e028c78cb411c938d596e251",
"timestamp": 1788864886
},
{
"id": "189304988c6a6b749d9f925c3f248db6e8513d5b",
"author": {
"id": "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz",
"alias": null
},
"description": "",
"base": "3419821106e274c96f56948a05d2f51f28f5a6c7",
"oid": "5fab8180527f5313661e22242874b07a0ad351c8",
"timestamp": 1788865007
},
{
"id": "e4a13717d3299af9cbf0286cbf417b6288307d67",
"author": {
"id": "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz",
"alias": null
},
"description": "",
"base": "0e5a56f25f51d07290613a9363bd8c0c9fc8e0be",
"oid": "d98723051c6248bfa0c8c078487614510cd343d8",
"timestamp": 1789124747
},
{
"id": "3a166d56c7f56ab5a8ca673c8266ed01a53f0ba5",
"author": {
"id": "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz",
"alias": null
},
"description": "rebase",
"base": "ceb74c997161f723b9b0a3745f8bf9ccbf1bf92b",
"oid": "609ab9c4c07aa541149a2d4d30863b3b97e11d1e",
"timestamp": 1791815505
},
{
"id": "8b1b500f5282d2dd19442c21a8ef59dda1dcf62f",
"author": {
"id": "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz",
"alias": null
},
"description": "Review",
"base": "3032ba1298c3ef21f14cb5f1146e29882f368997",
"oid": "29351aacb0ba0f123cfe15b824befb15f4230090",
"timestamp": 1791903740
}
]
}
}
{
"response": "triggered",
"run_id": {
"id": "fb6f5e8e-8620-4395-a55e-e44df9a9f437"
},
"info_url": "https://cci.rad.levitte.org//fb6f5e8e-8620-4395-a55e-e44df9a9f437.html"
}
Started at: 2026-10-13 17:03:36.025382+02:00
Commands:
$ rad clone rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 .
✓ Creating checkout in ./...
✓ Remote cloudhead@z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT added
✓ Remote-tracking branch cloudhead@z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT/master created for z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT
✓ Remote fintohaps@z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM added
✓ Remote-tracking branch fintohaps@z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM/master created for z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM
✓ Remote lorenz@z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz added
✓ Remote-tracking branch lorenz@z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz/master created for z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz
✓ Repository successfully cloned under /opt/radcis/ci.rad.levitte.org/cci/state/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/
╭────────────────────────────────────╮
│ heartwood │
│ Radicle Heartwood Protocol & Stack │
│ 194 issues · 47 patches │
╰────────────────────────────────────╯
Run `cd ./.` to go to the repository directory.
Exit code: 0
$ rad patch checkout d5f1c76fef72f1272f8b7e3baf632047a8d14bd6
✓ Switched to branch patch/d5f1c76 at revision 3a166d5
✓ Branch patch/d5f1c76 setup to track rad/patches/d5f1c76fef72f1272f8b7e3baf632047a8d14bd6
Exit code: 0
$ git config advice.detachedHead false
Exit code: 0
$ git checkout 29351aacb0ba0f123cfe15b824befb15f4230090
HEAD is now at 29351aac REVIEW: Reword documentation for `rad patch edit --target`
Exit code: 0
$ rad patch show d5f1c76fef72f1272f8b7e3baf632047a8d14bd6 -p
╭──────────────────────────────────────────────────────────────────────────────────╮
│ Title cli: change patch target with `rad patch edit` │
│ Patch d5f1c76fef72f1272f8b7e3baf632047a8d14bd6 │
│ Author 2color z6Mktwk…2Tk5Tkm │
│ Head 609ab9c4c07aa541149a2d4d30863b3b97e11d1e │
│ Base ceb74c997161f723b9b0a3745f8bf9ccbf1bf92b │
│ Target master │
│ Branches patch/d5f1c76 │
│ Commits ahead 6, behind 3 │
│ Status open │
│ │
│ ## Improvements │
│ │
│ - `rad patch edit` accepts `--target` to change the branch a patch is │
│ meant to be merged into. Previously a wrong target could only be │
│ corrected with a raw `rad cob update` action. │
│ - Opening a patch with `git push -o patch.target=<branch>` now warns when │
│ the target has no canonical reference rule, or has a rule but no commits │
│ yet. The push and subsequent patch creation still succeeds, because a branch … │
│ reference after a push to it reaches quorum. │
│ │
│ ## Fixes │
│ │
│ - `rad patch show` no longer fails with `reference '<branch>' not found` │
│ when the patch targets a branch that is not a canonical reference of the │
│ repository. The commit count is reported as unknown and the rest of the │
│ patch is shown. │
├──────────────────────────────────────────────────────────────────────────────────┤
│ 609ab9c docs: Document patch merge target changes │
│ 22a134e cli: Add `rad patch edit --target` │
│ 75a28c8 cli, remote-helper: Warn on targets that cannot resolve │
│ 6fcdb04 cli: Degrade patches with unresolvable targets │
│ ba8556b patch: Make MergeTarget head optional │
│ 9c43387 cli/tests: Show patches with unresolvable targets │
├──────────────────────────────────────────────────────────────────────────────────┤
│ ● Revision d5f1c76 @ 3419821..e1977d8 by 2color z6Mktwk…2Tk5Tkm 1 month ago │
│ ↑ Revision 1893049 @ 3419821..5fab818 by 2color z6Mktwk…2Tk5Tkm 1 month ago │
│ ↑ Revision e4a1371 @ 0e5a56f..d987230 by 2color z6Mktwk…2Tk5Tkm 1 month ago │
│ ↑ Revision 3a166d5 @ ceb74c9..609ab9c by 2color z6Mktwk…2Tk5Tkm 1 day ago │
│ ↑ Revision 8b1b500 @ 3032ba1..29351aa by lorenz z6MkkPv…WX5sTEz 1 minute ago │
╰──────────────────────────────────────────────────────────────────────────────────╯
commit 609ab9c4c07aa541149a2d4d30863b3b97e11d1e
Author: Daniel Norman <daniel@norman.life>
Date: Wed Sep 2 13:12:06 2026 +0200
docs: Document patch merge target changes
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 76f0731c3d..4358a4b6a3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,25 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## Unreleased
+
+## Improvements
+
+- `rad patch edit` accepts `--target` to change the branch a patch is
+ meant to be merged into. Previously a wrong target could only be
+ corrected with a raw `rad cob update` action.
+- Opening a patch with `git push -o patch.target=<branch>` now warns when
+ the target has no canonical reference rule, or has a rule but no commits
+ yet. The push still succeeds, because a branch only becomes a canonical
+ reference after a push to it reaches quorum.
+
+## Fixes
+
+- `rad patch show` no longer fails with `reference '<branch>' not found`
+ when the patch targets a branch that is not a canonical reference of the
+ repository. The commit count is reported as unknown and the rest of the
+ patch is shown.
+
## 1.10.3 - 2026-09-07
### Fixes
diff --git a/rad-patch.1.adoc b/rad-patch.1.adoc
index 4f1246107f..887a91b3ab 100644
--- a/rad-patch.1.adoc
+++ b/rad-patch.1.adoc
@@ -76,6 +76,13 @@ The revision to edit.
Comment message to the patch or revision. If omitted, Radicle will prompt for
a comment string via *$EDITOR*.
+*--target <target>*::
+The branch the patch is meant to be merged into, eg. *refs/heads/main*. Use
+*delegates* for the default branch of the delegates. Cannot be given with
+*--revision*. A branch only becomes a canonical reference after a push to it
+reaches quorum, so a target that does not resolve yet gives a warning, but is
+still accepted.
+
=== list
List patches in the current repository. The default is *--open*.
commit 22a134ee23a9bf3289a5ff4340caee90e0b86108
Author: Daniel Norman <daniel@norman.life>
Date: Wed Sep 2 12:59:06 2026 +0200
cli: Add `rad patch edit --target`
A wrong merge target could not be corrected. `rad patch edit` passed
the existing target straight back, and `patch.target` is ignored on an
update push, so `rad cob update` with a raw `edit` action was the only
way out.
diff --git a/crates/radicle-cli/examples/rad-patch-edit-target.md b/crates/radicle-cli/examples/rad-patch-edit-target.md
new file mode 100644
index 0000000000..150e06a22f
--- /dev/null
+++ b/crates/radicle-cli/examples/rad-patch-edit-target.md
@@ -0,0 +1,66 @@
+# Changing the target branch of a patch
+
+Open a patch against a branch that has no canonical reference rule. The push
+warns, but still opens the patch: whether a target resolves is not settled when
+the patch is opened.
+
+``` (stderr)
+$ git checkout -b feature/1
+Switched to a new branch 'feature/1'
+```
+
+```
+$ git commit --allow-empty -m "Add new feature"
+[feature/1 [..]] Add new feature
+```
+
+``` (stderr)
+$ git push -o patch.message="Add new feature" -o patch.target="refs/heads/accepted" rad HEAD:refs/patches
+warn: target `refs/heads/accepted` has no canonical reference rule
+✓ Patch 5e6384c03a8b964cf5c1d934bf5bdb1cd9169dc2 opened
+To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ * [new reference] HEAD -> refs/patches
+```
+
+`rad patch edit --target` moves the patch to the default branch:
+
+```
+$ rad patch edit 5e6384c --target delegates --message "Add new feature" --message "" --no-announce
+$ rad patch show 5e6384c
+╭──────────────────────────────────────────────────────────╮
+│ Title Add new feature │
+│ Patch 5e6384c03a8b964cf5c1d934bf5bdb1cd9169dc2 │
+│ Author alice (you) │
+│ Head 2f953624221d06c4c1e7a97637c758509a8558dd │
+│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
+│ Target master │
+│ Branches feature/1 │
+│ Commits ahead 1, behind 0 │
+│ Status open │
+├──────────────────────────────────────────────────────────┤
+│ 2f95362 Add new feature │
+├──────────────────────────────────────────────────────────┤
+│ ● Revision 5e6384c @ f2de534..2f95362 by alice (you) now │
+╰──────────────────────────────────────────────────────────╯
+```
+
+Retargeting to a branch that has a rule but no commits warns too, and is still
+allowed:
+
+```
+$ rad id update --title "Add accepted branch" --payload xyz.radicle.crefs rules '{ "refs/heads/accepted": { "threshold": 1, "allow": "delegates" } }' -q
+[..]
+```
+
+```
+$ rad patch edit 5e6384c --target refs/heads/accepted --message "Add new feature" --message "" --no-announce
+! Warning: target `refs/heads/accepted` has no commits yet
+```
+
+`--target` is rejected with `--revision`, which edits a revision rather than the
+patch:
+
+``` (fail)
+$ rad patch edit 5e6384c --revision 5e6384c --target delegates --message "x" --message "" --no-announce
+✗ Error: `--target` cannot be used with `--revision`
+```
diff --git a/crates/radicle-cli/src/commands/patch.rs b/crates/radicle-cli/src/commands/patch.rs
index c369685467..0dd83ef31b 100644
--- a/crates/radicle-cli/src/commands/patch.rs
+++ b/crates/radicle-cli/src/commands/patch.rs
@@ -228,6 +228,7 @@ pub fn run(args: Args, ctx: impl term::Context) -> anyhow::Result<()> {
Command::Edit {
id,
revision,
+ target,
message,
} => {
let message = Message::from(message);
@@ -236,7 +237,14 @@ pub fn run(args: Args, ctx: impl term::Context) -> anyhow::Result<()> {
.map(|id| id.resolve::<radicle::git::Oid>(&repository.backend))
.transpose()?
.map(patch::RevisionId::from);
- edit::run(&patch_id, revision_id, message, &profile, &repository)?;
+ edit::run(
+ &patch_id,
+ revision_id,
+ target,
+ message,
+ &profile,
+ &repository,
+ )?;
}
Command::Redact { id } => {
redact::run(&id, &profile, &repository)?;
diff --git a/crates/radicle-cli/src/commands/patch/args.rs b/crates/radicle-cli/src/commands/patch/args.rs
index 0db3a6e71c..1b00526c65 100644
--- a/crates/radicle-cli/src/commands/patch/args.rs
+++ b/crates/radicle-cli/src/commands/patch/args.rs
@@ -5,6 +5,7 @@ use clap::{Parser, Subcommand};
use radicle::cob::Label;
use radicle::git;
use radicle::git::fmt::RefString;
+use radicle::patch;
use radicle::patch::Status;
use radicle::patch::Verdict;
use radicle::prelude::Did;
@@ -255,6 +256,11 @@ pub(super) enum Command {
#[arg(long, value_name = "REVISION_ID")]
revision: Option<Rev>,
+ /// Branch the patch is meant to be merged into, eg. `refs/heads/main`.
+ /// Use `delegates` for the default branch of the delegates.
+ #[arg(long, value_name = "TARGET", value_parser = parse_merge_target)]
+ target: Option<patch::MergeTarget>,
+
#[clap(flatten)]
message: MessageArgs,
},
@@ -771,3 +777,11 @@ pub(super) struct LabelArgs {
fn parse_refstr(refstr: &str) -> Result<RefString, git::fmt::Error> {
RefString::try_from(refstr)
}
+
+/// Parse a merge target, accepting `delegates` for the default branch.
+fn parse_merge_target(target: &str) -> Result<patch::MergeTarget, patch::TargetBranchError> {
+ if target == "delegates" {
+ return Ok(patch::MergeTarget::Delegates);
+ }
+ target.parse().map(patch::MergeTarget::Branch)
+}
diff --git a/crates/radicle-cli/src/commands/patch/edit.rs b/crates/radicle-cli/src/commands/patch/edit.rs
index 1d281367d5..bfac681270 100644
--- a/crates/radicle-cli/src/commands/patch/edit.rs
+++ b/crates/radicle-cli/src/commands/patch/edit.rs
@@ -12,6 +12,7 @@ use crate::terminal as term;
pub fn run(
patch_id: &PatchId,
revision_id: Option<patch::RevisionId>,
+ target: Option<patch::MergeTarget>,
message: term::patch::Message,
profile: &Profile,
repository: &Repository,
@@ -24,8 +25,24 @@ pub fn run(
let (title, description) = term::patch::get_edit_message(message, &patch)?;
match revision_id {
- Some(id) => edit_revision(patch, id, title, description),
- None => edit_root(patch, title, description),
+ Some(id) => {
+ if target.is_some() {
+ anyhow::bail!("`--target` cannot be used with `--revision`");
+ }
+ edit_revision(patch, id, title, description)
+ }
+ None => {
+ // A target that cannot resolve is not settled state, so warn about
+ // it rather than rejecting the edit.
+ if let Some(target) = &target {
+ match target.resolvable(repository) {
+ Ok(()) => {}
+ Err(patch::UnresolvableTarget::Repository(err)) => return Err(err.into()),
+ Err(err) => term::warning(err),
+ }
+ }
+ edit_root(patch, title, description, target)
+ }
}
}
@@ -40,7 +57,9 @@ fn edit_root(
>,
title: Title,
description: String,
+ target: Option<patch::MergeTarget>,
) -> anyhow::Result<()> {
+ let retarget = target.filter(|t| t != patch.target());
let title = if title.as_ref() != patch.title() {
Some(title)
} else {
@@ -52,18 +71,28 @@ fn edit_root(
None
};
- if title.is_none() && description.is_none() {
+ if title.is_none() && description.is_none() && retarget.is_none() {
// Nothing to do.
return Ok(());
}
let (root, _) = patch.root();
- let target = patch.target().clone();
let embeds = patch.embeds().to_owned();
+ // `Action::Edit` carries the title and the target together, so a change to
+ // either has to restate both.
+ let edit = if title.is_some() || retarget.is_some() {
+ let title = match title {
+ Some(title) => title,
+ None => Title::new(patch.title())?,
+ };
+ Some((title, retarget.unwrap_or_else(|| patch.target().clone())))
+ } else {
+ None
+ };
patch.transaction("Edit root", |tx| {
- if let Some(t) = title {
- tx.edit(t, target)?;
+ if let Some((title, target)) = edit {
+ tx.edit(title, target)?;
}
if let Some(d) = description {
tx.edit_revision(root, d, embeds)?;
diff --git a/crates/radicle-cli/tests/commands/patch.rs b/crates/radicle-cli/tests/commands/patch.rs
index ac48ea9e72..cb11eba208 100644
--- a/crates/radicle-cli/tests/commands/patch.rs
+++ b/crates/radicle-cli/tests/commands/patch.rs
@@ -437,6 +437,11 @@ fn rad_patch_magic_push() {
Environment::alice(["rad-init", "rad-patch-magic-push"]);
}
+#[test]
+fn rad_patch_edit_target() {
+ Environment::alice(["rad-init", "rad-patch-edit-target"]);
+}
+
#[test]
fn rad_patch_target_missing_branch() {
Environment::alice(["rad-init", "rad-patch-target-missing-branch"]);
commit 75a28c80792dca5bca8fa04fafe21b6b8ede8485
Author: Daniel Norman <daniel@norman.life>
Date: Wed Sep 2 12:59:06 2026 +0200
cli, remote-helper: Warn on targets that cannot resolve
diff --git a/crates/radicle-cli/examples/rad-patch-target-missing-branch.md b/crates/radicle-cli/examples/rad-patch-target-missing-branch.md
index 5aa8a8024b..7cf5e015c8 100644
--- a/crates/radicle-cli/examples/rad-patch-target-missing-branch.md
+++ b/crates/radicle-cli/examples/rad-patch-target-missing-branch.md
@@ -19,6 +19,7 @@ $ git commit --allow-empty -m "Add new feature"
``` (stderr)
$ git push -o patch.message="Add new feature" -o patch.target="refs/heads/nonexistent" rad HEAD:refs/patches
+warn: target `refs/heads/nonexistent` has no canonical reference rule
✓ Patch [..] opened
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
@@ -47,7 +48,7 @@ $ rad patch show 6b9cd39
│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
│ Target nonexistent │
│ Branches feature/1 │
-│ Commits unknown (target branch not found) │
+│ Commits unknown (target branch unresolvable) │
│ Status open │
├──────────────────────────────────────────────────────────┤
│ 2f95362 Add new feature │
@@ -87,6 +88,7 @@ $ git commit --allow-empty -m "Add second feature"
``` (stderr)
$ git push -o patch.message="Add second feature" -o patch.target="refs/heads/sidechain" rad HEAD:refs/patches
+warn: target `refs/heads/sidechain` has no canonical reference rule
✓ Patch [..] opened
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
@@ -114,7 +116,7 @@ $ rad patch show fd3ecc5
│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
│ Target sidechain │
│ Branches feature/2 │
-│ Commits unknown (target branch not found) │
+│ Commits unknown (target branch unresolvable) │
│ Status open │
├──────────────────────────────────────────────────────────┤
│ 3071f29 Add second feature │
diff --git a/crates/radicle-cli/examples/rad-patch-target-unsynthesised-cref.md b/crates/radicle-cli/examples/rad-patch-target-unsynthesised-cref.md
index 21fe579eb7..f58fb443bf 100644
--- a/crates/radicle-cli/examples/rad-patch-target-unsynthesised-cref.md
+++ b/crates/radicle-cli/examples/rad-patch-target-unsynthesised-cref.md
@@ -22,6 +22,7 @@ $ git commit --allow-empty -m "Add new feature"
``` (stderr)
$ git push -o patch.message="Add new feature" -o patch.target="refs/heads/accepted" rad HEAD:refs/patches
+warn: target `refs/heads/accepted` has no commits yet
✓ Patch [..] opened
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
* [new reference] HEAD -> refs/patches
@@ -48,7 +49,7 @@ $ rad patch show 74cbe24
│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
│ Target accepted │
│ Branches feature/1 │
-│ Commits unknown (target branch not found) │
+│ Commits unknown (target branch unresolvable) │
│ Status open │
├──────────────────────────────────────────────────────────┤
│ 2f95362 Add new feature │
diff --git a/crates/radicle-cli/src/terminal/patch.rs b/crates/radicle-cli/src/terminal/patch.rs
index 51b775f3e6..b3a36b8083 100644
--- a/crates/radicle-cli/src/terminal/patch.rs
+++ b/crates/radicle-cli/src/terminal/patch.rs
@@ -369,7 +369,7 @@ pub fn show(
// nothing to compare against. Degrade this row rather than the command.
let ahead_behind = match patch.target().head(stored)? {
Some(target) => common::ahead_behind(stored.raw(), revision.head(), target)?,
- None => term::Line::new(term::format::dim("unknown (target branch not found)")),
+ None => term::Line::new(term::format::dim("unknown (target branch unresolvable)")),
};
let author = patch.author();
let author = term::format::Author::new(author.id(), profile, verbose);
diff --git a/crates/radicle-remote-helper/src/push.rs b/crates/radicle-remote-helper/src/push.rs
index 7d5129607e..70acd712d7 100644
--- a/crates/radicle-remote-helper/src/push.rs
+++ b/crates/radicle-remote-helper/src/push.rs
@@ -597,6 +597,14 @@ fn patch_open(
return Err(Error::EmptyPatch);
}
+ // The target may not be resolvable yet. Report it, but still open the
+ // patch: whether the target has commits is not settled at open time.
+ match opts.target.resolvable(stored) {
+ Ok(()) => {}
+ Err(patch::UnresolvableTarget::Repository(err)) => return Err(err.into()),
+ Err(err) => warn(err.to_string()),
+ }
+
let (title, description) = cli::terminal::patch::get_create_message(
opts.message,
&stored.backend,
diff --git a/crates/radicle/src/cob/patch.rs b/crates/radicle/src/cob/patch.rs
index 69d6a456cd..1c2035a802 100644
--- a/crates/radicle/src/cob/patch.rs
+++ b/crates/radicle/src/cob/patch.rs
@@ -525,6 +525,17 @@ impl TargetBranch {
}
}
+/// Why a [`MergeTarget`] has no reference in storage.
+#[derive(Debug, Error)]
+pub enum UnresolvableTarget {
+ #[error("target `{0}` has no commits yet")]
+ NoCommits(TargetBranch),
+ #[error("target `{0}` has no canonical reference rule")]
+ NoRule(TargetBranch),
+ #[error(transparent)]
+ Repository(#[from] RepositoryError),
+}
+
/// Where a patch is intended to be merged.
#[derive(Default, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
@@ -559,6 +570,30 @@ impl MergeTarget {
},
}
}
+
+ /// Check that the target has a reference in `repo`.
+ pub fn resolvable(&self, repo: &Repository) -> Result<(), UnresolvableTarget> {
+ let MergeTarget::Branch(branch) = self else {
+ return Ok(());
+ };
+ if self.head(repo)?.is_some() {
+ return Ok(());
+ }
+
+ let doc = repo.identity_doc()?;
+ let has_rule = doc
+ .canonical_refs()
+ .map_err(RepositoryError::from)?
+ .rules()
+ .canonical(branch.clone().into_qualified(), repo)
+ .is_some();
+
+ if has_rule {
+ Err(UnresolvableTarget::NoCommits(branch.clone()))
+ } else {
+ Err(UnresolvableTarget::NoRule(branch.clone()))
+ }
+ }
}
/// Patch state.
commit 6fcdb04a0604c41d1a8ace481811687f91bde627
Author: Daniel Norman <daniel@norman.life>
Date: Wed Sep 2 12:50:19 2026 +0200
cli: Degrade patches with unresolvable targets
Degrade gracefully when the target of a patch isn't resolvable instead of
failing `rad patch show`.
diff --git a/crates/radicle-cli/examples/rad-patch-target-missing-branch.md b/crates/radicle-cli/examples/rad-patch-target-missing-branch.md
index e567af70d6..5aa8a8024b 100644
--- a/crates/radicle-cli/examples/rad-patch-target-missing-branch.md
+++ b/crates/radicle-cli/examples/rad-patch-target-missing-branch.md
@@ -31,15 +31,29 @@ $ rad patch
╭───────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├───────────────────────────────────────────────────────────────────────────────────────┤
-│ ● a75d4ea Add new feature alice (you) - 2f95362 +0 -0 now │
+│ ● 6b9cd39 Add new feature alice (you) - 2f95362 +0 -0 now │
╰───────────────────────────────────────────────────────────────────────────────────────╯
```
-But it does not show:
+It also shows, with the `Commits` row degraded:
-``` (fail)
-$ rad patch show a75d4ea
-✗ Error: reference 'refs/heads/nonexistent' not found; class=Reference (4); code=NotFound (-3)
+```
+$ rad patch show 6b9cd39
+╭──────────────────────────────────────────────────────────╮
+│ Title Add new feature │
+│ Patch 6b9cd39ef8d7e50ebe07b4644300be146d792595 │
+│ Author alice (you) │
+│ Head 2f953624221d06c4c1e7a97637c758509a8558dd │
+│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
+│ Target nonexistent │
+│ Branches feature/1 │
+│ Commits unknown (target branch not found) │
+│ Status open │
+├──────────────────────────────────────────────────────────┤
+│ 2f95362 Add new feature │
+├──────────────────────────────────────────────────────────┤
+│ ● Revision 6b9cd39 @ f2de534..2f95362 by alice (you) now │
+╰──────────────────────────────────────────────────────────╯
```
## A target branch that exists, but is not canonical
@@ -78,21 +92,36 @@ To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkE
* [new reference] HEAD -> refs/patches
```
-Both patches list, and the second one does not show either:
+Both patches list, and the second one degrades the same way:
```
$ rad patch
╭──────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ID Title Author Reviews Head + - Updated Labels │
├──────────────────────────────────────────────────────────────────────────────────────────┤
-│ ● a75d4ea Add new feature alice (you) - 2f95362 +0 -0 now │
+│ ● 6b9cd39 Add new feature alice (you) - 2f95362 +0 -0 now │
│ ● fd3ecc5 Add second feature alice (you) - 3071f29 +0 -0 now │
╰──────────────────────────────────────────────────────────────────────────────────────────╯
```
-``` (fail)
+```
$ rad patch show fd3ecc5
-✗ Error: reference 'refs/heads/sidechain' not found; class=Reference (4); code=NotFound (-3)
+╭──────────────────────────────────────────────────────────╮
+│ Title Add second feature │
+│ Patch fd3ecc5dacf184921a0debbee809908c38be538d │
+│ Author alice (you) │
+│ Head 3071f29a3bd95e2f9381310e560ab38b4ee38473 │
+│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
+│ Target sidechain │
+│ Branches feature/2 │
+│ Commits unknown (target branch not found) │
+│ Status open │
+├──────────────────────────────────────────────────────────┤
+│ 3071f29 Add second feature │
+│ 64da62b Start sidechain │
+├──────────────────────────────────────────────────────────┤
+│ ● Revision fd3ecc5 @ f2de534..3071f29 by alice (you) now │
+╰──────────────────────────────────────────────────────────╯
```
## Retargeting with `rad cob update`
@@ -106,17 +135,17 @@ the action directly.
```
```
-$ rad cob update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.patch --object a75d4ea --message "Retarget to delegates" retarget.jsonl
+$ rad cob update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.patch --object 6b9cd39 --message "Retarget to delegates" retarget.jsonl
[..]
```
The patch now targets the default branch, and shows:
```
-$ rad patch show a75d4ea
+$ rad patch show 6b9cd39
╭──────────────────────────────────────────────────────────╮
│ Title Add new feature │
-│ Patch a75d4ea4837e03c69b9dd2406766fcc6304478ee │
+│ Patch 6b9cd39ef8d7e50ebe07b4644300be146d792595 │
│ Author alice (you) │
│ Head 2f953624221d06c4c1e7a97637c758509a8558dd │
│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
@@ -127,6 +156,6 @@ $ rad patch show a75d4ea
├──────────────────────────────────────────────────────────┤
│ 2f95362 Add new feature │
├──────────────────────────────────────────────────────────┤
-│ ● Revision a75d4ea @ f2de534..2f95362 by alice (you) now │
+│ ● Revision 6b9cd39 @ f2de534..2f95362 by alice (you) now │
╰──────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/examples/rad-patch-target-unsynthesised-cref.md b/crates/radicle-cli/examples/rad-patch-target-unsynthesised-cref.md
index 4feb17e704..21fe579eb7 100644
--- a/crates/radicle-cli/examples/rad-patch-target-unsynthesised-cref.md
+++ b/crates/radicle-cli/examples/rad-patch-target-unsynthesised-cref.md
@@ -36,10 +36,23 @@ $ rad patch
╰───────────────────────────────────────────────────────────────────────────────────────╯
```
-Showing it still fails, even though the target is a legitimate canonical
-reference:
+Showing it works, with the `Commits` row degraded:
-``` (fail)
+```
$ rad patch show 74cbe24
-✗ Error: reference 'refs/heads/accepted' not found; class=Reference (4); code=NotFound (-3)
+╭──────────────────────────────────────────────────────────╮
+│ Title Add new feature │
+│ Patch 74cbe24acc14abd62cc012997d99ec26be379e20 │
+│ Author alice (you) │
+│ Head 2f953624221d06c4c1e7a97637c758509a8558dd │
+│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
+│ Target accepted │
+│ Branches feature/1 │
+│ Commits unknown (target branch not found) │
+│ Status open │
+├──────────────────────────────────────────────────────────┤
+│ 2f95362 Add new feature │
+├──────────────────────────────────────────────────────────┤
+│ ● Revision 74cbe24 @ f2de534..2f95362 by alice (you) now │
+╰──────────────────────────────────────────────────────────╯
```
diff --git a/crates/radicle-cli/src/terminal/patch.rs b/crates/radicle-cli/src/terminal/patch.rs
index 9ee2c3d647..51b775f3e6 100644
--- a/crates/radicle-cli/src/terminal/patch.rs
+++ b/crates/radicle-cli/src/terminal/patch.rs
@@ -365,8 +365,12 @@ pub fn show(
} else {
vec![]
};
- let ahead_behind =
- common::ahead_behind(stored.raw(), revision.head(), patch.target().head(stored)?)?;
+ // The target may have no reference in storage yet, in which case there is
+ // nothing to compare against. Degrade this row rather than the command.
+ let ahead_behind = match patch.target().head(stored)? {
+ Some(target) => common::ahead_behind(stored.raw(), revision.head(), target)?,
+ None => term::Line::new(term::format::dim("unknown (target branch not found)")),
+ };
let author = patch.author();
let author = term::format::Author::new(author.id(), profile, verbose);
let labels = patch.labels().map(|l| l.to_string()).collect::<Vec<_>>();
commit ba8556bf9d255d8dec754f33b9a2508284905d77
Author: Daniel Norman <daniel@norman.life>
Date: Wed Sep 2 12:50:19 2026 +0200
patch: Make MergeTarget head optional
Whenever the target had no reference in storage it would fail.
A branch only gets a top-level reference once a push to it reaches
quorum, so this hit every target without a canonical rule, and every
rule with no commits yet.
diff --git a/crates/radicle/src/cob/patch.rs b/crates/radicle/src/cob/patch.rs
index 7b83ca4cf3..69d6a456cd 100644
--- a/crates/radicle/src/cob/patch.rs
+++ b/crates/radicle/src/cob/patch.rs
@@ -28,6 +28,7 @@ use crate::cob::thread::{Comment, CommentId, Edit, Reactions};
use crate::cob::{ActorId, Embed, EntryId, ObjectId, TypeName, Uri, op, store};
use crate::crypto::PublicKey;
use crate::git;
+use crate::git::raw::ErrorExt as _;
use crate::identity::PayloadError;
use crate::identity::doc::{DefaultBranchError, DocAt, DocError};
use crate::prelude::*;
@@ -540,13 +541,22 @@ pub enum MergeTarget {
impl MergeTarget {
/// Get the head of the target branch.
- pub fn head(&self, repo: &Repository) -> Result<git::Oid, RepositoryError> {
+ ///
+ /// Returns `None` if the target has no reference in `repo`. A
+ /// [`MergeTarget::Branch`] only gets a top-level reference once a push to
+ /// it reaches quorum, so a target that names a branch with no canonical
+ /// rule, or one whose rule has no commits yet, is not resolvable.
+ pub fn head(&self, repo: &Repository) -> Result<Option<git::Oid>, RepositoryError> {
match self {
MergeTarget::Delegates => {
let (_, target) = repo.head()?;
- Ok(target)
+ Ok(Some(target))
}
- MergeTarget::Branch(branch) => Ok(repo.backend.refname_to_id(branch.as_str())?.into()),
+ MergeTarget::Branch(branch) => match repo.backend.refname_to_id(branch.as_str()) {
+ Ok(oid) => Ok(Some(oid.into())),
+ Err(err) if err.is_not_found() => Ok(None),
+ Err(err) => Err(err.into()),
+ },
}
}
}
commit 9c433878a9afbce986d84fde784ef430687d9cbc
Author: Daniel Norman <daniel@norman.life>
Date: Wed Sep 2 10:56:03 2026 +0200
cli/tests: Show patches with unresolvable targets
- Add examples for a target branch that does not exist, one that
exists but is not canonical, and one with a canonical rule but no
commits
- Record that `rad patch show` fails on all three, while `rad patch`
lists them
- Record `rad cob update` as the only way to retarget a patch today
diff --git a/crates/radicle-cli/examples/rad-patch-target-missing-branch.md b/crates/radicle-cli/examples/rad-patch-target-missing-branch.md
new file mode 100644
index 0000000000..e567af70d6
--- /dev/null
+++ b/crates/radicle-cli/examples/rad-patch-target-missing-branch.md
@@ -0,0 +1,132 @@
+# Patches that target a branch with no canonical reference
+
+`rad patch show` resolves the target head from `refs/heads/<target>` in
+storage. Storage only has that reference when the target is a canonical
+reference of the repository. For any other target, the patch opens and lists,
+but `rad patch show` fails.
+
+## A target branch that does not exist
+
+``` (stderr)
+$ git checkout -b feature/1
+Switched to a new branch 'feature/1'
+```
+
+```
+$ git commit --allow-empty -m "Add new feature"
+[feature/1 [..]] Add new feature
+```
+
+``` (stderr)
+$ git push -o patch.message="Add new feature" -o patch.target="refs/heads/nonexistent" rad HEAD:refs/patches
+✓ Patch [..] opened
+To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ * [new reference] HEAD -> refs/patches
+```
+
+The patch lists:
+
+```
+$ rad patch
+╭───────────────────────────────────────────────────────────────────────────────────────╮
+│ ● ID Title Author Reviews Head + - Updated Labels │
+├───────────────────────────────────────────────────────────────────────────────────────┤
+│ ● a75d4ea Add new feature alice (you) - 2f95362 +0 -0 now │
+╰───────────────────────────────────────────────────────────────────────────────────────╯
+```
+
+But it does not show:
+
+``` (fail)
+$ rad patch show a75d4ea
+✗ Error: reference 'refs/heads/nonexistent' not found; class=Reference (4); code=NotFound (-3)
+```
+
+## A target branch that exists, but is not canonical
+
+``` (stderr)
+$ git checkout master -q
+$ git checkout -b sidechain
+Switched to a new branch 'sidechain'
+```
+
+```
+$ git commit --allow-empty -m "Start sidechain"
+[sidechain [..]] Start sidechain
+```
+
+``` (stderr)
+$ git push rad sidechain
+To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ * [new branch] sidechain -> sidechain
+```
+
+``` (stderr)
+$ git checkout -b feature/2
+Switched to a new branch 'feature/2'
+```
+
+```
+$ git commit --allow-empty -m "Add second feature"
+[feature/2 [..]] Add second feature
+```
+
+``` (stderr)
+$ git push -o patch.message="Add second feature" -o patch.target="refs/heads/sidechain" rad HEAD:refs/patches
+✓ Patch [..] opened
+To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ * [new reference] HEAD -> refs/patches
+```
+
+Both patches list, and the second one does not show either:
+
+```
+$ rad patch
+╭──────────────────────────────────────────────────────────────────────────────────────────╮
+│ ● ID Title Author Reviews Head + - Updated Labels │
+├──────────────────────────────────────────────────────────────────────────────────────────┤
+│ ● a75d4ea Add new feature alice (you) - 2f95362 +0 -0 now │
+│ ● fd3ecc5 Add second feature alice (you) - 3071f29 +0 -0 now │
+╰──────────────────────────────────────────────────────────────────────────────────────────╯
+```
+
+``` (fail)
+$ rad patch show fd3ecc5
+✗ Error: reference 'refs/heads/sidechain' not found; class=Reference (4); code=NotFound (-3)
+```
+
+## Retargeting with `rad cob update`
+
+The COB layer supports changing the target: `Action::Edit` carries a `target`
+field. No `rad patch` subcommand exposes it, but `rad cob update` can append
+the action directly.
+
+``` ./retarget.jsonl
+{"type": "edit", "title": "Add new feature", "target": "delegates"}
+```
+
+```
+$ rad cob update --repo rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji --type xyz.radicle.patch --object a75d4ea --message "Retarget to delegates" retarget.jsonl
+[..]
+```
+
+The patch now targets the default branch, and shows:
+
+```
+$ rad patch show a75d4ea
+╭──────────────────────────────────────────────────────────╮
+│ Title Add new feature │
+│ Patch a75d4ea4837e03c69b9dd2406766fcc6304478ee │
+│ Author alice (you) │
+│ Head 2f953624221d06c4c1e7a97637c758509a8558dd │
+│ Base f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 │
+│ Target master │
+│ Branches feature/1 │
+│ Commits ahead 1, behind 0 │
+│ Status open │
+├──────────────────────────────────────────────────────────┤
+│ 2f95362 Add new feature │
+├──────────────────────────────────────────────────────────┤
+│ ● Revision a75d4ea @ f2de534..2f95362 by alice (you) now │
+╰──────────────────────────────────────────────────────────╯
+```
diff --git a/crates/radicle-cli/examples/rad-patch-target-unsynthesised-cref.md b/crates/radicle-cli/examples/rad-patch-target-unsynthesised-cref.md
new file mode 100644
index 0000000000..4feb17e704
--- /dev/null
+++ b/crates/radicle-cli/examples/rad-patch-target-unsynthesised-cref.md
@@ -0,0 +1,45 @@
+# Patches targeting a canonical reference with no commits
+
+Add a canonical reference rule for `accepted`, but never push the branch, so no
+`refs/heads/accepted` can be synthesised in storage.
+
+```
+$ rad id update --title "Add accepted branch" --payload xyz.radicle.crefs rules '{ "refs/heads/accepted": { "threshold": 1, "allow": "delegates" } }' -q
+[..]
+```
+
+The rule exists, so `refs/heads/accepted` is a valid target. Open a patch for it:
+
+``` (stderr)
+$ git checkout -b feature/1
+Switched to a new branch 'feature/1'
+```
+
+```
+$ git commit --allow-empty -m "Add new feature"
+[feature/1 [..]] Add new feature
+```
+
+``` (stderr)
+$ git push -o patch.message="Add new feature" -o patch.target="refs/heads/accepted" rad HEAD:refs/patches
+✓ Patch [..] opened
+To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
+ * [new reference] HEAD -> refs/patches
+```
+
+```
+$ rad patch
+╭───────────────────────────────────────────────────────────────────────────────────────╮
+│ ● ID Title Author Reviews Head + - Updated Labels │
+├───────────────────────────────────────────────────────────────────────────────────────┤
+│ ● 74cbe24 Add new feature alice (you) - 2f95362 +0 -0 now │
+╰───────────────────────────────────────────────────────────────────────────────────────╯
+```
+
+Showing it still fails, even though the target is a legitimate canonical
+reference:
+
+``` (fail)
+$ rad patch show 74cbe24
+✗ Error: reference 'refs/heads/accepted' not found; class=Reference (4); code=NotFound (-3)
+```
diff --git a/crates/radicle-cli/tests/commands/patch.rs b/crates/radicle-cli/tests/commands/patch.rs
index d908f46178..ac48ea9e72 100644
--- a/crates/radicle-cli/tests/commands/patch.rs
+++ b/crates/radicle-cli/tests/commands/patch.rs
@@ -437,6 +437,16 @@ fn rad_patch_magic_push() {
Environment::alice(["rad-init", "rad-patch-magic-push"]);
}
+#[test]
+fn rad_patch_target_missing_branch() {
+ Environment::alice(["rad-init", "rad-patch-target-missing-branch"]);
+}
+
+#[test]
+fn rad_patch_target_unsynthesised_cref() {
+ Environment::alice(["rad-init", "rad-patch-target-unsynthesised-cref"]);
+}
+
#[test]
fn rad_patch_merge_into_canonical_ref_branch() {
Environment::alice(["rad-init", "rad-patch-merge-into-canonical-ref-branch"]);
Exit code: 0
shell: 'export RUSTDOCFLAGS=''-D warnings'' cargo --version rustc --version cargo fmt --check cargo clippy --all-targets --workspace -- --deny warnings cargo build --all-targets --workspace cargo doc --workspace --no-deps --all-features cargo test --workspace --no-fail-fast '
Commands:
$ podman run --name fb6f5e8e-8620-4395-a55e-e44df9a9f437 -v /opt/radcis/ci.rad.levitte.org/cci/state/fb6f5e8e-8620-4395-a55e-e44df9a9f437/s:/fb6f5e8e-8620-4395-a55e-e44df9a9f437/s:ro -v /opt/radcis/ci.rad.levitte.org/cci/state/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w:/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w -w /fb6f5e8e-8620-4395-a55e-e44df9a9f437/w -v /opt/radcis/ci.rad.levitte.org/.radicle:/${id}/.radicle:ro -e RAD_HOME=/${id}/.radicle rust:trixie bash /fb6f5e8e-8620-4395-a55e-e44df9a9f437/s/script.sh
+ export 'RUSTDOCFLAGS=-D warnings'
+ RUSTDOCFLAGS='-D warnings'
+ cargo --version
info: syncing channel updates for '1.98.0-x86_64-unknown-linux-gnu'
info: latest update on 2026-08-20, rust version 1.98.0 (88d9e12ae 2026-08-18)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
info: downloading component 'rust-src'
info: downloading component 'rust-std'
info: downloading component 'rustc'
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'
info: installing component 'rust-src'
info: installing component 'rust-std'
info: installing component 'rustc'
info: installing component 'rustfmt'
cargo 1.98.0 (797e8a9bc 2026-08-05)
+ rustc --version
rustc 1.98.0 (88d9e12ae 2026-08-18)
+ cargo fmt --check
+ cargo clippy --all-targets --workspace -- --deny warnings
Updating crates.io index
Downloading crates ...
Downloaded crypto-common v0.1.7
Downloaded clap_lex v1.1.0
Downloaded colorchoice v1.0.5
Downloaded ctr v0.9.2
Downloaded gix-negotiate v0.31.0
Downloaded addr2line v0.25.1
Downloaded cipher v0.4.4
Downloaded crc32fast v1.5.0
Downloaded clap v4.6.0
Downloaded clap_complete v4.6.0
Downloaded clap_derive v4.6.0
Downloaded fluent-uri v0.3.2
Downloaded crypto-bigint v0.5.5
Downloaded crossbeam-channel v0.5.15
Downloaded chrono v0.4.44
Downloaded crossterm v0.29.0
Downloaded clap_builder v4.6.0
Downloaded elliptic-curve v0.13.8
Downloaded env_logger v0.11.9
Downloaded gix-sec v0.14.0
Downloaded qcheck-macros v1.0.0
Downloaded gix-commitgraph v0.37.0
Downloaded quick-error v1.2.3
Downloaded displaydoc v0.2.5
Downloaded salsa20 v0.10.2
Downloaded gix-packetline v0.21.5
Downloaded idna v1.1.0
Downloaded errno v0.3.14
Downloaded gix-ref v0.63.0
Downloaded gix-diff v0.63.0
Downloaded quote v1.0.45
Downloaded cyphergraphy v0.3.1
Downloaded thiserror v1.0.69
Downloaded systemd-journal-logger v2.2.2
Downloaded signals_receipts v0.2.5
Downloaded signal-hook v0.3.18
Downloaded gix-features v0.48.0
Downloaded getrandom v0.4.3
Downloaded rand v0.8.5
Downloaded cypheraddr v0.4.1
Downloaded crossbeam-utils v0.8.21
Downloaded regex v1.12.3
Downloaded derive_more-impl v2.1.1
Downloaded getrandom v0.3.4
Downloaded rsa v0.9.10
Downloaded data-encoding v2.10.0
Downloaded derive_more v2.1.1
Downloaded generic-array v0.14.7
Downloaded gix-lock v23.0.0
Downloaded rfc6979 v0.4.0
Downloaded rs-release v0.1.11
Downloaded rustc_version v0.4.1
Downloaded digest v0.10.7
Downloaded gix-revision v0.45.0
Downloaded curve25519-dalek v4.1.3
Downloaded fastrand v2.3.0
Downloaded gix-object v0.60.0
Downloaded gix-error v0.2.3
Downloaded scopeguard v1.2.0
Downloaded siphasher v1.0.2
Downloaded signature v1.6.4
Downloaded sha1 v0.10.6
Downloaded stable_deref_trait v1.2.1
Downloaded const-oid v0.9.6
Downloaded ed25519 v2.2.3
Downloaded fancy-regex v0.14.0
Downloaded getrandom v0.2.17
Downloaded console v0.16.3
Downloaded gix-credentials v0.38.0
Downloaded gix-revwalk v0.31.0
Downloaded fast-glob v0.3.3
Downloaded gix-chunk v0.7.1
Downloaded gix-path v0.12.0
Downloaded snapbox-macros v1.1.0
Downloaded sval_serde v2.17.0
Downloaded flate2 v1.1.9
Downloaded gix-config-value v0.18.0
Downloaded gix-glob v0.26.0
Downloaded gix-quote v0.7.1
Downloaded cpufeatures v0.2.17
Downloaded document-features v0.2.12
Downloaded env_filter v1.0.0
Downloaded ghash v0.5.1
Downloaded gix-hashtable v0.15.0
Downloaded gix-prompt v0.15.0
Downloaded const-str v0.4.3
Downloaded data-encoding-macro v0.1.19
Downloaded fnv v1.0.7
Downloaded faster-hex v0.10.0
Downloaded curve25519-dalek-derive v0.1.1
Downloaded data-encoding-macro-internal v0.1.17
Downloaded dunce v1.0.5
Downloaded dyn-clone v1.0.20
Downloaded equivalent v1.0.2
Downloaded form_urlencoded v1.2.2
Downloaded gix-actor v0.41.0
Downloaded gix-command v0.9.0
Downloaded gix-validate v0.11.1
Downloaded gix-fs v0.21.1
Downloaded email_address v0.2.9
Downloaded gix-date v0.15.3
Downloaded gix-hash v0.25.0
Downloaded diff v0.1.13
Downloaded colored v2.2.0
Downloaded tinyvec_macros v0.1.1
Downloaded nonempty v0.9.0
Downloaded ecdsa v0.16.9
Downloaded either v1.15.0
Downloaded escargot v0.5.15
Downloaded unit-prefix v0.5.2
Downloaded lazy_static v1.5.0
Downloaded match-lookup v0.1.2
Downloaded value-bag-sval2 v1.12.0
Downloaded num v0.4.3
Downloaded ec25519 v0.1.0
Downloaded outref v0.5.2
Downloaded subtle v2.6.1
Downloaded scrypt v0.11.0
Downloaded secrecy v0.10.3
Downloaded ssh-encoding v0.2.0
Downloaded convert_case v0.10.0
Downloaded ff v0.13.1
Downloaded bytecount v0.6.9
Downloaded chacha20 v0.9.1
Downloaded heck v0.5.0
Downloaded wait-timeout v0.2.1
Downloaded gix-refspec v0.41.0
Downloaded polyval v0.6.2
Downloaded tracing-log v0.2.0
Downloaded pem-rfc7468 v0.7.0
Downloaded cbc v0.1.2
Downloaded zerofrom-derive v0.1.6
Downloaded ed25519 v1.5.3
Downloaded human-panic v2.0.6
Downloaded zerovec-derive v0.11.2
Downloaded borrow-or-share v0.2.4
Downloaded gix-tempfile v23.0.0
Downloaded poly1305 v0.8.0
Downloaded memmap2 v0.9.10
Downloaded rand_chacha v0.9.0
Downloaded shlex v1.3.0
Downloaded thiserror-impl v2.0.18
Downloaded find-msvc-tools v0.1.9
Downloaded shell-words v1.1.1
Downloaded erased-serde v0.4.10
Downloaded gix-protocol v0.61.0
Downloaded thread_local v1.1.9
Downloaded strsim v0.11.1
Downloaded litrs v1.0.0
Downloaded gix-odb v0.80.0
Downloaded icu_provider v2.1.1
Downloaded sval_dynamic v2.17.0
Downloaded gix-shallow v0.12.0
Downloaded ref-cast-impl v1.0.25
Downloaded unicode-ident v1.0.24
Downloaded icu_collections v2.1.1
Downloaded bytesize v2.3.1
Downloaded fraction v0.15.3
Downloaded rand_chacha v0.3.1
Downloaded rand_xorshift v0.4.0
Downloaded serde_fmt v1.1.0
Downloaded serde_spanned v1.0.4
Downloaded signature v2.2.0
Downloaded sval_fmt v2.17.0
Downloaded sval_ref v2.17.0
Downloaded sval_json v2.17.0
Downloaded siphasher v0.3.11
Downloaded normalize-line-endings v0.3.0
Downloaded der v0.7.10
Downloaded anstyle v1.0.14
Downloaded jiff-static v0.2.23
Downloaded ref-cast v1.0.25
Downloaded cfg-if v1.0.4
Downloaded test-log v0.2.19
Downloaded rand_core v0.9.5
Downloaded spki v0.7.3
Downloaded rustversion v1.0.22
Downloaded schemars_derive v1.2.1
Downloaded simd-adler32 v0.3.8
Downloaded rusty-fork v0.3.1
Downloaded serde_derive_internals v0.29.1
Downloaded phf_shared v0.11.3
Downloaded tree-sitter-language v0.1.7
Downloaded signal-hook-mio v0.2.5
Downloaded itoa v1.0.17
Downloaded prodash v31.0.0
Downloaded amplify_num v0.5.3
Downloaded gix-transport v0.57.0
Downloaded typeid v1.0.3
Downloaded utf8parse v0.2.2
Downloaded base-x v0.2.11
Downloaded base256emoji v1.0.2
Downloaded rustc-demangle v0.1.27
Downloaded ssh-cipher v0.2.0
Downloaded sec1 v0.7.3
Downloaded streaming-iterator v0.1.9
Downloaded serde-untagged v0.1.9
Downloaded sval_buffer v2.17.0
Downloaded test-log-macros v0.2.19
Downloaded num-complex v0.4.6
Downloaded thiserror v2.0.18
Downloaded ed25519-dalek v2.2.0
Downloaded yoke-derive v0.8.1
Downloaded semver v1.0.27
Downloaded same-file v1.0.6
Downloaded signal-hook-registry v1.4.8
Downloaded socks5-client v0.4.3
Downloaded sqlite3-sys v0.18.0
Downloaded structured-logger v1.0.5
Downloaded synstructure v0.13.2
Downloaded sha2 v0.10.9
Downloaded sval_nested v2.17.0
Downloaded thiserror-impl v1.0.69
Downloaded aead v0.5.2
Downloaded base16ct v0.2.0
Downloaded nonempty v0.12.0
Downloaded block-padding v0.3.3
Downloaded keccak v0.1.6
Downloaded sharded-slab v0.1.7
Downloaded inout v0.1.4
Downloaded jobserver v0.1.34
Downloaded anstyle-parse v0.2.7
Downloaded bit-vec v0.8.0
Downloaded num-rational v0.4.2
Downloaded timeago v0.4.2
Downloaded emojis v0.6.4
Downloaded version_check v0.9.5
Downloaded potential_utf v0.1.4
Downloaded tempfile v3.27.0
Downloaded multibase v0.9.2
Downloaded sem_safe v0.2.1
Downloaded sqlite v0.37.0
Downloaded spin v0.9.9
Downloaded gix-trace v0.1.21
Downloaded smallvec v1.15.1
Downloaded nu-ansi-term v0.50.3
Downloaded gix-utils v0.3.2
Downloaded is_terminal_polyfill v1.70.2
Downloaded utf8_iter v1.0.4
Downloaded hash32 v0.3.1
Downloaded unarray v0.1.4
Downloaded parking_lot_core v0.9.12
Downloaded gix-pack v0.70.0
Downloaded rand_core v0.6.4
Downloaded ryu v1.0.23
Downloaded yoke v0.8.1
Downloaded lexopt v0.3.2
Downloaded vsimd v0.8.0
Downloaded autocfg v1.5.0
Downloaded byteorder v1.5.0
Downloaded group v0.13.0
Downloaded opaque-debug v0.3.1
Downloaded percent-encoding v2.3.2
Downloaded pin-project-lite v0.2.17
Downloaded toml_datetime v0.7.5+spec-1.1.0
Downloaded toml_writer v1.0.7+spec-1.1.0
Downloaded tree-sitter-toml-ng v0.6.0
Downloaded unicode-display-width v0.3.0
Downloaded uuid-simd v0.8.0
Downloaded value-bag-serde1 v1.12.0
Downloaded writeable v0.6.2
Downloaded zerofrom v0.1.6
Downloaded base32 v0.4.0
Downloaded bit-set v0.8.0
Downloaded cyphernet v0.5.4
Downloaded gix-traverse v0.57.0
Downloaded hex-literal v1.1.0
Downloaded tinystr v0.8.2
Downloaded ppv-lite86 v0.2.21
Downloaded iana-time-zone v0.1.65
Downloaded anstream v0.6.21
Downloaded primeorder v0.13.6
Downloaded anstyle-query v1.1.5
Downloaded humantime v2.3.0
Downloaded anstream v1.0.0
Downloaded walkdir v2.5.0
Downloaded num-iter v0.1.45
Downloaded anyhow v1.0.102
Downloaded amplify_derive v4.0.1
Downloaded tree-sitter-highlight v0.24.7
Downloaded ascii v1.1.0
Downloaded serde_derive v1.0.228
Downloaded gix-url v0.36.0
Downloaded bitflags v2.11.0
Downloaded ssh-agent-lib v0.6.0
Downloaded hashbrown v0.16.1
Downloaded num-integer v0.1.46
Downloaded num-cmp v0.1.0
Downloaded pkg-config v0.3.32
Downloaded once_cell v1.21.4
Downloaded hmac v0.12.1
Downloaded tracing-core v0.1.36
Downloaded pkcs1 v0.7.5
Downloaded toml v0.9.12+spec-1.1.0
Downloaded value-bag v1.12.0
Downloaded amplify_syn v2.0.1
Downloaded idna_adapter v1.2.1
Downloaded proc-macro2 v1.0.106
Downloaded p256 v0.13.2
Downloaded num-traits v0.2.19
Downloaded adler2 v2.0.1
Downloaded matchers v0.2.0
Downloaded icu_properties_data v2.1.2
Downloaded pretty_assertions v1.4.1
Downloaded indicatif v0.18.4
Downloaded libm v0.2.16
Downloaded referencing v0.30.0
Downloaded bytes v1.11.1
Downloaded parking_lot v0.12.5
Downloaded yansi v1.0.1
Downloaded miniz_oxide v0.8.9
Downloaded url v2.5.8
Downloaded pastey v0.2.1
Downloaded universal-hash v0.5.1
Downloaded noise-framework v0.4.1
Downloaded icu_locale_core v2.1.1
Downloaded arc-swap v1.9.1
Downloaded typenum v1.20.1
Downloaded base64 v0.21.7
Downloaded memchr v2.8.0
Downloaded similar v3.1.1
Downloaded heapless v0.8.0
Downloaded icu_normalizer_data v2.1.1
Downloaded snapbox v1.2.2
Downloaded indexmap v2.13.0
Downloaded socket2 v0.5.10
Downloaded inquire v0.9.4
Downloaded aho-corasick v1.1.4
Downloaded num-bigint v0.4.6
Downloaded tree-sitter-json v0.24.8
Downloaded jsonschema v0.30.0
Downloaded num-bigint-dig v0.8.6
Downloaded p521 v0.13.3
Downloaded unicode-normalization v0.1.25
Downloaded pbkdf2 v0.12.2
Downloaded p384 v0.13.1
Downloaded anstyle-parse v1.0.0
Downloaded block-buffer v0.10.4
Downloaded serde_core v1.0.228
Downloaded itertools v0.14.0
Downloaded zmij v1.0.21
Downloaded gimli v0.32.3
Downloaded tree-sitter-python v0.23.6
Downloaded git2 v0.21.0
Downloaded qcheck v1.0.0
Downloaded tree-sitter v0.24.7
Downloaded tracing-subscriber v0.3.23
Downloaded proptest v1.10.0
Downloaded lock_api v0.4.14
Downloaded tree-sitter-c v0.23.4
Downloaded amplify v4.9.0
Downloaded blowfish v0.9.1
Downloaded tree-sitter-html v0.23.2
Downloaded tree-sitter-md v0.3.2
Downloaded bcrypt-pbkdf v0.10.0
Downloaded pkcs8 v0.10.2
Downloaded zeroize v1.9.0
Downloaded maybe-async v0.2.10
Downloaded phf v0.11.3
Downloaded zerotrie v0.2.3
Downloaded object v0.37.3
Downloaded serde v1.0.228
Downloaded litemap v0.8.1
Downloaded ahash v0.8.12
Downloaded sval v2.17.0
Downloaded tree-sitter-bash v0.23.3
Downloaded base64ct v1.8.3
Downloaded uuid v1.22.0
Downloaded tracing v0.1.44
Downloaded ssh-key v0.6.7
Downloaded rand v0.9.2
Downloaded tree-sitter-ruby v0.23.1
Downloaded tree-sitter-css v0.23.2
Downloaded icu_normalizer v2.1.1
Downloaded schemars v1.2.1
Downloaded icu_properties v2.1.2
Downloaded jiff v0.2.23
Downloaded libc v0.2.183
Downloaded log v0.4.29
Downloaded tree-sitter-typescript v0.23.2
Downloaded tinyvec v1.11.0
Downloaded libz-sys v1.1.25
Downloaded tree-sitter-go v0.23.4
Downloaded base64 v0.22.1
Downloaded chacha20poly1305 v0.10.1
Downloaded backtrace v0.3.76
Downloaded cc v1.2.57
Downloaded libgit2-sys v0.18.4+1.9.3
Downloaded regex-syntax v0.8.10
Downloaded serde_json v1.0.149
Downloaded linux-raw-sys v0.12.1
Downloaded mio v1.1.1
Downloaded unicode-segmentation v1.12.0
Downloaded zerovec v0.11.5
Downloaded aes v0.8.4
Downloaded aes-gcm v0.10.3
Downloaded sysinfo v0.37.2
Downloaded syn v1.0.109
Downloaded zlib-rs v0.6.5
Downloaded vcpkg v0.2.15
Downloaded portable-atomic v1.13.1
Downloaded syn v2.0.117
Downloaded zerocopy v0.8.42
Downloaded unicode-width v0.2.2
Downloaded tree-sitter-rust v0.23.3
Downloaded bloomy v1.2.0
Downloaded bstr v1.12.1
Downloaded rustix v1.1.4
Downloaded regex-automata v0.4.14
Downloaded sha1-checked v0.10.0
Downloaded sha3 v0.10.8
Downloaded tokio v1.50.0
Downloaded sqlite3-src v0.7.0
Compiling libc v0.2.183
Compiling proc-macro2 v1.0.106
Compiling unicode-ident v1.0.24
Compiling quote v1.0.45
Compiling serde_core v1.0.228
Checking cfg-if v1.0.4
Compiling serde v1.0.228
Compiling version_check v0.9.5
Compiling generic-array v0.14.7
Compiling syn v2.0.117
Checking typenum v1.20.1
Checking getrandom v0.2.17
Checking rand_core v0.6.4
Checking memchr v2.8.0
Compiling find-msvc-tools v0.1.9
Compiling shlex v1.3.0
Compiling jobserver v0.1.34
Checking subtle v2.6.1
Checking const-oid v0.9.6
Checking smallvec v1.15.1
Compiling cc v1.2.57
Checking regex-syntax v0.8.10
Checking aho-corasick v1.1.4
Checking cpufeatures v0.2.17
Compiling thiserror v2.0.18
Compiling parking_lot_core v0.9.12
Checking fastrand v2.3.0
Checking regex-automata v0.4.14
Checking scopeguard v1.2.0
Checking lock_api v0.4.14
Checking bitflags v2.11.0
Checking stable_deref_trait v1.2.1
Compiling typeid v1.0.3
Checking parking_lot v0.12.5
Compiling erased-serde v0.4.10
Checking gix-trace v0.1.21
Checking itoa v1.0.17
Checking tinyvec_macros v0.1.1
Checking tinyvec v1.11.0
Checking serde_fmt v1.1.0
Checking hashbrown v0.16.1
Checking value-bag-serde1 v1.12.0
Checking unicode-normalization v0.1.25
Checking byteorder v1.5.0
Checking gix-utils v0.3.2
Checking value-bag v1.12.0
Compiling crc32fast v1.5.0
Checking log v0.4.29
Checking bstr v1.12.1
Checking same-file v1.0.6
Checking prodash v31.0.0
Checking walkdir v2.5.0
Compiling serde_derive v1.0.228
Compiling thiserror-impl v2.0.18
Checking gix-validate v0.11.1
Checking zlib-rs v0.6.5
Compiling pkg-config v0.3.32
Compiling getrandom v0.4.3
Compiling heapless v0.8.0
Compiling libm v0.2.16
Checking gix-path v0.12.0
Compiling autocfg v1.5.0
Checking hash32 v0.3.1
Checking gix-features v0.48.0
Compiling rustix v1.1.4
Compiling num-traits v0.2.19
Checking linux-raw-sys v0.12.1
Checking faster-hex v0.10.0
Compiling zerocopy v0.8.42
Compiling zmij v1.0.21
Compiling serde_json v1.0.149
Checking equivalent v1.0.2
Checking indexmap v2.13.0
Checking zeroize v1.9.0
Compiling ref-cast v1.0.25
Checking crypto-common v0.1.7
Checking block-buffer v0.10.4
Checking once_cell v1.21.4
Checking digest v0.10.7
Checking block-padding v0.3.3
Checking sha1 v0.10.6
Checking sha1-checked v0.10.0
Checking gix-hash v0.25.0
Compiling ref-cast-impl v1.0.25
Checking inout v0.1.4
Checking sha2 v0.10.9
Checking dyn-clone v1.0.20
Compiling vcpkg v0.2.15
Checking cipher v0.4.4
Checking tempfile v3.27.0
Compiling serde_derive_internals v0.29.1
Checking der v0.7.10
Checking ppv-lite86 v0.2.21
Compiling libz-sys v1.1.25
Compiling libgit2-sys v0.18.4+1.9.3
Checking spin v0.9.9
Compiling schemars_derive v1.2.1
Checking rand_chacha v0.3.1
Checking lazy_static v1.5.0
Compiling syn v1.0.109
Checking rand v0.8.5
Compiling tree-sitter-language v0.1.7
Checking hmac v0.12.1
Checking universal-hash v0.5.1
Checking num-integer v0.1.46
Checking opaque-debug v0.3.1
Checking spki v0.7.3
Checking signature v2.2.0
Checking ff v0.13.1
Checking base16ct v0.2.0
Checking schemars v1.2.1
Checking sec1 v0.7.3
Checking group v0.13.0
Checking crypto-bigint v0.5.5
Compiling data-encoding v2.10.0
Compiling data-encoding-macro-internal v0.1.17
Checking elliptic-curve v0.13.8
Compiling amplify_syn v2.0.1
Checking num-iter v0.1.45
Checking aead v0.5.2
Compiling match-lookup v0.1.2
Checking signature v1.6.4
Checking const-str v0.4.3
Compiling semver v1.0.27
Checking data-encoding-macro v0.1.19
Checking base256emoji v1.0.2
Checking ed25519 v1.5.3
Compiling amplify_derive v4.0.1
Compiling rustc_version v0.4.1
Checking poly1305 v0.8.0
Checking rfc6979 v0.4.0
Checking qcheck v1.0.0
Checking chacha20 v0.9.1
Checking gix-error v0.2.3
Checking amplify_num v0.5.3
Checking base-x v0.2.11
Checking ascii v1.1.0
Checking multibase v0.9.2
Checking ecdsa v0.16.9
Compiling curve25519-dalek v4.1.3
Checking ec25519 v0.1.0
Checking primeorder v0.13.6
Checking amplify v4.9.0
Checking polyval v0.6.2
Compiling num-bigint-dig v0.8.6
Checking base64ct v1.8.3
Checking cyphergraphy v0.3.1
Checking ghash v0.5.1
Checking pkcs8 v0.10.2
Checking pbkdf2 v0.12.2
Checking pem-rfc7468 v0.7.0
Checking ctr v0.9.2
Checking aes v0.8.4
Checking radicle-git-ref-format v0.2.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-git-ref-format)
Compiling sqlite3-src v0.7.0
Compiling curve25519-dalek-derive v0.1.1
Compiling synstructure v0.13.2
Checking keccak v0.1.6
Checking sha3 v0.10.8
Checking aes-gcm v0.10.3
Checking ssh-encoding v0.2.0
Checking pkcs1 v0.7.5
Checking ed25519 v2.2.3
Checking cbc v0.1.2
Checking blowfish v0.9.1
Checking base32 v0.4.0
Checking percent-encoding v2.3.2
Checking cypheraddr v0.4.1
Checking rsa v0.9.10
Checking bcrypt-pbkdf v0.10.0
Checking ssh-cipher v0.2.0
Checking ed25519-dalek v2.2.0
Compiling zerofrom-derive v0.1.6
Checking p521 v0.13.3
Checking p384 v0.13.1
Checking p256 v0.13.2
Checking chacha20poly1305 v0.10.1
Checking noise-framework v0.4.1
Checking ssh-key v0.6.7
Checking zerofrom v0.1.6
Checking socks5-client v0.4.3
Compiling yoke-derive v0.8.1
Checking secrecy v0.10.3
Checking ssh-agent-lib v0.6.0
Checking cyphernet v0.5.4
Checking nonempty v0.9.0
Checking yoke v0.8.1
Checking utf8parse v0.2.2
Checking jiff v0.2.23
Checking anstyle-query v1.1.5
Compiling zerovec-derive v0.11.2
Checking zerovec v0.11.5
Checking radicle-localtime v0.1.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-localtime)
Compiling displaydoc v0.2.5
Checking errno v0.3.14
Checking colorchoice v1.0.5
Checking anstyle v1.0.14
Checking base64 v0.21.7
Checking is_terminal_polyfill v1.70.2
Checking gix-date v0.15.3
Checking gix-hashtable v0.15.0
Checking siphasher v1.0.2
Checking gix-actor v0.41.0
Checking gix-object v0.60.0
Checking radicle-dag v0.10.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-dag)
Checking memmap2 v0.9.10
Checking nonempty v0.12.0
Checking tinystr v0.8.2
Checking gix-chunk v0.7.1
Checking writeable v0.6.2
Compiling radicle v0.25.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle)
Checking litemap v0.8.1
Checking icu_locale_core v2.1.1
Checking gix-commitgraph v0.37.0
Checking zerotrie v0.2.3
Checking potential_utf v0.1.4
Checking anstyle-parse v1.0.0
Checking serde-untagged v0.1.9
Checking bytesize v2.3.1
Compiling icu_normalizer_data v2.1.1
Checking fast-glob v0.3.3
Checking dunce v1.0.5
Compiling icu_properties_data v2.1.2
Checking anstream v1.0.0
Checking icu_provider v2.1.1
Checking icu_collections v2.1.1
Checking gix-revwalk v0.31.0
Checking gix-fs v0.21.1
Checking mio v1.1.1
Checking sem_safe v0.2.1
Checking simd-adler32 v0.3.8
Checking adler2 v2.0.1
Checking signals_receipts v0.2.5
Checking miniz_oxide v0.8.9
Checking gix-tempfile v23.0.0
Checking gix-quote v0.7.1
Checking icu_normalizer v2.1.1
Checking icu_properties v2.1.2
Checking shell-words v1.1.1
Compiling signal-hook v0.3.18
Checking either v1.15.0
Checking iana-time-zone v0.1.65
Compiling unicode-segmentation v1.12.0
Checking idna_adapter v1.2.1
Checking chrono v0.4.44
Compiling convert_case v0.10.0
Checking gix-command v0.9.0
Checking radicle-signals v0.12.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-signals)
Checking signal-hook-registry v1.4.8
Checking colored v2.2.0
Compiling object v0.37.3
Checking utf8_iter v1.0.4
Compiling getrandom v0.3.4
Compiling rustversion v1.0.22
Checking idna v1.1.0
Compiling derive_more-impl v2.1.1
Checking gix-lock v23.0.0
Checking gix-url v0.36.0
Checking gix-config-value v0.18.0
Checking gix-sec v0.14.0
Compiling litrs v1.0.0
Checking unicode-width v0.2.2
Checking gimli v0.32.3
Compiling portable-atomic v1.13.1
Compiling thiserror v1.0.69
Compiling document-features v0.2.12
Checking derive_more v2.1.1
Checking gix-prompt v0.15.0
Checking signal-hook-mio v0.2.5
Checking addr2line v0.25.1
Checking radicle-log v0.2.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-log)
Checking gix-revision v0.45.0
Checking gix-traverse v0.57.0
Checking gix-diff v0.63.0
Checking anstyle-parse v0.2.7
Checking gix-packetline v0.21.5
Checking gix-glob v0.26.0
Compiling thiserror-impl v1.0.69
Checking rustc-demangle v0.1.27
Checking gix-refspec v0.41.0
Checking backtrace v0.3.76
Checking gix-transport v0.57.0
Checking anstream v0.6.21
Checking gix-pack v0.70.0
Checking arc-swap v1.9.1
Checking crossterm v0.29.0
Checking gix-credentials v0.38.0
Checking console v0.16.3
Checking gix-shallow v0.12.0
Checking gix-ref v0.63.0
Checking gix-negotiate v0.31.0
Checking form_urlencoded v1.2.2
Compiling maybe-async v0.2.10
Checking regex v1.12.3
Compiling tree-sitter v0.24.7
Checking unit-prefix v0.5.2
Checking indicatif v0.18.4
Checking gix-protocol v0.61.0
Checking url v2.5.8
Checking gix-odb v0.80.0
Checking inquire v0.9.4
Checking unicode-display-width v0.3.0
Checking uuid v1.22.0
Checking bytes v1.11.1
Checking snapbox-macros v1.1.0
Checking salsa20 v0.10.2
Checking siphasher v0.3.11
Checking clap_lex v1.1.0
Checking similar v3.1.1
Checking streaming-iterator v0.1.9
Compiling crossbeam-utils v0.8.21
Checking strsim v0.11.1
Compiling heck v0.5.0
Checking normalize-line-endings v0.3.0
Compiling clap_derive v4.6.0
Checking snapbox v1.2.2
Checking clap_builder v4.6.0
Checking bloomy v1.2.0
Checking scrypt v0.11.0
Checking systemd-journal-logger v2.2.2
Compiling tree-sitter-bash v0.23.3
Compiling tree-sitter-python v0.23.6
Compiling tree-sitter-css v0.23.2
Compiling tree-sitter-typescript v0.23.2
Compiling tree-sitter-rust v0.23.3
Compiling tree-sitter-html v0.23.2
Compiling tree-sitter-ruby v0.23.1
Compiling tree-sitter-json v0.24.8
Compiling tree-sitter-go v0.23.4
Compiling tree-sitter-md v0.3.2
Compiling tree-sitter-toml-ng v0.6.0
Compiling tree-sitter-c v0.23.4
Checking toml_datetime v0.7.5+spec-1.1.0
Checking serde_spanned v1.0.4
Compiling anyhow v1.0.102
Checking toml_writer v1.0.7+spec-1.1.0
Checking bit-vec v0.8.0
Checking pin-project-lite v0.2.17
Checking tokio v1.50.0
Checking bit-set v0.8.0
Checking toml v0.9.12+spec-1.1.0
Checking sqlite3-sys v0.18.0
Checking sqlite v0.37.0
Checking radicle-crypto v0.19.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-crypto)
Checking clap v4.6.0
Checking rand_core v0.9.5
Checking sysinfo v0.37.2
Compiling radicle-cli v0.23.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-cli)
Checking yansi v1.0.1
Compiling radicle-node v0.21.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-node)
Checking diff v0.1.13
Checking pretty_assertions v1.4.1
Checking human-panic v2.0.6
Checking crossbeam-channel v0.5.15
Checking clap_complete v4.6.0
Checking structured-logger v1.0.5
Checking radicle-systemd v0.13.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-systemd)
Checking tree-sitter-highlight v0.24.7
Checking itertools v0.14.0
Checking socket2 v0.5.10
Checking humantime v2.3.0
Checking timeago v0.4.2
Checking rs-release v0.1.11
Checking lexopt v0.3.2
Compiling escargot v0.5.15
Checking wait-timeout v0.2.1
Checking quick-error v1.2.3
Checking fnv v1.0.7
Checking rusty-fork v0.3.1
Checking rand_xorshift v0.4.0
Checking rand v0.9.2
Checking rand_chacha v0.9.0
Compiling qcheck-macros v1.0.0
Checking num-bigint v0.4.6
Compiling ahash v0.8.12
Checking unarray v0.1.4
Checking proptest v1.10.0
Checking num-complex v0.4.6
Checking env_filter v1.0.0
Checking borrow-or-share v0.2.4
Checking fluent-uri v0.3.2
Checking num-rational v0.4.2
Checking env_logger v0.11.9
Checking num v0.4.3
Checking flate2 v1.1.9
Checking phf_shared v0.11.3
Compiling test-log-macros v0.2.19
Compiling radicle-remote-helper v0.18.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-remote-helper)
Checking outref v0.5.2
Checking hex-literal v1.1.0
Checking vsimd v0.8.0
Checking test-log v0.2.19
Checking phf v0.11.3
Checking referencing v0.30.0
Checking fraction v0.15.3
Checking uuid-simd v0.8.0
Checking fancy-regex v0.14.0
Checking email_address v0.2.9
Checking base64 v0.22.1
Checking num-cmp v0.1.0
Checking bytecount v0.6.9
Checking emojis v0.6.4
Compiling pastey v0.2.1
Checking jsonschema v0.30.0
Checking radicle-windows v0.1.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-windows)
Checking git2 v0.21.0
Checking radicle-oid v0.2.2 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-oid)
Checking radicle-git-metadata v0.2.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-git-metadata)
Checking radicle-term v0.19.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-term)
Checking radicle-core v0.4.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-core)
Checking radicle-cob v0.21.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-cob)
Checking radicle-surf v0.29.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-surf)
Checking radicle-cli-test v0.14.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-cli-test)
Checking radicle-fetch v0.21.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-fetch)
Checking radicle-schemars v0.9.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-schemars)
Checking radicle-protocol v0.9.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-protocol)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 40.58s
+ cargo build --all-targets --workspace
Compiling libc v0.2.183
Compiling cfg-if v1.0.4
Compiling serde_core v1.0.228
Compiling typenum v1.20.1
Compiling memchr v2.8.0
Compiling shlex v1.3.0
Compiling getrandom v0.2.17
Compiling jobserver v0.1.34
Compiling subtle v2.6.1
Compiling rand_core v0.6.4
Compiling const-oid v0.9.6
Compiling cc v1.2.57
Compiling smallvec v1.15.1
Compiling regex-syntax v0.8.10
Compiling aho-corasick v1.1.4
Compiling serde v1.0.228
Compiling zeroize v1.9.0
Compiling regex-automata v0.4.14
Compiling generic-array v0.14.7
Compiling crypto-common v0.1.7
Compiling block-buffer v0.10.4
Compiling digest v0.10.7
Compiling cpufeatures v0.2.17
Compiling thiserror v2.0.18
Compiling fastrand v2.3.0
Compiling scopeguard v1.2.0
Compiling lock_api v0.4.14
Compiling parking_lot_core v0.9.12
Compiling bitflags v2.11.0
Compiling stable_deref_trait v1.2.1
Compiling typeid v1.0.3
Compiling parking_lot v0.12.5
Compiling erased-serde v0.4.10
Compiling itoa v1.0.17
Compiling tinyvec_macros v0.1.1
Compiling gix-trace v0.1.21
Compiling tinyvec v1.11.0
Compiling serde_fmt v1.1.0
Compiling hashbrown v0.16.1
Compiling value-bag-serde1 v1.12.0
Compiling byteorder v1.5.0
Compiling unicode-normalization v0.1.25
Compiling value-bag v1.12.0
Compiling crc32fast v1.5.0
Compiling gix-utils v0.3.2
Compiling log v0.4.29
Compiling same-file v1.0.6
Compiling bstr v1.12.1
Compiling walkdir v2.5.0
Compiling prodash v31.0.0
Compiling zlib-rs v0.6.5
Compiling gix-validate v0.11.1
Compiling hash32 v0.3.1
Compiling heapless v0.8.0
Compiling gix-path v0.12.0
Compiling libm v0.2.16
Compiling getrandom v0.4.3
Compiling linux-raw-sys v0.12.1
Compiling rustix v1.1.4
Compiling num-traits v0.2.19
Compiling faster-hex v0.10.0
Compiling sha1 v0.10.6
Compiling sha1-checked v0.10.0
Compiling zerocopy v0.8.42
Compiling equivalent v1.0.2
Compiling indexmap v2.13.0
Compiling gix-features v0.48.0
Compiling zmij v1.0.21
Compiling gix-hash v0.25.0
Compiling once_cell v1.21.4
Compiling serde_json v1.0.149
Compiling block-padding v0.3.3
Compiling ref-cast v1.0.25
Compiling inout v0.1.4
Compiling sha2 v0.10.9
Compiling dyn-clone v1.0.20
Compiling libz-sys v1.1.25
Compiling cipher v0.4.4
Compiling tempfile v3.27.0
Compiling libgit2-sys v0.18.4+1.9.3
Compiling ppv-lite86 v0.2.21
Compiling der v0.7.10
Compiling spin v0.9.9
Compiling lazy_static v1.5.0
Compiling rand_chacha v0.3.1
Compiling schemars v1.2.1
Compiling rand v0.8.5
Compiling num-integer v0.1.46
Compiling hmac v0.12.1
Compiling universal-hash v0.5.1
Compiling opaque-debug v0.3.1
Compiling spki v0.7.3
Compiling signature v2.2.0
Compiling ff v0.13.1
Compiling base16ct v0.2.0
Compiling group v0.13.0
Compiling sec1 v0.7.3
Compiling crypto-bigint v0.5.5
Compiling num-iter v0.1.45
Compiling aead v0.5.2
Compiling data-encoding v2.10.0
Compiling const-str v0.4.3
Compiling signature v1.6.4
Compiling ed25519 v1.5.3
Compiling elliptic-curve v0.13.8
Compiling base256emoji v1.0.2
Compiling data-encoding-macro v0.1.19
Compiling poly1305 v0.8.0
Compiling rfc6979 v0.4.0
Compiling qcheck v1.0.0
Compiling chacha20 v0.9.1
Compiling gix-error v0.2.3
Compiling base-x v0.2.11
Compiling amplify_num v0.5.3
Compiling ascii v1.1.0
Compiling multibase v0.9.2
Compiling ecdsa v0.16.9
Compiling primeorder v0.13.6
Compiling ec25519 v0.1.0
Compiling polyval v0.6.2
Compiling base64ct v1.8.3
Compiling amplify v4.9.0
Compiling pem-rfc7468 v0.7.0
Compiling cyphergraphy v0.3.1
Compiling ghash v0.5.1
Compiling pkcs8 v0.10.2
Compiling pbkdf2 v0.12.2
Compiling ctr v0.9.2
Compiling aes v0.8.4
Compiling sqlite3-src v0.7.0
Compiling radicle-git-ref-format v0.2.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-git-ref-format)
Compiling keccak v0.1.6
Compiling aes-gcm v0.10.3
Compiling sha3 v0.10.8
Compiling curve25519-dalek v4.1.3
Compiling pkcs1 v0.7.5
Compiling ssh-encoding v0.2.0
Compiling num-bigint-dig v0.8.6
Compiling ed25519 v2.2.3
Compiling blowfish v0.9.1
Compiling cbc v0.1.2
Compiling base32 v0.4.0
Compiling percent-encoding v2.3.2
Compiling cypheraddr v0.4.1
Compiling ssh-cipher v0.2.0
Compiling bcrypt-pbkdf v0.10.0
Compiling ed25519-dalek v2.2.0
Compiling rsa v0.9.10
Compiling p256 v0.13.2
Compiling p384 v0.13.1
Compiling p521 v0.13.3
Compiling chacha20poly1305 v0.10.1
Compiling noise-framework v0.4.1
Compiling ssh-key v0.6.7
Compiling zerofrom v0.1.6
Compiling socks5-client v0.4.3
Compiling secrecy v0.10.3
Compiling yoke v0.8.1
Compiling ssh-agent-lib v0.6.0
Compiling cyphernet v0.5.4
Compiling nonempty v0.9.0
Compiling anstyle-query v1.1.5
Compiling jiff v0.2.23
Compiling utf8parse v0.2.2
Compiling zerovec v0.11.5
Compiling radicle-localtime v0.1.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-localtime)
Compiling errno v0.3.14
Compiling colorchoice v1.0.5
Compiling is_terminal_polyfill v1.70.2
Compiling anstyle v1.0.14
Compiling base64 v0.21.7
Compiling gix-hashtable v0.15.0
Compiling siphasher v1.0.2
Compiling tree-sitter-language v0.1.7
Compiling radicle-dag v0.10.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-dag)
Compiling memmap2 v0.9.10
Compiling gix-date v0.15.3
Compiling gix-actor v0.41.0
Compiling gix-object v0.60.0
Compiling nonempty v0.12.0
Compiling tinystr v0.8.2
Compiling gix-chunk v0.7.1
Compiling litemap v0.8.1
Compiling writeable v0.6.2
Compiling radicle v0.25.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle)
Compiling icu_locale_core v2.1.1
Compiling gix-commitgraph v0.37.0
Compiling zerotrie v0.2.3
Compiling potential_utf v0.1.4
Compiling anstyle-parse v1.0.0
Compiling serde-untagged v0.1.9
Compiling bytesize v2.3.1
Compiling fast-glob v0.3.3
Compiling dunce v1.0.5
Compiling anstream v1.0.0
Compiling icu_collections v2.1.1
Compiling icu_provider v2.1.1
Compiling gix-revwalk v0.31.0
Compiling gix-fs v0.21.1
Compiling mio v1.1.1
Compiling sem_safe v0.2.1
Compiling simd-adler32 v0.3.8
Compiling adler2 v2.0.1
Compiling miniz_oxide v0.8.9
Compiling signals_receipts v0.2.5
Compiling gix-tempfile v23.0.0
Compiling icu_normalizer_data v2.1.1
Compiling icu_properties_data v2.1.2
Compiling gix-quote v0.7.1
Compiling unicode-segmentation v1.12.0
Compiling icu_properties v2.1.2
Compiling icu_normalizer v2.1.1
Compiling either v1.15.0
Compiling shell-words v1.1.1
Compiling iana-time-zone v0.1.65
Compiling gix-command v0.9.0
Compiling chrono v0.4.44
Compiling idna_adapter v1.2.1
Compiling convert_case v0.10.0
Compiling radicle-signals v0.12.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-signals)
Compiling signal-hook-registry v1.4.8
Compiling colored v2.2.0
Compiling utf8_iter v1.0.4
Compiling idna v1.1.0
Compiling signal-hook v0.3.18
Compiling derive_more-impl v2.1.1
Compiling gix-lock v23.0.0
Compiling gix-url v0.36.0
Compiling gix-config-value v0.18.0
Compiling gix-sec v0.14.0
Compiling gimli v0.32.3
Compiling unicode-width v0.2.2
Compiling gix-prompt v0.15.0
Compiling derive_more v2.1.1
Compiling signal-hook-mio v0.2.5
Compiling getrandom v0.3.4
Compiling object v0.37.3
Compiling addr2line v0.25.1
Compiling radicle-log v0.2.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-log)
Compiling gix-traverse v0.57.0
Compiling gix-revision v0.45.0
Compiling gix-diff v0.63.0
Compiling anstyle-parse v0.2.7
Compiling gix-glob v0.26.0
Compiling gix-packetline v0.21.5
Compiling rustc-demangle v0.1.27
Compiling gix-refspec v0.41.0
Compiling backtrace v0.3.76
Compiling thiserror v1.0.69
Compiling gix-transport v0.57.0
Compiling anstream v0.6.21
Compiling gix-pack v0.70.0
Compiling arc-swap v1.9.1
Compiling sqlite3-sys v0.18.0
Compiling sqlite v0.37.0
Compiling crossterm v0.29.0
Compiling radicle-crypto v0.19.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-crypto)
Compiling gix-credentials v0.38.0
Compiling portable-atomic v1.13.1
Compiling console v0.16.3
Compiling gix-shallow v0.12.0
Compiling gix-ref v0.63.0
Compiling gix-negotiate v0.31.0
Compiling form_urlencoded v1.2.2
Compiling regex v1.12.3
Compiling tree-sitter v0.24.7
Compiling unit-prefix v0.5.2
Compiling indicatif v0.18.4
Compiling gix-protocol v0.61.0
Compiling url v2.5.8
Compiling gix-odb v0.80.0
Compiling inquire v0.9.4
Compiling unicode-display-width v0.3.0
Compiling uuid v1.22.0
Compiling bytes v1.11.1
Compiling snapbox-macros v1.1.0
Compiling salsa20 v0.10.2
Compiling streaming-iterator v0.1.9
Compiling strsim v0.11.1
Compiling similar v3.1.1
Compiling clap_lex v1.1.0
Compiling siphasher v0.3.11
Compiling normalize-line-endings v0.3.0
Compiling bloomy v1.2.0
Compiling clap_builder v4.6.0
Compiling snapbox v1.2.2
Compiling scrypt v0.11.0
Compiling systemd-journal-logger v2.2.2
Compiling tree-sitter-python v0.23.6
Compiling tree-sitter-html v0.23.2
Compiling tree-sitter-bash v0.23.3
Compiling tree-sitter-md v0.3.2
Compiling tree-sitter-go v0.23.4
Compiling tree-sitter-typescript v0.23.2
Compiling tree-sitter-c v0.23.4
Compiling tree-sitter-rust v0.23.3
Compiling tree-sitter-ruby v0.23.1
Compiling tree-sitter-toml-ng v0.6.0
Compiling tree-sitter-json v0.24.8
Compiling tree-sitter-css v0.23.2
Compiling serde_spanned v1.0.4
Compiling toml_datetime v0.7.5+spec-1.1.0
Compiling toml_writer v1.0.7+spec-1.1.0
Compiling bit-vec v0.8.0
Compiling pin-project-lite v0.2.17
Compiling bit-set v0.8.0
Compiling tokio v1.50.0
Compiling toml v0.9.12+spec-1.1.0
Compiling clap v4.6.0
Compiling crossbeam-utils v0.8.21
Compiling rand_core v0.9.5
Compiling sysinfo v0.37.2
Compiling radicle-node v0.21.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-node)
Compiling yansi v1.0.1
Compiling diff v0.1.13
Compiling radicle-cli v0.23.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-cli)
Compiling pretty_assertions v1.4.1
Compiling human-panic v2.0.6
Compiling crossbeam-channel v0.5.15
Compiling clap_complete v4.6.0
Compiling structured-logger v1.0.5
Compiling anyhow v1.0.102
Compiling radicle-systemd v0.13.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-systemd)
Compiling tree-sitter-highlight v0.24.7
Compiling itertools v0.14.0
Compiling socket2 v0.5.10
Compiling timeago v0.4.2
Compiling rs-release v0.1.11
Compiling humantime v2.3.0
Compiling lexopt v0.3.2
Compiling git2 v0.21.0
Compiling wait-timeout v0.2.1
Compiling quick-error v1.2.3
Compiling fnv v1.0.7
Compiling escargot v0.5.15
Compiling rusty-fork v0.3.1
Compiling rand_xorshift v0.4.0
Compiling rand v0.9.2
Compiling rand_chacha v0.9.0
Compiling num-bigint v0.4.6
Compiling unarray v0.1.4
Compiling proptest v1.10.0
Compiling num-complex v0.4.6
Compiling num-rational v0.4.2
Compiling env_filter v1.0.0
Compiling radicle-oid v0.2.2 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-oid)
Compiling radicle-git-metadata v0.2.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-git-metadata)
Compiling radicle-cob v0.21.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-cob)
Compiling radicle-core v0.4.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-core)
Compiling radicle-surf v0.29.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-surf)
Compiling radicle-term v0.19.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-term)
Compiling borrow-or-share v0.2.4
Compiling fluent-uri v0.3.2
Compiling env_logger v0.11.9
Compiling radicle-cli-test v0.14.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-cli-test)
Compiling num v0.4.3
Compiling ahash v0.8.12
Compiling flate2 v1.1.9
Compiling phf_shared v0.11.3
Compiling radicle-remote-helper v0.18.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-remote-helper)
Compiling hex-literal v1.1.0
Compiling outref v0.5.2
Compiling vsimd v0.8.0
Compiling phf v0.11.3
Compiling test-log v0.2.19
Compiling referencing v0.30.0
Compiling fraction v0.15.3
Compiling uuid-simd v0.8.0
Compiling fancy-regex v0.14.0
Compiling email_address v0.2.9
Compiling bytecount v0.6.9
Compiling num-cmp v0.1.0
Compiling base64 v0.22.1
Compiling emojis v0.6.4
Compiling jsonschema v0.30.0
Compiling radicle-fetch v0.21.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-fetch)
Compiling radicle-protocol v0.9.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-protocol)
Compiling radicle-schemars v0.9.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-schemars)
Compiling radicle-windows v0.1.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-windows)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 00s
+ cargo doc --workspace --no-deps --all-features
Downloading crates ...
Downloaded thousands v0.2.0
Downloaded minicbor v0.13.2
Downloaded mintex v0.1.4
Downloaded rustc-hash v1.1.0
Downloaded dhat v0.3.3
Checking regex-automata v0.4.14
Compiling num-traits v0.2.19
Checking once_cell v1.21.4
Compiling syn v1.0.109
Checking tempfile v3.27.0
Compiling minicbor v0.13.2
Checking num-integer v0.1.46
Checking num-iter v0.1.45
Checking num-bigint-dig v0.8.6
Checking radicle-git-metadata v0.2.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-git-metadata)
Checking rusty-fork v0.3.1
Checking radicle-localtime v0.1.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-localtime)
Compiling amplify_syn v2.0.1
Checking rsa v0.9.10
Checking bstr v1.12.1
Checking ssh-key v0.6.7
Checking proptest v1.10.0
Compiling amplify_derive v4.0.1
Checking gix-validate v0.11.1
Checking gix-path v0.12.0
Checking gix-features v0.48.0
Checking gix-hash v0.25.0
Checking gix-error v0.2.3
Checking radicle-git-ref-format v0.2.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-git-ref-format)
Checking gix-date v0.15.3
Checking ssh-agent-lib v0.6.0
Checking radicle-oid v0.2.2 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-oid)
Checking gix-actor v0.41.0
Checking gix-hashtable v0.15.0
Checking gix-chunk v0.7.1
Checking gix-object v0.60.0
Checking radicle-dag v0.10.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-dag)
Checking gix-commitgraph v0.37.0
Checking gix-fs v0.21.1
Checking gix-quote v0.7.1
Checking amplify v4.9.0
Checking gix-revwalk v0.31.0
Checking gix-command v0.9.0
Checking gix-tempfile v23.0.0
Checking miniz_oxide v0.8.9
Checking chrono v0.4.44
Checking gix-lock v23.0.0
Checking cyphergraphy v0.3.1
Checking radicle-signals v0.12.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-signals)
Checking gix-url v0.36.0
Checking gix-config-value v0.18.0
Checking cypheraddr v0.4.1
Checking noise-framework v0.4.1
Checking backtrace v0.3.76
Checking idna v1.1.0
Checking socks5-client v0.4.3
Checking gix-prompt v0.15.0
Checking inquire v0.9.4
Checking cyphernet v0.5.4
Checking radicle-crypto v0.19.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-crypto)
Checking gix-traverse v0.57.0
Checking gix-revision v0.45.0
Checking gix-diff v0.63.0
Checking gix-glob v0.26.0
Checking radicle-cob v0.21.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-cob)
Checking radicle-core v0.4.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-core)
Checking gix-packetline v0.21.5
Checking regex v1.12.3
Checking url v2.5.8
Checking gix-transport v0.57.0
Checking tree-sitter v0.24.7
Checking radicle v0.25.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle)
Checking gix-refspec v0.41.0
Checking gix-pack v0.70.0
Checking radicle-log v0.2.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-log)
Checking gix-credentials v0.38.0
Checking gix-ref v0.63.0
Checking gix-shallow v0.12.0
Checking gix-negotiate v0.31.0
Checking radicle-term v0.19.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-term)
Checking gix-protocol v0.61.0
Checking gix-odb v0.80.0
Checking uuid v1.22.0
Checking human-panic v2.0.6
Checking tree-sitter-toml-ng v0.6.0
Checking tree-sitter-highlight v0.24.7
Checking radicle-surf v0.29.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-surf)
Checking mintex v0.1.4
Checking thousands v0.2.0
Compiling radicle-node v0.21.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-node)
Checking rustc-hash v1.1.0
Checking dhat v0.3.3
Checking radicle-systemd v0.13.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-systemd)
Documenting radicle-cli-test v0.14.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-cli-test)
Documenting radicle-systemd v0.13.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-systemd)
Documenting radicle-surf v0.29.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-surf)
Documenting radicle v0.25.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle)
Documenting radicle-term v0.19.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-term)
Documenting radicle-cob v0.21.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-cob)
Documenting radicle-core v0.4.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-core)
Documenting radicle-log v0.2.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-log)
Documenting radicle-crypto v0.19.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-crypto)
Documenting radicle-signals v0.12.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-signals)
Documenting radicle-oid v0.2.2 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-oid)
Documenting radicle-git-ref-format v0.2.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-git-ref-format)
Documenting radicle-git-metadata v0.2.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-git-metadata)
Documenting radicle-localtime v0.1.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-localtime)
Documenting radicle-dag v0.10.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-dag)
Documenting radicle-windows v0.1.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-windows)
Checking radicle-fetch v0.21.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-fetch)
Checking radicle-cli v0.23.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-cli)
Documenting radicle-cli v0.23.0 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-cli)
Checking radicle-protocol v0.9.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-protocol)
Documenting radicle-protocol v0.9.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-protocol)
Documenting radicle-node v0.21.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-node)
Documenting radicle-fetch v0.21.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-fetch)
Documenting radicle-schemars v0.9.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-schemars)
Documenting radicle-remote-helper v0.18.1 (/fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/crates/radicle-remote-helper)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.29s
Generated /fb6f5e8e-8620-4395-a55e-e44df9a9f437/w/target/doc/radicle/index.html and 22 other files
+ cargo test --workspace --no-fail-fast
Finished `test` profile [unoptimized + debuginfo] target(s) in 0.19s
Running unittests src/lib.rs (target/debug/deps/radicle-e47768bfcd5fead6)
running 406 tests
test canonical::formatter::test::ascii_control_characters ... ok
test canonical::formatter::test::securesystemslib_asserts ... ok
test canonical::formatter::test::ordered_nested_object ... ok
test cob::cache::migrations::_2::tests::patch_json_deserialization ... ok
test cob::cache::tests::check_version ... ok
test cob::common::test::color ... ok
test cob::common::test::title ... ok
test cob::common::test::emojis ... ok
test cob::cache::tests::migrate_to ... ok
test cob::cache::migrations::_2::tests::migration_2 ... ok
test cob::identity::test::accepted_sibling_causes_rejection ... ok
test cob::identity::test::cannot_redact_previously_accepted_revision ... ok
test cob::identity::test::accept_rejects_sibling_accept ... ok
test cob::identity::test::authorization_based_on_parent_not_current ... ok
test cob::identity::test::concurrent_redact_and_accept_converge ... ok
test cob::identity::test::concurrent_accept_before_redact_converge ... ok
test cob::identity::test::evaluates_queued_children ... ok
test cob::identity::test::cascading_rejections ... ok
test cob::identity::test::evaluation_strips_author_accept_for_sibling_creation ... ok
test cob::identity::test::evaluation_skips_sibling_accept_in_old_history ... ok
test cob::identity::test::has_accepted_active_sibling_returns_true_when_sibling_accepted ... ok
test cob::identity::test::evaluates_queued_children_with_new_delegate ... ok
test cob::identity::test::identity_update_rejected ... ok
test cob::identity::test::identity_updates ... ok
test cob::identity::test::identity_redact_revision ... ok
test cob::identity::test::prop_json_eq_str ... ok
test cob::identity::test::identity_updates_concurrent ... ok
test cob::identity::test::identity_cannot_redact_terminal_states ... ok
test cob::identity::test::identity_updates_concurrent_outdated ... ok
test cob::identity::test::redact_parent_cascades ... ok
test cob::identity::test::reject_concurrent ... ok
test cob::identity::test::remove_delegate_concurrent ... ok
test cob::identity::test::valid_identity ... ok
test cob::issue::cache::tests::counts ... ok
test cob::issue::cache::tests::get ... ok
test cob::issue::cache::tests::is_empty ... ok
test cob::issue::cache::tests::list ... ok
test cob::identity::test::update_rejects_second_sibling_proposal ... ok
test cob::issue::cache::tests::list_by_status ... ok
test cob::issue::cache::tests::remove ... ok
test cob::issue::test::embeds ... ok
test cob::identity::test::terminal_states_concurrent ... ok
test cob::issue::test::embeds_edit ... ok
test cob::issue::test::invalid_actions ... ok
test cob::issue::test::invalid_cob ... ok
test cob::issue::test::invalid_tx ... ok
test cob::issue::test::invalid_tx_reference ... ok
test cob::issue::test::concurrency ... ok
test cob::issue::test::issue_all ... ok
test cob::issue::test::issue_comment ... ok
test cob::issue::test::issue_create_and_assign ... ok
test cob::issue::test::issue_comment_redact ... ok
test cob::issue::test::issue_create_and_change_state ... ok
test cob::issue::test::issue_create_and_get ... ok
test cob::issue::test::issue_create_and_unassign ... ok
test cob::issue::test::issue_create_and_reassign ... ok
test cob::issue::test::issue_edit ... ok
test cob::issue::test::issue_edit_description ... ok
test cob::issue::test::issue_label ... ok
test cob::issue::test::issue_multilines ... ok
test cob::issue::test::issue_state_serde ... ok
test cob::issue::test::ordering ... ok
test cob::patch::actions::test::review_edit ... ok
test cob::issue::test::issue_react ... ok
test cob::issue::test::issue_reply ... ok
test cob::patch::cache::tests::counts ... ok
test cob::patch::cache::tests::is_empty ... ok
test cob::patch::cache::tests::get ... ok
test cob::patch::cache::tests::list ... ok
test cob::patch::cache::tests::list_by_status ... ok
test cob::patch::encoding::review::test::review_deserialize_summary_migration_null_summary ... ok
test cob::patch::encoding::review::test::review_deserialize_summary_migration_with_summary ... ok
test cob::patch::encoding::review::test::review_deserialize_summary_migration_without_summary ... ok
test cob::patch::encoding::review::test::review_deserialize_summary_v2 ... ok
test cob::patch::encoding::review::test::review_summary ... ok
test cob::patch::test::json ... ok
test cob::patch::test::json_serialisation_target ... ok
test cob::patch::test::json_serialization ... ok
test cob::patch::test::merge_target_resolution ... ok
test cob::patch::test::patch_create_and_get ... ok
test cob::patch::cache::tests::remove ... ok
test cob::patch::test::patch_discussion ... ok
test cob::patch::test::patch_merge ... ok
test cob::patch::test::patch_merge_authorization_ref_formats ... ok
test cob::patch::test::patch_merge_custom_destination_authorized ... ok
test cob::patch::test::patch_merge_custom_destination_unauthorized ... ok
test cob::patch::test::patch_review ... ok
test cob::patch::test::patch_redact ... ok
test cob::patch::test::patch_review_comment ... ok
test cob::patch::test::patch_review_duplicate ... ok
test cob::patch::test::patch_review_edit ... ok
test cob::patch::test::patch_review_edit_comment ... ok
test cob::patch::test::patch_review_remove_summary ... ok
test cob::patch::test::patch_review_revision_redact ... ok
test cob::patch::test::reactions_json_serialization ... ok
test cob::patch::test::revision_edit_redact ... ok
test cob::patch::test::revision_reaction ... ok
test cob::patch::test::revision_review_merge_redacted ... ok
test cob::patch::test::target_branch ... ok
test cob::patch::test::test_patch_merge_quorum_ignores_disallowed_merges ... ok
test cob::patch::test::test_patch_merge_quorum_of_default_branch ... ok
test cob::patch::test::test_patch_merge_quorum_uses_rule_threshold ... ok
test cob::patch::test::test_patch_merge_quorum_without_matching_rule ... ok
test cob::stream::tests::all_from ... ok
test cob::stream::tests::all_from_until ... ok
test cob::stream::tests::all_until ... ok
test cob::stream::tests::from_until ... ok
test cob::patch::test::patch_update ... ok
test cob::thread::tests::comment_edit_missing ... ok
test cob::thread::tests::comment_edit_redacted ... ok
test cob::thread::tests::comment_redact_missing ... ok
test cob::thread::tests::duplicate_comments ... ok
test cob::thread::tests::edit_comment ... ok
test cob::stream::tests::regression_from_until ... ok
test cob::thread::tests::redact_comment ... ok
test cob::thread::tests::resolve_and_unresolve_multiple_comments_in_one_operation ... ok
test cob::thread::tests::timeline ... ok
test git::canonical::protect::tests::refs_rad ... ok
test git::canonical::protect::tests::refs_rad_id ... ok
test git::canonical::protect::tests::refs_radieschen ... ok
test git::canonical::quorum::test::merge_base_commutative ... ok
test git::canonical::quorum::test::merge_bases ... ok
test git::canonical::rules::test::canonical ... ok
test git::canonical::rules::test::deserialization ... ok
test git::canonical::rules::test::deserialize_extensions ... ok
test git::canonical::rules::test::matches_exactly_curly_braces ... ok
test git::canonical::rules::test::matches_expands_globs_appropriately ... ok
test git::canonical::rules::test::most_specific_match_ignores_lexicographic_order ... ok
test git::canonical::rules::test::ordering ... ok
test git::canonical::rules::test::property::identity ... ok
test cob::thread::tests::prop_ordering ... ok
test git::canonical::rules::test::property::prefix ... ok
test git::canonical::rules::test::property::prefix_negative ... ok
test git::canonical::rules::test::property::suffix ... ok
test git::canonical::rules::test::property::suffix_negative ... ok
test git::canonical::rules::test::roundtrip ... ok
test git::canonical::rules::test::property::trailing_asterisk_partial_component ... ok
test git::canonical::rules::test::rule_validate_success ... ok
test git::canonical::rules::test::special_branches ... ok
test git::canonical::symbolic::test::canonical_roundtrip ... ok
test git::canonical::symbolic::test::deserialize_infinite ... ok
test git::canonical::symbolic::test::deserialize_order ... ok
test git::canonical::symbolic::test::deserialize_valid ... ok
test git::canonical::symbolic::test::infinite_multi ... ok
test git::canonical::symbolic::test::infinite_single ... ok
test git::canonical::symbolic::test::raw_is_freely_mutable ... ok
test git::canonical::symbolic::test::reclassification_combine ... ok
test git::canonical::symbolic::test::reclassification_combine_reverse ... ok
test git::canonical::symbolic::test::reclassification_diamond ... ok
test git::canonical::symbolic::test::reclassification_order_invariant ... ok
test git::canonical::symbolic::test::reclassification_reverse_chain ... ok
test git::canonical::symbolic::test::resolve_two_hop_chain ... ok
test git::canonical::symbolic::test::target_classification ... ok
test git::canonical::symbolic::test::target_classification_symbolic ... ok
test git::canonical::symbolic::test::target_reclassification ... ok
test git::canonical::symbolic::test::target_reclassification_commutative ... ok
test git::canonical::tests::commit_quorum_fork_of_a_fork ... ok
test git::canonical::tests::commit_quorum_forked_merge_commits ... ok
test git::canonical::tests::commit_quorum_groups ... ok
test git::canonical::tests::commit_quorum_linear ... ok
test git::canonical::tests::commit_quorum_merges ... ok
test git::canonical::tests::commit_quorum_single ... ok
test git::canonical::tests::commit_quorum_three_way_fork ... ok
test git::canonical::tests::commit_quorum_two_way_fork ... ok
test git::canonical::tests::quorum_different_types ... ok
test git::canonical::rules::test::rule_validate_failures ... ok
test git::canonical::tests::tag_quorum ... ok
test identity::crefs::tests::invalid_clash ... ok
test identity::crefs::tests::invalid_clash_asterisk_name ... ok
test identity::crefs::tests::invalid_dangling ... ok
test identity::crefs::tests::omit_symbolic ... ok
test identity::crefs::tests::valid ... ok
test identity::crefs::tests::valid_asterisk_target ... ok
test identity::did::test::did_encode_decode ... ok
test identity::did::test::did_vectors ... ok
test identity::doc::test::canonical_doc ... ok
test identity::doc::test::canonical_example ... ok
test identity::doc::test::default_branch_clash ... ok
test identity::doc::test::default_branch_without_project ... ok
test identity::doc::test::duplicate_dids ... ok
test identity::doc::test::encode_preserves_symbolic_chain ... ok
test identity::doc::test::future_version_error ... ok
test identity::doc::test::is_valid_version ... ok
test identity::doc::test::max_delegates ... ok
test identity::doc::test::not_found ... ok
test identity::doc::test::parse_version ... ok
test git::canonical::tests::quorum_properties ... ok
test identity::doc::test::visibility_json ... ok
test identity::doc::update::test::can_update_crefs ... ok
test identity::doc::update::test::cannot_include_default_branch_rule ... ok
test identity::doc::update::test::default_branch_rule_exists_after_verification ... ok
test identity::project::test::project_name ... ok
test node::address::store::test::alias ... ok
test node::address::store::test::disconnected ... ok
test node::address::store::test::disconnected_ban ... ok
test identity::doc::test::prop_encode_decode ... ok
test node::address::store::test::entries ... ok
test node::address::store::test::entries_skips_unparsable_address ... ok
test node::address::store::test::get_none ... ok
test node::address::store::test::insert_and_get ... ok
test node::address::store::test::insert_and_remove ... ok
test node::address::store::test::insert_and_update ... ok
test node::address::store::test::insert_duplicate ... ok
test node::address::store::test::node_aliases ... ok
test node::address::store::test::remove_nothing ... ok
test node::address::store::test::skip_invalid_address_type ... ok
test node::address::store::test::skip_mismatched_address_type ... ok
test node::command::test::command_result ... ok
test node::config::test::deserialize_migrating_scope ... ok
test node::config::test::fetch_level_min ... ok
test node::config::test::onion_absent ... ok
test node::config::test::onion_null ... ok
test node::config::test::partial ... ok
test node::config::test::regression_ipv6_address_brackets ... ok
test node::config::test::regression_ipv6_address_no_brackets ... ok
test node::config::test::serialize_migrating_scope ... ok
test node::config::test::user_agent_custom ... ok
test node::config::test::user_agent_default ... ok
test node::config::test::user_agent_default_explicit ... ok
test node::config::test::user_agent_opt_out ... ok
test node::db::config::test::database_config_valid_combinations ... ok
test node::db::config::test::invalid ... ok
test node::db::test::migration_8::all_ipv6_formatted_dns_addresses_are_retyped ... ok
test node::db::test::migration_8::dns_address_starting_with_bracket_but_missing_closing_bracket_colon_is_unaffected ... ok
test node::db::test::migration_8::dns_address_with_bracket_not_at_start_is_unaffected ... ok
test node::db::test::migration_8::ipv4_address_is_unaffected ... ok
test node::db::test::migration_8::ipv6_formatted_dns_address_is_deleted_when_correct_ipv6_row_already_exists ... ok
test node::db::test::migration_8::ipv6_formatted_dns_address_is_retyped_to_ipv6 ... ok
test node::db::test::migration_8::migration_applies_to_all_nodes ... ok
test node::db::test::migration_8::plain_dns_hostname_without_brackets_is_unaffected ... ok
test node::db::test::migration_8::retype_preserves_address_metadata ... ok
test node::db::test::migration_9::bracketed_non_ipv6_garbage_is_deleted ... ok
test node::db::test::migration_9::dns_row_is_unaffected_even_when_inner_part_has_no_colon ... ok
test node::db::test::migration_9::empty_brackets_ipv6_row_is_deleted ... ok
test node::db::test::migration_9::full_ipv6_address_is_kept ... ok
test node::db::test::migration_9::ipv4_row_is_unaffected ... ok
test node::db::test::migration_9::loopback_address_is_kept ... ok
test node::db::test::migration_9::unspecified_address_is_kept ... ok
test node::db::test::version ... ok
test node::features::test::operations ... ok
test node::notifications::store::test::branch_notifications ... ok
test node::notifications::store::test::clear ... ok
test node::notifications::store::test::cob_notifications ... ok
test node::notifications::store::test::counts_by_repo ... ok
test node::notifications::store::test::duplicate_notifications ... ok
test node::notifications::store::test::notification_status ... ok
test node::policy::store::test::follow_and_unfollow_node ... ok
test node::policy::store::test::node_aliases ... ok
test node::policy::store::test::node_policies ... ok
test node::policy::store::test::node_policy ... ok
test node::policy::store::test::repo_policies ... ok
test node::policy::store::test::repo_policy ... ok
test node::policy::store::test::seed_and_unseed_repo ... ok
test node::policy::store::test::update_alias ... ok
test node::policy::store::test::update_scope ... ok
test node::refs::store::test::count ... ok
test node::refs::store::test::set_and_delete ... ok
test node::refs::store::test::set_and_get ... ok
test node::routing::test::count ... ok
test node::routing::test::entries ... ok
test node::routing::test::insert_and_get ... ok
test node::routing::test::insert_and_get_resources ... ok
test node::routing::test::insert_and_remove ... ok
test node::routing::test::insert_duplicate ... ok
test node::routing::test::insert_existing_updated_time ... ok
test node::routing::test::len ... ok
test node::address::store::test::empty ... ok
test node::routing::test::remove_many ... ok
test node::routing::test::remove_redundant ... ok
test node::routing::test::prune ... ok
test node::routing::test::update_existing_multi ... ok
test node::sync::announce::test::all_synced_nodes_are_preferred_seeds ... ok
test node::sync::announce::test::announcer_adapts_target_to_reach ... ok
test node::sync::announce::test::announcer_preferred_seeds_or_replica_factor ... ok
test node::sync::announce::test::announcer_reached_max_replication_target ... ok
test node::sync::announce::test::announcer_reached_min_replication_target ... ok
test node::sync::announce::test::announcer_reached_preferred_seeds ... ok
test node::sync::announce::test::announcer_synced_with_unknown_node ... ok
test node::sync::announce::test::announcer_timed_out ... ok
test node::sync::announce::test::cannot_construct_announcer ... ok
test node::sync::announce::test::announcer_with_replication_factor_zero_and_preferred_seeds ... ok
test node::sync::announce::test::construct_only_preferred_seeds_provided ... ok
test node::sync::announce::test::invariant_progress_should_match_state ... ok
test node::sync::announce::test::construct_node_appears_in_multiple_input_sets ... ok
test node::sync::announce::test::local_node_in_multiple_sets ... ok
test node::sync::announce::test::local_node_in_preferred_seeds ... ok
test node::sync::announce::test::local_node_in_synced_set ... ok
test node::sync::announce::test::local_node_in_unsynced_set ... ok
test node::sync::announce::test::local_node_only_in_all_sets_results_in_no_seeds_error ... ok
test node::sync::announce::test::preferred_seeds_already_synced ... ok
test node::sync::announce::test::synced_with_local_node_is_ignored ... ok
test node::sync::announce::test::synced_with_same_node_multiple_times ... ok
test node::sync::announce::test::timed_out_after_reaching_success ... ok
test node::sync::fetch::test::all_nodes_are_candidates ... ok
test node::sync::fetch::test::all_nodes_are_fetchable ... ok
test node::sync::fetch::test::could_not_reach_target ... ok
test node::sync::fetch::test::ignores_duplicates_and_local_node ... ok
test node::sync::fetch::test::preferred_seeds_target_returned_over_replicas ... ok
test node::sync::fetch::test::reaches_target_of_max_replicas ... ok
test node::sync::fetch::test::reaches_target_of_preferred_seeds ... ok
test node::sync::fetch::test::reaches_target_of_replicas ... ok
test node::sync::test::ensure_replicas_construction ... ok
test node::sync::test::replicas_constrain_to ... ok
test node::test::address ... ok
test node::test::alias ... ok
test node::test::user_agent ... ok
test node::timestamp::tests::timestamp_max ... ok
test node::test::command_result ... ok
test profile::test::canonicalize_home ... ok
test profile::test::config ... ok
test rad::tests::checkout ... ok
test rad::tests::fork ... ok
test rad::tests::init ... ok
test profile::config::test::schema ... ok
test storage::git::tests::references_of ... ok
test storage::git::transport::local::url::test::url_parse ... ok
test storage::git::transport::local::url::test::url_to_string ... ok
test storage::git::transport::remote::url::test::url_parse ... ok
test storage::git::tests::sign_refs ... ok
test storage::refs::sigrefs::git::properties::idempotent_write ... ok
test cob::patch::cache::tests::find_by_revision ... ok
test storage::refs::sigrefs::git::properties::initial_commit_roundtrip ... ok
test cob::identity::test::property::prop_invariants ... ok
test storage::refs::sigrefs::read::test::commit_reader::identity_root_error ... ok
test storage::refs::sigrefs::read::test::commit_reader::missing_commit ... ok
test storage::refs::sigrefs::read::test::commit_reader::read_ok ... ok
test storage::refs::sigrefs::read::test::commit_reader::too_many_parents ... ok
test storage::refs::sigrefs::read::test::commit_reader::tree_error ... ok
test storage::refs::sigrefs::read::test::identity_root_reader::doc_blob_error ... ok
test storage::refs::sigrefs::read::test::identity_root_reader::missing_identity ... ok
test storage::refs::sigrefs::read::test::identity_root_reader::read_ok_none ... ok
test storage::refs::sigrefs::read::test::identity_root_reader::read_ok_some ... ok
test storage::refs::sigrefs::read::test::resolve_tip::find_reference_error ... ok
test storage::refs::sigrefs::read::test::resolve_tip::missing_sigrefs ... ok
test storage::refs::sigrefs::read::test::resolve_tip::resolve_tip_ok ... ok
test storage::refs::sigrefs::read::test::signed_refs_reader::detect_parent::root_without_parent ... ok
test storage::refs::sigrefs::read::test::signed_refs_reader::detect_parent::root_without_root ... ok
test storage::refs::sigrefs::read::test::signed_refs_reader::downgrade::parent ... ok
test storage::refs::sigrefs::read::test::signed_refs_reader::downgrade::restore ... ok
test storage::refs::sigrefs::read::test::signed_refs_reader::downgrade::root ... ok
test storage::refs::sigrefs::read::test::signed_refs_reader::downgrade::root_with_parent ... ok
test storage::refs::sigrefs::read::test::signed_refs_reader::head_commit_error ... ok
test storage::refs::sigrefs::read::test::signed_refs_reader::head_verify_mismatched_identity_error ... ok
test storage::refs::sigrefs::read::test::signed_refs_reader::head_verify_signature_error ... ok
test storage::refs::sigrefs::read::test::signed_refs_reader::invalid_parent ... ok
test storage::refs::sigrefs::read::test::signed_refs_reader::read_ok_no_parent ... ok
test storage::refs::sigrefs::read::test::signed_refs_reader::read_ok_parent ... ok
test storage::refs::sigrefs::read::test::signed_refs_reader::read_ok_root ... ok
test storage::refs::sigrefs::read::test::signed_refs_reader::replay::alternating ... ok
test storage::refs::sigrefs::read::test::signed_refs_reader::replay::chain ... ok
test storage::refs::sigrefs::read::test::signed_refs_reader::replay::multiple ... ok
test storage::refs::sigrefs::read::test::signed_refs_reader::replay::root_at_head ... ok
test storage::refs::sigrefs::read::test::signed_refs_reader::single_commit ... ok
test storage::refs::sigrefs::read::test::signed_refs_reader::two_commits ... ok
test storage::refs::sigrefs::read::test::signed_refs_reader::walk_commit_error ... ok
test storage::refs::sigrefs::read::test::signed_refs_reader::walk_verify_error ... ok
test storage::refs::sigrefs::read::test::tree_reader::missing_both ... ok
test storage::refs::sigrefs::read::test::tree_reader::missing_refs ... ok
test storage::refs::sigrefs::read::test::tree_reader::missing_signature ... ok
test storage::refs::sigrefs::read::test::tree_reader::parse_refs_error ... ok
test storage::refs::sigrefs::read::test::tree_reader::parse_signature_error ... ok
test storage::refs::sigrefs::read::test::tree_reader::read_ok ... ok
test storage::refs::sigrefs::read::test::tree_reader::read_refs_error ... ok
test storage::refs::sigrefs::read::test::tree_reader::read_signature_error ... ok
test storage::refs::sigrefs::write::test::commit_writer::tree_error ... ok
test storage::refs::sigrefs::write::test::commit_writer::write_commit_error ... ok
test storage::refs::sigrefs::write::test::commit_writer::write_empty_refs ... ok
test storage::refs::sigrefs::write::test::commit_writer::write_root_ok ... ok
test storage::refs::sigrefs::write::test::commit_writer::write_with_parent_ok ... ok
test storage::refs::sigrefs::write::test::head_reader::no_head ... ok
test storage::refs::sigrefs::write::test::head_reader::read_ok ... ok
test storage::refs::sigrefs::write::test::head_reader::reference_error ... ok
test storage::refs::sigrefs::write::test::head_reader::refs_blob_error ... ok
test storage::refs::sigrefs::write::test::head_reader::refs_blob_missing ... ok
test storage::refs::sigrefs::write::test::head_reader::refs_parse_error ... ok
test storage::refs::sigrefs::write::test::head_reader::signature_blob_error ... ok
test storage::refs::sigrefs::write::test::head_reader::signature_blob_missing ... ok
test storage::refs::sigrefs::write::test::head_reader::signature_parse_error ... ok
test storage::refs::sigrefs::write::test::signed_refs_writer::commit_error ... ok
test storage::refs::sigrefs::write::test::signed_refs_writer::head_error ... ok
test storage::refs::sigrefs::write::test::signed_refs_writer::never_write_rad_sigrefs ... ok
test storage::refs::sigrefs::write::test::signed_refs_writer::reference_error ... ok
test storage::refs::sigrefs::write::test::signed_refs_writer::unchanged ... ok
test storage::refs::sigrefs::write::test::signed_refs_writer::unchanged_force_writes_new_commit ... ok
test storage::refs::sigrefs::write::test::signed_refs_writer::write_empty_refs ... ok
test storage::refs::sigrefs::write::test::signed_refs_writer::write_root_ok ... ok
test storage::refs::sigrefs::write::test::signed_refs_writer::write_with_parent_ok ... ok
test storage::refs::sigrefs::write::test::tree_writer::sign_error ... ok
test storage::refs::sigrefs::write::test::tree_writer::write_ok ... ok
test storage::refs::sigrefs::write::test::tree_writer::write_tree_error ... ok
test storage::refs::tests::prop_canonical_roundtrip ... ok
test storage::refs::sigrefs::property::idempotent ... ok
test storage::tests::storage ... ok
test test::assert::test::assert_no_move ... ok
test test::assert::test::assert_panic_0 - should panic ... ok
test test::assert::test::assert_panic_1 - should panic ... ok
test test::assert::test::assert_panic_2 - should panic ... ok
test test::assert::test::assert_succeed ... ok
test test::assert::test::assert_with_message ... ok
test test::assert::test::panic_message_format ... ok
test version::test::version ... ok
test web::test::description_only ... ok
test web::test::pinned_empty ... ok
test storage::refs::tests::rid_verification ... ok
test storage::refs::sigrefs::git::properties::chain_roundtrip ... ok
test storage::refs::sigrefs::property::roundtrip ... ok
test result: ok. 406 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.96s
Running unittests src/lib.rs (target/debug/deps/radicle_cli-e8faa9d4df84ef8e)
running 48 tests
test commands::block::args::test::should_not_parse ... ok
test commands::block::args::test::should_parse_nid ... ok
test commands::block::args::test::should_parse_rid ... ok
test commands::clone::args::test::should_parse_rid_url ... ok
test commands::clone::args::test::should_parse_rid_urn ... ok
test commands::clone::args::test::should_parse_rid_non_urn ... ok
test commands::cob::args::test::should_allow_log_pretty_format ... ok
test commands::cob::args::test::should_allow_show_json_format ... ok
test commands::cob::args::test::should_allow_update_json_format ... ok
test commands::cob::args::test::should_allow_log_json_format ... ok
test commands::fork::args::test::should_not_parse_rid_url ... ok
test commands::cob::args::test::should_not_allow_show_pretty_format ... ok
test commands::fork::args::test::should_parse_rid_non_urn ... ok
test commands::cob::args::test::should_not_allow_update_pretty_format ... ok
test commands::fork::args::test::should_parse_rid_urn ... ok
test commands::id::args::test::should_not_parse_into_payload - should panic ... ok
test commands::id::args::test::should_not_clobber_payload_args ... ok
test commands::id::args::test::should_not_parse_single_payload ... ok
test commands::id::args::test::should_parse_into_payload ... ok
test commands::id::args::test::should_not_parse_single_payloads ... ok
test commands::id::args::test::should_parse_single_payload ... ok
test commands::id::args::test::should_parse_multiple_payloads ... ok
test commands::init::args::test::should_not_parse_rid_url ... ok
test commands::init::args::test::should_parse_rid_non_urn ... ok
test commands::init::args::test::should_parse_rid_urn ... ok
test commands::inspect::test::tree ... ok
test commands::patch::review::builder::tests::review_comments_basic ... ok
test commands::patch::review::builder::tests::review_comments_before ... ok
test commands::patch::review::builder::tests::review_comments_multiline ... ok
test commands::patch::review::builder::tests::review_comments_split_hunk ... ok
test commands::publish::args::test::should_not_parse_rid_url ... ok
test commands::publish::args::test::should_parse_rid_non_urn ... ok
test commands::publish::args::test::should_parse_rid_urn ... ok
test git::pretty_diff::test::pretty ... ignored
test git::test::version_from_str ... ok
test commands::watch::args::test::should_parse_ref_str ... ok
test git::ddiff::tests::diff_encode_decode_ddiff_hunk ... ok
test terminal::args::test::should_not_parse ... ok
test git::unified_diff::test::diff_content_encode_decode_content ... ok
test git::test::version_ord ... ok
test terminal::args::test::should_parse_nid ... ok
test terminal::args::test::should_parse_rid ... ok
test terminal::format::test::bytes ... ok
test git::unified_diff::test::diff_encode_decode_diff ... ok
test terminal::format::test::strip_comments ... ok
test terminal::patch::test::edit_display_message ... ok
test terminal::patch::test::create_display_message ... ok
test terminal::patch::test::update_display_message ... ok
test result: ok. 47 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.01s
Running unittests src/main.rs (target/debug/deps/rad-e1560454338e8751)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running tests/commands.rs (target/debug/deps/commands-c25c35cfc2429612)
running 129 tests
test commands::clone::clone_without_seeds ... ok
test commands::checkout::rad_checkout ... ok
test commands::clone::rad_clone_bare ... ok
test commands::clone::rad_clone ... ok
test commands::clone::rad_clone_all ... ok
test commands::clone::rad_clone_scope ... ok
test commands::clone::rad_clone_directory ... ok
test commands::clone::rad_clone_unknown ... ok
test commands::clone::rad_clone_connect ... ok
test commands::clone::rad_clone_partial_fail ... ok
test commands::cob::rad_cob_log ... ok
test commands::cob::rad_cob_multiset ... ok
test commands::cob::cob_deletion ... ok
test commands::cob::rad_cob_migrate ... ok
test commands::cob::cob_replication ... ok
test commands::cob::rad_cob_operations ... ok
test commands::cob::rad_cob_show ... ok
test commands::cob::rad_cob_update_identity ... ok
test commands::cob::rad_cob_update ... ok
test commands::git::git_push_amend ... ok
test commands::git::git_push_and_fetch ... ok
test commands::git::git_push_canonical_lightweight_tags ... ok
test commands::git::git_push_force_with_lease ... ok
test commands::git::git_push_diverge ... ok
test commands::git::git_push_canonical ... ok
test commands::git::git_tag ... ok
test commands::id::rad_id_collaboration ... ignored, slow
test commands::git::git_push_rollback ... ok
test commands::git::git_push_converge ... ok
test commands::id::rad_id ... ok
test commands::id::rad_id_private ... ok
test commands::id::rad_id_threshold_soft_fork ... ok
test commands::id::rad_id_conflict ... ok
test commands::id::rad_id_threshold ... ok
test commands::id::rad_id_unknown_field ... ok
test commands::id::rad_id_unauthorized_delegate ... ok
test commands::init::rad_init ... ignored, part of many other tests
test commands::id::rad_id_update_delete_field ... ok
test commands::init::rad_init_detached_head ... ok
test commands::init::rad_init_bare ... ok
test commands::id::rad_id_multi_delegate ... ok
test commands::init::rad_init_existing ... ok
test commands::init::rad_init_no_git ... ok
test commands::init::rad_init_existing_bare ... ok
test commands::init::rad_init_no_seed ... ok
test commands::init::rad_init_private ... ok
test commands::init::rad_init_private_no_seed ... ok
test commands::init::rad_init_private_clone ... ok
test commands::init::rad_init_private_clone_seed ... ok
test commands::inbox::rad_inbox ... ok
test commands::init::rad_init_private_seed ... ok
test commands::init::rad_init_sync_not_connected ... ok
test commands::init::rad_init_with_existing_remote ... ok
test commands::init::rad_init_sync_preferred ... ok
test commands::issue::rad_issue ... ok
test commands::init::rad_publish ... ok
test commands::jj::rad_jj_bare ... ignored, the bare repository does not have a `rad` remote, and so it cannot determine the RID of the repository
test commands::jj::rad_jj_colocated_patch ... ok
test commands::issue::rad_issue_list ... ok
test commands::node::rad_node_connect ... ok
test commands::node::rad_node_connect_without_address ... ok
test commands::patch::rad_merge_after_update ... ok
test commands::node::rad_node ... ok
test commands::patch::rad_merge_no_ff ... ok
test commands::patch::rad_merge_via_push ... ok
test commands::patch::rad_patch ... ok
test commands::patch::rad_patch_ahead_behind ... ok
test commands::patch::rad_patch_change_base ... ok
test commands::patch::rad_patch_checkout ... ok
test commands::patch::rad_patch_checkout_revision ... ok
test commands::init::rad_init_sync_and_clone ... ok
test commands::init::rad_init_sync_timeout ... ok
test commands::patch::rad_patch_checkout_force ... ok
test commands::patch::rad_patch_detached_head ... ok
test commands::patch::rad_patch_diff ... ok
test commands::patch::rad_patch_draft ... ok
test commands::patch::rad_patch_edit_target ... ok
test commands::patch::rad_patch_edit ... ok
test commands::patch::rad_patch_fetch_2 ... ok
test commands::patch::rad_patch_fetch_1 ... ok
test commands::patch::rad_patch_magic_push ... ok
test commands::patch::rad_patch_merge_draft ... ok
test commands::patch::rad_patch_delete ... ok
test commands::patch::rad_patch_merge_into_canonical_ref_branch ... ok
test commands::patch::rad_patch_merge_wrong_branch ... ok
test commands::patch::rad_patch_merge_on_first_push ... ok
test commands::patch::rad_patch_merge_unauthorized_branch ... ok
test commands::patch::rad_patch_open_explore ... ok
test commands::patch::rad_patch_revert_merge ... ok
test commands::patch::rad_patch_revert_custom_branch ... ok
test commands::patch::rad_patch_target_unsynthesised_cref ... ok
test commands::patch::rad_patch_target_missing_branch ... ok
test commands::patch::rad_patch_review_no_options ... ok
test commands::patch::rad_patch_update ... ok
test commands::patch::rad_review_by_hunk ... ok
test commands::patch::rad_patch_via_push ... ok
test commands::policy::rad_block ... ok
test commands::policy::rad_seed_and_follow ... ok
test commands::policy::rad_seed_policy_allow_no_scope ... ok
test commands::policy::rad_seed_scope ... ok
test commands::policy::rad_unseed ... ok
test commands::policy::rad_unseed_many ... ok
test commands::policy::rad_seed_many ... ok
test commands::patch::rad_push_and_pull_patches ... ok
test commands::sigpipe::help ... ok
test commands::sigpipe::config ... ok
test commands::sigpipe::rad_self ... ok
test commands::remote::rad_remote ... ok
test commands::sync::rad_sync_without_node ... ok
test commands::sync::rad_sync ... ok
test commands::utility::framework_home ... ok
test commands::utility::rad_auth ... ok
test commands::utility::rad_auth_errors ... ok
test commands::patch::rad_patch_pull_update ... ok
test commands::utility::rad_config ... ok
test commands::utility::rad_diff ... ok
test commands::utility::rad_clean ... ok
test commands::utility::rad_help ... ok
test commands::utility::rad_inspect ... ok
test commands::utility::rad_key_mismatch ... ok
test commands::utility::rad_self ... ok
test commands::utility::rad_warn_ipv6 ... ok
test commands::utility::rad_warn_old_nodes ... ok
test commands::watch::rad_watch ... ok
test commands::sync::rad_fetch ... ok
test rad_remote ... ok
test commands::workflow::rad_workflow ... ok
test commands::sync::replication_via_seed ... ok
test commands::utility::rad_fork ... ok
test result: ok. 126 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 73.92s
Running unittests src/lib.rs (target/debug/deps/radicle_cli_test-abde74eb136ebe85)
running 3 tests
test tests::parse ... ok
test tests::run ... ok
test tests::example_spaced_brackets ... ok
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_cob-9020a582e8a16531)
running 9 tests
test object::tests::serde ... ok
test tests::git::roundtrip ... ok
test tests::git::list_cobs ... ok
test tests::git::update_cob ... ok
test tests::git::traverse_cobs ... ok
test type_name::test::invalid_typenames ... ok
test type_name::test::valid_typenames ... ok
test tests::invalid_parse_refstr ... ok
test tests::parse_refstr ... ok
test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
Running unittests src/lib.rs (target/debug/deps/radicle_core-c6d24468dd71b428)
running 4 tests
test repo::test::valid ... ok
test repo::test::invalid ... ok
test repo::test::assert_prop_roundtrip_parse ... ok
test repo::serde_impls::test::assert_prop_roundtrip_serde_json ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_crypto-16f31f5bdb1e3f77)
running 12 tests
test ssh::agent::test::agent_encoding_sign ... ok
test ssh::agent::test::agent_encoding_remove ... ok
test ssh::fmt::test::key ... ok
test ssh::fmt::test::fingerprint ... ok
test tests::did_key_sample ... ok
test ssh::keystore::tests::init_no_passphrase ... ok
test tests::diffie_hellman_fixture ... ok
test tests::prop_encode_decode ... ok
test tests::diffie_hellman ... ok
test tests::prop_key_equality ... ok
test ssh::keystore::tests::signer ... ok
test ssh::keystore::tests::init_passphrase ... ok
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.82s
Running unittests src/lib.rs (target/debug/deps/radicle_dag-b0910ecd42e75440)
running 20 tests
test tests::contains ... ok
test tests::cycle ... ok
test tests::dependencies ... ok
test tests::fold_diamond ... ok
test tests::fold_multiple_roots ... ok
test tests::fold_reject ... ok
test tests::diamond ... ok
test tests::fold_sorting_1 ... ok
test tests::get ... ok
test tests::is_empty ... ok
test tests::len ... ok
test tests::merge_2 ... ok
test tests::complex ... ok
test tests::merge_1 ... ok
test tests::prune_1 ... ok
test tests::fold_sorting_2 ... ok
test tests::prune_2 ... ok
test tests::remove ... ok
test tests::prune_by_sorting ... ok
test tests::siblings ... ok
test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_fetch-dd8aeb7ce9658ae1)
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 (target/debug/deps/radicle_git_metadata-73a4cc73bbef2b23)
running 24 tests
test commit::parse::test::error::invalid_author ... ok
test commit::parse::test::error::invalid_format_continuation_without_preceding_header ... ok
test commit::parse::test::error::invalid_committer ... ok
test commit::parse::test::error::invalid_parent ... ok
test commit::parse::test::error::invalid_tree ... ok
test commit::parse::test::error::missing_author ... ok
test commit::parse::test::error::missing_header_body_separator ... ok
test commit::parse::test::error::missing_tree_empty_header ... ok
test commit::parse::test::error::missing_tree_wrong_first_line ... ok
test commit::parse::test::success::commit_gpgsig_is_preserved_and_strip_removes_it ... ok
test commit::parse::test::success::commit_last_paragraph_kept_in_message_when_not_all_trailers ... ok
test commit::parse::test::success::commit_with_extra_headers ... ok
test commit::parse::test::error::missing_committer ... ok
test commit::parse::test::success::commit_with_multiline_gpgsig ... ok
test commit::parse::test::success::commit_with_single_parent ... ok
test commit::parse::test::success::commit_with_trailers ... ok
test commit::parse::test::success::root_commit ... ok
test commit::parse::test::success::roundtrip ... ok
test commit::parse::test::unit::body_no_paragraph_separator_means_no_trailers ... ok
test commit::parse::test::success::merge_commit ... ok
test commit::parse::test::unit::body_last_paragraph_not_trailers_stays_in_message ... ok
test commit::parse::test::unit::trailers_accepts_empty_input ... ok
test commit::parse::test::unit::trailers_rejects_invalid_token_chars ... ok
test commit::parse::test::unit::trailers_rejects_line_without_separator ... ok
test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_git_ref_format-f8dbe786042836b5)
running 9 tests
test test::component ... ok
test test::component_invalid - should panic ... ok
test test::pattern ... ok
test test::qualified ... ok
test test::qualified_invalid - should panic ... ok
test test::qualified_pattern ... ok
test test::qualified_pattern_invalid - should panic ... ok
test test::refname ... ok
test test::refname_invalid - should panic ... ok
test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_localtime-9c62c7314f35ce4d)
running 1 test
test serde_impls::test::localtime ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_log-fc4d87322da5fd7c)
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 (target/debug/deps/radicle_node-98ddb810b5dd004d)
running 90 tests
test reactor::timer::tests::next ... ok
test reactor::timer::tests::wake ... ok
test reactor::timer::tests::wake_exact ... ok
test control::tests::control_socket ... ok
test control::tests::seed_unseed ... ok
test fingerprint::tests::matching ... ok
test reactor::transport::tests::half_closed_peer_is_terminated_on_eof ... ok
test reactor::transport::tests::reset_peer_is_terminated ... ok
test reactor::transport::tests::reset_peer_is_terminated_after_error_was_consumed ... ok
test tests::announcement_rebroadcast ... ok
test tests::announcement_rebroadcast_timestamp_filtered ... ok
test tests::announcement_rebroadcast_deduplicates ... ok
test tests::connection_kept_alive ... ok
test tests::disconnecting_unresponsive_peer ... ok
test tests::announcement_relay ... ok
test tests::e2e::block_prevents_connection ... ok
test tests::e2e::block_active_connection ... ok
test tests::e2e::block_prevents_fetch ... ok
test tests::e2e::background_foreground_fetch ... ok
test tests::e2e::catchup_on_refs_announcements ... ok
test tests::e2e::channel_reader_limit ... ok
test tests::e2e::clone ... ok
test tests::e2e::connection_crossing ... ok
test tests::e2e::clone_without_founder_namespace ... ok
test tests::e2e::dont_fetch_owned_refs ... ok
test tests::e2e::fetch_does_not_contain_rad_sigrefs_parent ... ok
test tests::e2e::fetch_emits_canonical_ref_update_partial_glob ... ok
test tests::e2e::concurrent_fetches ... ok
test tests::e2e::fetch_followed_remotes ... ok
test tests::e2e::fetch_preserve_owned_refs ... ok
test tests::e2e::fetch_unseeded ... ok
test tests::e2e::fetch_up_to_date ... ok
test tests::announcement_message_amplification ... ok
test tests::e2e::inventory_sync_basic ... ok
test tests::e2e::fetch_emits_canonical_ref_update ... ok
test tests::e2e::large_fetch ... ok
test tests::e2e::migrated_clone ... ok
test tests::e2e::missing_default_branch ... ok
test tests::e2e::missing_delegate_default_branch ... ok
test tests::e2e::missing_remote ... ok
test tests::e2e::multiple_offline_inits ... ok
test tests::e2e::non_fast_forward_identity_doc ... ok
test tests::e2e::non_fast_forward_sigrefs ... ok
test tests::e2e::outdated_delegate_sigrefs ... ok
test tests::e2e::outdated_sigrefs ... ok
test tests::e2e::public_to_private_to_public_replay ... ok
test tests::e2e::inventory_sync_bridge ... ok
test tests::e2e::replication ... ok
test tests::e2e::replication_invalid ... ok
test tests::e2e::inventory_sync_ring ... ok
test tests::e2e::inventory_sync_star ... ok
test tests::fetch_missing_inventory_on_gossip ... ok
test tests::fetch_missing_inventory_on_schedule ... ok
test tests::inventory_decode ... ok
test tests::inbound_connection ... ok
test tests::e2e::replication_ref_in_sigrefs ... ok
test tests::init_and_seed ... ok
test tests::inventory_relay_bad_timestamp ... ok
test tests::inventory_relay ... ok
test tests::inventory_sync ... ok
test tests::maintain_connections_failed_attempt ... ok
test tests::maintain_connections_same_second_loop ... ok
test tests::orphaned_fetch_blocks_repo_from_all_nodes ... ok
test tests::maintain_connections_transient ... ok
test tests::maintain_connections ... ok
test tests::outbound_connection ... ok
test tests::persistent_peer_connect ... ok
test tests::persistent_peer_reconnect_attempt ... ok
test tests::persistent_peer_reconnect_success ... ok
test tests::ping_response ... ok
test tests::queued_fetch_from_ann_same_rid ... ok
test tests::queued_fetch_from_command_same_rid ... ok
test tests::queued_fetch_max_capacity ... ok
test tests::redundant_connect ... ok
test tests::refs_announcement_fetch_trusted_no_inventory ... ok
test tests::refs_announcement_followed ... ok
test tests::refs_announcement_no_subscribe ... ok
test tests::inventory_pruning ... ok
test tests::refs_announcement_offline ... ok
test tests::refs_announcement_relay_private ... ok
test tests::refs_announcement_relay_public ... ok
test tests::refs_announcement_subscribe_private ... ok
test tests::seeding ... ok
test wire::test::inventory_ann_with_extension ... ok
test wire::test::pong_message_with_extension ... ok
test tests::seed_repo_subscribe ... ok
test tests::refs_synced_event ... ok
test wire::test::worker_result_clears_active_when_peer_connected ... ok
test wire::test::worker_result_clears_active_when_peer_disconnecting ... ok
test tests::prop_inventory_exchange_dense ... ok
test result: ok. 90 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 15.48s
Running unittests src/main.rs (target/debug/deps/radicle_node-8074b3a6398d4d03)
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 (target/debug/deps/radicle_oid-902c7d6f046f549b)
running 10 tests
test fmt::test::fixture ... ok
test fmt::test::zero ... ok
test fmt::test::git2 ... ok
test fmt::test::gix ... ok
test git2::test::zero ... ok
test gix::test::zero ... ok
test str::test::git2_roundtrip ... ok
test str::test::fixture ... ok
test str::test::gix_roundtrip ... ok
test str::test::zero ... ok
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_protocol-6023cd9aae38e420)
running 100 tests
test deserializer::test::unparsed ... ok
test deserializer::test::decode_next ... ok
test deserializer::test::prop_decode_next ... ok
test fetcher::service::tests::fetch_coalescing_different_refs ... ok
test fetcher::test::queue::properties::capacity::capacity_reached_returns_same_item ... ok
test fetcher::test::queue::properties::dequeue::drained_queue_returns_none ... ok
test fetcher::test::queue::properties::dequeue::empty_queue_returns_none ... ok
test fetcher::test::queue::properties::capacity::rejection ... ok
test fetcher::test::queue::properties::dequeue::enables_reenqueue ... ok
test fetcher::test::queue::properties::capacity::bounded ... ok
test fetcher::test::queue::properties::equality::reflexive ... ok
test fetcher::test::queue::properties::fifo::interleaved_operations ... ok
test fetcher::test::queue::properties::equality::symmetric ... ok
test fetcher::test::queue::properties::fifo::ordering ... ok
test fetcher::test::queue::properties::equality::transitive ... ok
test fetcher::test::queue::properties::capacity::restored_after_dequeue ... ok
test fetcher::test::queue::properties::merge::combines_refs ... ok
test fetcher::test::queue::properties::merge::longer_timeout_preserved ... ok
test fetcher::test::queue::properties::merge::different_rid_accepted ... ok
test fetcher::test::queue::properties::merge::does_not_increase_queue_length ... ok
test fetcher::test::queue::properties::merge::succeed_when_at_capacity ... ok
test fetcher::test::queue::unit::capacity_takes_precedence_over_merge_for_new_items ... ok
test fetcher::test::queue::unit::empty_refs_items_can_be_equal ... ok
test fetcher::test::queue::unit::max_timeout_accepted ... ok
test fetcher::test::queue::unit::merge_preserves_position_in_queue ... ok
test fetcher::test::queue::unit::zero_timeout_accepted ... ok
test fetcher::test::state::command::cancel::cancellation_is_isolated ... ok
test fetcher::test::state::command::cancel::non_existent_returns_unexpected ... ok
test fetcher::test::state::command::cancel::ongoing_and_queued ... ok
test fetcher::test::state::command::cancel::single_ongoing ... ok
test fetcher::test::state::command::fetch::fetch_after_previous_completed ... ok
test fetcher::test::state::command::fetch::fetch_at_capacity_enqueues ... ok
test fetcher::test::state::command::fetch::fetch_different_repo_same_node_within_capacity ... ok
test fetcher::test::state::command::fetch::fetch_duplicate_returns_already_fetching ... ok
test fetcher::test::state::command::fetch::fetch_queue_merge_empty_refs_fetches_all ... ok
test fetcher::test::state::command::fetch::fetch_queue_merge_takes_longer_timeout ... ok
test fetcher::test::state::command::fetch::fetch_queue_merges_already_queued ... ok
test fetcher::test::state::command::fetch::fetch_queue_rejected_capacity_reached ... ok
test fetcher::test::state::command::fetch::fetch_same_repo_different_nodes_queues_second ... ok
test fetcher::test::state::command::fetch::fetch_same_repo_different_refs_enqueues ... ok
test fetcher::test::state::command::fetch::fetch_start_first_fetch_for_node ... ok
test fetcher::test::state::command::fetched::complete_one_of_multiple ... ok
test fetcher::test::state::command::fetched::complete_single_ongoing ... ok
test fetcher::test::state::command::fetched::non_existent_returns_not_found ... ok
test fetcher::test::state::command::fetched::complete_then_dequeue_fifo ... ok
test fetcher::test::state::command::fetched::stale_from_does_not_clear_active ... ok
test fetcher::test::state::concurrent::fetched_then_cancel ... ok
test fetcher::test::state::concurrent::interleaved_operations ... ok
test fetcher::test::queue::properties::merge::empty_refs_fetches_all ... ok
test fetcher::test::state::config::min_queue_size ... ok
test fetcher::test::state::dequeue::empty_queue_returns_none ... ok
test fetcher::test::state::dequeue::cannot_dequeue_while_node_at_capacity ... ok
test fetcher::test::state::dequeue::maintains_fifo_order ... ok
test fetcher::test::state::invariant::queue_integrity_after_merge ... ok
test fetcher::test::state::multinode::independent_queues ... ok
test service::filter::test::compatible ... ok
test service::filter::test::parameters ... ok
test fetcher::test::state::config::high_concurrency ... ok
test service::filter::test::sizes ... ok
test service::gossip::store::test::announced ... ok
test service::limiter::test::limiter_multi ... ok
test service::limiter::test::limiter_different_rates ... ok
test fetcher::test::state::multinode::high_count ... ok
test service::limiter::test::limiter_refill ... ok
test service::message::tests::prop_refs_announcement_signing ... ok
test service::message::tests::inventory_limit ... ok
test wire::frame::test::encode_git_large ... ok
test wire::frame::test::stream_id ... ok
test fetcher::test::queue::properties::merge::same_rid_merges_anywhere_in_queue ... ok
test wire::message::tests::node_ann_max_size ... ok
test wire::message::tests::ping_encode_size_overflow - should panic ... ok
test wire::message::tests::pingpong_encode_max_size ... ok
test wire::message::tests::pong_encode_size_overflow - should panic ... ok
test service::message::tests::ref_remote_limit ... ok
test wire::message::tests::prop_roundtrip_address ... ok
test wire::message::tests::inv_ann_max_size ... ok
test wire::message::tests::prop_roundtrip_message ... ok
test wire::message::tests::prop_zero_bytes_encode_decode ... ok
test wire::tests::alias ... ok
test wire::tests::bounded_vec_limit ... ok
test wire::tests::filter_invalid ... ok
test wire::tests::prop_oid ... ok
test wire::tests::prop_roundtrip_filter ... ok
test wire::tests::prop_roundtrip_publickey ... ok
test wire::tests::prop_roundtrip_refs ... ok
test wire::tests::prop_roundtrip_repoid ... ok
test wire::tests::prop_roundtrip_tuple ... ok
test wire::tests::prop_roundtrip_u16 ... ok
test wire::tests::prop_roundtrip_u32 ... ok
test wire::tests::prop_roundtrip_u64 ... ok
test wire::tests::prop_roundtrip_vec ... ok
test wire::tests::prop_signature ... ok
test wire::tests::prop_string ... ok
test wire::tests::string ... ok
test wire::varint::test::encode_overflow - should panic ... ok
test wire::varint::test::encoding ... ok
test wire::varint::test::prop_roundtrip_varint ... ok
test wire::message::tests::refs_ann_max_size ... ok
test service::message::tests::node_announcement_validate ... ok
test wire::message::tests::prop_message_decoder ... ok
test result: ok. 100 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.40s
Running unittests src/main.rs (target/debug/deps/git_remote_rad-ad2e7fe2dac1e80f)
running 12 tests
test protocol::tests::capabilities ... ok
test protocol::tests::fetch_whitespace ... ok
test protocol::tests::fetch ... ok
test protocol::tests::empty ... ok
test protocol::tests::list_for_push ... ok
test protocol::tests::invalid ... ok
test protocol::tests::option_whitespace_preservation ... ok
test protocol::tests::list ... ok
test protocol::tests::option ... ok
test protocol::tests::push ... ok
test protocol::tests::push_delete ... ok
test protocol::tests::push_force ... ok
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/main.rs (target/debug/deps/radicle_schemars-e2606e8600046214)
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 (target/debug/deps/radicle_signals-89dc8d5b58cd3239)
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 (target/debug/deps/radicle_surf-7eeab6538a1ee941)
running 41 tests
test test::code_browsing::commit_history ... ok
test test::code_browsing::commit_signature ... ok
test test::code_browsing::browse_repo_lazily ... ok
test test::code_browsing::file_history ... ok
test test::diff::both_missing_eof_newline ... ok
test test::code_browsing::iterate_root_dir_recursive ... ok
test test::diff::diff ... ok
test test::diff::diff_file ... ok
test test::diff::new_missing_eof_newline ... ok
test test::diff::none_missing_eof_newline ... ok
test test::diff::initial_diff ... ok
test test::diff::old_missing_eof_newline ... ok
test test::diff::diff_of_rev ... ok
test test::file_system::directory::directory_find_entry ... ok
test test::file_system::directory::directory_find_file_and_directory ... ok
test test::file_system::directory::directory_size ... ok
test test::file_system::directory::directory_last_commit ... ok
test test::file_system::directory::file_last_commit ... ok
test test::last_commit::can_get_last_commit_for_special_filenames ... ok
test test::last_commit::binary_file ... ok
test test::last_commit::folder_svelte ... ok
test test::last_commit::nest_directory ... ok
test test::diff::branch_diff ... ok
test test::last_commit::readme_missing_and_memory ... ok
test test::last_commit::root ... ok
test test::namespace::me_namespace ... ok
test test::namespace::golden_namespace ... ok
test test::namespace::silver_namespace ... ok
test test::namespace::switch_to_banana ... ok
test test::reference::branches ... ok
test test::rev::_master ... ok
test test::rev::commit ... ok
test test::reference::tag_snapshot ... ok
test test::rev::commit_parents ... ok
test test::reference::namespaces ... ok
test test::rev::tag ... ok
test test::rev::commit_short ... ok
test test::file_system::directory::directory_with_bracket_in_name ... ok
test test::submodule::submodule_bare ... ignored, segfault
test test::threading::basic_test ... ok
test test::submodule::submodule ... ok
test result: ok. 40 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 4.51s
Running unittests src/lib.rs (target/debug/deps/radicle_systemd-07432556807b819e)
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 (target/debug/deps/radicle_term-48a9911d7b9aa22b)
running 22 tests
test ansi::tests::colors_enabled ... ok
test ansi::tests::no_color_disables_colors_not_styles ... ok
test cell::test::width ... ok
test ansi::tests::colors_disabled ... ok
test element::test::spaced ... ok
test element::test::width ... ok
test element::test::truncate ... ok
test table::test::table ... ok
test ansi::tests::wrapping ... ok
test table::test::table_border_maximized ... ok
test table::test::table_truncate ... ok
test table::test::table_unicode ... ok
test table::test::table_border ... ok
test table::test::table_border_truncated ... ok
test table::test::truncate ... ok
test textarea::test::wrapping ... ok
test textarea::test::wrapping_fenced_block ... ok
test textarea::test::wrapping_code_block ... ok
test table::test::table_unicode_truncate ... ok
test vstack::test::vstack ... ok
test vstack::test::vstack_maximize ... ok
test textarea::test::wrapping_paragraphs ... ok
test result: ok. 22 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_windows-76d8fb89c31a649a)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle
running 1 test
test crates/radicle/src/cob/patch/encoding/review.rs - cob::patch::encoding::review::Review (line 23) ... ignored
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_cli
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_cli_test
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_cob
running 1 test
test crates/radicle-cob/src/backend/stable.rs - backend::stable::with_advanced_timestamp (line 56) ... ignored
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
all doctests ran in 0.08s; merged doctests compilation took 0.08s
Doc-tests radicle_core
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_crypto
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_dag
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_fetch
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_git_metadata
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_git_ref_format
running 3 tests
test crates/radicle-git-ref-format/src/deriv.rs - deriv::Qualified<'a>::from_components (line 30) ... ok
test crates/radicle-git-ref-format/src/deriv.rs - deriv::Namespaced (line 279) ... ok
test crates/radicle-git-ref-format/src/refspec.rs - refspec::NamespacedPattern (line 467) ... ok
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
all doctests ran in 0.14s; merged doctests compilation took 0.13s
Doc-tests radicle_localtime
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_log
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_node
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_oid
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_protocol
running 6 tests
test crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::push (line 122) ... ok
test crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::collect_from (line 30) ... ok
test crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::truncate (line 50) ... ok
test crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::max (line 96) ... ok
test crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::with_capacity (line 66) ... ok
test crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::unbound (line 149) ... ok
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
all doctests ran in 0.37s; merged doctests compilation took 0.36s
Doc-tests radicle_signals
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_surf
running 4 tests
test crates/radicle-surf/src/glob.rs - glob::Glob<Local>::branches (line 175) ... ignored
test crates/radicle-surf/src/glob.rs - glob::Glob<Remote>::branches (line 249) ... ignored
test crates/radicle-surf/src/namespace.rs - namespace::Namespace::to_namespaced (line 48) ... ignored
test crates/radicle-surf/src/namespace.rs - namespace::Namespace::to_namespaced_pattern (line 75) ... ignored
test result: ok. 0 passed; 0 failed; 4 ignored; 0 measured; 0 filtered out; finished in 0.00s
all doctests ran in 0.09s; merged doctests compilation took 0.09s
Doc-tests radicle_systemd
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_term
running 1 test
test crates/radicle-term/src/table.rs - table (line 4) ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
all doctests ran in 0.15s; merged doctests compilation took 0.15s
Doc-tests radicle_windows
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Exit code: 0
{
"response": "finished",
"result": "success"
}