rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 heartwoode8f9d21be3748ddda31b2b2d2c0ac84db49e31e5
{
"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": "77453b5ea69bc07aed212f9e0c91332c16295ea1",
"author": {
"id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"alias": null
},
"title": "cli/node: Use clap",
"state": {
"status": "merged",
"conflicts": []
},
"before": "6cfed884bf37cba1e0d8e97fa8b0e94df4a04b1f",
"after": "e8f9d21be3748ddda31b2b2d2c0ac84db49e31e5",
"commits": [
"e8f9d21be3748ddda31b2b2d2c0ac84db49e31e5",
"f20c2f215ade6aa4c0cf4a9161f55790ee11438a"
],
"target": "3fc92f83fe089263c470b328414d923227cf0e4a",
"labels": [],
"assignees": [],
"revisions": [
{
"id": "77453b5ea69bc07aed212f9e0c91332c16295ea1",
"author": {
"id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"alias": null
},
"description": "",
"base": "0b3424857ec1c5b57d6778f2bf6f379685e7f073",
"oid": "f94a51312f29d5f215d93d7e9491deb55a461138",
"timestamp": 1760528084
},
{
"id": "69b4117b182a7b6f5a72ecbb9269ee5d2d240b73",
"author": {
"id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"alias": null
},
"description": "REVIEW",
"base": "0b3424857ec1c5b57d6778f2bf6f379685e7f073",
"oid": "64215ef1b203c4efc18779ee855f0e3c60983442",
"timestamp": 1760628890
},
{
"id": "0ae8c66ff5db4f5c8db6a8700d686a62cbe78233",
"author": {
"id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"alias": null
},
"description": "Review",
"base": "0b3424857ec1c5b57d6778f2bf6f379685e7f073",
"oid": "9a9b0f082ee1d001fdaa77e29f0e7fd0945b5c8c",
"timestamp": 1760632789
},
{
"id": "0b57d953b2dda2a9089558f504868252e019082f",
"author": {
"id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"alias": null
},
"description": "REVIEW",
"base": "0b3424857ec1c5b57d6778f2bf6f379685e7f073",
"oid": "4400af31a2afc9cd9cde9ac3ac766d01cabbd9fe",
"timestamp": 1760700923
},
{
"id": "13d6070e1cf898ab5903f8c41cbdf04630d57452",
"author": {
"id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"alias": null
},
"description": "Squash reviews, rebase",
"base": "93578340d1d55b7f1b8fb31a8ccfd388f26e3ad8",
"oid": "b14b63ff00a0caf655a5e806d8d5be9feb3aaea0",
"timestamp": 1761040796
},
{
"id": "555868f8722f08430c409770b3886e75a7e21a46",
"author": {
"id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"alias": null
},
"description": "Rebase",
"base": "6cfed884bf37cba1e0d8e97fa8b0e94df4a04b1f",
"oid": "865153569b7ac476ea1f3f08d18a761b9b1cab0f",
"timestamp": 1761048014
},
{
"id": "57a6581bccee5f3351177c5eb0c45aaaa3bfc8ad",
"author": {
"id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"alias": null
},
"description": "Rebase",
"base": "6cfed884bf37cba1e0d8e97fa8b0e94df4a04b1f",
"oid": "e8f9d21be3748ddda31b2b2d2c0ac84db49e31e5",
"timestamp": 1761129396
}
]
}
}
{
"response": "triggered",
"run_id": {
"id": "c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597"
},
"info_url": "https://cci.rad.levitte.org//c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597.html"
}
Started at: 2026-09-07 23:21:19.027326+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/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/
╭────────────────────────────────────╮
│ heartwood │
│ Radicle Heartwood Protocol & Stack │
│ 189 issues · 38 patches │
╰────────────────────────────────────╯
Run `cd ./.` to go to the repository directory.
Exit code: 0
$ rad patch checkout 77453b5ea69bc07aed212f9e0c91332c16295ea1
✓ Switched to branch patch/77453b5 at revision 77453b5
✓ Branch patch/77453b5 setup to track rad/patches/77453b5ea69bc07aed212f9e0c91332c16295ea1
Exit code: 0
$ git config advice.detachedHead false
Exit code: 0
$ git checkout e8f9d21be3748ddda31b2b2d2c0ac84db49e31e5
HEAD is now at e8f9d21b cli/node: Use clap
Exit code: 0
$ rad patch show 77453b5ea69bc07aed212f9e0c91332c16295ea1 -p
╭──────────────────────────────────────────────────────────────────────────────────╮
│ Title cli/node: Use clap │
│ Patch 77453b5ea69bc07aed212f9e0c91332c16295ea1 │
│ Author erikli z6MkgFq…FGAnBGz │
│ Head f94a51312f29d5f215d93d7e9491deb55a461138 │
│ Base 0b3424857ec1c5b57d6778f2bf6f379685e7f073 │
│ Target master │
│ Branches patch/77453b5 │
│ Commits ahead 2, behind 710 │
│ Status merged │
├──────────────────────────────────────────────────────────────────────────────────┤
│ f94a513 cli/node: Use clap │
│ 4709f62 node: Re-export `PeerAddrParseError` │
├──────────────────────────────────────────────────────────────────────────────────┤
│ ● Revision 77453b5 @ 0b34248..f94a513 by erikli z6MkgFq…FGAnBGz 10 months ago │
│ ↑ Revision 69b4117 @ 0b34248..64215ef by fintohaps z6Mkire…SQZ3voM 10 months ago │
│ ↑ Revision 0ae8c66 @ 0b34248..9a9b0f0 by lorenz z6MkkPv…WX5sTEz 10 months ago │
│ ↑ Revision 0b57d95 @ 0b34248..4400af3 by fintohaps z6Mkire…SQZ3voM 10 months ago │
│ ↑ Revision 13d6070 @ 9357834..b14b63f by lorenz z6MkkPv…WX5sTEz 10 months ago │
│ ↑ Revision 555868f @ 6cfed88..8651535 by lorenz z6MkkPv…WX5sTEz 10 months ago │
│ ↑ Revision 57a6581 @ 6cfed88..e8f9d21 by fintohaps z6Mkire…SQZ3voM 10 months ago │
│ └─ ✓ merged by lorenz z6MkkPv…WX5sTEz │
╰──────────────────────────────────────────────────────────────────────────────────╯
commit f94a51312f29d5f215d93d7e9491deb55a461138
Author: Erik Kundt <erik@zirkular.io>
Date: Wed Oct 15 13:11:46 2025 +0200
cli/node: Use clap
diff --git a/crates/radicle-cli/src/commands/help.rs b/crates/radicle-cli/src/commands/help.rs
index e7d511640..076eaf51e 100644
--- a/crates/radicle-cli/src/commands/help.rs
+++ b/crates/radicle-cli/src/commands/help.rs
@@ -75,7 +75,10 @@ const COMMANDS: &[CommandItem] = &[
name: "ls",
about: crate::commands::ls::ABOUT,
},
- CommandItem::Lexopt(crate::commands::node::HELP),
+ CommandItem::Clap {
+ name: "node",
+ about: crate::commands::node::ABOUT,
+ },
CommandItem::Lexopt(crate::commands::patch::HELP),
CommandItem::Clap {
name: "path",
diff --git a/crates/radicle-cli/src/commands/node.rs b/crates/radicle-cli/src/commands/node.rs
index 1b217f7d9..53fabd230 100644
--- a/crates/radicle-cli/src/commands/node.rs
+++ b/crates/radicle-cli/src/commands/node.rs
@@ -1,310 +1,49 @@
-use std::ffi::OsString;
-use std::path::PathBuf;
-use std::str::FromStr;
use std::{process, time};
-use anyhow::anyhow;
-
use radicle::node::address::Store as AddressStore;
use radicle::node::config::ConnectAddress;
use radicle::node::routing::Store;
use radicle::node::Handle as _;
-use radicle::node::{Address, Node, NodeId, PeerAddr};
-use radicle::prelude::RepoId;
+use radicle::node::Node;
+use crate::commands::node::args::Only;
use crate::terminal as term;
-use crate::terminal::args::{Args, Error, Help};
use crate::terminal::Element as _;
+pub use args::Args;
+pub(crate) use args::ABOUT;
+use args::{Addr, Command};
+
+mod args;
mod commands;
pub mod control;
mod events;
mod logs;
pub mod routing;
-pub const HELP: Help = Help {
- name: "node",
- description: "Control and query the Radicle Node",
- version: env!("RADICLE_VERSION"),
- usage: r#"
-Usage
-
- rad node status [<option>...]
- rad node start [--foreground] [--verbose] [<option>...] [-- <node-option>...]
- rad node stop [<option>...]
- rad node logs [-n <lines>]
- rad node debug [<option>...]
- rad node connect <nid>[@<addr>] [<option>...]
- rad node routing [--rid <rid>] [--nid <nid>] [--json] [<option>...]
- rad node inventory [--nid <nid>] [<option>...]
- rad node events [--timeout <secs>] [-n <count>] [<option>...]
- rad node config [--addresses]
- rad node db <command> [<option>..]
-
- For `<node-option>` see `radicle-node --help`.
-
-Start options
-
- --foreground Start the node in the foreground
- --path <path> Start node binary at path (default: radicle-node)
- --verbose, -v Verbose output
-
-Routing options
-
- --rid <rid> Show the routing table entries for the given RID
- --nid <nid> Show the routing table entries for the given NID
- --json Output the routing table as json
-
-Inventory options
-
- --nid <nid> List the inventory of the given NID (default: self)
-
-Events options
-
- --timeout <secs> How long to wait to receive an event before giving up
- --count, -n <count> Exit after <count> events
-
-Status options
-
- --only nid If node is running, only print the Node ID and exit,
- otherwise exit with a non-zero exit status.
-
-General options
-
- --help Print help
-"#,
-};
-
-pub struct Options {
- op: Operation,
-}
-
-/// Address used for the [`Operation::Connect`]
-pub enum Addr {
- /// Fully-specified address of the form `<NID>@<Address>`
- Peer(PeerAddr<NodeId, Address>),
- /// Just the `NID`, to be used for address lookups.
- Node(NodeId),
-}
-
-impl FromStr for Addr {
- type Err = anyhow::Error;
-
- fn from_str(s: &str) -> Result<Self, Self::Err> {
- if s.contains("@") {
- PeerAddr::from_str(s)
- .map(Self::Peer)
- .map_err(|e| anyhow!("expected <nid> or <nid>@<addr>: {e}"))
- } else {
- NodeId::from_str(s)
- .map(Self::Node)
- .map_err(|e| anyhow!("expected <nid> or <nid>@<addr>: {e}"))
- }
- }
-}
-
-pub enum Operation {
- Connect {
- addr: Addr,
- timeout: time::Duration,
- },
- Config {
- addresses: bool,
- },
- Db {
- args: Vec<OsString>,
- },
- Events {
- timeout: time::Duration,
- count: usize,
- },
- Routing {
- json: bool,
- rid: Option<RepoId>,
- nid: Option<NodeId>,
- },
- Start {
- foreground: bool,
- verbose: bool,
- path: PathBuf,
- options: Vec<OsString>,
- },
- Logs {
- lines: usize,
- },
- Status {
- only_nid: bool,
- },
- Inventory {
- nid: Option<NodeId>,
- },
- Debug,
- Sessions,
- Stop,
-}
-
-#[derive(Default, PartialEq, Eq)]
-pub enum OperationName {
- Connect,
- Config,
- Db,
- Events,
- Routing,
- Logs,
- Start,
- #[default]
- Status,
- Inventory,
- Debug,
- Sessions,
- Stop,
-}
-
-impl Args for Options {
- fn from_args(args: Vec<OsString>) -> anyhow::Result<(Self, Vec<OsString>)> {
- use lexopt::prelude::*;
-
- let mut foreground = false;
- let mut options = vec![];
- let mut parser = lexopt::Parser::from_args(args);
- let mut op: Option<OperationName> = None;
- let mut nid: Option<NodeId> = None;
- let mut rid: Option<RepoId> = None;
- let mut json: bool = false;
- let mut addr: Option<Addr> = None;
- let mut lines: usize = 60;
- let mut count: usize = usize::MAX;
- let mut timeout = time::Duration::MAX;
- let mut addresses = false;
- let mut path = None;
- let mut verbose = false;
- let mut only_nid = false;
-
- while let Some(arg) = parser.next()? {
- match arg {
- Long("help") | Short('h') => {
- return Err(Error::Help.into());
- }
- Value(val) if op.is_none() => match val.to_string_lossy().as_ref() {
- "connect" => op = Some(OperationName::Connect),
- "db" => op = Some(OperationName::Db),
- "events" => op = Some(OperationName::Events),
- "logs" => op = Some(OperationName::Logs),
- "config" => op = Some(OperationName::Config),
- "routing" => op = Some(OperationName::Routing),
- "inventory" => op = Some(OperationName::Inventory),
- "start" => op = Some(OperationName::Start),
- "status" => op = Some(OperationName::Status),
- "stop" => op = Some(OperationName::Stop),
- "sessions" => op = Some(OperationName::Sessions),
- "debug" => op = Some(OperationName::Debug),
-
- unknown => anyhow::bail!("unknown operation '{}'", unknown),
- },
- Value(val) if matches!(op, Some(OperationName::Connect)) => {
- addr = Some(val.parse()?);
- }
- Long("rid") if matches!(op, Some(OperationName::Routing)) => {
- let val = parser.value()?;
- rid = term::args::rid(&val).ok();
- }
- Long("nid")
- if matches!(op, Some(OperationName::Routing))
- || matches!(op, Some(OperationName::Inventory)) =>
- {
- let val = parser.value()?;
- nid = term::args::nid(&val).ok();
- }
- Long("only") if matches!(op, Some(OperationName::Status)) => {
- if &parser.value()? == "nid" {
- only_nid = true;
- } else {
- anyhow::bail!("unknown argument to --only");
- }
- }
- Long("json") if matches!(op, Some(OperationName::Routing)) => json = true,
- Long("timeout")
- if op == Some(OperationName::Events) || op == Some(OperationName::Connect) =>
- {
- let val = parser.value()?;
- timeout = term::args::seconds(&val)?;
- }
- Long("count") | Short('n') if matches!(op, Some(OperationName::Events)) => {
- let val = parser.value()?;
- count = term::args::number(&val)?;
- }
- Long("foreground") if matches!(op, Some(OperationName::Start)) => {
- foreground = true;
- }
- Long("addresses") if matches!(op, Some(OperationName::Config)) => {
- addresses = true;
- }
- Long("verbose") | Short('v') if matches!(op, Some(OperationName::Start)) => {
- verbose = true;
- }
- Long("path") if matches!(op, Some(OperationName::Start)) => {
- let val = parser.value()?;
- path = Some(PathBuf::from(val));
- }
- Short('n') if matches!(op, Some(OperationName::Logs)) => {
- lines = parser.value()?.parse()?;
- }
- Value(val) if matches!(op, Some(OperationName::Start)) => {
- options.push(val);
- }
- Value(val) if matches!(op, Some(OperationName::Db)) => {
- options.push(val);
- }
- _ => return Err(anyhow!(arg.unexpected())),
- }
- }
-
- let op = match op.unwrap_or_default() {
- OperationName::Connect => Operation::Connect {
- addr: addr.ok_or_else(|| {
- anyhow!("an `<nid>` or an address of the form `<nid>@<host>:<port>` must be provided")
- })?,
- timeout,
- },
- OperationName::Config => Operation::Config { addresses },
- OperationName::Db => Operation::Db { args: options },
- OperationName::Events => Operation::Events { timeout, count },
- OperationName::Routing => Operation::Routing { rid, nid, json },
- OperationName::Logs => Operation::Logs { lines },
- OperationName::Start => Operation::Start {
- foreground,
- verbose,
- options,
- path: path.unwrap_or(PathBuf::from("radicle-node")),
- },
- OperationName::Inventory => Operation::Inventory { nid },
- OperationName::Status => Operation::Status { only_nid },
- OperationName::Debug => Operation::Debug,
- OperationName::Sessions => Operation::Sessions,
- OperationName::Stop => Operation::Stop,
- };
- Ok((Options { op }, vec![]))
- }
-}
-
-pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
+pub fn run(args: Args, ctx: impl term::Context) -> anyhow::Result<()> {
let profile = ctx.profile()?;
let mut node = Node::new(profile.socket());
- match options.op {
- Operation::Connect { addr, timeout } => match addr {
- Addr::Peer(addr) => control::connect(&mut node, addr.id, addr.addr, timeout)?,
- Addr::Node(nid) => {
- let db = profile.database()?;
- let addresses = db
- .addresses_of(&nid)?
- .into_iter()
- .map(|ka| ka.addr)
- .collect();
- control::connect_many(&mut node, nid, addresses, timeout)?;
+ let command = args.command.unwrap_or_default();
+
+ match command {
+ Command::Connect { addr, timeout } => {
+ let timeout = time::Duration::from_millis(timeout.unwrap_or(u64::MAX));
+ match addr {
+ Addr::Peer(addr) => control::connect(&mut node, addr.id, addr.addr, timeout)?,
+ Addr::Node(nid) => {
+ let db = profile.database()?;
+ let addresses = db
+ .addresses_of(&nid)?
+ .into_iter()
+ .map(|ka| ka.addr)
+ .collect();
+ control::connect_many(&mut node, nid, addresses, timeout)?;
+ }
}
- },
- Operation::Config { addresses } => {
+ }
+ Command::Config { addresses } => {
if addresses {
let cfg = node.config()?;
for addr in cfg.external_addresses {
@@ -314,27 +53,30 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
control::config(&node)?;
}
}
- Operation::Db { args } => {
+ Command::Db { args } => {
commands::db(&profile, args)?;
}
- Operation::Debug => {
+ Command::Debug => {
control::debug(&mut node)?;
}
- Operation::Sessions => {
+ Command::Sessions => {
let sessions = control::sessions(&node)?;
if let Some(table) = sessions {
table.print();
}
}
- Operation::Events { timeout, count } => {
+ Command::Events { timeout, count } => {
+ let count = count.unwrap_or(usize::MAX);
+ let timeout = time::Duration::from_millis(timeout.unwrap_or(u64::MAX));
+
events::run(node, count, timeout)?;
}
- Operation::Routing { rid, nid, json } => {
+ Command::Routing { rid, nid, json } => {
let store = profile.database()?;
routing::run(&store, rid, nid, json)?;
}
- Operation::Logs { lines } => control::logs(lines, Some(time::Duration::MAX), &profile)?,
- Operation::Start {
+ Command::Logs { lines } => control::logs(lines, Some(time::Duration::MAX), &profile)?,
+ Command::Start {
foreground,
options,
path,
@@ -342,23 +84,25 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
} => {
control::start(node, !foreground, verbose, options, &path, &profile)?;
}
- Operation::Inventory { nid } => {
+ Command::Inventory { nid } => {
let nid = nid.as_ref().unwrap_or(profile.id());
for rid in profile.routing()?.get_inventory(nid)? {
println!("{}", term::format::tertiary(rid));
}
}
- Operation::Status { only_nid: false } => {
- control::status(&node, &profile)?;
- }
- Operation::Status { only_nid: true } => {
+ Command::Status {
+ only: Some(Only::Nid),
+ } => {
if node.is_running() {
term::print(term::format::node_id_human(&node.nid()?));
} else {
process::exit(2);
}
}
- Operation::Stop => {
+ Command::Status { .. } => {
+ control::status(&node, &profile)?;
+ }
+ Command::Stop => {
control::stop(node, &profile);
}
}
diff --git a/crates/radicle-cli/src/commands/node/args.rs b/crates/radicle-cli/src/commands/node/args.rs
new file mode 100644
index 000000000..ed5d0abdc
--- /dev/null
+++ b/crates/radicle-cli/src/commands/node/args.rs
@@ -0,0 +1,205 @@
+use std::ffi::OsString;
+use std::fmt::Debug;
+use std::path::PathBuf;
+use std::str::FromStr;
+
+use thiserror::Error;
+
+use clap::{Parser, Subcommand};
+
+use radicle::crypto::{PublicKey, PublicKeyError};
+use radicle::node::{Address, NodeId, PeerAddr, PeerAddrParseError};
+use radicle::prelude::RepoId;
+
+pub(crate) const ABOUT: &str = "Control and query the Radicle Node";
+
+#[derive(Parser, Debug)]
+#[command(about = ABOUT, long_about, disable_version_flag = true)]
+pub struct Args {
+ #[command(subcommand)]
+ pub(super) command: Option<Command>,
+}
+
+/// Address used for the [`Operation::Connect`]
+#[derive(Clone, Debug)]
+pub(super) enum Addr {
+ /// Fully-specified address of the form `<NID>@<Address>`
+ Peer(PeerAddr<NodeId, Address>),
+ /// Just the `NID`, to be used for address lookups.
+ Node(NodeId),
+}
+
+#[derive(Error, Debug)]
+pub(super) enum AddrParseError {
+ #[error("{0}, expected <nid> or <nid>@<addr>")]
+ PeerAddr(#[from] PeerAddrParseError<PublicKey>),
+ #[error(transparent)]
+ NodeId(#[from] PublicKeyError),
+}
+
+impl FromStr for Addr {
+ type Err = AddrParseError;
+
+ fn from_str(s: &str) -> Result<Self, Self::Err> {
+ if s.contains("@") {
+ PeerAddr::from_str(s)
+ .map(Self::Peer)
+ .map_err(AddrParseError::PeerAddr)
+ } else {
+ NodeId::from_str(s)
+ .map(Self::Node)
+ .map_err(AddrParseError::NodeId)
+ }
+ }
+}
+
+#[derive(Clone, Debug)]
+pub enum Only {
+ Nid,
+}
+
+#[derive(Error, Debug)]
+#[error("could not parse value `{0}`")]
+pub struct OnlyParseError(String);
+
+impl FromStr for Only {
+ type Err = OnlyParseError;
+
+ fn from_str(value: &str) -> Result<Self, Self::Err> {
+ match value {
+ "nid" => Ok(Only::Nid),
+ _ => Err(OnlyParseError(value.to_string())),
+ }
+ }
+}
+
+#[derive(Clone, Debug)]
+struct OnlyParser;
+
+impl clap::builder::TypedValueParser for OnlyParser {
+ type Value = Only;
+
+ fn parse_ref(
+ &self,
+ cmd: &clap::Command,
+ arg: Option<&clap::Arg>,
+ value: &std::ffi::OsStr,
+ ) -> Result<Self::Value, clap::Error> {
+ <Only as std::str::FromStr>::from_str.parse_ref(cmd, arg, value)
+ }
+
+ fn possible_values(
+ &self,
+ ) -> Option<Box<dyn Iterator<Item = clap::builder::PossibleValue> + '_>> {
+ use clap::builder::PossibleValue;
+ Some(Box::new([PossibleValue::new("nid")].into_iter()))
+ }
+}
+
+#[derive(Subcommand, Debug)]
+pub(super) enum Command {
+ /// Instruct the node to connect to another node
+ Connect {
+ /// Address of the node to connect to
+ addr: Addr,
+
+ /// How long to wait for the connection to be established
+ #[arg(long)]
+ timeout: Option<u64>,
+ },
+
+ /// Show the config
+ Config {
+ /// Only show external addresses from the node's config
+ #[arg(long)]
+ addresses: bool,
+ },
+
+ /// Interact with the database
+ Db {
+ /// The external arguments to pass, e.g. `rad node db exec`
+ #[arg(long)]
+ args: Vec<OsString>,
+ },
+
+ /// Watches and show events
+ Events {
+ /// How long to wait to receive an event before giving up
+ #[arg(long, value_name = "SECS")]
+ timeout: Option<u64>,
+
+ /// Exit after <COUNT> events
+ #[arg(long, alias = "n")]
+ count: Option<usize>,
+ },
+
+ /// Show the routing table
+ Routing {
+ /// Output the routing table as json
+ #[arg(long)]
+ json: bool,
+
+ /// Show the routing table entries for the given RID
+ #[arg(long)]
+ rid: Option<RepoId>,
+
+ /// Show the routing table entries for the given NID
+ #[arg(long)]
+ nid: Option<NodeId>,
+ },
+
+ /// Start the node
+ Start {
+ /// Start the node in the foreground
+ #[arg(long)]
+ foreground: bool,
+
+ /// Verbose output
+ #[arg(long, short)]
+ verbose: bool,
+
+ /// Start node binary at path
+ #[arg(long, default_value = "radicle-node")]
+ path: PathBuf,
+
+ /// Additional options to pass to the binary
+ #[arg(long, num_args = 1..)]
+ options: Vec<OsString>,
+ },
+
+ /// Show the log
+ Logs {
+ /// Only show <COUNT> lines of the log
+ #[arg(long)]
+ lines: usize,
+ },
+
+ /// Show the status
+ Status {
+ /// If node is running, only print the Node ID and exit, otherwise exit with a non-zero exit status.
+ #[arg(long, value_parser = OnlyParser)]
+ only: Option<Only>,
+ },
+
+ /// Manage the inventory
+ Inventory {
+ /// List the inventory of the given NID, defaults to `self`
+ #[arg(long)]
+ nid: Option<NodeId>,
+ },
+
+ /// Show the debug information
+ Debug,
+
+ /// Show the active sessions
+ Sessions,
+
+ /// Stop the node
+ Stop,
+}
+
+impl Default for Command {
+ fn default() -> Self {
+ Command::Status { only: None }
+ }
+}
diff --git a/crates/radicle-cli/src/main.rs b/crates/radicle-cli/src/main.rs
index e0337df52..90c4a4c95 100644
--- a/crates/radicle-cli/src/main.rs
+++ b/crates/radicle-cli/src/main.rs
@@ -66,6 +66,7 @@ enum Commands {
Init(init::Args),
Issue(issue::Args),
Ls(ls::Args),
+ Node(node::Args),
Path(path::Args),
Publish(publish::Args),
Stats(stats::Args),
@@ -275,7 +276,9 @@ pub(crate) fn run_other(exe: &str, args: &[OsString]) -> Result<(), Option<anyho
}
}
"node" => {
- term::run_command_args::<node::Options, _>(node::HELP, node::run, args.to_vec());
+ if let Some(Commands::Node(args)) = CliArgs::parse().command {
+ term::run_command_fn(node::run, args);
+ }
}
"patch" => {
term::run_command_args::<patch::Options, _>(patch::HELP, patch::run, args.to_vec());
commit 4709f62658749dc060fd0f22f500861f20d63a59
Author: Erik Kundt <erik@zirkular.io>
Date: Wed Oct 15 13:11:32 2025 +0200
node: Re-export `PeerAddrParseError`
In order to build higher-level errors that use `PeerAddrParseError`, it
must be re-exported.
diff --git a/crates/radicle/src/node.rs b/crates/radicle/src/node.rs
index 4b108a8cf..625250758 100644
--- a/crates/radicle/src/node.rs
+++ b/crates/radicle/src/node.rs
@@ -46,7 +46,7 @@ use crate::storage::RefUpdate;
pub use address::KnownAddress;
pub use command::{Command, CommandResult, ConnectOptions, Success, DEFAULT_TIMEOUT};
pub use config::Config;
-pub use cyphernet::addr::{HostName, PeerAddr};
+pub use cyphernet::addr::{HostName, PeerAddr, PeerAddrParseError};
pub use db::Database;
pub use events::{Event, Events};
pub use features::Features;
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 cargo test --workspace --no-fail-fast '
Commands:
$ podman run --name c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597 -v /opt/radcis/ci.rad.levitte.org/cci/state/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/s:/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/s:ro -v /opt/radcis/ci.rad.levitte.org/cci/state/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w:/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w -w /c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w -v /opt/radcis/ci.rad.levitte.org/.radicle:/${id}/.radicle:ro -e RAD_HOME=/${id}/.radicle rust:trixie bash /c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/s/script.sh
+ export 'RUSTDOCFLAGS=-D warnings'
+ RUSTDOCFLAGS='-D warnings'
+ cargo --version
info: syncing channel updates for '1.90-x86_64-unknown-linux-gnu'
info: latest update on 2025-09-18, rust version 1.90.0 (1159e78c4 2025-09-14)
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.90.0 (840b83a10 2025-07-30)
+ rustc --version
rustc 1.90.0 (1159e78c4 2025-09-14)
+ cargo fmt --check
+ cargo clippy --all-targets --workspace -- --deny warnings
Updating crates.io index
Downloading crates ...
Downloaded aead v0.5.2
Downloaded adler2 v2.0.0
Downloaded amplify_num v0.5.2
Downloaded amplify_derive v4.0.0
Downloaded generic-array v0.14.7
Downloaded fxhash v0.2.1
Downloaded aho-corasick v1.1.3
Downloaded ghash v0.5.1
Downloaded gix-tempfile v18.0.0
Downloaded getrandom v0.2.15
Downloaded gix-sec v0.12.0
Downloaded flate2 v1.1.1
Downloaded elliptic-curve v0.13.8
Downloaded icu_locid_transform v1.5.0
Downloaded log v0.4.27
Downloaded group v0.13.0
Downloaded cpufeatures v0.2.12
Downloaded lazy_static v1.5.0
Downloaded nonempty v0.9.0
Downloaded num v0.4.3
Downloaded outref v0.5.2
Downloaded pbkdf2 v0.12.2
Downloaded phf_shared v0.11.3
Downloaded either v1.11.0
Downloaded keccak v0.1.5
Downloaded const-oid v0.9.6
Downloaded noise-framework v0.4.0
Downloaded maybe-async v0.2.10
Downloaded pin-project-lite v0.2.16
Downloaded memmap2 v0.9.8
Downloaded rand_chacha v0.3.1
Downloaded ref-cast-impl v1.0.24
Downloaded proc-macro-error-attr2 v2.0.0
Downloaded pkcs8 v0.10.2
Downloaded same-file v1.0.6
Downloaded serde_fmt v1.0.3
Downloaded overload v0.1.1
Downloaded signal-hook-mio v0.2.4
Downloaded qcheck v1.0.0
Downloaded quote v1.0.41
Downloaded socks5-client v0.4.1
Downloaded subtle v2.5.0
Downloaded sha1 v0.10.6
Downloaded sqlite v0.32.0
Downloaded strsim v0.11.1
Downloaded test-log v0.2.18
Downloaded signature v2.2.0
Downloaded ryu v1.0.17
Downloaded tinyvec_macros v0.1.1
Downloaded sval_dynamic v2.14.1
Downloaded sval_fmt v2.14.1
Downloaded sval_serde v2.14.1
Downloaded sval_nested v2.14.1
Downloaded tree-sitter-language v0.1.2
Downloaded ssh-encoding v0.2.0
Downloaded snapbox v0.4.17
Downloaded tree-sitter-highlight v0.24.4
Downloaded typeid v1.0.3
Downloaded smallvec v1.15.1
Downloaded unit-prefix v0.5.1
Downloaded tinystr v0.7.6
Downloaded utf16_iter v1.0.5
Downloaded tracing-log v0.2.0
Downloaded referencing v0.30.0
Downloaded write16 v1.0.0
Downloaded zerofrom v0.1.6
Downloaded zerofrom-derive v0.1.6
Downloaded utf8parse v0.2.1
Downloaded tinyvec v1.6.0
Downloaded unicode-width v0.1.11
Downloaded typenum v1.17.0
Downloaded vsimd v0.8.0
Downloaded zeroize v1.7.0
Downloaded rsa v0.9.6
Downloaded walkdir v2.5.0
Downloaded value-bag v1.11.1
Downloaded tracing-core v0.1.34
Downloaded tree-sitter-toml-ng v0.6.0
Downloaded jiff-static v0.2.15
Downloaded url v2.5.4
Downloaded tracing v0.1.41
Downloaded uuid-simd v0.8.0
Downloaded serde_json v1.0.140
Downloaded yoke v0.7.5
Downloaded unicode-segmentation v1.11.0
Downloaded chrono v0.4.38
Downloaded serde_derive v1.0.219
Downloaded portable-atomic v1.11.0
Downloaded zerovec-derive v0.10.3
Downloaded tree-sitter-python v0.23.4
Downloaded winnow v0.7.13
Downloaded uuid v1.16.0
Downloaded vcpkg v0.2.15
Downloaded object v0.36.7
Downloaded syn v2.0.106
Downloaded radicle-surf v0.25.0
Downloaded unicode-width v0.2.1
Downloaded tree-sitter-md v0.3.2
Downloaded tree-sitter v0.24.4
Downloaded zlib-rs v0.5.2
Downloaded rustix v1.0.7
Downloaded tree-sitter-c v0.23.2
Downloaded regex v1.11.1
Downloaded rustix v0.38.34
Downloaded p384 v0.13.0
Downloaded regex-syntax v0.6.29
Downloaded icu_properties_data v1.5.1
Downloaded tree-sitter-rust v0.23.2
Downloaded regex-syntax v0.8.5
Downloaded git2 v0.19.0
Downloaded p521 v0.13.3
Downloaded itertools v0.14.0
Downloaded hashbrown v0.15.5
Downloaded hashbrown v0.14.3
Downloaded tree-sitter-bash v0.23.3
Downloaded bstr v1.12.0
Downloaded tree-sitter-ruby v0.23.1
Downloaded ssh-key v0.6.6
Downloaded regex-automata v0.1.10
Downloaded num-bigint-dig v0.8.4
Downloaded jsonschema v0.30.0
Downloaded idna v1.0.3
Downloaded regex-automata v0.4.9
Downloaded syn v1.0.109
Downloaded bloomy v1.2.0
Downloaded tracing-subscriber v0.3.19
Downloaded jiff v0.2.15
Downloaded sharded-slab v0.1.7
Downloaded libc v0.2.174
Downloaded inquire v0.7.5
Downloaded zerovec v0.10.4
Downloaded sha1-checked v0.10.0
Downloaded zerocopy v0.7.35
Downloaded tokio v1.47.1
Downloaded tree-sitter-typescript v0.23.2
Downloaded sha3 v0.10.8
Downloaded unicode-normalization v0.1.23
Downloaded toml v0.9.5
Downloaded tar v0.4.40
Downloaded serde v1.0.219
Downloaded rand v0.8.5
Downloaded libm v0.2.8
Downloaded yansi v0.5.1
Downloaded tree-sitter-go v0.23.4
Downloaded tree-sitter-css v0.23.1
Downloaded sha2 v0.10.8
Downloaded indexmap v2.2.6
Downloaded icu_provider v1.5.0
Downloaded heapless v0.8.0
Downloaded gix-transport v0.48.0
Downloaded spin v0.9.8
Downloaded icu_properties v1.5.1
Downloaded icu_collections v1.5.0
Downloaded signals_receipts v0.2.0
Downloaded toml_writer v1.0.2
Downloaded toml_datetime v0.7.0
Downloaded thiserror v2.0.12
Downloaded systemd-journal-logger v2.2.2
Downloaded prodash v30.0.1
Downloaded memchr v2.7.2
Downloaded icu_normalizer_data v1.5.1
Downloaded writeable v0.5.5
Downloaded unicode-ident v1.0.12
Downloaded synstructure v0.13.1
Downloaded linux-raw-sys v0.4.13
Downloaded value-bag-sval2 v1.11.1
Downloaded structured-logger v1.0.4
Downloaded sem_safe v0.2.0
Downloaded p256 v0.13.2
Downloaded indicatif v0.18.0
Downloaded similar v2.5.0
Downloaded schemars v1.0.4
Downloaded universal-hash v0.5.1
Downloaded xattr v1.3.1
Downloaded utf8_iter v1.0.4
Downloaded unicode-display-width v0.3.0
Downloaded ssh-cipher v0.2.0
Downloaded yoke-derive v0.7.5
Downloaded cyphernet v0.5.2
Downloaded version_check v0.9.4
Downloaded value-bag-serde1 v1.11.1
Downloaded thiserror-impl v1.0.69
Downloaded sqlite3-sys v0.15.2
Downloaded spki v0.7.3
Downloaded serde-untagged v0.1.7
Downloaded sec1 v0.7.3
Downloaded libgit2-sys v0.17.0+1.8.1
Downloaded pretty_assertions v1.4.0
Downloaded litemap v0.7.5
Downloaded icu_locid v1.5.0
Downloaded thiserror v1.0.69
Downloaded socket2 v0.5.7
Downloaded tree-sitter-html v0.23.2
Downloaded tempfile v3.23.0
Downloaded proc-macro2 v1.0.101
Downloaded signal-hook v0.3.18
Downloaded polyval v0.6.2
Downloaded timeago v0.4.2
Downloaded thread_local v1.1.9
Downloaded thiserror-impl v2.0.12
Downloaded mio v0.8.11
Downloaded icu_normalizer v1.5.0
Downloaded gix-protocol v0.51.0
Downloaded sval_buffer v2.14.1
Downloaded sval v2.14.1
Downloaded num-bigint v0.4.6
Downloaded tree-sitter-json v0.24.8
Downloaded linux-raw-sys v0.9.4
Downloaded mio v1.0.4
Downloaded streaming-iterator v0.1.9
Downloaded crossterm v0.25.0
Downloaded crossbeam-channel v0.5.15
Downloaded once_cell v1.21.3
Downloaded gix-pack v0.60.0
Downloaded test-log-macros v0.2.18
Downloaded signature v1.6.4
Downloaded serde_spanned v1.0.0
Downloaded scopeguard v1.2.0
Downloaded der v0.7.9
Downloaded sval_ref v2.14.1
Downloaded sval_json v2.14.1
Downloaded litrs v0.4.1
Downloaded base64 v0.21.7
Downloaded stable_deref_trait v1.2.0
Downloaded ppv-lite86 v0.2.17
Downloaded libz-rs-sys v0.5.2
Downloaded crypto-bigint v0.5.5
Downloaded siphasher v1.0.1
Downloaded signal-hook-registry v1.4.5
Downloaded sqlite3-src v0.5.1
Downloaded shlex v1.3.0
Downloaded rustc-demangle v0.1.26
Downloaded rand_core v0.6.4
Downloaded serde_derive_internals v0.29.1
Downloaded scrypt v0.11.0
Downloaded base64 v0.22.1
Downloaded pem-rfc7468 v0.7.0
Downloaded backtrace v0.3.75
Downloaded arc-swap v1.7.1
Downloaded snapbox-macros v0.3.8
Downloaded siphasher v0.3.11
Downloaded schemars_derive v1.0.4
Downloaded miniz_oxide v0.8.8
Downloaded icu_locid_transform_data v1.5.1
Downloaded gix-url v0.32.0
Downloaded gix-credentials v0.30.0
Downloaded cc v1.2.2
Downloaded nu-ansi-term v0.46.0
Downloaded lexopt v0.3.0
Downloaded proc-macro-error2 v2.0.1
Downloaded primeorder v0.13.6
Downloaded num-traits v0.2.19
Downloaded fancy-regex v0.14.0
Downloaded derive_more v2.0.1
Downloaded bytes v1.10.1
Downloaded shell-words v1.1.0
Downloaded poly1305 v0.8.0
Downloaded iana-time-zone v0.1.60
Downloaded ref-cast v1.0.24
Downloaded hmac v0.12.1
Downloaded derive_more-impl v2.0.1
Downloaded salsa20 v0.10.2
Downloaded rfc6979 v0.4.0
Downloaded radicle-std-ext v0.1.1
Downloaded radicle-git-ext v0.10.0
Downloaded qcheck-macros v1.0.0
Downloaded pkg-config v0.3.30
Downloaded gix-path v0.10.20
Downloaded pkcs1 v0.7.5
Downloaded percent-encoding v2.3.1
Downloaded paste v1.0.15
Downloaded parking_lot_core v0.9.12
Downloaded parking_lot v0.12.5
Downloaded num-complex v0.4.6
Downloaded jobserver v0.1.31
Downloaded bit-vec v0.8.0
Downloaded anyhow v1.0.82
Downloaded itoa v1.0.11
Downloaded gix-prompt v0.11.1
Downloaded gix-lock v18.0.0
Downloaded git-ref-format-core v0.5.0
Downloaded emojis v0.6.4
Downloaded diff v0.1.13
Downloaded console v0.16.0
Downloaded phf v0.11.3
Downloaded os_info v3.12.0
Downloaded num-rational v0.4.2
Downloaded num-integer v0.1.46
Downloaded normalize-line-endings v0.3.0
Downloaded heck v0.5.0
Downloaded hash32 v0.3.1
Downloaded gix-negotiate v0.21.0
Downloaded ctr v0.9.2
Downloaded anstyle-parse v0.2.3
Downloaded chacha20poly1305 v0.10.1
Downloaded base64ct v1.6.0
Downloaded inout v0.1.3
Downloaded human-panic v2.0.3
Downloaded ecdsa v0.16.9
Downloaded ec25519 v0.1.0
Downloaded cbc v0.1.2
Downloaded ascii v1.1.0
Downloaded blowfish v0.9.1
Downloaded bitflags v2.9.1
Downloaded opaque-debug v0.3.1
Downloaded idna_adapter v1.2.0
Downloaded num-iter v0.1.45
Downloaded num-cmp v0.1.0
Downloaded git-ref-format v0.5.0
Downloaded multibase v0.9.1
Downloaded libz-sys v1.1.16
Downloaded matchers v0.1.0
Downloaded localtime v1.3.1
Downloaded home v0.5.9
Downloaded gix-chunk v0.4.11
Downloaded newline-converter v0.3.0
Downloaded icu_provider_macros v1.5.0
Downloaded gix-validate v0.10.0
Downloaded erased-serde v0.4.6
Downloaded env_logger v0.11.8
Downloaded displaydoc v0.2.5
Downloaded cyphergraphy v0.3.0
Downloaded crypto-common v0.1.6
Downloaded anstyle-query v1.0.2
Downloaded gix-hashtable v0.9.0
Downloaded gix-actor v0.35.4
Downloaded bcrypt-pbkdf v0.10.0
Downloaded colorchoice v1.0.0
Downloaded block-buffer v0.10.4
Downloaded anstyle v1.0.11
Downloaded gix-traverse v0.47.0
Downloaded gix-packetline v0.19.1
Downloaded gix-odb v0.70.0
Downloaded gix-object v0.50.2
Downloaded gix-fs v0.16.1
Downloaded errno v0.3.13
Downloaded dunce v1.0.5
Downloaded ct-codecs v1.1.1
Downloaded lock_api v0.4.14
Downloaded gix-shallow v0.5.0
Downloaded gix-features v0.43.1
Downloaded git-ref-format-macro v0.5.0
Downloaded gimli v0.31.1
Downloaded getrandom v0.3.3
Downloaded data-encoding-macro v0.1.14
Downloaded cypheraddr v0.4.0
Downloaded crossbeam-utils v0.8.19
Downloaded clap v4.5.44
Downloaded cfg-if v1.0.0
Downloaded block-padding v0.3.3
Downloaded bit-set v0.8.0
Downloaded base32 v0.4.0
Downloaded base-x v0.2.11
Downloaded amplify_syn v2.0.1
Downloaded gix-utils v0.3.0
Downloaded gix-trace v0.1.13
Downloaded gix-revwalk v0.21.0
Downloaded gix-revision v0.35.0
Downloaded gix-refspec v0.31.0
Downloaded gix-ref v0.53.1
Downloaded gix-quote v0.6.0
Downloaded gix-hash v0.19.0
Downloaded gix-diff v0.53.0
Downloaded gix-date v0.10.5
Downloaded gix-config-value v0.15.1
Downloaded gix-command v0.6.2
Downloaded ff v0.13.0
Downloaded env_filter v0.1.3
Downloaded dyn-clone v1.0.17
Downloaded document-features v0.2.11
Downloaded digest v0.10.7
Downloaded data-encoding-macro-internal v0.1.12
Downloaded convert_case v0.7.1
Downloaded clap_lex v0.7.5
Downloaded clap_derive v4.5.41
Downloaded clap_builder v4.5.44
Downloaded borrow-or-share v0.2.2
Downloaded bitflags v1.3.2
Downloaded ed25519 v1.5.3
Downloaded data-encoding v2.5.0
Downloaded crc32fast v1.5.0
Downloaded bytecount v0.6.8
Downloaded base16ct v0.2.0
Downloaded fluent-uri v0.3.2
Downloaded faster-hex v0.10.0
Downloaded cipher v0.4.4
Downloaded byteorder v1.5.0
Downloaded anstream v0.6.13
Downloaded gix-commitgraph v0.29.0
Downloaded fraction v0.15.3
Downloaded filetime v0.2.23
Downloaded fast-glob v0.3.3
Downloaded email_address v0.2.9
Downloaded autocfg v1.2.0
Downloaded fastrand v2.3.0
Downloaded escargot v0.5.10
Downloaded equivalent v1.0.1
Downloaded crossterm v0.29.0
Downloaded colored v2.1.0
Downloaded chacha20 v0.9.1
Downloaded bytesize v2.0.1
Downloaded aes-gcm v0.10.3
Downloaded form_urlencoded v1.2.1
Downloaded ahash v0.8.11
Downloaded aes v0.8.4
Downloaded amplify v4.6.0
Downloaded addr2line v0.24.2
Compiling libc v0.2.174
Compiling proc-macro2 v1.0.101
Compiling quote v1.0.41
Compiling unicode-ident v1.0.12
Checking cfg-if v1.0.0
Compiling shlex v1.3.0
Compiling version_check v0.9.4
Checking memchr v2.7.2
Compiling syn v2.0.106
Compiling jobserver v0.1.31
Checking getrandom v0.2.15
Compiling typenum v1.17.0
Compiling generic-array v0.14.7
Compiling cc v1.2.2
Checking rand_core v0.6.4
Compiling serde v1.0.219
Checking aho-corasick v1.1.3
Checking regex-syntax v0.8.5
Checking crypto-common v0.1.6
Checking smallvec v1.15.1
Checking subtle v2.5.0
Checking stable_deref_trait v1.2.0
Checking cpufeatures v0.2.12
Checking once_cell v1.21.3
Compiling parking_lot_core v0.9.12
Checking fastrand v2.3.0
Checking scopeguard v1.2.0
Checking lock_api v0.4.14
Checking block-buffer v0.10.4
Compiling thiserror v2.0.12
Checking digest v0.10.7
Checking parking_lot v0.12.5
Compiling crc32fast v1.5.0
Checking tinyvec_macros v0.1.1
Checking byteorder v1.5.0
Checking regex-automata v0.4.9
Checking tinyvec v1.6.0
Compiling typeid v1.0.3
Checking bitflags v2.9.1
Checking gix-trace v0.1.13
Checking unicode-normalization v0.1.23
Checking home v0.5.9
Compiling synstructure v0.13.1
Checking gix-utils v0.3.0
Checking zlib-rs v0.5.2
Checking same-file v1.0.6
Checking walkdir v2.5.0
Checking prodash v30.0.1
Checking bstr v1.12.0
Checking itoa v1.0.11
Compiling heapless v0.8.0
Compiling serde_derive v1.0.219
Compiling thiserror-impl v2.0.12
Compiling zerofrom-derive v0.1.6
Checking libz-rs-sys v0.5.2
Checking flate2 v1.1.1
Compiling yoke-derive v0.7.5
Checking zerofrom v0.1.6
Checking gix-validate v0.10.0
Compiling zerovec-derive v0.10.3
Checking gix-path v0.10.20
Checking yoke v0.7.5
Checking gix-features v0.43.1
Compiling displaydoc v0.2.5
Checking hash32 v0.3.1
Checking zeroize v1.7.0
Compiling thiserror v1.0.69
Checking zerovec v0.10.4
Compiling icu_locid_transform_data v1.5.1
Compiling pkg-config v0.3.30
Checking writeable v0.5.5
Checking litemap v0.7.5
Checking faster-hex v0.10.0
Compiling thiserror-impl v1.0.69
Checking tinystr v0.7.6
Compiling icu_provider_macros v1.5.0
Checking icu_locid v1.5.0
Compiling rustix v1.0.7
Compiling icu_properties_data v1.5.1
Checking icu_provider v1.5.0
Checking sha1 v0.10.6
Checking block-padding v0.3.3
Compiling icu_normalizer_data v1.5.1
Checking linux-raw-sys v0.9.4
Checking inout v0.1.3
Checking icu_locid_transform v1.5.0
Checking sha1-checked v0.10.0
Checking icu_collections v1.5.0
Checking erased-serde v0.4.6
Checking serde_fmt v1.0.3
Compiling syn v1.0.109
Compiling getrandom v0.3.3
Checking value-bag-serde1 v1.11.1
Checking value-bag v1.11.1
Checking icu_properties v1.5.1
Checking gix-hash v0.19.0
Checking log v0.4.27
Checking cipher v0.4.4
Checking write16 v1.0.0
Checking utf8_iter v1.0.4
Checking utf16_iter v1.0.5
Checking percent-encoding v2.3.1
Checking form_urlencoded v1.2.1
Checking sha2 v0.10.8
Compiling vcpkg v0.2.15
Checking icu_normalizer v1.5.0
Compiling libz-sys v1.1.16
Checking universal-hash v0.5.1
Checking opaque-debug v0.3.1
Checking idna_adapter v1.2.0
Checking tempfile v3.23.0
Checking idna v1.0.3
Compiling autocfg v1.2.0
Compiling amplify_syn v2.0.1
Checking url v2.5.4
Compiling num-traits v0.2.19
Compiling libgit2-sys v0.17.0+1.8.1
Checking signature v1.6.4
Compiling serde_json v1.0.140
Checking equivalent v1.0.1
Checking hashbrown v0.14.3
Checking ed25519 v1.5.3
Checking aead v0.5.2
Checking amplify_num v0.5.2
Compiling amplify_derive v4.0.0
Checking indexmap v2.2.6
Checking ryu v1.0.17
Checking ascii v1.1.0
Compiling ref-cast v1.0.24
Checking ct-codecs v1.1.1
Checking ec25519 v0.1.0
Checking poly1305 v0.8.0
Checking amplify v4.6.0
Checking git-ref-format-core v0.5.0
Checking chacha20 v0.9.1
Compiling ref-cast-impl v1.0.24
Checking cyphergraphy v0.3.0
Checking polyval v0.6.2
Compiling sqlite3-src v0.5.1
Checking hmac v0.12.1
Checking base64ct v1.6.0
Checking dyn-clone v1.0.17
Checking keccak v0.1.5
Checking pem-rfc7468 v0.7.0
Checking sha3 v0.10.8
Checking pbkdf2 v0.12.2
Checking ghash v0.5.1
Checking aes v0.8.4
Checking ctr v0.9.2
Checking rand v0.8.5
Compiling crossbeam-utils v0.8.19
Checking base32 v0.4.0
Compiling data-encoding v2.5.0
Checking qcheck v1.0.0
Checking cypheraddr v0.4.0
Checking aes-gcm v0.10.3
Checking ssh-encoding v0.2.0
Compiling data-encoding-macro-internal v0.1.12
Checking chacha20poly1305 v0.10.1
Checking blowfish v0.9.1
Checking cbc v0.1.2
Compiling serde_derive_internals v0.29.1
Checking data-encoding-macro v0.1.14
Checking ssh-cipher v0.2.0
Checking bcrypt-pbkdf v0.10.0
Checking noise-framework v0.4.0
Checking socks5-client v0.4.1
Compiling schemars_derive v1.0.4
Checking base-x v0.2.11
Checking signature v2.2.0
Checking ssh-key v0.6.6
Checking multibase v0.9.1
Checking cyphernet v0.5.2
Checking crossbeam-channel v0.5.15
Checking schemars v1.0.4
Checking radicle-ssh v0.10.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-ssh)
Checking lazy_static v1.5.0
Checking jiff v0.2.15
Checking nonempty v0.9.0
Checking siphasher v1.0.1
Checking radicle-git-metadata v0.1.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-git-metadata)
Checking radicle-dag v0.10.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-dag)
Checking winnow v0.7.13
Checking hashbrown v0.15.5
Checking anstyle-query v1.0.2
Checking gix-date v0.10.5
Checking gix-hashtable v0.9.0
Checking radicle-git-ref-format v0.1.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-git-ref-format)
Checking gix-actor v0.35.4
Checking utf8parse v0.2.1
Checking base64 v0.21.7
Checking iana-time-zone v0.1.60
Checking chrono v0.4.38
Checking gix-object v0.50.2
Checking anstyle-parse v0.2.3
Checking colored v2.1.0
Checking serde-untagged v0.1.7
Checking localtime v1.3.1
Checking bytesize v2.0.1
Checking memmap2 v0.9.8
Checking tree-sitter-language v0.1.2
Checking dunce v1.0.5
Checking colorchoice v1.0.0
Checking anstyle v1.0.11
Checking fast-glob v0.3.3
Checking anstream v0.6.13
Checking gix-chunk v0.4.11
Checking gix-fs v0.16.1
Checking gix-commitgraph v0.29.0
Checking gix-tempfile v18.0.0
Checking gix-revwalk v0.21.0
Checking mio v1.0.4
Checking gix-quote v0.6.0
Checking sem_safe v0.2.0
Checking errno v0.3.13
Checking shell-words v1.1.0
Checking either v1.11.0
Checking gix-command v0.6.2
Checking signals_receipts v0.2.0
Compiling object v0.36.7
Compiling signal-hook v0.3.18
Checking gix-lock v18.0.0
Checking gix-url v0.32.0
Checking gix-config-value v0.15.1
Checking gix-sec v0.12.0
Checking signal-hook-registry v1.4.5
Checking gimli v0.31.1
Compiling rustix v0.38.34
Checking adler2 v2.0.0
Checking miniz_oxide v0.8.8
Checking gix-prompt v0.11.1
Checking addr2line v0.24.2
Checking radicle-signals v0.11.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-signals)
Checking gix-revision v0.35.0
Checking gix-traverse v0.47.0
Checking gix-diff v0.53.0
Checking mio v0.8.11
Checking gix-packetline v0.19.1
Compiling tree-sitter v0.24.4
Compiling unicode-segmentation v1.11.0
Checking rustc-demangle v0.1.26
Compiling linux-raw-sys v0.4.13
Compiling anyhow v1.0.82
Checking backtrace v0.3.75
Compiling convert_case v0.7.1
Checking gix-transport v0.48.0
Checking signal-hook-mio v0.2.4
Checking gix-pack v0.60.0
Checking gix-refspec v0.31.0
Checking gix-credentials v0.30.0
Checking gix-ref v0.53.1
Checking gix-shallow v0.5.0
Checking gix-negotiate v0.21.0
Compiling maybe-async v0.2.10
Checking regex v1.11.1
Compiling proc-macro-error-attr2 v2.0.0
Compiling portable-atomic v1.11.0
Checking arc-swap v1.7.1
Checking gix-odb v0.70.0
Compiling proc-macro-error2 v2.0.1
Checking gix-protocol v0.51.0
Compiling xattr v1.3.1
Compiling derive_more-impl v2.0.1
Compiling filetime v0.2.23
Checking uuid v1.16.0
Compiling litrs v0.4.1
Checking bytes v1.10.1
Checking unicode-width v0.2.1
Checking sqlite3-sys v0.15.2
Checking sqlite v0.32.0
Checking lexopt v0.3.0
Checking bitflags v1.3.2
Checking radicle-crypto v0.14.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-crypto)
Checking crossterm v0.25.0
Checking console v0.16.0
Compiling document-features v0.2.11
Checking derive_more v2.0.1
Compiling tar v0.4.40
Compiling git-ref-format-macro v0.5.0
Checking newline-converter v0.3.0
Checking snapbox-macros v0.3.8
Checking salsa20 v0.10.2
Checking fxhash v0.2.1
Checking unit-prefix v0.5.1
Checking siphasher v0.3.11
Checking streaming-iterator v0.1.9
Checking unicode-width v0.1.11
Checking normalize-line-endings v0.3.0
Checking similar v2.5.0
Checking inquire v0.7.5
Checking snapbox v0.4.17
Checking bloomy v1.2.0
Checking indicatif v0.18.0
Compiling radicle-surf v0.25.0
Checking scrypt v0.11.0
Checking git-ref-format v0.5.0
Checking crossterm v0.29.0
Checking unicode-display-width v0.3.0
Checking systemd-journal-logger v2.2.2
Checking toml_datetime v0.7.0
Checking serde_spanned v1.0.0
Compiling tree-sitter-css v0.23.1
Compiling tree-sitter-html v0.23.2
Compiling tree-sitter-toml-ng v0.6.0
Compiling tree-sitter-ruby v0.23.1
Compiling tree-sitter-json v0.24.8
Compiling tree-sitter-go v0.23.4
Compiling tree-sitter-python v0.23.4
Compiling tree-sitter-md v0.3.2
Compiling tree-sitter-bash v0.23.3
Compiling tree-sitter-c v0.23.2
Compiling tree-sitter-rust v0.23.2
Compiling tree-sitter-typescript v0.23.2
Checking toml_writer v1.0.2
Checking clap_lex v0.7.5
Checking strsim v0.11.1
Checking radicle-std-ext v0.1.1
Checking pin-project-lite v0.2.16
Compiling heck v0.5.0
Checking clap_builder v4.5.44
Checking tokio v1.47.1
Compiling clap_derive v4.5.41
Checking toml v0.9.5
Checking os_info v3.12.0
Compiling radicle-node v0.16.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-node)
Checking yansi v0.5.1
Checking diff v0.1.13
Compiling radicle-cli v0.17.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-cli)
Checking pretty_assertions v1.4.0
Checking human-panic v2.0.3
Checking structured-logger v1.0.4
Checking clap v4.5.44
Checking radicle-systemd v0.11.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-systemd)
Checking tree-sitter-highlight v0.24.4
Checking itertools v0.14.0
Checking num-integer v0.1.46
Compiling qcheck-macros v1.0.0
Checking socket2 v0.5.7
Compiling escargot v0.5.10
Checking timeago v0.4.2
Checking num-bigint v0.4.6
Compiling ahash v0.8.11
Checking num-iter v0.1.45
Checking num-complex v0.4.6
Checking env_filter v0.1.3
Checking zerocopy v0.7.35
Checking num-rational v0.4.2
Checking borrow-or-share v0.2.2
Checking bit-vec v0.8.0
Checking num v0.4.3
Checking fluent-uri v0.3.2
Checking bit-set v0.8.0
Checking env_logger v0.11.8
Checking phf_shared v0.11.3
Compiling test-log-macros v0.2.18
Checking outref v0.5.2
Compiling radicle-remote-helper v0.14.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-remote-helper)
Checking vsimd v0.8.0
Compiling paste v1.0.15
Checking uuid-simd v0.8.0
Checking test-log v0.2.18
Checking referencing v0.30.0
Checking phf v0.11.3
Checking fancy-regex v0.14.0
Checking fraction v0.15.3
Checking email_address v0.2.9
Checking bytecount v0.6.8
Checking base64 v0.22.1
Checking num-cmp v0.1.0
Checking emojis v0.6.4
Checking jsonschema v0.30.0
Checking git2 v0.19.0
Checking radicle-oid v0.1.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-oid)
Checking radicle-git-ext v0.10.0
Checking radicle-term v0.16.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-term)
Checking radicle-cob v0.17.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-cob)
Checking radicle v0.20.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle)
Checking radicle-fetch v0.16.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-fetch)
Checking radicle-cli-test v0.13.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-cli-test)
Checking radicle-protocol v0.4.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-protocol)
Checking radicle-schemars v0.6.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-schemars)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 47.53s
+ cargo build --all-targets --workspace
Compiling libc v0.2.174
Compiling cfg-if v1.0.0
Compiling shlex v1.3.0
Compiling memchr v2.7.2
Compiling typenum v1.17.0
Compiling serde v1.0.219
Compiling jobserver v0.1.31
Compiling getrandom v0.2.15
Compiling generic-array v0.14.7
Compiling cc v1.2.2
Compiling rand_core v0.6.4
Compiling aho-corasick v1.1.3
Compiling crypto-common v0.1.6
Compiling regex-syntax v0.8.5
Compiling smallvec v1.15.1
Compiling regex-automata v0.4.9
Compiling subtle v2.5.0
Compiling stable_deref_trait v1.2.0
Compiling cpufeatures v0.2.12
Compiling once_cell v1.21.3
Compiling scopeguard v1.2.0
Compiling fastrand v2.3.0
Compiling lock_api v0.4.14
Compiling parking_lot_core v0.9.12
Compiling block-buffer v0.10.4
Compiling digest v0.10.7
Compiling parking_lot v0.12.5
Compiling thiserror v2.0.12
Compiling bitflags v2.9.1
Compiling byteorder v1.5.0
Compiling tinyvec_macros v0.1.1
Compiling crc32fast v1.5.0
Compiling tinyvec v1.6.0
Compiling gix-trace v0.1.13
Compiling typeid v1.0.3
Compiling home v0.5.9
Compiling erased-serde v0.4.6
Compiling serde_fmt v1.0.3
Compiling zlib-rs v0.5.2
Compiling value-bag-serde1 v1.11.1
Compiling same-file v1.0.6
Compiling unicode-normalization v0.1.23
Compiling walkdir v2.5.0
Compiling bstr v1.12.0
Compiling gix-utils v0.3.0
Compiling zerofrom v0.1.6
Compiling gix-validate v0.10.0
Compiling gix-path v0.10.20
Compiling value-bag v1.11.1
Compiling prodash v30.0.1
Compiling log v0.4.27
Compiling yoke v0.7.5
Compiling zerovec v0.10.4
Compiling itoa v1.0.11
Compiling hash32 v0.3.1
Compiling zeroize v1.7.0
Compiling libz-rs-sys v0.5.2
Compiling flate2 v1.1.1
Compiling gix-features v0.43.1
Compiling tinystr v0.7.6
Compiling heapless v0.8.0
Compiling writeable v0.5.5
Compiling litemap v0.7.5
Compiling icu_locid_transform_data v1.5.1
Compiling icu_locid v1.5.0
Compiling sha1 v0.10.6
Compiling faster-hex v0.10.0
Compiling block-padding v0.3.3
Compiling linux-raw-sys v0.9.4
Compiling thiserror v1.0.69
Compiling inout v0.1.3
Compiling sha1-checked v0.10.0
Compiling icu_properties_data v1.5.1
Compiling icu_collections v1.5.0
Compiling icu_provider v1.5.0
Compiling rustix v1.0.7
Compiling gix-hash v0.19.0
Compiling icu_locid_transform v1.5.0
Compiling cipher v0.4.4
Compiling icu_normalizer_data v1.5.1
Compiling utf8_iter v1.0.4
Compiling write16 v1.0.0
Compiling utf16_iter v1.0.5
Compiling getrandom v0.3.3
Compiling percent-encoding v2.3.1
Compiling icu_properties v1.5.1
Compiling form_urlencoded v1.2.1
Compiling sha2 v0.10.8
Compiling libz-sys v1.1.16
Compiling universal-hash v0.5.1
Compiling opaque-debug v0.3.1
Compiling libgit2-sys v0.17.0+1.8.1
Compiling signature v1.6.4
Compiling hashbrown v0.14.3
Compiling equivalent v1.0.1
Compiling icu_normalizer v1.5.0
Compiling idna_adapter v1.2.0
Compiling idna v1.0.3
Compiling tempfile v3.23.0
Compiling indexmap v2.2.6
Compiling url v2.5.4
Compiling ed25519 v1.5.3
Compiling aead v0.5.2
Compiling amplify_num v0.5.2
Compiling ryu v1.0.17
Compiling ct-codecs v1.1.1
Compiling ascii v1.1.0
Compiling ec25519 v0.1.0
Compiling serde_json v1.0.140
Compiling amplify v4.6.0
Compiling num-traits v0.2.19
Compiling poly1305 v0.8.0
Compiling chacha20 v0.9.1
Compiling git-ref-format-core v0.5.0
Compiling ref-cast v1.0.24
Compiling cyphergraphy v0.3.0
Compiling polyval v0.6.2
Compiling sqlite3-src v0.5.1
Compiling hmac v0.12.1
Compiling dyn-clone v1.0.17
Compiling keccak v0.1.5
Compiling base64ct v1.6.0
Compiling sha3 v0.10.8
Compiling pem-rfc7468 v0.7.0
Compiling pbkdf2 v0.12.2
Compiling ghash v0.5.1
Compiling aes v0.8.4
Compiling ctr v0.9.2
Compiling rand v0.8.5
Compiling base32 v0.4.0
Compiling cypheraddr v0.4.0
Compiling qcheck v1.0.0
Compiling aes-gcm v0.10.3
Compiling ssh-encoding v0.2.0
Compiling chacha20poly1305 v0.10.1
Compiling blowfish v0.9.1
Compiling cbc v0.1.2
Compiling data-encoding v2.5.0
Compiling data-encoding-macro v0.1.14
Compiling ssh-cipher v0.2.0
Compiling bcrypt-pbkdf v0.10.0
Compiling noise-framework v0.4.0
Compiling crossbeam-utils v0.8.19
Compiling socks5-client v0.4.1
Compiling base-x v0.2.11
Compiling signature v2.2.0
Compiling multibase v0.9.1
Compiling ssh-key v0.6.6
Compiling cyphernet v0.5.2
Compiling crossbeam-channel v0.5.15
Compiling schemars v1.0.4
Compiling radicle-ssh v0.10.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-ssh)
Compiling jiff v0.2.15
Compiling lazy_static v1.5.0
Compiling nonempty v0.9.0
Compiling siphasher v1.0.1
Compiling radicle-git-metadata v0.1.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-git-metadata)
Compiling radicle-dag v0.10.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-dag)
Compiling winnow v0.7.13
Compiling anstyle-query v1.0.2
Compiling hashbrown v0.15.5
Compiling gix-date v0.10.5
Compiling gix-actor v0.35.4
Compiling gix-hashtable v0.9.0
Compiling radicle-git-ref-format v0.1.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-git-ref-format)
Compiling iana-time-zone v0.1.60
Compiling utf8parse v0.2.1
Compiling base64 v0.21.7
Compiling anstyle-parse v0.2.3
Compiling chrono v0.4.38
Compiling gix-object v0.50.2
Compiling colored v2.1.0
Compiling serde-untagged v0.1.7
Compiling bytesize v2.0.1
Compiling localtime v1.3.1
Compiling memmap2 v0.9.8
Compiling colorchoice v1.0.0
Compiling dunce v1.0.5
Compiling tree-sitter-language v0.1.2
Compiling fast-glob v0.3.3
Compiling anstyle v1.0.11
Compiling gix-chunk v0.4.11
Compiling anstream v0.6.13
Compiling gix-commitgraph v0.29.0
Compiling adler2 v2.0.0
Compiling gix-fs v0.16.1
Compiling gix-revwalk v0.21.0
Compiling gix-tempfile v18.0.0
Compiling mio v1.0.4
Compiling gix-quote v0.6.0
Compiling errno v0.3.13
Compiling sem_safe v0.2.0
Compiling unicode-segmentation v1.11.0
Compiling shell-words v1.1.0
Compiling either v1.11.0
Compiling gix-command v0.6.2
Compiling signals_receipts v0.2.0
Compiling gix-lock v18.0.0
Compiling gix-url v0.32.0
Compiling gix-config-value v0.15.1
Compiling gix-sec v0.12.0
Compiling signal-hook-registry v1.4.5
Compiling gimli v0.31.1
Compiling signal-hook v0.3.18
Compiling gix-prompt v0.11.1
Compiling object v0.36.7
Compiling addr2line v0.24.2
Compiling radicle-signals v0.11.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-signals)
Compiling gix-revision v0.35.0
Compiling gix-traverse v0.47.0
Compiling miniz_oxide v0.8.8
Compiling gix-diff v0.53.0
Compiling gix-packetline v0.19.1
Compiling mio v0.8.11
Compiling tree-sitter v0.24.4
Compiling rustc-demangle v0.1.26
Compiling rustix v0.38.34
Compiling backtrace v0.3.75
Compiling sqlite3-sys v0.15.2
Compiling sqlite v0.32.0
Compiling radicle-crypto v0.14.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-crypto)
Compiling signal-hook-mio v0.2.4
Compiling gix-transport v0.48.0
Compiling gix-pack v0.60.0
Compiling gix-refspec v0.31.0
Compiling gix-credentials v0.30.0
Compiling gix-shallow v0.5.0
Compiling gix-ref v0.53.1
Compiling convert_case v0.7.1
Compiling gix-negotiate v0.21.0
Compiling regex v1.11.1
Compiling arc-swap v1.7.1
Compiling gix-odb v0.70.0
Compiling gix-protocol v0.51.0
Compiling derive_more-impl v2.0.1
Compiling xattr v1.3.1
Compiling uuid v1.16.0
Compiling filetime v0.2.23
Compiling lexopt v0.3.0
Compiling bitflags v1.3.2
Compiling bytes v1.10.1
Compiling unicode-width v0.2.1
Compiling git-ref-format-macro v0.5.0
Compiling console v0.16.0
Compiling crossterm v0.25.0
Compiling tar v0.4.40
Compiling derive_more v2.0.1
Compiling portable-atomic v1.11.0
Compiling anyhow v1.0.82
Compiling newline-converter v0.3.0
Compiling snapbox-macros v0.3.8
Compiling salsa20 v0.10.2
Compiling fxhash v0.2.1
Compiling siphasher v0.3.11
Compiling streaming-iterator v0.1.9
Compiling unicode-width v0.1.11
Compiling normalize-line-endings v0.3.0
Compiling unit-prefix v0.5.1
Compiling similar v2.5.0
Compiling indicatif v0.18.0
Compiling snapbox v0.4.17
Compiling bloomy v1.2.0
Compiling inquire v0.7.5
Compiling radicle-surf v0.25.0
Compiling scrypt v0.11.0
Compiling crossterm v0.29.0
Compiling git-ref-format v0.5.0
Compiling unicode-display-width v0.3.0
Compiling systemd-journal-logger v2.2.2
Compiling tree-sitter-go v0.23.4
Compiling tree-sitter-toml-ng v0.6.0
Compiling tree-sitter-typescript v0.23.2
Compiling tree-sitter-bash v0.23.3
Compiling tree-sitter-c v0.23.2
Compiling tree-sitter-python v0.23.4
Compiling tree-sitter-html v0.23.2
Compiling tree-sitter-json v0.24.8
Compiling tree-sitter-ruby v0.23.1
Compiling tree-sitter-rust v0.23.2
Compiling tree-sitter-css v0.23.1
Compiling tree-sitter-md v0.3.2
Compiling serde_spanned v1.0.0
Compiling toml_datetime v0.7.0
Compiling pin-project-lite v0.2.16
Compiling clap_lex v0.7.5
Compiling toml_writer v1.0.2
Compiling radicle-std-ext v0.1.1
Compiling strsim v0.11.1
Compiling toml v0.9.5
Compiling tokio v1.47.1
Compiling clap_builder v4.5.44
Compiling os_info v3.12.0
Compiling diff v0.1.13
Compiling radicle-node v0.16.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-node)
Compiling radicle-cli v0.17.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-cli)
Compiling yansi v0.5.1
Compiling pretty_assertions v1.4.0
Compiling human-panic v2.0.3
Compiling clap v4.5.44
Compiling structured-logger v1.0.4
Compiling radicle-systemd v0.11.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-systemd)
Compiling tree-sitter-highlight v0.24.4
Compiling itertools v0.14.0
Compiling num-integer v0.1.46
Compiling socket2 v0.5.7
Compiling timeago v0.4.2
Compiling escargot v0.5.10
Compiling num-bigint v0.4.6
Compiling num-iter v0.1.45
Compiling num-complex v0.4.6
Compiling env_filter v0.1.3
Compiling borrow-or-share v0.2.2
Compiling bit-vec v0.8.0
Compiling num-rational v0.4.2
Compiling zerocopy v0.7.35
Compiling ahash v0.8.11
Compiling num v0.4.3
Compiling bit-set v0.8.0
Compiling fluent-uri v0.3.2
Compiling env_logger v0.11.8
Compiling phf_shared v0.11.3
Compiling radicle-remote-helper v0.14.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-remote-helper)
Compiling vsimd v0.8.0
Compiling outref v0.5.2
Compiling referencing v0.30.0
Compiling test-log v0.2.18
Compiling phf v0.11.3
Compiling uuid-simd v0.8.0
Compiling fancy-regex v0.14.0
Compiling fraction v0.15.3
Compiling email_address v0.2.9
Compiling num-cmp v0.1.0
Compiling bytecount v0.6.8
Compiling base64 v0.22.1
Compiling emojis v0.6.4
Compiling git2 v0.19.0
Compiling jsonschema v0.30.0
Compiling radicle-oid v0.1.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-oid)
Compiling radicle-cob v0.17.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-cob)
Compiling radicle v0.20.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle)
Compiling radicle-git-ext v0.10.0
Compiling radicle-term v0.16.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-term)
Compiling radicle-fetch v0.16.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-fetch)
Compiling radicle-protocol v0.4.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-protocol)
Compiling radicle-cli-test v0.13.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-cli-test)
Compiling radicle-schemars v0.6.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-schemars)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 07s
+ cargo doc --workspace --no-deps
Checking regex-automata v0.4.9
Compiling syn v1.0.109
Checking idna v1.0.3
Checking radicle-ssh v0.10.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-ssh)
Compiling num-traits v0.2.19
Checking url v2.5.4
Checking radicle-git-metadata v0.1.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-git-metadata)
Checking git2 v0.19.0
Checking radicle-dag v0.10.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-dag)
Compiling amplify_syn v2.0.1
Checking bstr v1.12.0
Checking gix-validate v0.10.0
Checking git-ref-format-core v0.5.0
Checking gix-path v0.10.20
Checking gix-date v0.10.5
Compiling amplify_derive v4.0.0
Checking gix-features v0.43.1
Compiling data-encoding-macro-internal v0.1.12
Checking gix-hash v0.19.0
Checking gix-actor v0.35.4
Checking gix-hashtable v0.9.0
Checking radicle-oid v0.1.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-oid)
Checking gix-object v0.50.2
Checking data-encoding-macro v0.1.14
Checking chrono v0.4.38
Checking multibase v0.9.1
Checking gix-commitgraph v0.29.0
Checking radicle-git-ref-format v0.1.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-git-ref-format)
Checking gix-fs v0.16.1
Checking gix-tempfile v18.0.0
Checking gix-revwalk v0.21.0
Checking amplify v4.6.0
Checking gix-quote v0.6.0
Checking gix-lock v18.0.0
Checking gix-url v0.32.0
Checking gix-command v0.6.2
Checking gix-config-value v0.15.1
Checking radicle-signals v0.11.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-signals)
Checking gix-traverse v0.47.0
Checking gix-prompt v0.11.1
Checking cyphergraphy v0.3.0
Checking gix-revision v0.35.0
Checking gix-diff v0.53.0
Checking cypheraddr v0.4.0
Checking noise-framework v0.4.0
Checking gix-packetline v0.19.1
Checking regex v1.11.1
Checking socks5-client v0.4.1
Checking gix-pack v0.60.0
Checking gix-transport v0.48.0
Checking cyphernet v0.5.2
Checking radicle-crypto v0.14.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-crypto)
Checking tree-sitter v0.24.4
Checking gix-refspec v0.31.0
Checking radicle-cob v0.17.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-cob)
Checking gix-credentials v0.30.0
Checking git-ref-format v0.5.0
Checking gix-shallow v0.5.0
Checking gix-ref v0.53.1
Checking gix-negotiate v0.21.0
Checking radicle v0.20.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle)
Checking radicle-git-ext v0.10.0
Checking gix-odb v0.70.0
Checking uuid v1.16.0
Compiling radicle-cli v0.17.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-cli)
Checking human-panic v2.0.3
Checking radicle-surf v0.25.0
Checking gix-protocol v0.51.0
Checking tree-sitter-toml-ng v0.6.0
Checking radicle-term v0.16.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-term)
Checking tree-sitter-highlight v0.24.4
Compiling radicle-node v0.16.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-node)
Checking radicle-systemd v0.11.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-systemd)
Documenting radicle-systemd v0.11.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-systemd)
Documenting radicle v0.20.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle)
Documenting radicle-term v0.16.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-term)
Documenting radicle-cob v0.17.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-cob)
Documenting radicle-crypto v0.14.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-crypto)
Documenting radicle-signals v0.11.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-signals)
Documenting radicle-oid v0.1.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-oid)
Documenting radicle-git-ref-format v0.1.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-git-ref-format)
error: unresolved link to `::qcheck::Arbitrary`
--> crates/radicle-oid/src/lib.rs:55:28
|
55 | //! [`qcheck::Arbitrary`]: ::qcheck::Arbitrary
| ^^^^^^^^^^^^^^^^^^^ no item named `` in scope
|
= note: `-D rustdoc::broken-intra-doc-links` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(rustdoc::broken_intra_doc_links)]`
error: unresolved link to `::radicle_git_ref_format::Component`
--> crates/radicle-oid/src/lib.rs:61:44
|
61 | //! [`radicle_git_ref_format::Component`]: ::radicle_git_ref_format::Component
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `` in scope
error: unresolved link to `::radicle_git_ref_format::RefString`
--> crates/radicle-oid/src/lib.rs:62:44
|
62 | //! [`radicle_git_ref_format::RefString`]: ::radicle_git_ref_format::RefString
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `` in scope
Documenting radicle-git-metadata v0.1.0 (/c6c5ee9d-9f5e-4576-98f4-b1c48f8f0597/w/crates/radicle-git-metadata)
error: could not document `radicle-oid`
warning: build failed, waiting for other jobs to finish...
Exit code: 101
{
"response": "finished",
"result": "failure"
}