rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 heartwoodf27f69e9a00f4dc33f9c74327d2d3dfe62a14322
{
"request": "trigger",
"version": 1,
"event_type": "patch",
"repository": {
"id": "rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5",
"name": "heartwood",
"description": "Radicle Heartwood Protocol & Stack",
"private": false,
"default_branch": "master",
"delegates": [
"did:key:z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT",
"did:key:z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW",
"did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"did:key:z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz",
"did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz"
]
},
"action": "Updated",
"patch": {
"id": "9e45558dda40cf7e46739fef11b366d2060ecb1d",
"author": {
"id": "did:key:z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz",
"alias": "erikli"
},
"title": "cli/id: Use clap",
"state": {
"status": "open",
"conflicts": []
},
"before": "efe10f95be9fde1cda84f0631ec8f6546ac7228d",
"after": "f27f69e9a00f4dc33f9c74327d2d3dfe62a14322",
"commits": [
"f27f69e9a00f4dc33f9c74327d2d3dfe62a14322"
],
"target": "efe10f95be9fde1cda84f0631ec8f6546ac7228d",
"labels": [],
"assignees": [],
"revisions": [
{
"id": "9e45558dda40cf7e46739fef11b366d2060ecb1d",
"author": {
"id": "did:key:z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz",
"alias": "erikli"
},
"description": "This implementation works around the fact that `clap` does currently\nnot support value parsers for a series of values, so representing\n`--payload` as a `Vec<Payload>` does not work.\n\nInstead, we parse eveything into a `Vec<String>` and do the validation\non the application side.\n\nUsing value parsers for a series of values will probably be supported in\n`clap` v5, though.",
"base": "3e98589a767d9a17a3da90e52ae4abb198fa9ada",
"oid": "1fcee08a8fd3b3c863bddb8c98cdf1bcbb2cf2cc",
"timestamp": 1760432036
},
{
"id": "5743b4009825c6beafb70cb6fd9ddee79843057c",
"author": {
"id": "did:key:z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz",
"alias": "erikli"
},
"description": "- Rebase",
"base": "efe10f95be9fde1cda84f0631ec8f6546ac7228d",
"oid": "f27f69e9a00f4dc33f9c74327d2d3dfe62a14322",
"timestamp": 1760432200
}
]
}
}
{
"response": "triggered",
"run_id": {
"id": "d3ee9246-59a7-413b-a369-b9908d8c0b6d"
},
"info_url": "https://cci.rad.levitte.org//d3ee9246-59a7-413b-a369-b9908d8c0b6d.html"
}
Started at: 2025-10-14 10:59:15.769390+02:00
Commands:
$ rad clone rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 .
✓ Creating checkout in ./...
✓ Remote cloudhead@z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT added
✓ Remote-tracking branch cloudhead@z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT/master created for z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT
✓ Remote cloudhead@z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW added
✓ Remote-tracking branch cloudhead@z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW/master created for z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW
✓ Remote fintohaps@z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM added
✓ Remote-tracking branch fintohaps@z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM/master created for z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM
✓ Remote erikli@z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz added
✓ Remote-tracking branch erikli@z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz/master created for z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz
✓ 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/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/
╭────────────────────────────────────╮
│ heartwood │
│ Radicle Heartwood Protocol & Stack │
│ 125 issues · 16 patches │
╰────────────────────────────────────╯
Run `cd ./.` to go to the repository directory.
Exit code: 0
$ rad patch checkout 9e45558dda40cf7e46739fef11b366d2060ecb1d
✓ Switched to branch patch/9e45558 at revision 5743b40
✓ Branch patch/9e45558 setup to track rad/patches/9e45558dda40cf7e46739fef11b366d2060ecb1d
Exit code: 0
$ git config advice.detachedHead false
Exit code: 0
$ git checkout f27f69e9a00f4dc33f9c74327d2d3dfe62a14322
HEAD is now at f27f69e9 cli/id: Use clap
Exit code: 0
$ git show f27f69e9a00f4dc33f9c74327d2d3dfe62a14322
commit f27f69e9a00f4dc33f9c74327d2d3dfe62a14322
Author: Erik Kundt <erik@zirkular.io>
Date: Tue Oct 14 10:49:01 2025 +0200
cli/id: Use clap
This implementation works around the fact that `clap` does currently
not support value parsers for a series of values, so representing
`--payload` as a `Vec<Payload>` does not work.
Instead, we parse eveything into a `Vec<String>` and do the validation
on the application side.
Using value parsers for a series of values will probably be supported in
`clap` v5, though.
diff --git a/crates/radicle-cli/src/commands/id.rs b/crates/radicle-cli/src/commands/id.rs
index 93f3cf12..c966e024 100644
--- a/crates/radicle-cli/src/commands/id.rs
+++ b/crates/radicle-cli/src/commands/id.rs
@@ -1,28 +1,28 @@
+mod args;
+
use std::collections::BTreeSet;
-use std::{ffi::OsString, io};
use anyhow::{anyhow, Context};
use radicle::cob::identity::{self, IdentityMut, Revision, RevisionId};
use radicle::cob::Title;
use radicle::identity::doc::update;
-use radicle::identity::doc::update::EditVisibility;
use radicle::identity::{doc, Doc, Identity, RawDoc};
use radicle::node::device::Device;
use radicle::node::NodeId;
-use radicle::prelude::{Did, RepoId};
use radicle::storage::{ReadStorage as _, WriteRepository};
use radicle::{cob, crypto, Profile};
use radicle_surf::diff::Diff;
use radicle_term::Element;
-use serde_json as json;
use crate::git::unified_diff::Encode as _;
use crate::git::Rev;
use crate::terminal as term;
-use crate::terminal::args::{Args, Error, Help};
+use crate::terminal::args::{Error, Help};
use crate::terminal::patch::Message;
-use crate::terminal::Interactive;
+
+pub use args::Args;
+use args::Command;
pub const HELP: Help = Help {
name: "id",
@@ -54,232 +54,10 @@ Options
"#,
};
-#[derive(Clone, Debug, Default)]
-pub enum Operation {
- Update {
- title: Option<Title>,
- description: Option<String>,
- delegate: Vec<Did>,
- rescind: Vec<Did>,
- threshold: Option<usize>,
- visibility: Option<EditVisibility>,
- allow: BTreeSet<Did>,
- disallow: BTreeSet<Did>,
- payload: Vec<(doc::PayloadId, String, json::Value)>,
- edit: bool,
- },
- AcceptRevision {
- revision: Rev,
- },
- RejectRevision {
- revision: Rev,
- },
- EditRevision {
- revision: Rev,
- title: Option<Title>,
- description: Option<String>,
- },
- RedactRevision {
- revision: Rev,
- },
- ShowRevision {
- revision: Rev,
- },
- #[default]
- ListRevisions,
-}
-
-#[derive(Default, PartialEq, Eq)]
-pub enum OperationName {
- Accept,
- Reject,
- Edit,
- Update,
- Show,
- Redact,
- #[default]
- List,
-}
-
-pub struct Options {
- pub op: Operation,
- pub rid: Option<RepoId>,
- pub interactive: Interactive,
- pub quiet: bool,
-}
-
-impl Args for Options {
- fn from_args(args: Vec<OsString>) -> anyhow::Result<(Self, Vec<OsString>)> {
- use lexopt::prelude::*;
-
- let mut parser = lexopt::Parser::from_args(args);
- let mut op: Option<OperationName> = None;
- let mut revision: Option<Rev> = None;
- let mut rid: Option<RepoId> = None;
- let mut title: Option<Title> = None;
- let mut description: Option<String> = None;
- let mut delegate: Vec<Did> = Vec::new();
- let mut rescind: Vec<Did> = Vec::new();
- let mut visibility: Option<EditVisibility> = None;
- let mut allow: BTreeSet<Did> = BTreeSet::new();
- let mut disallow: BTreeSet<Did> = BTreeSet::new();
- let mut threshold: Option<usize> = None;
- let mut interactive = Interactive::new(io::stdout());
- let mut payload = Vec::new();
- let mut edit = false;
- let mut quiet = false;
-
- while let Some(arg) = parser.next()? {
- match arg {
- Long("help") => {
- return Err(Error::HelpManual { name: "rad-id" }.into());
- }
- Short('h') => {
- return Err(Error::Help.into());
- }
- Long("title")
- if op == Some(OperationName::Edit) || op == Some(OperationName::Update) =>
- {
- let val = parser.value()?;
- title = Some(term::args::string(&val).try_into()?);
- }
- Long("description")
- if op == Some(OperationName::Edit) || op == Some(OperationName::Update) =>
- {
- description = Some(parser.value()?.to_string_lossy().into());
- }
- Long("quiet") | Short('q') => {
- quiet = true;
- }
- Long("no-confirm") => {
- interactive = Interactive::No;
- }
- Value(val) if op.is_none() => match val.to_string_lossy().as_ref() {
- "e" | "edit" => op = Some(OperationName::Edit),
- "u" | "update" => op = Some(OperationName::Update),
- "l" | "list" => op = Some(OperationName::List),
- "s" | "show" => op = Some(OperationName::Show),
- "a" | "accept" => op = Some(OperationName::Accept),
- "r" | "reject" => op = Some(OperationName::Reject),
- "d" | "redact" => op = Some(OperationName::Redact),
-
- unknown => anyhow::bail!("unknown operation '{}'", unknown),
- },
- Long("repo") => {
- let val = parser.value()?;
- let val = term::args::rid(&val)?;
-
- rid = Some(val);
- }
- Long("delegate") => {
- let did = term::args::did(&parser.value()?)?;
- delegate.push(did);
- }
- Long("rescind") => {
- let did = term::args::did(&parser.value()?)?;
- rescind.push(did);
- }
- Long("allow") => {
- let value = parser.value()?;
- let did = term::args::did(&value)?;
- allow.insert(did);
- }
- Long("disallow") => {
- let value = parser.value()?;
- let did = term::args::did(&value)?;
- disallow.insert(did);
- }
- Long("visibility") => {
- let value = parser.value()?;
- let value = term::args::parse_value("visibility", value)?;
-
- visibility = Some(value);
- }
- Long("threshold") => {
- threshold = Some(parser.value()?.to_string_lossy().parse()?);
- }
- Long("payload") => {
- let mut values = parser.values()?;
- let id = values
- .next()
- .ok_or(anyhow!("expected payload id, eg. `xyz.radicle.project`"))?;
- let id: doc::PayloadId = term::args::parse_value("payload", id)?;
-
- let key = values
- .next()
- .ok_or(anyhow!("expected payload key, eg. 'defaultBranch'"))?;
- let key = term::args::string(&key);
-
- let val = values
- .next()
- .ok_or(anyhow!("expected payload value, eg. '\"heartwood\"'"))?;
- let val = val.to_string_lossy().to_string();
- let val = json::from_str(val.as_str())
- .map_err(|e| anyhow!("invalid JSON value `{val}`: {e}"))?;
-
- payload.push((id, key, val));
- }
- Long("edit") => {
- edit = true;
- }
- Value(val) => {
- let val = term::args::rev(&val)?;
- revision = Some(val);
- }
- _ => {
- return Err(anyhow!(arg.unexpected()));
- }
- }
- }
-
- let op = match op.unwrap_or_default() {
- OperationName::Accept => Operation::AcceptRevision {
- revision: revision.ok_or_else(|| anyhow!("a revision must be provided"))?,
- },
- OperationName::Reject => Operation::RejectRevision {
- revision: revision.ok_or_else(|| anyhow!("a revision must be provided"))?,
- },
- OperationName::Edit => Operation::EditRevision {
- title,
- description,
- revision: revision.ok_or_else(|| anyhow!("a revision must be provided"))?,
- },
- OperationName::Show => Operation::ShowRevision {
- revision: revision.ok_or_else(|| anyhow!("a revision must be provided"))?,
- },
- OperationName::List => Operation::ListRevisions,
- OperationName::Redact => Operation::RedactRevision {
- revision: revision.ok_or_else(|| anyhow!("a revision must be provided"))?,
- },
- OperationName::Update => Operation::Update {
- title,
- description,
- delegate,
- rescind,
- threshold,
- visibility,
- allow,
- disallow,
- payload,
- edit,
- },
- };
- Ok((
- Options {
- rid,
- op,
- interactive,
- quiet,
- },
- 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 storage = &profile.storage;
- let rid = if let Some(rid) = options.rid {
+ let rid = if let Some(rid) = args.repo {
rid
} else {
let (_, rid) = radicle::rad::cwd()?;
@@ -291,8 +69,11 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
let mut identity = Identity::load_mut(&repo)?;
let current = identity.current().clone();
- match options.op {
- Operation::AcceptRevision { revision } => {
+ let interactive = args.interactive();
+ let command = args.command.unwrap_or(Command::List);
+
+ match command {
+ Command::Accept { revision } => {
let revision = get(revision, &identity, &repo)?.clone();
let id = revision.id;
let signer = term::signer(&profile)?;
@@ -301,10 +82,7 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
anyhow::bail!("cannot vote on revision that is {}", revision.state);
}
- if options
- .interactive
- .confirm(format!("Accept revision {}?", term::format::tertiary(id)))
- {
+ if interactive.confirm(format!("Accept revision {}?", term::format::tertiary(id))) {
identity.accept(&revision.id, &signer)?;
if let Some(revision) = identity.revision(&id) {
@@ -314,14 +92,14 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
}
// TODO: Different output if canonical changed?
- if !options.quiet {
+ if !args.quiet {
term::success!("Revision {id} accepted");
print_meta(revision, ¤t, &profile)?;
}
}
}
}
- Operation::RejectRevision { revision } => {
+ Command::Reject { revision } => {
let revision = get(revision, &identity, &repo)?.clone();
let signer = term::signer(&profile)?;
@@ -329,19 +107,19 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
anyhow::bail!("cannot vote on revision that is {}", revision.state);
}
- if options.interactive.confirm(format!(
+ if interactive.confirm(format!(
"Reject revision {}?",
term::format::tertiary(revision.id)
)) {
identity.reject(revision.id, &signer)?;
- if !options.quiet {
+ if !args.quiet {
term::success!("Revision {} rejected", revision.id);
print_meta(&revision, ¤t, &profile)?;
}
}
}
- Operation::EditRevision {
+ Command::Edit {
revision,
title,
description,
@@ -357,11 +135,11 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
};
identity.edit(revision.id, title, description, &signer)?;
- if !options.quiet {
+ if !args.quiet {
term::success!("Revision {} edited", revision.id);
}
}
- Operation::Update {
+ Command::Update {
title,
description,
delegate: delegates,
@@ -375,6 +153,9 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
} => {
let proposal = {
let mut proposal = current.doc.clone().edit();
+ let allow = allow.into_iter().collect::<BTreeSet<_>>();
+ let disallow = disallow.into_iter().collect::<BTreeSet<_>>();
+
proposal.threshold = threshold.unwrap_or(proposal.threshold);
let proposal = match visibility {
@@ -407,7 +188,14 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
}
};
- update::payload(proposal, payload)?
+ // TODO(erikli): whenever `clap` starts supporting custom value parsers
+ // for a series of values, we can parse into `Payload` implicitely.
+ let payloads = args::Payload::try_parse_many(&payload)?
+ .into_iter()
+ .map(|p| (p.id, p.key, p.value))
+ .collect::<Vec<_>>();
+
+ update::payload(proposal, payloads)?
};
// If `--edit` is specified, the document can also be edited via a text edit.
@@ -431,7 +219,7 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
let proposal = update::verify(proposal)?;
if proposal == current.doc {
- if !options.quiet {
+ if !args.quiet {
term::print(term::format::italic(
"Nothing to do. The document is up to date. See `rad inspect --identity`.",
));
@@ -445,7 +233,7 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
// Update the canonical head to point to the latest accepted revision.
repo.set_identity_head_to(revision.id)?;
}
- if options.quiet {
+ if args.quiet {
term::print(revision.id);
} else {
term::success!(
@@ -455,7 +243,7 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
print(&revision, ¤t, &repo, &profile)?;
}
}
- Operation::ListRevisions => {
+ Command::List => {
let mut revisions =
term::Table::<7, term::Label>::new(term::table::TableOptions::bordered());
@@ -489,25 +277,25 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
}
revisions.print();
}
- Operation::RedactRevision { revision } => {
+ Command::Redact { revision } => {
let revision = get(revision, &identity, &repo)?.clone();
let signer = term::signer(&profile)?;
if revision.is_accepted() {
anyhow::bail!("cannot redact accepted revision");
}
- if options.interactive.confirm(format!(
+ if interactive.confirm(format!(
"Redact revision {}?",
term::format::tertiary(revision.id)
)) {
identity.redact(revision.id, &signer)?;
- if !options.quiet {
+ if !args.quiet {
term::success!("Revision {} redacted", revision.id);
}
}
}
- Operation::ShowRevision { revision } => {
+ Command::Show { revision } => {
let revision = get(revision, &identity, &repo)?;
let previous = revision.parent.unwrap_or(revision.id);
let previous = identity
diff --git a/crates/radicle-cli/src/commands/id/args.rs b/crates/radicle-cli/src/commands/id/args.rs
new file mode 100644
index 00000000..53b5b239
--- /dev/null
+++ b/crates/radicle-cli/src/commands/id/args.rs
@@ -0,0 +1,233 @@
+use std::io;
+use std::str::FromStr;
+
+use clap::{Parser, Subcommand};
+
+use serde_json as json;
+
+use thiserror::Error;
+
+use radicle::cob::{Title, TypeNameParse};
+use radicle::identity::doc::update::EditVisibility;
+use radicle::identity::doc::PayloadId;
+use radicle::prelude::{Did, RepoId};
+
+use crate::git::Rev;
+
+use crate::terminal::Interactive;
+
+pub(crate) const ABOUT: &str = "Manage repository identities";
+const LONG_ABOUT: &str = r#"
+The *rad id* command is used to manage and propose changes to the
+identity of a Radicle repository.
+
+See the rad-id(1) man page for more information.
+"#;
+
+#[derive(Debug, Error)]
+pub enum PayloadParseError {
+ #[error("could not parse payload id: {0}")]
+ IdParse(#[from] TypeNameParse),
+ #[error("could not parse json value: {0}")]
+ Value(#[from] json::Error),
+}
+
+#[derive(Clone, Debug)]
+pub struct Payload {
+ pub(super) id: PayloadId,
+ pub(super) key: String,
+ pub(super) value: json::Value,
+}
+
+impl Payload {
+ /// Parses the list of all payload values that were aggregated by `clap`.
+ /// E.g. `--payload key name value --payload key name value` will result
+ /// in `["key","name","value","key","name","value"]`.
+ pub fn try_parse_many(values: &[String]) -> Result<Vec<Self>, PayloadParseError> {
+ // `clap` makes sure we don't have 3 values per option occurence, so we can just
+ // chunk the aggregated list
+ values
+ .chunks(3)
+ .map(|chunk| {
+ Ok(Payload {
+ id: PayloadId::from_str(&chunk[0])?,
+ key: chunk[1].to_owned(),
+ value: json::from_str(&chunk[2].to_owned())?,
+ })
+ })
+ .collect()
+ }
+}
+
+#[derive(Clone, Debug)]
+struct EditVisibilityParser;
+
+impl clap::builder::TypedValueParser for EditVisibilityParser {
+ type Value = EditVisibility;
+
+ fn parse_ref(
+ &self,
+ cmd: &clap::Command,
+ arg: Option<&clap::Arg>,
+ value: &std::ffi::OsStr,
+ ) -> Result<Self::Value, clap::Error> {
+ <EditVisibility 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("private"), PossibleValue::new("public")].into_iter(),
+ ))
+ }
+}
+
+#[derive(Debug, Parser)]
+#[command(about = ABOUT, long_about = LONG_ABOUT, disable_version_flag = true)]
+pub struct Args {
+ #[command(subcommand)]
+ pub(super) command: Option<Command>,
+
+ /// Specify the repository to operate on. Defaults to the current repository
+ ///
+ /// [example values: rad:z3Tr6bC7ctEg2EHmLvknUr29mEDLH, z3Tr6bC7ctEg2EHmLvknUr29mEDLH]
+ #[arg(long)]
+ #[arg(value_name = "RID", global = true)]
+ pub(super) repo: Option<RepoId>,
+
+ /// Don’t ask for confirmation
+ #[arg(long)]
+ #[arg(global = true)]
+ pub(super) no_confirm: bool,
+
+ /// Suppress output
+ #[arg(long, short)]
+ #[arg(global = true)]
+ pub(super) quiet: bool,
+}
+
+impl Args {
+ pub(super) fn interactive(&self) -> Interactive {
+ if self.no_confirm {
+ Interactive::No
+ } else {
+ Interactive::new(io::stdout())
+ }
+ }
+}
+
+#[derive(Subcommand, Debug)]
+pub(super) enum Command {
+ /// Accept a proposed revision to the identity document
+ #[clap(alias("a"))]
+ Accept {
+ /// REV of the revision to accept
+ #[arg(value_name = "REV")]
+ revision: Rev,
+ },
+ /// Reject a proposed revision to the identity document
+ #[clap(alias("r"))]
+ Reject {
+ /// REV of the revision to reject
+ #[arg(value_name = "REV")]
+ revision: Rev,
+ },
+ /// Edit an existing revision to the identity document
+ #[clap(alias("e"))]
+ Edit {
+ /// REV of the edit
+ #[arg(value_name = "REV")]
+ revision: Rev,
+
+ /// Title of the edit
+ #[arg(long)]
+ #[arg(value_name = "STRING")]
+ title: Option<Title>,
+
+ /// Description of the edit
+ #[arg(long)]
+ #[arg(value_name = "STRING")]
+ description: Option<String>,
+ },
+ /// Propose a new revision to the identity document
+ #[clap(alias("u"))]
+ Update {
+ /// Set the title for the new revision
+ #[arg(long)]
+ #[arg(value_name = "STRING")]
+ title: Option<Title>,
+
+ /// Set the description for the new revision
+ #[arg(long)]
+ #[arg(value_name = "STRING")]
+ description: Option<String>,
+
+ /// Update the identity by adding a new delegate, identified by their DID
+ #[arg(long, short)]
+ #[arg(value_name = "DID")]
+ #[arg(action = clap::ArgAction::Append)]
+ delegate: Vec<Did>,
+
+ /// Update the identity by removing a delegate identified by their DID
+ #[arg(long, short)]
+ #[arg(value_name = "DID")]
+ #[arg(action = clap::ArgAction::Append)]
+ rescind: Vec<Did>,
+
+ /// Update the identity by setting the number of delegates required to accept a revision
+ #[arg(long)]
+ #[arg(value_name = "NUM")]
+ threshold: Option<usize>,
+
+ /// Update the identity by setting the repository visibility to private or public
+ #[arg(long)]
+ #[arg(value_name = "VISIBILITY", value_parser = EditVisibilityParser)]
+ visibility: Option<EditVisibility>,
+
+ /// Update the identity by giving a specific peer access to a private repository
+ #[arg(long)]
+ #[arg(value_name = "DID")]
+ #[arg(action = clap::ArgAction::Append)]
+ allow: Vec<Did>,
+
+ /// Update the identity by removing a specific peer’s access to a private repository
+ #[arg(long)]
+ #[arg(value_name = "DID")]
+ #[arg(action = clap::ArgAction::Append)]
+ disallow: Vec<Did>,
+
+ /// Update the identity by setting metadata in one of the identity payloads
+ ///
+ /// [example values: xyz.radicle.project name '"radicle-example"']
+ // TODO(erikili:) Value parsers do not operate on series of values, yet. This will
+ // change with clap v5, so we can hopefully use `Vec<Payload>`.
+ // - https://github.com/clap-rs/clap/discussions/5930#discussioncomment-12315889
+ // - https://docs.rs/clap/latest/clap/_derive/index.html#arg-types
+ #[arg(long)]
+ #[arg(value_names = ["TYPE", "KEY", "VALUE"], num_args = 3)]
+ payload: Vec<String>,
+
+ /// Opens your $EDITOR to edit the JSON contents directly
+ #[arg(long)]
+ edit: bool,
+ },
+ /// Lists all revisions to the identity document
+ #[clap(alias("l"))]
+ List,
+ /// Show a specific revision of the identity documen
+ #[clap(alias("s"))]
+ Show {
+ /// REV of the revision to show
+ #[arg(value_name = "REV")]
+ revision: Rev,
+ },
+ /// Redact an revision
+ #[clap(alias("d"))]
+ Redact {
+ /// REV of the revision to redact
+ #[arg(value_name = "REV")]
+ revision: Rev,
+ },
+}
diff --git a/crates/radicle-cli/src/main.rs b/crates/radicle-cli/src/main.rs
index b923ee66..82749f19 100644
--- a/crates/radicle-cli/src/main.rs
+++ b/crates/radicle-cli/src/main.rs
@@ -50,6 +50,7 @@ enum Commands {
Clone(clone::Args),
Debug(debug::Args),
Fork(fork::Args),
+ Id(id::Args),
Init(init::Args),
Issue(issue::Args),
Ls(ls::Args),
@@ -227,7 +228,9 @@ pub(crate) fn run_other(exe: &str, args: &[OsString]) -> Result<(), Option<anyho
term::run_command_args::<help::Options, _>(help::HELP, help::run, args.to_vec());
}
"id" => {
- term::run_command_args::<id::Options, _>(id::HELP, id::run, args.to_vec());
+ if let Some(Commands::Id(args)) = CliArgs::parse().command {
+ term::run_command_fn(id::run, args);
+ }
}
"inbox" => {
term::run_command_args::<inbox::Options, _>(inbox::HELP, inbox::run, args.to_vec())
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 d3ee9246-59a7-413b-a369-b9908d8c0b6d -v /opt/radcis/ci.rad.levitte.org/cci/state/d3ee9246-59a7-413b-a369-b9908d8c0b6d/s:/d3ee9246-59a7-413b-a369-b9908d8c0b6d/s:ro -v /opt/radcis/ci.rad.levitte.org/cci/state/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w:/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w -w /d3ee9246-59a7-413b-a369-b9908d8c0b6d/w -v /opt/radcis/ci.rad.levitte.org/.radicle:/${id}/.radicle:ro -e RAD_HOME=/${id}/.radicle rust:bookworm bash /d3ee9246-59a7-413b-a369-b9908d8c0b6d/s/script.sh
+ export 'RUSTDOCFLAGS=-D warnings'
+ RUSTDOCFLAGS='-D warnings'
+ cargo --version
info: syncing channel updates for '1.88-x86_64-unknown-linux-gnu'
info: latest update on 2025-06-26, rust version 1.88.0 (6b00bc388 2025-06-23)
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.88.0 (873a06493 2025-05-10)
+ rustc --version
rustc 1.88.0 (6b00bc388 2025-06-23)
+ cargo fmt --check
+ cargo clippy --all-targets --workspace -- --deny warnings
Updating crates.io index
Downloading crates ...
Downloaded bytecount v0.6.8
Downloaded elliptic-curve v0.13.8
Downloaded adler2 v2.0.0
Downloaded fxhash v0.2.1
Downloaded num-iter v0.1.45
Downloaded num-cmp v0.1.0
Downloaded normalize-line-endings v0.3.0
Downloaded addr2line v0.24.2
Downloaded crypto-bigint v0.5.5
Downloaded num-bigint-dig v0.8.4
Downloaded num-bigint v0.4.6
Downloaded cyphergraphy v0.3.0
Downloaded filetime v0.2.23
Downloaded gix-traverse v0.43.1
Downloaded base16ct v0.2.0
Downloaded anstyle-query v1.0.2
Downloaded anstream v0.6.13
Downloaded cfg-if v1.0.0
Downloaded der v0.7.9
Downloaded env_logger v0.11.8
Downloaded diff v0.1.13
Downloaded derive_more-impl v2.0.1
Downloaded fastrand v2.1.0
Downloaded phf_shared v0.11.3
Downloaded faster-hex v0.9.0
Downloaded qcheck-macros v1.0.0
Downloaded data-encoding-macro-internal v0.1.12
Downloaded os_info v3.12.0
Downloaded ff v0.13.0
Downloaded num-traits v0.2.19
Downloaded ref-cast-impl v1.0.24
Downloaded num v0.4.3
Downloaded polyval v0.6.2
Downloaded generic-array v0.14.7
Downloaded parking_lot_core v0.9.9
Downloaded gix-hashtable v0.6.0
Downloaded proc-macro-error2 v2.0.1
Downloaded gix-hash v0.15.1
Downloaded ref-cast v1.0.24
Downloaded primeorder v0.13.6
Downloaded radicle-git-ext v0.10.0
Downloaded qcheck v1.0.0
Downloaded p256 v0.13.2
Downloaded yoke v0.7.5
Downloaded hmac v0.12.1
Downloaded icu_properties v1.5.1
Downloaded keccak v0.1.5
Downloaded litrs v0.4.1
Downloaded gix-utils v0.1.14
Downloaded socks5-client v0.4.1
Downloaded multibase v0.9.1
Downloaded rsa v0.9.6
Downloaded shell-words v1.1.0
Downloaded sval_nested v2.14.1
Downloaded noise-framework v0.4.0
Downloaded sval_json v2.14.1
Downloaded sval_dynamic v2.14.1
Downloaded shlex v1.3.0
Downloaded sec1 v0.7.3
Downloaded sval v2.14.1
Downloaded nonempty v0.9.0
Downloaded sval_fmt v2.14.1
Downloaded sval_ref v2.14.1
Downloaded tracing-log v0.2.0
Downloaded gix-negotiate v0.17.0
Downloaded toml_writer v1.0.2
Downloaded tracing-core v0.1.34
Downloaded unicode-display-width v0.3.0
Downloaded gix-url v0.28.2
Downloaded unicode-ident v1.0.12
Downloaded unicode-width v0.1.11
Downloaded unit-prefix v0.5.1
Downloaded form_urlencoded v1.2.1
Downloaded zerovec-derive v0.10.3
Downloaded gix-fs v0.12.1
Downloaded gix-quote v0.4.15
Downloaded value-bag-sval2 v1.11.1
Downloaded gix-trace v0.1.12
Downloaded gix-tempfile v15.0.0
Downloaded gix-sec v0.10.12
Downloaded writeable v0.5.5
Downloaded tinyvec_macros v0.1.1
Downloaded gix-chunk v0.4.11
Downloaded timeago v0.4.2
Downloaded zerofrom v0.1.6
Downloaded inout v0.1.3
Downloaded gix-validate v0.9.4
Downloaded thiserror v2.0.12
Downloaded utf16_iter v1.0.5
Downloaded flate2 v1.1.1
Downloaded write16 v1.0.0
Downloaded memmap2 v0.9.4
Downloaded serde_json v1.0.140
Downloaded localtime v1.3.1
Downloaded vsimd v0.8.0
Downloaded tar v0.4.40
Downloaded synstructure v0.13.1
Downloaded streaming-iterator v0.1.9
Downloaded tree-sitter-toml-ng v0.6.0
Downloaded xattr v1.3.1
Downloaded tree-sitter-html v0.23.2
Downloaded structured-logger v1.0.4
Downloaded tree-sitter-language v0.1.2
Downloaded heck v0.5.0
Downloaded gix-refspec v0.27.0
Downloaded gix-prompt v0.9.1
Downloaded ssh-encoding v0.2.0
Downloaded icu_locid v1.5.0
Downloaded strsim v0.11.1
Downloaded gix-credentials v0.26.0
Downloaded gix-protocol v0.47.0
Downloaded tree-sitter-highlight v0.24.4
Downloaded log v0.4.27
Downloaded lock_api v0.4.11
Downloaded tree-sitter-css v0.23.1
Downloaded gix-ref v0.49.1
Downloaded uuid v1.16.0
Downloaded portable-atomic v1.11.0
Downloaded icu_collections v1.5.0
Downloaded fraction v0.15.3
Downloaded tree-sitter-go v0.23.4
Downloaded ssh-key v0.6.6
Downloaded winnow v0.6.26
Downloaded tree-sitter-python v0.23.4
Downloaded git2 v0.19.0
Downloaded icu_properties_data v1.5.1
Downloaded vcpkg v0.2.15
Downloaded tree-sitter-c v0.23.2
Downloaded syn v2.0.89
Downloaded rustix v1.0.7
Downloaded tree-sitter-md v0.3.2
Downloaded tree-sitter-rust v0.23.2
Downloaded linux-raw-sys v0.4.13
Downloaded gimli v0.31.1
Downloaded regex-syntax v0.8.5
Downloaded tree-sitter-bash v0.23.3
Downloaded rustix v0.38.34
Downloaded hashbrown v0.14.3
Downloaded tree-sitter-ruby v0.23.1
Downloaded regex-automata v0.4.9
Downloaded zerocopy v0.7.35
Downloaded unicode-width v0.2.1
Downloaded regex-syntax v0.6.29
Downloaded jsonschema v0.30.0
Downloaded jiff v0.2.1
Downloaded memchr v2.7.2
Downloaded idna v1.0.3
Downloaded tree-sitter-typescript v0.23.2
Downloaded tokio v1.47.1
Downloaded sha3 v0.10.8
Downloaded libc v0.2.174
Downloaded syn v1.0.109
Downloaded gix-pack v0.56.0
Downloaded mio v0.8.11
Downloaded icu_locid_transform v1.5.0
Downloaded gix-diff v0.49.0
Downloaded gix-features v0.39.1
Downloaded libm v0.2.8
Downloaded regex v1.11.1
Downloaded iana-time-zone v0.1.60
Downloaded tinyvec v1.6.0
Downloaded systemd-journal-logger v2.2.2
Downloaded inquire v0.7.5
Downloaded zerovec v0.10.4
Downloaded gix-path v0.10.15
Downloaded zerofrom-derive v0.1.6
Downloaded utf8parse v0.2.1
Downloaded gix-commitgraph v0.25.1
Downloaded gix-command v0.4.1
Downloaded getrandom v0.2.15
Downloaded icu_normalizer_data v1.5.1
Downloaded icu_normalizer v1.5.0
Downloaded url v2.5.4
Downloaded ssh-cipher v0.2.0
Downloaded walkdir v2.5.0
Downloaded itoa v1.0.11
Downloaded group v0.13.0
Downloaded yansi v0.5.1
Downloaded getrandom v0.3.3
Downloaded subtle v2.5.0
Downloaded icu_locid_transform_data v1.5.1
Downloaded miniz_oxide v0.8.8
Downloaded maybe-async v0.2.10
Downloaded sqlite3-sys v0.15.2
Downloaded ghash v0.5.1
Downloaded value-bag v1.11.1
Downloaded indicatif v0.18.0
Downloaded indexmap v2.2.6
Downloaded linux-raw-sys v0.9.4
Downloaded tree-sitter v0.24.4
Downloaded libgit2-sys v0.17.0+1.8.1
Downloaded stable_deref_trait v1.2.0
Downloaded tracing-subscriber v0.3.19
Downloaded tree-sitter-json v0.24.8
Downloaded matchers v0.1.0
Downloaded gix-packetline v0.18.4
Downloaded toml v0.9.5
Downloaded gix-revision v0.31.1
Downloaded tempfile v3.10.1
Downloaded spin v0.9.8
Downloaded gix-config-value v0.14.12
Downloaded version_check v0.9.4
Downloaded toml_datetime v0.7.0
Downloaded lexopt v0.3.0
Downloaded jobserver v0.1.31
Downloaded value-bag-serde1 v1.11.1
Downloaded thiserror v1.0.69
Downloaded test-log v0.2.18
Downloaded icu_provider v1.5.0
Downloaded gix-odb v0.66.0
Downloaded regex-automata v0.1.10
Downloaded uuid-simd v0.8.0
Downloaded test-log-macros v0.2.18
Downloaded sqlite3-src v0.5.1
Downloaded git-ref-format v0.5.0
Downloaded spki v0.7.3
Downloaded gix-transport v0.44.0
Downloaded unicode-normalization v0.1.23
Downloaded icu_provider_macros v1.5.0
Downloaded utf8_iter v1.0.4
Downloaded prodash v29.0.2
Downloaded thread_local v1.1.9
Downloaded gix-actor v0.33.2
Downloaded thiserror-impl v2.0.12
Downloaded thiserror-impl v1.0.69
Downloaded sqlite v0.32.0
Downloaded tinystr v0.7.6
Downloaded gix-shallow v0.1.0
Downloaded unicode-segmentation v1.11.0
Downloaded p521 v0.13.3
Downloaded yoke-derive v0.7.5
Downloaded p384 v0.13.0
Downloaded gix-revwalk v0.17.0
Downloaded fluent-uri v0.3.2
Downloaded tracing v0.1.41
Downloaded serde_derive v1.0.219
Downloaded zeroize v1.7.0
Downloaded socket2 v0.5.7
Downloaded sharded-slab v0.1.7
Downloaded universal-hash v0.5.1
Downloaded typeid v1.0.3
Downloaded libz-sys v1.1.16
Downloaded ryu v1.0.17
Downloaded pretty_assertions v1.4.0
Downloaded signals_receipts v0.2.0
Downloaded signal-hook v0.3.18
Downloaded serde v1.0.219
Downloaded schemars_derive v1.0.4
Downloaded schemars v1.0.4
Downloaded radicle-surf v0.25.0
Downloaded typenum v1.17.0
Downloaded gix-object v0.46.1
Downloaded snapbox v0.4.17
Downloaded similar v2.5.0
Downloaded signature v2.2.0
Downloaded gix-lock v15.0.1
Downloaded siphasher v1.0.1
Downloaded signal-hook-mio v0.2.4
Downloaded sha1_smol v1.0.0
Downloaded serde_spanned v1.0.0
Downloaded proc-macro2 v1.0.92
Downloaded sval_serde v2.14.1
Downloaded human-panic v2.0.3
Downloaded home v0.5.9
Downloaded rustc-demangle v0.1.26
Downloaded mio v1.0.4
Downloaded smallvec v1.13.2
Downloaded sem_safe v0.2.0
Downloaded scrypt v0.11.0
Downloaded salsa20 v0.10.2
Downloaded rfc6979 v0.4.0
Downloaded sval_buffer v2.14.1
Downloaded serde_derive_internals v0.29.1
Downloaded pkcs1 v0.7.5
Downloaded signature v1.6.4
Downloaded serde_fmt v1.0.3
Downloaded serde-untagged v0.1.7
Downloaded pin-project-lite v0.2.16
Downloaded sha2 v0.10.8
Downloaded rand_core v0.6.4
Downloaded itertools v0.14.0
Downloaded siphasher v0.3.11
Downloaded signal-hook-registry v1.4.5
Downloaded scopeguard v1.2.0
Downloaded proc-macro-error-attr2 v2.0.0
Downloaded newline-converter v0.3.0
Downloaded litemap v0.7.5
Downloaded snapbox-macros v0.3.8
Downloaded radicle-std-ext v0.1.1
Downloaded lazy_static v1.5.0
Downloaded same-file v1.0.6
Downloaded idna_adapter v1.2.0
Downloaded num-rational v0.4.2
Downloaded bstr v1.9.1
Downloaded once_cell v1.21.3
Downloaded bloomy v1.2.0
Downloaded rand_chacha v0.3.1
Downloaded rand v0.8.5
Downloaded pbkdf2 v0.12.2
Downloaded nu-ansi-term v0.46.0
Downloaded referencing v0.30.0
Downloaded quote v1.0.36
Downloaded ppv-lite86 v0.2.17
Downloaded overload v0.1.1
Downloaded aho-corasick v1.1.3
Downloaded cyphernet v0.5.2
Downloaded crossterm v0.25.0
Downloaded opaque-debug v0.3.1
Downloaded crossterm v0.29.0
Downloaded chrono v0.4.38
Downloaded percent-encoding v2.3.1
Downloaded pem-rfc7468 v0.7.0
Downloaded fancy-regex v0.14.0
Downloaded paste v1.0.15
Downloaded object v0.36.7
Downloaded clap v4.5.44
Downloaded cc v1.2.2
Downloaded amplify_derive v4.0.0
Downloaded gix-date v0.9.4
Downloaded derive_more v2.0.1
Downloaded aes-gcm v0.10.3
Downloaded base64 v0.22.1
Downloaded git-ref-format-macro v0.5.0
Downloaded git-ref-format-core v0.5.0
Downloaded outref v0.5.2
Downloaded backtrace v0.3.75
Downloaded pkg-config v0.3.30
Downloaded parking_lot v0.12.3
Downloaded console v0.16.0
Downloaded clap_derive v4.5.41
Downloaded amplify v4.6.0
Downloaded bitflags v2.9.1
Downloaded emojis v0.6.4
Downloaded either v1.11.0
Downloaded ctr v0.9.2
Downloaded poly1305 v0.8.0
Downloaded pkcs8 v0.10.2
Downloaded phf v0.11.3
Downloaded num-integer v0.1.46
Downloaded num-complex v0.4.6
Downloaded erased-serde v0.4.6
Downloaded ec25519 v0.1.0
Downloaded displaydoc v0.2.5
Downloaded cpufeatures v0.2.12
Downloaded aead v0.5.2
Downloaded errno v0.3.13
Downloaded convert_case v0.7.1
Downloaded block-padding v0.3.3
Downloaded autocfg v1.2.0
Downloaded anyhow v1.0.82
Downloaded digest v0.10.7
Downloaded crypto-common v0.1.6
Downloaded const-oid v0.9.6
Downloaded colorchoice v1.0.0
Downloaded clap_lex v0.7.5
Downloaded chacha20poly1305 v0.10.1
Downloaded fast-glob v0.3.3
Downloaded crossbeam-utils v0.8.19
Downloaded bytes v1.10.1
Downloaded bitflags v1.3.2
Downloaded base32 v0.4.0
Downloaded borrow-or-share v0.2.2
Downloaded env_filter v0.1.3
Downloaded document-features v0.2.11
Downloaded amplify_syn v2.0.1
Downloaded ahash v0.8.11
Downloaded escargot v0.5.10
Downloaded equivalent v1.0.1
Downloaded email_address v0.2.9
Downloaded ecdsa v0.16.9
Downloaded dyn-clone v1.0.17
Downloaded cypheraddr v0.4.0
Downloaded cipher v0.4.4
Downloaded cbc v0.1.2
Downloaded bcrypt-pbkdf v0.10.0
Downloaded base64ct v1.6.0
Downloaded ct-codecs v1.1.1
Downloaded crossbeam-channel v0.5.15
Downloaded chacha20 v0.9.1
Downloaded bit-set v0.8.0
Downloaded base64 v0.21.7
Downloaded data-encoding-macro v0.1.14
Downloaded data-encoding v2.5.0
Downloaded colored v2.1.0
Downloaded byteorder v1.5.0
Downloaded bit-vec v0.8.0
Downloaded ascii v1.1.0
Downloaded anstyle-parse v0.2.3
Downloaded amplify_num v0.5.2
Downloaded ed25519 v1.5.3
Downloaded dunce v1.0.5
Downloaded crc32fast v1.4.0
Downloaded clap_builder v4.5.44
Downloaded blowfish v0.9.1
Downloaded bytesize v2.0.1
Downloaded base-x v0.2.11
Downloaded aes v0.8.4
Downloaded arc-swap v1.7.1
Downloaded anstyle v1.0.11
Downloaded block-buffer v0.10.4
Compiling libc v0.2.174
Compiling proc-macro2 v1.0.92
Compiling unicode-ident v1.0.12
Checking cfg-if v1.0.0
Compiling serde v1.0.219
Compiling shlex v1.3.0
Checking memchr v2.7.2
Compiling typeid v1.0.3
Compiling quote v1.0.36
Compiling syn v2.0.89
Compiling autocfg v1.2.0
Checking smallvec v1.13.2
Compiling jobserver v0.1.31
Compiling version_check v0.9.4
Checking getrandom v0.2.15
Compiling cc v1.2.2
Checking aho-corasick v1.1.3
Checking regex-syntax v0.8.5
Compiling typenum v1.17.0
Checking regex-automata v0.4.9
Compiling generic-array v0.14.7
Checking rand_core v0.6.4
Compiling thiserror v2.0.12
Checking crypto-common v0.1.6
Checking fastrand v2.1.0
Checking bitflags v2.9.1
Compiling lock_api v0.4.11
Compiling parking_lot_core v0.9.9
Compiling synstructure v0.13.1
Checking scopeguard v1.2.0
Checking once_cell v1.21.3
Checking parking_lot v0.12.3
Checking stable_deref_trait v1.2.0
Checking subtle v2.5.0
Checking tinyvec_macros v0.1.1
Checking tinyvec v1.6.0
Checking itoa v1.0.11
Checking hashbrown v0.14.3
Checking bstr v1.9.1
Checking zeroize v1.7.0
Compiling thiserror v1.0.69
Checking litemap v0.7.5
Compiling serde_derive v1.0.219
Compiling thiserror-impl v2.0.12
Compiling zerofrom-derive v0.1.6
Compiling yoke-derive v0.7.5
Compiling zerovec-derive v0.10.3
Compiling displaydoc v0.2.5
Checking zerofrom v0.1.6
Checking yoke v0.7.5
Checking unicode-normalization v0.1.23
Compiling icu_locid_transform_data v1.5.1
Compiling crc32fast v1.4.0
Checking writeable v0.5.5
Compiling pkg-config v0.3.30
Checking zerovec v0.10.4
Checking cpufeatures v0.2.12
Compiling icu_provider_macros v1.5.0
Compiling thiserror-impl v1.0.69
Checking tinystr v0.7.6
Checking icu_locid v1.5.0
Compiling icu_properties_data v1.5.1
Checking icu_provider v1.5.0
Checking block-padding v0.3.3
Compiling icu_normalizer_data v1.5.1
Checking inout v0.1.3
Checking icu_locid_transform v1.5.0
Checking icu_collections v1.5.0
Checking block-buffer v0.10.4
Compiling syn v1.0.109
Checking digest v0.10.7
Checking icu_properties v1.5.1
Checking cipher v0.4.4
Checking utf8_iter v1.0.4
Checking adler2 v2.0.0
Checking utf16_iter v1.0.5
Checking write16 v1.0.0
Checking miniz_oxide v0.8.8
Checking erased-serde v0.4.6
Checking serde_fmt v1.0.3
Checking faster-hex v0.9.0
Checking value-bag-serde1 v1.11.1
Checking value-bag v1.11.1
Checking gix-hash v0.15.1
Checking log v0.4.27
Compiling rustix v0.38.34
Checking percent-encoding v2.3.1
Checking linux-raw-sys v0.4.13
Checking icu_normalizer v1.5.0
Checking gix-trace v0.1.12
Checking form_urlencoded v1.2.1
Checking sha2 v0.10.8
Checking idna_adapter v1.2.0
Compiling vcpkg v0.2.15
Checking idna v1.0.3
Checking url v2.5.4
Compiling libz-sys v1.1.16
Checking universal-hash v0.5.1
Checking opaque-debug v0.3.1
Checking gix-utils v0.1.14
Compiling amplify_syn v2.0.1
Compiling libgit2-sys v0.17.0+1.8.1
Checking tempfile v3.10.1
Compiling num-traits v0.2.19
Checking equivalent v1.0.1
Checking same-file v1.0.6
Checking signature v1.6.4
Checking byteorder v1.5.0
Compiling serde_json v1.0.140
Checking ed25519 v1.5.3
Checking walkdir v2.5.0
Compiling amplify_derive v4.0.0
Checking indexmap v2.2.6
Checking flate2 v1.1.1
Checking prodash v29.0.2
Checking aead v0.5.2
Checking sha1_smol v1.0.0
Checking amplify_num v0.5.2
Checking ct-codecs v1.1.1
Compiling ref-cast v1.0.24
Checking ryu v1.0.17
Checking ascii v1.1.0
Checking ec25519 v0.1.0
Checking amplify v4.6.0
Checking gix-features v0.39.1
Checking poly1305 v0.8.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
Checking hmac v0.12.1
Compiling sqlite3-src v0.5.1
Checking dyn-clone v1.0.17
Checking base64ct v1.6.0
Checking keccak v0.1.5
Checking home v0.5.9
Checking pem-rfc7468 v0.7.0
Checking sha3 v0.10.8
Checking gix-path v0.10.15
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 data-encoding v2.5.0
Checking base32 v0.4.0
Compiling crossbeam-utils v0.8.19
Checking cypheraddr v0.4.0
Compiling data-encoding-macro-internal v0.1.12
Checking qcheck v1.0.0
Checking aes-gcm v0.10.3
Checking ssh-encoding v0.2.0
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 signature v2.2.0
Checking base-x v0.2.11
Checking multibase v0.9.1
Checking ssh-key v0.6.6
Checking crossbeam-channel v0.5.15
Checking cyphernet v0.5.2
Checking radicle-ssh v0.10.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-ssh)
Checking schemars v1.0.4
Checking lazy_static v1.5.0
Checking nonempty v0.9.0
Checking siphasher v1.0.1
Checking jiff v0.2.1
Checking radicle-git-metadata v0.1.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-git-metadata)
Checking radicle-dag v0.10.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-dag)
Checking winnow v0.6.26
Checking anstyle-query v1.0.2
Checking radicle-git-ref-format v0.1.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-git-ref-format)
Checking gix-hashtable v0.6.0
Checking gix-validate v0.9.4
Checking iana-time-zone v0.1.60
Checking utf8parse v0.2.1
Checking gix-date v0.9.4
Checking base64 v0.21.7
Checking gix-actor v0.33.2
Checking anstyle-parse v0.2.3
Checking gix-object v0.46.1
Checking chrono v0.4.38
Checking colored v2.1.0
Checking serde-untagged v0.1.7
Checking bytesize v2.0.1
Checking localtime v1.3.1
Checking memmap2 v0.9.4
Checking fast-glob v0.3.3
Checking colorchoice v1.0.0
Checking tree-sitter-language v0.1.2
Checking anstyle v1.0.11
Checking dunce v1.0.5
Checking anstream v0.6.13
Checking gix-chunk v0.4.11
Checking gix-commitgraph v0.25.1
Compiling rustix v1.0.7
Checking gix-revwalk v0.17.0
Checking gix-fs v0.12.1
Checking linux-raw-sys v0.9.4
Checking gix-tempfile v15.0.0
Checking mio v1.0.4
Checking errno v0.3.13
Checking sem_safe v0.2.0
Checking either v1.11.0
Checking shell-words v1.1.0
Checking gix-command v0.4.1
Checking signals_receipts v0.2.0
Compiling object v0.36.7
Compiling signal-hook v0.3.18
Checking gix-lock v15.0.1
Checking gix-config-value v0.14.12
Checking gix-url v0.28.2
Checking gix-quote v0.4.15
Checking gix-sec v0.10.12
Checking signal-hook-registry v1.4.5
Compiling getrandom v0.3.3
Checking gimli v0.31.1
Checking gix-prompt v0.9.1
Checking addr2line v0.24.2
Checking radicle-signals v0.11.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-signals)
Checking gix-traverse v0.43.1
Checking gix-revision v0.31.1
Checking gix-diff v0.49.0
Checking gix-packetline v0.18.4
Checking sqlite3-sys v0.15.2
Checking sqlite v0.32.0
Checking mio v0.8.11
Checking radicle-crypto v0.14.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-crypto)
Compiling tree-sitter v0.24.4
Compiling anyhow v1.0.82
Compiling unicode-segmentation v1.11.0
Checking rustc-demangle v0.1.26
Checking backtrace v0.3.75
Compiling convert_case v0.7.1
Checking signal-hook-mio v0.2.4
Checking gix-transport v0.44.0
Checking gix-pack v0.56.0
Checking gix-refspec v0.27.0
Checking gix-credentials v0.26.0
Checking gix-ref v0.49.1
Checking gix-shallow v0.1.0
Checking gix-negotiate v0.17.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.66.0
Checking gix-protocol v0.47.0
Compiling proc-macro-error2 v2.0.1
Checking uuid v1.16.0
Compiling xattr v1.3.1
Compiling derive_more-impl v2.0.1
Compiling filetime v0.2.23
Checking unicode-width v0.2.1
Checking lexopt v0.3.0
Checking bitflags v1.3.2
Checking bytes v1.10.1
Compiling litrs v0.4.1
Checking crossterm v0.25.0
Checking derive_more v2.0.1
Checking console v0.16.0
Compiling document-features v0.2.11
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 fxhash v0.2.1
Checking salsa20 v0.10.2
Checking unit-prefix v0.5.1
Checking siphasher v0.3.11
Checking normalize-line-endings v0.3.0
Checking similar v2.5.0
Checking unicode-width v0.1.11
Checking streaming-iterator v0.1.9
Checking bloomy v1.2.0
Checking inquire v0.7.5
Checking snapbox v0.4.17
Compiling radicle-surf v0.25.0
Checking scrypt v0.11.0
Checking indicatif v0.18.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 serde_spanned v1.0.0
Checking toml_datetime v0.7.0
Compiling tree-sitter-rust v0.23.2
Compiling tree-sitter-bash v0.23.3
Compiling tree-sitter-typescript v0.23.2
Compiling tree-sitter-json v0.24.8
Compiling tree-sitter-go v0.23.4
Compiling tree-sitter-css v0.23.1
Compiling tree-sitter-ruby v0.23.1
Compiling tree-sitter-toml-ng v0.6.0
Compiling tree-sitter-html v0.23.2
Compiling tree-sitter-c v0.23.2
Compiling tree-sitter-python v0.23.4
Compiling tree-sitter-md v0.3.2
Compiling heck v0.5.0
Checking pin-project-lite v0.2.16
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 toml v0.9.5
Compiling clap_derive v4.5.41
Checking clap_builder v4.5.44
Checking tokio v1.47.1
Checking os_info v3.12.0
Compiling radicle-cli v0.17.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-cli)
Checking yansi v0.5.1
Checking diff v0.1.13
Compiling radicle-node v0.16.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-node)
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 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/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 bit-vec v0.8.0
Checking num-rational v0.4.2
Checking borrow-or-share v0.2.2
Checking zerocopy v0.7.35
Checking fluent-uri v0.3.2
Checking num v0.4.3
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 paste v1.0.15
Compiling radicle-remote-helper v0.14.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-remote-helper)
Checking vsimd v0.8.0
Checking test-log v0.2.18
Checking phf v0.11.3
Checking referencing v0.30.0
Checking fancy-regex v0.14.0
Checking uuid-simd v0.8.0
Checking fraction v0.15.3
Checking email_address v0.2.9
Checking base64 v0.22.1
Checking bytecount v0.6.8
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 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-oid)
Checking radicle-git-ext v0.10.0
Checking radicle-term v0.16.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-term)
Checking radicle-cob v0.17.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-cob)
Checking radicle v0.20.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle)
Checking radicle-fetch v0.16.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-fetch)
Checking radicle-cli-test v0.13.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-cli-test)
Checking radicle-protocol v0.4.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-protocol)
Checking radicle-schemars v0.6.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-schemars)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 45.70s
+ cargo build --all-targets --workspace
Compiling cfg-if v1.0.0
Compiling libc v0.2.174
Compiling shlex v1.3.0
Compiling serde v1.0.219
Compiling memchr v2.7.2
Compiling typeid v1.0.3
Compiling smallvec v1.13.2
Compiling regex-syntax v0.8.5
Compiling jobserver v0.1.31
Compiling cc v1.2.2
Compiling getrandom v0.2.15
Compiling aho-corasick v1.1.3
Compiling erased-serde v0.4.6
Compiling serde_fmt v1.0.3
Compiling regex-automata v0.4.9
Compiling value-bag-serde1 v1.11.1
Compiling value-bag v1.11.1
Compiling log v0.4.27
Compiling typenum v1.17.0
Compiling rand_core v0.6.4
Compiling bitflags v2.9.1
Compiling thiserror v2.0.12
Compiling generic-array v0.14.7
Compiling fastrand v2.1.0
Compiling scopeguard v1.2.0
Compiling lock_api v0.4.11
Compiling parking_lot_core v0.9.9
Compiling faster-hex v0.9.0
Compiling parking_lot v0.12.3
Compiling crypto-common v0.1.6
Compiling once_cell v1.21.3
Compiling zerofrom v0.1.6
Compiling stable_deref_trait v1.2.0
Compiling gix-hash v0.15.1
Compiling yoke v0.7.5
Compiling subtle v2.5.0
Compiling tinyvec_macros v0.1.1
Compiling zerovec v0.10.4
Compiling hashbrown v0.14.3
Compiling tinyvec v1.6.0
Compiling bstr v1.9.1
Compiling zeroize v1.7.0
Compiling unicode-normalization v0.1.23
Compiling itoa v1.0.11
Compiling tinystr v0.7.6
Compiling cpufeatures v0.2.12
Compiling adler2 v2.0.0
Compiling litemap v0.7.5
Compiling writeable v0.5.5
Compiling miniz_oxide v0.8.8
Compiling icu_locid_transform_data v1.5.1
Compiling block-padding v0.3.3
Compiling icu_locid v1.5.0
Compiling thiserror v1.0.69
Compiling inout v0.1.3
Compiling icu_properties_data v1.5.1
Compiling crc32fast v1.4.0
Compiling icu_provider v1.5.0
Compiling icu_collections v1.5.0
Compiling icu_locid_transform v1.5.0
Compiling block-buffer v0.10.4
Compiling digest v0.10.7
Compiling cipher v0.4.4
Compiling icu_normalizer_data v1.5.1
Compiling utf16_iter v1.0.5
Compiling icu_properties v1.5.1
Compiling utf8_iter v1.0.4
Compiling write16 v1.0.0
Compiling percent-encoding v2.3.1
Compiling linux-raw-sys v0.4.13
Compiling gix-trace v0.1.12
Compiling rustix v0.38.34
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 gix-utils v0.1.14
Compiling libgit2-sys v0.17.0+1.8.1
Compiling icu_normalizer v1.5.0
Compiling same-file v1.0.6
Compiling equivalent v1.0.1
Compiling byteorder v1.5.0
Compiling tempfile v3.10.1
Compiling signature v1.6.4
Compiling idna_adapter v1.2.0
Compiling idna v1.0.3
Compiling ed25519 v1.5.3
Compiling indexmap v2.2.6
Compiling walkdir v2.5.0
Compiling url v2.5.4
Compiling flate2 v1.1.1
Compiling prodash v29.0.2
Compiling aead v0.5.2
Compiling ct-codecs v1.1.1
Compiling ascii v1.1.0
Compiling ryu v1.0.17
Compiling sha1_smol v1.0.0
Compiling amplify_num v0.5.2
Compiling gix-features v0.39.1
Compiling serde_json v1.0.140
Compiling ec25519 v0.1.0
Compiling num-traits v0.2.19
Compiling amplify v4.6.0
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 hmac v0.12.1
Compiling sqlite3-src v0.5.1
Compiling home v0.5.9
Compiling keccak v0.1.5
Compiling dyn-clone v1.0.17
Compiling base64ct v1.6.0
Compiling sha3 v0.10.8
Compiling pem-rfc7468 v0.7.0
Compiling gix-path v0.10.15
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 socks5-client v0.4.1
Compiling crossbeam-utils v0.8.19
Compiling signature v2.2.0
Compiling base-x v0.2.11
Compiling multibase v0.9.1
Compiling crossbeam-channel v0.5.15
Compiling ssh-key v0.6.6
Compiling cyphernet v0.5.2
Compiling schemars v1.0.4
Compiling radicle-ssh v0.10.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-ssh)
Compiling lazy_static v1.5.0
Compiling nonempty v0.9.0
Compiling jiff v0.2.1
Compiling siphasher v1.0.1
Compiling radicle-git-metadata v0.1.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-git-metadata)
Compiling radicle-dag v0.10.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-dag)
Compiling winnow v0.6.26
Compiling anstyle-query v1.0.2
Compiling radicle-git-ref-format v0.1.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-git-ref-format)
Compiling gix-validate v0.9.4
Compiling gix-hashtable v0.6.0
Compiling base64 v0.21.7
Compiling iana-time-zone v0.1.60
Compiling utf8parse v0.2.1
Compiling anstyle-parse v0.2.3
Compiling gix-date v0.9.4
Compiling gix-actor v0.33.2
Compiling gix-object v0.46.1
Compiling chrono v0.4.38
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.4
Compiling colorchoice v1.0.0
Compiling anstyle v1.0.11
Compiling dunce v1.0.5
Compiling fast-glob v0.3.3
Compiling tree-sitter-language v0.1.2
Compiling anstream v0.6.13
Compiling gix-chunk v0.4.11
Compiling gix-commitgraph v0.25.1
Compiling gix-fs v0.12.1
Compiling gix-revwalk v0.17.0
Compiling linux-raw-sys v0.9.4
Compiling gix-tempfile v15.0.0
Compiling sqlite3-sys v0.15.2
Compiling sqlite v0.32.0
Compiling mio v1.0.4
Compiling radicle-crypto v0.14.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-crypto)
Compiling errno v0.3.13
Compiling sem_safe v0.2.0
Compiling rustix v1.0.7
Compiling either v1.11.0
Compiling unicode-segmentation v1.11.0
Compiling shell-words v1.1.0
Compiling gix-command v0.4.1
Compiling signals_receipts v0.2.0
Compiling gix-lock v15.0.1
Compiling gix-config-value v0.14.12
Compiling gix-url v0.28.2
Compiling gix-quote v0.4.15
Compiling gix-sec v0.10.12
Compiling signal-hook-registry v1.4.5
Compiling gimli v0.31.1
Compiling signal-hook v0.3.18
Compiling gix-prompt v0.9.1
Compiling radicle-signals v0.11.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-signals)
Compiling object v0.36.7
Compiling addr2line v0.24.2
Compiling gix-traverse v0.43.1
Compiling gix-revision v0.31.1
Compiling gix-diff v0.49.0
Compiling gix-packetline v0.18.4
Compiling mio v0.8.11
Compiling tree-sitter v0.24.4
Compiling rustc-demangle v0.1.26
Compiling backtrace v0.3.75
Compiling signal-hook-mio v0.2.4
Compiling gix-transport v0.44.0
Compiling gix-pack v0.56.0
Compiling gix-refspec v0.27.0
Compiling gix-credentials v0.26.0
Compiling getrandom v0.3.3
Compiling gix-ref v0.49.1
Compiling gix-shallow v0.1.0
Compiling convert_case v0.7.1
Compiling gix-negotiate v0.17.0
Compiling regex v1.11.1
Compiling arc-swap v1.7.1
Compiling gix-odb v0.66.0
Compiling gix-protocol v0.47.0
Compiling derive_more-impl v2.0.1
Compiling uuid v1.16.0
Compiling xattr v1.3.1
Compiling filetime v0.2.23
Compiling lexopt v0.3.0
Compiling bytes v1.10.1
Compiling bitflags v1.3.2
Compiling unicode-width v0.2.1
Compiling crossterm v0.25.0
Compiling console v0.16.0
Compiling git-ref-format-macro v0.5.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 fxhash v0.2.1
Compiling salsa20 v0.10.2
Compiling normalize-line-endings v0.3.0
Compiling streaming-iterator v0.1.9
Compiling unicode-width v0.1.11
Compiling siphasher v0.3.11
Compiling similar v2.5.0
Compiling unit-prefix v0.5.1
Compiling radicle-surf v0.25.0
Compiling indicatif v0.18.0
Compiling snapbox v0.4.17
Compiling bloomy v1.2.0
Compiling inquire v0.7.5
Compiling scrypt v0.11.0
Compiling git-ref-format v0.5.0
Compiling crossterm v0.29.0
Compiling systemd-journal-logger v2.2.2
Compiling unicode-display-width v0.3.0
Compiling tree-sitter-bash v0.23.3
Compiling tree-sitter-go v0.23.4
Compiling tree-sitter-python v0.23.4
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.1
Compiling tree-sitter-html v0.23.2
Compiling tree-sitter-md v0.3.2
Compiling tree-sitter-rust v0.23.2
Compiling tree-sitter-c v0.23.2
Compiling tree-sitter-typescript v0.23.2
Compiling toml_datetime v0.7.0
Compiling serde_spanned v1.0.0
Compiling toml_writer v1.0.2
Compiling clap_lex v0.7.5
Compiling radicle-std-ext v0.1.1
Compiling pin-project-lite v0.2.16
Compiling strsim v0.11.1
Compiling tokio v1.47.1
Compiling toml v0.9.5
Compiling clap_builder v4.5.44
Compiling os_info v3.12.0
Compiling radicle-node v0.16.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-node)
Compiling radicle-cli v0.17.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-cli)
Compiling yansi v0.5.1
Compiling diff v0.1.13
Compiling pretty_assertions v1.4.0
Compiling human-panic v2.0.3
Compiling structured-logger v1.0.4
Compiling clap v4.5.44
Compiling radicle-systemd v0.11.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/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 bit-vec v0.8.0
Compiling num-rational v0.4.2
Compiling zerocopy v0.7.35
Compiling borrow-or-share v0.2.2
Compiling fluent-uri v0.3.2
Compiling ahash v0.8.11
Compiling num v0.4.3
Compiling bit-set v0.8.0
Compiling env_logger v0.11.8
Compiling phf_shared v0.11.3
Compiling radicle-remote-helper v0.14.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-remote-helper)
Compiling vsimd v0.8.0
Compiling outref v0.5.2
Compiling test-log v0.2.18
Compiling phf v0.11.3
Compiling referencing v0.30.0
Compiling uuid-simd v0.8.0
Compiling fancy-regex v0.14.0
Compiling fraction v0.15.3
Compiling email_address v0.2.9
Compiling bytecount v0.6.8
Compiling base64 v0.22.1
Compiling num-cmp v0.1.0
Compiling emojis v0.6.4
Compiling jsonschema v0.30.0
Compiling git2 v0.19.0
Compiling radicle-oid v0.1.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-oid)
Compiling radicle-git-ext v0.10.0
Compiling radicle-term v0.16.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-term)
Compiling radicle-cob v0.17.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-cob)
Compiling radicle v0.20.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle)
Compiling radicle-fetch v0.16.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-fetch)
Compiling radicle-protocol v0.4.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-protocol)
Compiling radicle-cli-test v0.13.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-cli-test)
Compiling radicle-schemars v0.6.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-schemars)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 10s
+ 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 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-ssh)
Checking url v2.5.4
Compiling num-traits v0.2.19
Checking git2 v0.19.0
Checking radicle-git-metadata v0.1.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-git-metadata)
Checking radicle-dag v0.10.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-dag)
Compiling amplify_syn v2.0.1
Checking radicle-oid v0.1.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-oid)
Checking bstr v1.9.1
Checking chrono v0.4.38
Checking gix-path v0.10.15
Checking git-ref-format-core v0.5.0
Compiling data-encoding-macro-internal v0.1.12
Compiling amplify_derive v4.0.0
Checking gix-date v0.9.4
Checking gix-actor v0.33.2
Checking gix-validate v0.9.4
Checking radicle-git-ref-format v0.1.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-git-ref-format)
Checking gix-commitgraph v0.25.1
Checking gix-object v0.46.1
Checking data-encoding-macro v0.1.14
Checking multibase v0.9.1
Checking gix-command v0.4.1
Checking gix-config-value v0.14.12
Checking gix-url v0.28.2
Checking gix-quote v0.4.15
Checking gix-prompt v0.9.1
Checking gix-revwalk v0.17.0
Checking gix-diff v0.49.0
Checking radicle-signals v0.11.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-signals)
Checking gix-revision v0.31.1
Checking gix-traverse v0.43.1
Checking gix-packetline v0.18.4
Checking regex v1.11.1
Checking gix-pack v0.56.0
Checking gix-refspec v0.27.0
Checking tree-sitter v0.24.4
Checking gix-transport v0.44.0
Checking gix-negotiate v0.17.0
Checking amplify v4.6.0
Checking git-ref-format v0.5.0
Checking gix-credentials v0.26.0
Checking gix-ref v0.49.1
Checking gix-shallow v0.1.0
Checking cyphergraphy v0.3.0
Checking gix-odb v0.66.0
Checking radicle-git-ext v0.10.0
Checking cypheraddr v0.4.0
Checking socks5-client v0.4.1
Checking noise-framework v0.4.0
Checking uuid v1.16.0
Compiling radicle-cli v0.17.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-cli)
Checking radicle-surf v0.25.0
Checking human-panic v2.0.3
Checking cyphernet v0.5.2
Checking tree-sitter-toml-ng v0.6.0
Checking gix-protocol v0.47.0
Checking radicle-crypto v0.14.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-crypto)
Checking radicle-term v0.16.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-term)
Checking radicle-cob v0.17.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-cob)
Checking tree-sitter-highlight v0.24.4
Compiling radicle-node v0.16.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-node)
Checking radicle-systemd v0.11.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-systemd)
Documenting radicle-systemd v0.11.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-systemd)
Documenting radicle-cob v0.17.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-cob)
Checking radicle v0.20.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle)
Documenting radicle v0.20.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle)
Documenting radicle-crypto v0.14.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-crypto)
Documenting radicle-term v0.16.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-term)
Documenting radicle-signals v0.11.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-signals)
Documenting radicle-git-ref-format v0.1.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-git-ref-format)
Documenting radicle-oid v0.1.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-oid)
Documenting radicle-git-metadata v0.1.0 (/d3ee9246-59a7-413b-a369-b9908d8c0b6d/w/crates/radicle-git-metadata)
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
error: could not document `radicle-oid`
warning: build failed, waiting for other jobs to finish...
Exit code: 101
{
"response": "finished",
"result": "failure"
}