rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 heartwoodf134276ded5f73a23f96acf6824164557523ac4d
{
"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": "1eebaa321e65ab5b047859074f5346495afb1bc2",
"author": {
"id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"alias": null
},
"title": "term: allow Editor to be reusable",
"state": {
"status": "merged",
"conflicts": []
},
"before": "f6aa46a283f63025882551a27e6d2145939560f5",
"after": "f134276ded5f73a23f96acf6824164557523ac4d",
"commits": [
"f134276ded5f73a23f96acf6824164557523ac4d"
],
"target": "d285eccb23f3986bfa88fc1af033e6dcb0dc3a65",
"labels": [],
"assignees": [],
"revisions": [
{
"id": "1eebaa321e65ab5b047859074f5346495afb1bc2",
"author": {
"id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"alias": null
},
"description": "The `Editor` is very useful for correctly opening a text editor and making changes\nto some initial input. The current use of `Editor` is only for getting input for\ncommets.\n\nHowever, it would also be useful for opening up a text editor on some other\nexisting files or text, for example, in the command `rad config edit`.\n\nThe `Editor` struct was changed to have two new options, `truncate` and\n`cleanup`, to allow the user of the struct to dictate whether existing text is\ntruncated, and if the underlying file should be remove.\n\nThe original `new` method is now named `comment`, mimicing the existing\nconstruction of a temporary `RAD_COMMENT` file.\n\nThe new version of `new` accepts any file for the `Editor` and will open it\nwithout truncating or removing the file.\n\n`Editor` is now used for the `rad config edit` command.",
"base": "f6aa46a283f63025882551a27e6d2145939560f5",
"oid": "2abfd4e9b950553d434fd2a758904046ac56a8be",
"timestamp": 1730905169
},
{
"id": "088d23217df11f74476f90c7a22d3610f1f33739",
"author": {
"id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"alias": null
},
"description": "Changes:\n- Mistakenly removed `Drop` impl, reintroduce and use `self.cleanup`",
"base": "f6aa46a283f63025882551a27e6d2145939560f5",
"oid": "f134276ded5f73a23f96acf6824164557523ac4d",
"timestamp": 1730910676
},
{
"id": "47b34bf305de703568c2e8593083795d8f28262d",
"author": {
"id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"alias": null
},
"description": "Rebase.",
"base": "23f8cf0d8484cc8b605d47eb32528e3f964d63ef",
"oid": "0d402647cb2eb98e4fc97c3a60ab3c6cba9152d0",
"timestamp": 1731320942
}
]
}
}
{
"response": "triggered",
"run_id": {
"id": "5263154a-932f-4d81-b6a5-69f43ed93f12"
},
"info_url": "https://cci.rad.levitte.org//5263154a-932f-4d81-b6a5-69f43ed93f12.html"
}
Started at: 2026-09-07 19:39:23.721222+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/5263154a-932f-4d81-b6a5-69f43ed93f12/w/
╭────────────────────────────────────╮
│ heartwood │
│ Radicle Heartwood Protocol & Stack │
│ 189 issues · 38 patches │
╰────────────────────────────────────╯
Run `cd ./.` to go to the repository directory.
Exit code: 0
$ rad patch checkout 1eebaa321e65ab5b047859074f5346495afb1bc2
✓ Switched to branch patch/1eebaa3 at revision 088d232
✓ Branch patch/1eebaa3 setup to track rad/patches/1eebaa321e65ab5b047859074f5346495afb1bc2
Exit code: 0
$ git config advice.detachedHead false
Exit code: 0
$ git checkout f134276ded5f73a23f96acf6824164557523ac4d
HEAD is now at f134276d term: allow Editor to be reusable
Exit code: 0
$ rad patch show 1eebaa321e65ab5b047859074f5346495afb1bc2 -p
╭──────────────────────────────────────────────────────────────────────────────────╮
│ Title term: allow Editor to be reusable │
│ Patch 1eebaa321e65ab5b047859074f5346495afb1bc2 │
│ Author fintohaps z6Mkire…SQZ3voM │
│ Head f134276ded5f73a23f96acf6824164557523ac4d │
│ Base f6aa46a283f63025882551a27e6d2145939560f5 │
│ Target master │
│ Branches patch/1eebaa3 │
│ Commits ahead 1, behind 1169 │
│ Status merged │
│ │
│ The `Editor` is very useful for correctly opening a text editor and making │
│ changes │
│ to some initial input. The current use of `Editor` is only for getting input for │
│ commets. │
│ │
│ However, it would also be useful for opening up a text editor on some other │
│ existing files or text, for example, in the command `rad config edit`. │
│ │
│ The `Editor` struct was changed to have two new options, `truncate` and │
│ `cleanup`, to allow the user of the struct to dictate whether existing text is │
│ truncated, and if the underlying file should be remove. │
│ │
│ The original `new` method is now named `comment`, mimicing the existing │
│ construction of a temporary `RAD_COMMENT` file. │
│ │
│ The new version of `new` accepts any file for the `Editor` and will open it │
│ without truncating or removing the file. │
│ │
│ `Editor` is now used for the `rad config edit` command. │
├──────────────────────────────────────────────────────────────────────────────────┤
│ f134276 term: allow Editor to be reusable │
├──────────────────────────────────────────────────────────────────────────────────┤
│ ● Revision 1eebaa3 @ f6aa46a..2abfd4e by fintohaps z6Mkire…SQZ3voM 1 year ago │
│ ↑ Revision 088d232 @ f6aa46a..f134276 by fintohaps z6Mkire…SQZ3voM 1 year ago │
│ ↑ Revision 47b34bf @ 23f8cf0..0d40264 by cloudhead z6MksFq…bS9wzpT 1 year ago │
│ └─ ✓ merged by cloudhead z6MksFq…bS9wzpT │
╰──────────────────────────────────────────────────────────────────────────────────╯
commit f134276ded5f73a23f96acf6824164557523ac4d
Author: Fintan Halpenny <fintan.halpenny@gmail.com>
Date: Wed Nov 6 14:14:20 2024 +0000
term: allow Editor to be reusable
The `Editor` is very useful for correctly opening a text editor and making changes
to some initial input. The current use of `Editor` is only for getting input for
commets.
However, it would also be useful for opening up a text editor on some other
existing files or text, for example, in the command `rad config edit`.
The `Editor` struct was changed to have two new options, `truncate` and
`cleanup`, to allow the user of the struct to dictate whether existing text is
truncated, and if the underlying file should be remove.
The original `new` method is now named `comment`, mimicing the existing
construction of a temporary `RAD_COMMENT` file.
The new version of `new` accepts any file for the `Editor` and will open it
without truncating or removing the file.
`Editor` is now used for the `rad config edit` command.
diff --git a/radicle-cli/src/commands/config.rs b/radicle-cli/src/commands/config.rs
index 56f00c92e..95d274894 100644
--- a/radicle-cli/src/commands/config.rs
+++ b/radicle-cli/src/commands/config.rs
@@ -1,7 +1,6 @@
#![allow(clippy::or_fun_call)]
use std::ffi::OsString;
use std::path::Path;
-use std::process;
use std::str::FromStr;
use anyhow::anyhow;
@@ -188,18 +187,12 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
path.display()
);
}
- Operation::Edit => {
- let Some(cmd) = term::editor::default_editor() else {
- anyhow::bail!("no editor configured; please set the `EDITOR` environment variable");
- };
- process::Command::new(cmd)
- .stdout(process::Stdio::inherit())
- .stderr(process::Stdio::inherit())
- .stdin(process::Stdio::inherit())
- .arg(&path)
- .spawn()?
- .wait()?;
- }
+ Operation::Edit => match term::editor::Editor::new(&path)?.extension("json").edit()? {
+ Some(_) => {
+ term::success!("Successfully made changes to the configuration at {path:?}")
+ }
+ None => term::info!("No changes were made to the configuration at {path:?}"),
+ },
}
Ok(())
diff --git a/radicle-cli/src/commands/patch/review/builder.rs b/radicle-cli/src/commands/patch/review/builder.rs
index f99911ff3..8a5f91baa 100644
--- a/radicle-cli/src/commands/patch/review/builder.rs
+++ b/radicle-cli/src/commands/patch/review/builder.rs
@@ -853,7 +853,10 @@ impl CommentBuilder {
for line in hunk.to_unified_string()?.lines() {
writeln!(&mut input, "> {line}")?;
}
- let output = term::Editor::new().extension("diff").edit(input)?;
+ let output = term::Editor::comment()
+ .extension("diff")
+ .initial(input)?
+ .edit()?;
if let Some(output) = output {
let header = HunkHeader::try_from(hunk)?;
diff --git a/radicle-cli/src/terminal/patch.rs b/radicle-cli/src/terminal/patch.rs
index cb2efa24b..3a40bb372 100644
--- a/radicle-cli/src/terminal/patch.rs
+++ b/radicle-cli/src/terminal/patch.rs
@@ -51,7 +51,10 @@ impl Message {
let comment = match self {
Message::Edit => {
if io::stderr().is_terminal() {
- term::Editor::new().extension("markdown").edit(help)?
+ term::Editor::comment()
+ .extension("markdown")
+ .initial(help)?
+ .edit()?
} else {
Some(help.to_owned())
}
diff --git a/radicle-term/src/editor.rs b/radicle-term/src/editor.rs
index c4e7bab0b..3f255b4bc 100644
--- a/radicle-term/src/editor.rs
+++ b/radicle-term/src/editor.rs
@@ -13,26 +13,52 @@ pub const PATHS: &[&str] = &["/usr/local/bin", "/usr/bin", "/bin"];
/// Allows for text input in the configured editor.
pub struct Editor {
path: PathBuf,
+ truncate: bool,
+ cleanup: bool,
}
-impl Drop for Editor {
- fn drop(&mut self) {
- fs::remove_file(&self.path).ok();
+impl Default for Editor {
+ fn default() -> Self {
+ Self::comment()
}
}
-impl Default for Editor {
- fn default() -> Self {
- Self::new()
+impl Drop for Editor {
+ fn drop(&mut self) {
+ if self.cleanup {
+ fs::remove_file(&self.path).ok();
+ }
}
}
impl Editor {
/// Create a new editor.
- pub fn new() -> Self {
+ pub fn new(path: impl AsRef<Path>) -> io::Result<Self> {
+ let path = path.as_ref();
+ if path.try_exists()? {
+ let meta = fs::metadata(path)?;
+ if !meta.is_file() {
+ return Err(io::Error::new(
+ io::ErrorKind::InvalidInput,
+ "must be used to edit a file",
+ ));
+ }
+ }
+ Ok(Self {
+ path: path.to_path_buf(),
+ truncate: false,
+ cleanup: false,
+ })
+ }
+
+ pub fn comment() -> Self {
let path = env::temp_dir().join(COMMENT_FILE);
- Self { path }
+ Self {
+ path,
+ truncate: true,
+ cleanup: true,
+ }
}
/// Set the file extension.
@@ -43,26 +69,43 @@ impl Editor {
self
}
- /// Open the editor and return the edited text.
- ///
- /// If the text hasn't changed from the initial contents of the editor,
- /// return `None`.
- pub fn edit(&mut self, initial: impl AsRef<[u8]>) -> io::Result<Option<String>> {
- let initial = initial.as_ref();
+ /// Truncate the file to length 0 when opening
+ pub fn truncate(mut self, truncate: bool) -> Self {
+ self.truncate = truncate;
+ self
+ }
+
+ /// Clean up the file after the [`Editor`] is dropped.
+ pub fn cleanup(mut self, cleanup: bool) -> Self {
+ self.cleanup = cleanup;
+ self
+ }
+
+ /// Initialize the file with the provided `content`, as long as the file
+ /// does not already contain anything.
+ pub fn initial(self, content: impl AsRef<[u8]>) -> io::Result<Self> {
+ let content = content.as_ref();
let mut file = fs::OpenOptions::new()
.write(true)
.create(true)
- .truncate(true)
+ .truncate(self.truncate)
.open(&self.path)?;
if file.metadata()?.len() == 0 {
- file.write_all(initial)?;
- if !initial.ends_with(&[b'\n']) {
+ file.write_all(content)?;
+ if !content.ends_with(&[b'\n']) {
file.write_all(b"\n")?;
}
file.flush()?;
}
+ Ok(self)
+ }
+ /// Open the editor and return the edited text.
+ ///
+ /// If the text hasn't changed from the initial contents of the editor,
+ /// return `None`.
+ pub fn edit(&mut self) -> io::Result<Option<String>> {
let Some(cmd) = self::default_editor() else {
return Err(io::Error::new(
io::ErrorKind::NotFound,
@@ -126,7 +169,7 @@ impl Editor {
}
/// Get the default editor command.
-pub fn default_editor() -> Option<OsString> {
+fn default_editor() -> Option<OsString> {
// First check the standard environment variables.
if let Ok(visual) = env::var("VISUAL") {
if !visual.is_empty() {
diff --git a/radicle-tools/src/rad-cli-demo.rs b/radicle-tools/src/rad-cli-demo.rs
index 36caf3187..5630f526d 100644
--- a/radicle-tools/src/rad-cli-demo.rs
+++ b/radicle-tools/src/rad-cli-demo.rs
@@ -35,9 +35,10 @@ fn main() -> anyhow::Result<()> {
radicle_term::pager::page(table)?;
}
"editor" => {
- let output = terminal::editor::Editor::new()
+ let output = terminal::editor::Editor::comment()
.extension("rs")
- .edit("// Enter code here.");
+ .initial("// Enter code here.")?
+ .edit();
match output {
Ok(Some(s)) => {
Exit code: 0
shell: 'cargo --version rustc --version cargo fmt --check cargo clippy --all-targets --workspace -- --deny clippy::all cargo build --all-targets --workspace cargo doc --workspace cargo test --workspace --no-fail-fast '
Commands:
$ podman run --name 5263154a-932f-4d81-b6a5-69f43ed93f12 -v /opt/radcis/ci.rad.levitte.org/cci/state/5263154a-932f-4d81-b6a5-69f43ed93f12/s:/5263154a-932f-4d81-b6a5-69f43ed93f12/s:ro -v /opt/radcis/ci.rad.levitte.org/cci/state/5263154a-932f-4d81-b6a5-69f43ed93f12/w:/5263154a-932f-4d81-b6a5-69f43ed93f12/w -w /5263154a-932f-4d81-b6a5-69f43ed93f12/w -v /opt/radcis/ci.rad.levitte.org/.radicle:/${id}/.radicle:ro -e RAD_HOME=/${id}/.radicle rust:trixie bash /5263154a-932f-4d81-b6a5-69f43ed93f12/s/script.sh
+ cargo --version
info: syncing channel updates for '1.80-x86_64-unknown-linux-gnu'
info: latest update on 2024-08-08, rust version 1.80.1 (3f5fd8dd4 2024-08-06)
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.80.1 (376290515 2024-07-16)
+ rustc --version
rustc 1.80.1 (3f5fd8dd4 2024-08-06)
+ cargo fmt --check
+ cargo clippy --all-targets --workspace -- --deny clippy::all
Updating crates.io index
Downloading crates ...
Downloaded amplify v4.6.0
Downloaded amplify_derive v4.0.0
Downloaded amplify_syn v2.0.1
Downloaded aes-gcm v0.10.3
Downloaded adler v1.0.2
Downloaded aes v0.8.4
Downloaded aho-corasick v1.1.3
Downloaded aead v0.5.2
Downloaded time-core v0.1.2
Downloaded fastrand v2.1.0
Downloaded errno v0.3.8
Downloaded gix-date v0.8.7
Downloaded gix-prompt v0.8.4
Downloaded gix-odb v0.61.1
Downloaded gix-path v0.10.9
Downloaded gix-features v0.38.2
Downloaded git-ref-format-macro v0.3.0
Downloaded gix-hash v0.14.2
Downloaded der v0.7.9
Downloaded gix-object v0.42.3
Downloaded tree-sitter-json v0.20.2
Downloaded normalize-line-endings v0.3.0
Downloaded maybe-async v0.2.10
Downloaded diff v0.1.13
Downloaded netservices v0.8.0
Downloaded poly1305 v0.8.0
Downloaded proc-macro2 v1.0.81
Downloaded scopeguard v1.2.0
Downloaded polyval v0.6.2
Downloaded qcheck-macros v1.0.0
Downloaded newline-converter v0.3.0
Downloaded ssh-encoding v0.2.0
Downloaded regex v1.10.4
Downloaded same-file v1.0.6
Downloaded powerfmt v0.2.0
Downloaded rand v0.8.5
Downloaded rand_chacha v0.3.1
Downloaded rsa v0.9.6
Downloaded numtoa v0.1.0
Downloaded memchr v2.7.2
Downloaded sec1 v0.7.3
Downloaded proc-macro-error v1.0.4
Downloaded opaque-debug v0.3.1
Downloaded ppv-lite86 v0.2.17
Downloaded tar v0.4.40
Downloaded git-ref-format-core v0.3.0
Downloaded serde v1.0.198
Downloaded anstyle-query v1.0.2
Downloaded p384 v0.13.0
Downloaded libm v0.2.8
Downloaded indexmap v2.2.6
Downloaded sha1_smol v1.0.0
Downloaded regex-automata v0.4.6
Downloaded sha3 v0.10.8
Downloaded vcpkg v0.2.15
Downloaded idna v0.5.0
Downloaded tree-sitter-ruby v0.20.1
Downloaded libc v0.2.155
Downloaded tree-sitter-md v0.1.7
Downloaded tree-sitter-c v0.20.8
Downloaded tree-sitter-bash v0.20.5
Downloaded tree-sitter-typescript v0.20.5
Downloaded linux-raw-sys v0.4.13
Downloaded syn v2.0.60
Downloaded libgit2-sys v0.17.0+1.8.1
Downloaded tree-sitter-rust v0.20.4
Downloaded tree-sitter-python v0.20.4
Downloaded syn v1.0.109
Downloaded serde_derive v1.0.198
Downloaded sqlite3-src v0.5.1
Downloaded hashbrown v0.14.3
Downloaded winnow v0.6.8
Downloaded unicode-normalization v0.1.23
Downloaded time v0.3.36
Downloaded salsa20 v0.10.2
Downloaded primeorder v0.13.6
Downloaded num-iter v0.1.44
Downloaded rfc6979 v0.4.0
Downloaded pem-rfc7468 v0.7.0
Downloaded quote v1.0.36
Downloaded prodash v28.0.0
Downloaded num-bigint-dig v0.8.4
Downloaded inquire v0.7.5
Downloaded tree-sitter v0.20.10
Downloaded ssh-key v0.6.6
Downloaded tree-sitter-go v0.20.0
Downloaded gix-packetline v0.17.5
Downloaded gix-credentials v0.24.2
Downloaded escargot v0.5.10
Downloaded bstr v1.9.1
Downloaded arc-swap v1.7.1
Downloaded unicode-segmentation v1.11.0
Downloaded gix-fs v0.11.2
Downloaded filetime v0.2.23
Downloaded colorchoice v1.0.0
Downloaded base16ct v0.2.0
Downloaded regex-syntax v0.8.3
Downloaded p521 v0.13.3
Downloaded ed25519 v1.5.3
Downloaded cyphergraphy v0.3.0
Downloaded crypto-common v0.1.6
Downloaded parking_lot_core v0.9.9
Downloaded parking_lot v0.12.1
Downloaded log v0.4.21
Downloaded gix-transport v0.42.0
Downloaded url v2.5.0
Downloaded unicode-ident v1.0.12
Downloaded tinyvec v1.6.0
Downloaded num_threads v0.1.7
Downloaded sha2 v0.10.8
Downloaded ryu v1.0.17
Downloaded serde_json v1.0.116
Downloaded lexopt v0.3.0
Downloaded tempfile v3.10.1
Downloaded socket2 v0.5.7
Downloaded gix-protocol v0.45.0
Downloaded unicode-bidi v0.3.15
Downloaded similar v2.5.0
Downloaded p256 v0.13.2
Downloaded rustix v0.38.34
Downloaded io-reactor v0.5.2
Downloaded hmac v0.12.1
Downloaded tree-sitter-css v0.20.0
Downloaded snapbox v0.4.17
Downloaded smallvec v1.13.2
Downloaded data-encoding-macro v0.1.14
Downloaded miniz_oxide v0.7.2
Downloaded memmap2 v0.9.4
Downloaded shlex v1.3.0
Downloaded nonempty v0.9.0
Downloaded typenum v1.17.0
Downloaded pretty_assertions v1.4.0
Downloaded radicle-surf v0.22.0
Downloaded num-traits v0.2.18
Downloaded popol v3.0.0
Downloaded num-integer v0.1.46
Downloaded num-conv v0.1.0
Downloaded scrypt v0.11.0
Downloaded rand_core v0.6.4
Downloaded percent-encoding v2.3.1
Downloaded noise-framework v0.4.0
Downloaded radicle-std-ext v0.1.0
Downloaded qcheck v1.0.0
Downloaded proc-macro-error-attr v1.0.4
Downloaded lock_api v0.4.11
Downloaded jobserver v0.1.31
Downloaded inout v0.1.3
Downloaded iana-time-zone v0.1.60
Downloaded home v0.5.9
Downloaded group v0.13.0
Downloaded gix-traverse v0.39.2
Downloaded gix-tempfile v14.0.1
Downloaded gix-sec v0.10.6
Downloaded zeroize v1.7.0
Downloaded yansi v0.5.1
Downloaded walkdir v2.5.0
Downloaded unicode-width v0.1.11
Downloaded tree-sitter-toml v0.20.0
Downloaded timeago v0.4.2
Downloaded time-macros v0.2.18
Downloaded thiserror v1.0.59
Downloaded termion v3.0.0
Downloaded termion v2.0.3
Downloaded spki v0.7.3
Downloaded signature v2.2.0
Downloaded pkcs8 v0.10.2
Downloaded lazy_static v1.4.0
Downloaded keccak v0.1.5
Downloaded gix-url v0.27.3
Downloaded gix-revwalk v0.13.2
Downloaded snapbox-macros v0.3.8
Downloaded spin v0.5.2
Downloaded multibase v0.9.1
Downloaded radicle-git-ext v0.8.0
Downloaded gix-validate v0.8.5
Downloaded gix-utils v0.1.12
Downloaded universal-hash v0.5.1
Downloaded thiserror-impl v1.0.59
Downloaded ssh-cipher v0.2.0
Downloaded shell-words v1.1.0
Downloaded pkcs1 v0.7.5
Downloaded pkg-config v0.3.30
Downloaded pbkdf2 v0.12.2
Downloaded localtime v1.3.1
Downloaded gix-trace v0.1.9
Downloaded tree-sitter-html v0.20.0
Downloaded sqlite v0.32.0
Downloaded nonempty v0.5.0
Downloaded xattr v1.3.1
Downloaded tinyvec_macros v0.1.1
Downloaded sqlite3-sys v0.15.2
Downloaded signature v1.6.4
Downloaded once_cell v1.19.0
Downloaded utf8parse v0.2.1
Downloaded unicode-display-width v0.3.0
Downloaded socks5-client v0.4.1
Downloaded ec25519 v0.1.0
Downloaded itoa v1.0.11
Downloaded gix-quote v0.4.12
Downloaded version_check v0.9.4
Downloaded subtle v2.5.0
Downloaded siphasher v1.0.1
Downloaded gix-pack v0.51.1
Downloaded crc32fast v1.4.0
Downloaded ascii v1.1.0
Downloaded anstyle v1.0.6
Downloaded gix-chunk v0.4.8
Downloaded form_urlencoded v1.2.1
Downloaded elliptic-curve v0.13.8
Downloaded deranged v0.3.11
Downloaded ctr v0.9.2
Downloaded cfg-if v1.0.0
Downloaded bcrypt-pbkdf v0.10.0
Downloaded base64ct v1.6.0
Downloaded base64 v0.13.1
Downloaded autocfg v1.2.0
Downloaded cyphernet v0.5.2
Downloaded cpufeatures v0.2.12
Downloaded anyhow v1.0.82
Downloaded tree-sitter-highlight v0.20.1
Downloaded faster-hex v0.9.0
Downloaded equivalent v1.0.1
Downloaded chacha20poly1305 v0.10.1
Downloaded block-buffer v0.10.4
Downloaded gix-hashtable v0.5.2
Downloaded gix-config-value v0.14.6
Downloaded gix-actor v0.31.5
Downloaded generic-array v0.14.7
Downloaded data-encoding-macro-internal v0.1.12
Downloaded cypheraddr v0.4.0
Downloaded chacha20 v0.9.1
Downloaded base64 v0.21.7
Downloaded anstyle-parse v0.2.3
Downloaded siphasher v0.3.11
Downloaded gix-diff v0.44.1
Downloaded git2 v0.19.0
Downloaded fxhash v0.2.1
Downloaded digest v0.10.7
Downloaded data-encoding v2.5.0
Downloaded crossbeam-channel v0.5.13
Downloaded chrono v0.4.38
Downloaded bloomy v1.2.0
Downloaded base32 v0.4.0
Downloaded anstream v0.6.13
Downloaded cc v1.0.95
Downloaded git-ref-format v0.3.0
Downloaded getrandom v0.2.14
Downloaded amplify_num v0.5.2
Downloaded colored v2.1.0
Downloaded block-padding v0.3.3
Downloaded crossbeam-utils v0.8.19
Downloaded blowfish v0.9.1
Downloaded flate2 v1.0.28
Downloaded bitflags v2.5.0
Downloaded cbc v0.1.2
Downloaded byteorder v1.5.0
Downloaded const-oid v0.9.6
Downloaded gix-command v0.3.6
Downloaded ecdsa v0.16.9
Downloaded ct-codecs v1.1.1
Downloaded base-x v0.2.11
Downloaded gix-commitgraph v0.24.3
Downloaded ghash v0.5.1
Downloaded ff v0.13.0
Downloaded either v1.11.0
Downloaded dyn-clone v1.0.17
Downloaded crypto-bigint v0.5.5
Downloaded cipher v0.4.4
Downloaded libz-sys v1.1.16
Compiling libc v0.2.155
Compiling proc-macro2 v1.0.81
Compiling unicode-ident v1.0.12
Checking cfg-if v1.0.0
Compiling once_cell v1.19.0
Compiling version_check v0.9.4
Checking memchr v2.7.2
Checking regex-syntax v0.8.3
Compiling quote v1.0.36
Compiling syn v2.0.60
Checking aho-corasick v1.1.3
Compiling jobserver v0.1.31
Compiling thiserror v1.0.59
Compiling cc v1.0.95
Checking regex-automata v0.4.6
Compiling typenum v1.17.0
Checking getrandom v0.2.14
Compiling generic-array v0.14.7
Checking rand_core v0.6.4
Checking tinyvec_macros v0.1.1
Checking tinyvec v1.6.0
Checking bstr v1.9.1
Checking crypto-common v0.1.6
Checking fastrand v2.1.0
Checking subtle v2.5.0
Compiling syn v1.0.109
Checking zeroize v1.7.0
Checking unicode-normalization v0.1.23
Checking cpufeatures v0.2.12
Checking bitflags v2.5.0
Checking block-padding v0.3.3
Checking inout v0.1.3
Checking block-buffer v0.10.4
Compiling pkg-config v0.3.30
Checking digest v0.10.7
Checking cipher v0.4.4
Compiling autocfg v1.2.0
Compiling crc32fast v1.4.0
Compiling thiserror-impl v1.0.59
Checking sha2 v0.10.8
Checking unicode-bidi v0.3.15
Checking percent-encoding v2.3.1
Checking form_urlencoded v1.2.1
Checking universal-hash v0.5.1
Checking idna v0.5.0
Compiling serde v1.0.198
Compiling vcpkg v0.2.15
Checking opaque-debug v0.3.1
Checking url v2.5.0
Compiling amplify_syn v2.0.1
Compiling serde_derive v1.0.198
Compiling libz-sys v1.1.16
Compiling rustix v0.38.34
Compiling data-encoding v2.5.0
Checking byteorder v1.5.0
Compiling amplify_derive v4.0.0
Checking linux-raw-sys v0.4.13
Compiling data-encoding-macro-internal v0.1.12
Checking itoa v1.0.11
Checking ascii v1.1.0
Checking log v0.4.21
Checking amplify_num v0.5.2
Checking signature v1.6.4
Checking ed25519 v1.5.3
Checking data-encoding-macro v0.1.14
Compiling libgit2-sys v0.17.0+1.8.1
Checking amplify v4.6.0
Checking aead v0.5.2
Compiling proc-macro-error-attr v1.0.4
Checking ct-codecs v1.1.1
Checking base-x v0.2.11
Checking ec25519 v0.1.0
Checking multibase v0.9.1
Checking poly1305 v0.8.0
Checking chacha20 v0.9.1
Compiling proc-macro-error v1.0.4
Checking cyphergraphy v0.3.0
Checking keccak v0.1.5
Checking sha3 v0.10.8
Compiling git-ref-format-core v0.3.0
Checking polyval v0.6.2
Compiling sqlite3-src v0.5.1
Checking hmac v0.12.1
Checking ppv-lite86 v0.2.17
Checking base32 v0.4.0
Checking hashbrown v0.14.3
Checking base64ct v1.6.0
Checking rand_chacha v0.3.1
Checking pem-rfc7468 v0.7.0
Checking cypheraddr v0.4.0
Checking pbkdf2 v0.12.2
Compiling git-ref-format-macro v0.3.0
Checking ghash v0.5.1
Checking chacha20poly1305 v0.10.1
Checking tempfile v3.10.1
Checking ctr v0.9.2
Checking aes v0.8.4
Compiling crossbeam-utils v0.8.19
Checking aes-gcm v0.10.3
Checking git-ref-format v0.3.0
Checking noise-framework v0.4.0
Checking socks5-client v0.4.1
Checking ssh-encoding v0.2.0
Checking rand v0.8.5
Checking blowfish v0.9.1
Checking cbc v0.1.2
Checking radicle-std-ext v0.1.0
Checking ssh-cipher v0.2.0
Checking bcrypt-pbkdf v0.10.0
Checking cyphernet v0.5.2
Checking signature v2.2.0
Checking ssh-key v0.6.6
Checking crossbeam-channel v0.5.13
Checking qcheck v1.0.0
Checking radicle-ssh v0.9.0 (/5263154a-932f-4d81-b6a5-69f43ed93f12/w/radicle-ssh)
Compiling num-traits v0.2.18
Compiling tree-sitter v0.20.10
Compiling serde_json v1.0.116
Checking equivalent v1.0.1
Checking indexmap v2.2.6
Checking regex v1.10.4
Checking ryu v1.0.17
Checking nonempty v0.9.0
Checking radicle-dag v0.9.0 (/5263154a-932f-4d81-b6a5-69f43ed93f12/w/radicle-dag)
Compiling anyhow v1.0.82
Checking lazy_static v1.4.0
Checking iana-time-zone v0.1.60
Checking anstyle-query v1.0.2
Checking chrono v0.4.38
Checking colored v2.1.0
Checking localtime v1.3.1
Checking base64 v0.21.7
Checking siphasher v1.0.1
Checking utf8parse v0.2.1
Checking anstyle-parse v0.2.3
Checking anstyle v1.0.6
Checking colorchoice v1.0.0
Checking similar v2.5.0
Checking anstream v0.6.13
Checking snapbox-macros v0.3.8
Checking normalize-line-endings v0.3.0
Checking snapbox v0.4.17
Checking radicle-signals v0.10.0 (/5263154a-932f-4d81-b6a5-69f43ed93f12/w/radicle-signals)
Checking yansi v0.5.1
Checking numtoa v0.1.0
Checking gix-trace v0.1.9
Compiling adler v1.0.2
Checking unicode-segmentation v1.11.0
Checking diff v0.1.13
Checking pretty_assertions v1.4.0
Compiling miniz_oxide v0.7.2
Compiling xattr v1.3.1
Compiling filetime v0.2.23
Compiling escargot v0.5.10
Checking lexopt v0.3.0
Checking shlex v1.3.0
Compiling flate2 v1.0.28
Compiling tar v0.4.40
Checking newline-converter v0.3.0
Checking termion v2.0.3
Checking fxhash v0.2.1
Checking dyn-clone v1.0.17
Checking unicode-width v0.1.11
Checking faster-hex v0.9.0
Checking inquire v0.7.5
Compiling radicle-surf v0.22.0
Checking unicode-display-width v0.3.0
Checking termion v3.0.0
Checking gix-utils v0.1.12
Compiling tree-sitter-css v0.20.0
Compiling tree-sitter-go v0.20.0
Compiling tree-sitter-html v0.20.0
Compiling tree-sitter-typescript v0.20.5
Compiling tree-sitter-toml v0.20.0
Compiling tree-sitter-ruby v0.20.1
Compiling tree-sitter-md v0.1.7
Compiling tree-sitter-rust v0.20.4
Compiling tree-sitter-c v0.20.8
Compiling tree-sitter-bash v0.20.5
Compiling tree-sitter-python v0.20.4
Compiling tree-sitter-json v0.20.2
Checking sqlite3-sys v0.15.2
Checking sqlite v0.32.0
Checking gix-hash v0.14.2
Checking same-file v1.0.6
Checking base64 v0.13.1
Compiling radicle-cli v0.11.0 (/5263154a-932f-4d81-b6a5-69f43ed93f12/w/radicle-cli)
Checking nonempty v0.5.0
Checking walkdir v2.5.0
Checking tree-sitter-highlight v0.20.1
Checking timeago v0.4.2
Checking sha1_smol v1.0.0
Checking prodash v28.0.0
Checking smallvec v1.13.2
Compiling lock_api v0.4.11
Compiling parking_lot_core v0.9.9
Checking gix-features v0.38.2
Compiling time-core v0.1.2
Checking powerfmt v0.2.0
Checking scopeguard v1.2.0
Compiling num-conv v0.1.0
Checking deranged v0.3.11
Compiling time-macros v0.2.18
Checking num_threads v0.1.7
Checking home v0.5.9
Checking parking_lot v0.12.1
Checking gix-path v0.10.9
Checking winnow v0.6.8
Checking gix-validate v0.8.5
Checking gix-chunk v0.4.8
Checking memmap2 v0.9.4
Checking shell-words v1.1.0
Checking gix-command v0.3.6
Checking gix-commitgraph v0.24.3
Checking time v0.3.36
Checking gix-hashtable v0.5.2
Checking gix-config-value v0.14.6
Checking gix-url v0.27.3
Checking gix-fs v0.11.2
Checking gix-quote v0.4.12
Checking gix-sec v0.10.6
Checking gix-tempfile v14.0.1
Checking gix-prompt v0.8.4
Checking gix-packetline v0.17.5
Checking gix-credentials v0.24.2
Checking gix-transport v0.42.0
Compiling maybe-async v0.2.10
Checking arc-swap v1.7.1
Checking gix-date v0.8.7
Checking popol v3.0.0
Checking gix-actor v0.31.5
Checking either v1.11.0
Checking io-reactor v0.5.2
Checking gix-object v0.42.3
Checking salsa20 v0.10.2
Checking gix-protocol v0.45.0
Checking socket2 v0.5.7
Checking siphasher v0.3.11
Compiling radicle-node v0.10.0 (/5263154a-932f-4d81-b6a5-69f43ed93f12/w/radicle-node)
Checking gix-revwalk v0.13.2
Checking gix-diff v0.44.1
Checking bloomy v1.2.0
Checking netservices v0.8.0
Checking gix-traverse v0.39.2
Checking scrypt v0.11.0
Checking radicle-systemd v0.9.0 (/5263154a-932f-4d81-b6a5-69f43ed93f12/w/radicle-systemd)
Compiling qcheck-macros v1.0.0
Checking gix-pack v0.51.1
Compiling radicle-remote-helper v0.10.0 (/5263154a-932f-4d81-b6a5-69f43ed93f12/w/radicle-remote-helper)
Checking gix-odb v0.61.1
Checking git2 v0.19.0
Checking radicle-git-ext v0.8.0
Checking radicle-term v0.11.0 (/5263154a-932f-4d81-b6a5-69f43ed93f12/w/radicle-term)
Checking radicle-crypto v0.11.0 (/5263154a-932f-4d81-b6a5-69f43ed93f12/w/radicle-crypto)
Checking radicle-cob v0.12.0 (/5263154a-932f-4d81-b6a5-69f43ed93f12/w/radicle-cob)
Checking radicle-crdt v0.1.0 (/5263154a-932f-4d81-b6a5-69f43ed93f12/w/radicle-crdt)
Checking radicle v0.13.0 (/5263154a-932f-4d81-b6a5-69f43ed93f12/w/radicle)
Checking radicle-cli-test v0.10.0 (/5263154a-932f-4d81-b6a5-69f43ed93f12/w/radicle-cli-test)
Checking radicle-fetch v0.10.0 (/5263154a-932f-4d81-b6a5-69f43ed93f12/w/radicle-fetch)
error: all variants have the same prefix: `File`
--> radicle-cli/src/commands/patch/review/builder.rs:140:1
|
140 | / pub enum ReviewItem {
141 | | FileAdded {
142 | | path: PathBuf,
143 | | header: FileHeader,
... |
178 | | },
179 | | }
| |_^
|
= help: remove the prefixes and use full paths to the variants instead of glob imports
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names
= note: `-D clippy::enum-variant-names` implied by `-D clippy::all`
= help: to override `-D clippy::all` add `#[allow(clippy::enum_variant_names)]`
error: very complex type used. Consider factoring parts into `type` definitions
--> radicle-cli/src/commands/patch/review/builder.rs:195:24
|
195 | fn paths(&self) -> (Option<(&Path, Oid)>, Option<(&Path, Oid)>) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
= note: `-D clippy::type-complexity` implied by `-D clippy::all`
= help: to override `-D clippy::all` add `#[allow(clippy::type_complexity)]`
error: could not compile `radicle-cli` (lib) due to 2 previous errors
warning: build failed, waiting for other jobs to finish...
Exit code: 101
{
"response": "finished",
"result": "failure"
}