Radish alpha
r
rad:zwTxygwuz5LDGBq255RA2CbNGrz8
Radicle CI broker
Radicle
Git
chore: bump Radicle dependencies
Lars Wirzenius committed 1 month ago
commit 369227ca559996224343b89f71fe8e600a432032
parent 88fd92e
13 files changed +227 -156
modified Cargo.lock
@@ -804,6 +804,12 @@ dependencies = [
]

[[package]]
+
name = "dyn-clone"
+
version = "1.0.20"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555"
+

+
[[package]]
name = "ec25519"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1059,32 +1065,12 @@ dependencies = [

[[package]]
name = "git-ref-format"
-
version = "0.3.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "7428e0d6e549a9a613d6f019b839a0f5142c331295b79e119ca8f4faac145da1"
-
dependencies = [
-
 "git-ref-format-core 0.3.1",
-
 "git-ref-format-macro 0.3.1",
-
]
-

-
[[package]]
-
name = "git-ref-format"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed6913a77cee9e231cab93577c9a5eea84a1344ab39294d91dc075b3c24499d0"
dependencies = [
-
 "git-ref-format-core 0.6.0",
-
 "git-ref-format-macro 0.6.0",
-
]
-

-
[[package]]
-
name = "git-ref-format-core"
-
version = "0.3.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "bbaeb9672a55e9e32cb6d3ef781e7526b25ab97d499fae71615649340b143424"
-
dependencies = [
-
 "serde",
-
 "thiserror 1.0.69",
+
 "git-ref-format-core",
+
 "git-ref-format-macro",
]

[[package]]
@@ -1099,23 +1085,11 @@ dependencies = [

[[package]]
name = "git-ref-format-macro"
-
version = "0.3.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "3b6ca5353accc201f6324dff744ba4660099546d4daf187ba868f07562e36ca4"
-
dependencies = [
-
 "git-ref-format-core 0.3.1",
-
 "proc-macro-error",
-
 "quote",
-
 "syn 2.0.111",
-
]
-

-
[[package]]
-
name = "git-ref-format-macro"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4e730f09c82961c28f5465b83da0aa5c2716156ce57da33a1fa51bbd560aa5f7"
dependencies = [
-
 "git-ref-format-core 0.6.0",
+
 "git-ref-format-core",
 "proc-macro-error2",
 "quote",
 "syn 2.0.111",
@@ -1123,9 +1097,9 @@ dependencies = [

[[package]]
name = "git2"
-
version = "0.19.0"
+
version = "0.20.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724"
+
checksum = "7b88256088d75a56f8ecfa070513a775dd9107f6530ef14919dac831af9cfe2b"
dependencies = [
 "bitflags",
 "libc",
@@ -1457,9 +1431,9 @@ checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091"

[[package]]
name = "libgit2-sys"
-
version = "0.17.0+1.8.1"
+
version = "0.18.3+1.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "10472326a8a6477c3c20a64547b0059e4b0d086869eee31e6d7da728a8eb7224"
+
checksum = "c9b3acc4b91781bb0b3386669d325163746af5f6e4f73e6d2d630e09a35f3487"
dependencies = [
 "cc",
 "libc",
@@ -1515,15 +1489,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77"

[[package]]
-
name = "localtime"
-
version = "1.3.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "016a009e0bb8ba6e3229fb74bf11a8fe6ef24542cc6ef35ef38863ac13f96d87"
-
dependencies = [
-
 "serde",
-
]
-

-
[[package]]
name = "log"
version = "0.4.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1597,6 +1562,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"

[[package]]
+
name = "memoffset"
+
version = "0.9.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
+
dependencies = [
+
 "autocfg",
+
]
+

+
[[package]]
name = "miniz_oxide"
version = "0.8.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1950,30 +1924,6 @@ dependencies = [
]

[[package]]
-
name = "proc-macro-error"
-
version = "1.0.4"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
-
dependencies = [
-
 "proc-macro-error-attr",
-
 "proc-macro2",
-
 "quote",
-
 "syn 1.0.109",
-
 "version_check",
-
]
-

-
[[package]]
-
name = "proc-macro-error-attr"
-
version = "1.0.4"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
-
dependencies = [
-
 "proc-macro2",
-
 "quote",
-
 "version_check",
-
]
-

-
[[package]]
name = "proc-macro-error-attr2"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2070,9 +2020,9 @@ checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"

[[package]]
name = "radicle"
-
version = "0.20.0"
+
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "91edce404aa2177a9687c66f2fbdad78d98b77aad1992728f05eba4c559dd007"
+
checksum = "bed19c0448cb77a8be9c7a5b6fc00a884d10434e679ad0eb8731fe4a52534346"
dependencies = [
 "amplify",
 "base64 0.21.7",
@@ -2085,14 +2035,16 @@ dependencies = [
 "git2",
 "indexmap",
 "libc",
-
 "localtime",
 "log",
 "multibase",
 "nonempty 0.9.0",
 "qcheck",
 "radicle-cob",
+
 "radicle-core",
 "radicle-crypto",
-
 "radicle-git-ext 0.8.1",
+
 "radicle-git-ref-format",
+
 "radicle-localtime",
+
 "radicle-oid",
 "radicle-ssh",
 "serde",
 "serde-untagged",
@@ -2100,9 +2052,9 @@ dependencies = [
 "siphasher",
 "sqlite",
 "tempfile",
-
 "thiserror 1.0.69",
+
 "thiserror 2.0.17",
+
 "uds_windows",
 "unicode-normalization",
-
 "winpipe",
]

[[package]]
@@ -2112,6 +2064,7 @@ dependencies = [
 "clap",
 "culpa",
 "duration-str",
+
 "git-ref-format-core",
 "html-page",
 "libc",
 "nonempty 0.12.0",
@@ -2139,42 +2092,61 @@ dependencies = [

[[package]]
name = "radicle-cob"
-
version = "0.17.0"
+
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "672f459d736dcd68f970bc3140adb1c1c9c8399a15b9c2b3ff58a682bbfad92a"
+
checksum = "bed621de031dce3c39b6c262c9a9297fab0f1e3099f78e8bffb9cd132a679d94"
dependencies = [
 "fastrand",
+
 "git-ref-format-core",
 "git2",
 "log",
 "nonempty 0.9.0",
 "radicle-crypto",
 "radicle-dag",
-
 "radicle-git-ext 0.8.1",
+
 "radicle-git-metadata",
+
 "radicle-oid",
 "serde",
 "serde_json",
 "signature 2.2.0",
-
 "thiserror 1.0.69",
+
 "thiserror 2.0.17",
+
]
+

+
[[package]]
+
name = "radicle-core"
+
version = "0.1.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "f797194bf12af94f8ce914520bdb54ba9f8c824621f3faa6763101dbd2e1dc79"
+
dependencies = [
+
 "git2",
+
 "multibase",
+
 "qcheck",
+
 "radicle-crypto",
+
 "radicle-oid",
+
 "schemars",
+
 "serde",
+
 "sqlite",
+
 "thiserror 2.0.17",
]

[[package]]
name = "radicle-crypto"
-
version = "0.14.0"
+
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c811eab805f7a5ac5205773314f64e53658b713bfc2ee8984bfb8b8184a79773"
+
checksum = "9a615a06e20545b03f9b01f0380687262e949e976a3127fbb932cb3fdb435866"
dependencies = [
 "amplify",
 "cyphernet",
 "ec25519",
 "fastrand",
+
 "git-ref-format-core",
 "multibase",
 "qcheck",
-
 "radicle-git-ext 0.8.1",
 "radicle-ssh",
 "serde",
 "signature 2.2.0",
 "sqlite",
 "ssh-key",
-
 "thiserror 1.0.69",
+
 "thiserror 2.0.17",
 "zeroize",
]

@@ -2189,38 +2161,43 @@ dependencies = [

[[package]]
name = "radicle-git-ext"
-
version = "0.8.1"
+
version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "4b78c26e67d1712ad5a0c602ae3b236609461372ac04e200bda359fe4a1c6650"
+
checksum = "db68f47aaf6b8352a733da684f7e24f89aeb03131598628f147ff1bcc633670d"
dependencies = [
-
 "git-ref-format 0.3.1",
+
 "git-ref-format",
 "git2",
 "percent-encoding",
-
 "radicle-std-ext 0.1.1",
+
 "radicle-std-ext",
 "serde",
 "thiserror 1.0.69",
]

[[package]]
-
name = "radicle-git-ext"
-
version = "0.11.0"
+
name = "radicle-git-metadata"
+
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "71a5fbca2ee3fc61a6b467e0b85da7c092421afc2538feb0023ad6792d6e39d0"
+
checksum = "522d7fa07dfe61981b5d96e9aeb2b7fb2f4a8d5804638e928eaedb33e423eccb"
dependencies = [
-
 "git-ref-format 0.6.0",
-
 "git2",
-
 "percent-encoding",
-
 "radicle-std-ext 0.2.0",
-
 "serde",
-
 "thiserror 1.0.69",
+
 "thiserror 2.0.17",
+
]
+

+
[[package]]
+
name = "radicle-git-ref-format"
+
version = "0.1.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "7fe7a4a8137c193d15d05a6d1eb9ef79649b52e1f659161df69ebc385bbed55c"
+
dependencies = [
+
 "git-ref-format-core",
]

[[package]]
name = "radicle-job"
-
version = "0.4.0"
+
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "0985025a171487350c663884a5384694787cb09137160878640290a80e8af52f"
+
checksum = "fa7d1a6d9e13a1229f70d52ac1a133e8019cc3fd84eb7478220e7340d12a9433"
dependencies = [
+
 "chrono",
 "clap",
 "indexmap",
 "nonempty 0.11.0",
@@ -2235,6 +2212,25 @@ dependencies = [
]

[[package]]
+
name = "radicle-localtime"
+
version = "0.1.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "c5c36714fd32dc9421f8ed3edf0d1c1a4aa3b5210fddf8eaef40ea90c88fdddd"
+
dependencies = [
+
 "serde",
+
]
+

+
[[package]]
+
name = "radicle-oid"
+
version = "0.1.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "d95c486f589d4f5ef7bd8fce56419854d90cc63a8bbcebe021e0a4f4cca75ac9"
+
dependencies = [
+
 "git2",
+
 "serde",
+
]
+

+
[[package]]
name = "radicle-ssh"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2247,21 +2243,15 @@ dependencies = [

[[package]]
name = "radicle-std-ext"
-
version = "0.1.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "5310e7a04506b6ce92dc9c47b26bd24c1c680937a3dcd13cd20847f89dbda32a"
-

-
[[package]]
-
name = "radicle-std-ext"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb935931bdd2a2966f3b584f3031d9d54ec0713ddbc563a0193d54e62a88ec73"

[[package]]
name = "radicle-surf"
-
version = "0.26.0"
+
version = "0.27.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "4c814514d0bf56fbec811099eaa14da1349639b04b8317746c9cd9e6b0f02196"
+
checksum = "e2c6a29eac2e55a6d0632c8faeb3cbe91afb1e07be60d157a27fdadb8cc4c508"
dependencies = [
 "anyhow",
 "base64 0.21.7",
@@ -2269,8 +2259,8 @@ dependencies = [
 "git2",
 "log",
 "nonempty 0.9.0",
-
 "radicle-git-ext 0.11.0",
-
 "radicle-std-ext 0.2.0",
+
 "radicle-git-ext",
+
 "radicle-std-ext",
 "serde",
 "tar",
 "thiserror 1.0.69",
@@ -2317,6 +2307,26 @@ dependencies = [
]

[[package]]
+
name = "ref-cast"
+
version = "1.0.25"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d"
+
dependencies = [
+
 "ref-cast-impl",
+
]
+

+
[[package]]
+
name = "ref-cast-impl"
+
version = "1.0.25"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da"
+
dependencies = [
+
 "proc-macro2",
+
 "quote",
+
 "syn 2.0.111",
+
]
+

+
[[package]]
name = "regex"
version = "1.12.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2461,6 +2471,31 @@ dependencies = [
]

[[package]]
+
name = "schemars"
+
version = "1.2.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc"
+
dependencies = [
+
 "dyn-clone",
+
 "ref-cast",
+
 "schemars_derive",
+
 "serde",
+
 "serde_json",
+
]
+

+
[[package]]
+
name = "schemars_derive"
+
version = "1.2.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "7d115b50f4aaeea07e79c1912f645c7513d81715d0420f8bc77a18c6260b307f"
+
dependencies = [
+
 "proc-macro2",
+
 "quote",
+
 "serde_derive_internals",
+
 "syn 2.0.111",
+
]
+

+
[[package]]
name = "scoped-tls"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2523,6 +2558,17 @@ dependencies = [
]

[[package]]
+
name = "serde_derive_internals"
+
version = "0.29.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711"
+
dependencies = [
+
 "proc-macro2",
+
 "quote",
+
 "syn 2.0.111",
+
]
+

+
[[package]]
name = "serde_json"
version = "1.0.145"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3150,6 +3196,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971"

[[package]]
+
name = "uds_windows"
+
version = "1.2.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "51b70b87d15e91f553711b40df3048faf27a7a04e01e0ddc0cf9309f0af7c2ca"
+
dependencies = [
+
 "memoffset",
+
 "tempfile",
+
 "windows-sys 0.61.2",
+
]
+

+
[[package]]
name = "unicase"
version = "2.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
modified Cargo.toml
@@ -13,13 +13,14 @@ categories = ["development-tools::build-utils"]
[dependencies]
clap = { version = "4.5.11", features = ["derive", "wrap_help"] }
duration-str = "0.18.0"
+
git-ref-format-core = "0.6.0"
html-page = "0.5.0"
libc = "0.2.175"
nonempty = "0.12.0"
-
radicle = { version = "0.20.0", features = ["default", "test"] }
-
radicle-crypto = "0.14.0"
-
radicle-job = "0.4.0"
-
radicle-surf = { version = "0.26.0", default-features = false, features = ["serde"] }
+
radicle = { version = "0.21.0", features = ["default", "test"] }
+
radicle-crypto = "0.15.0"
+
radicle-job = "0.5.0"
+
radicle-surf = { version = "0.27.0", default-features = false, features = ["serde"] }
regex = "1.12.2"
rss = "2.0.9"
serde = { version = "1.0.204", features = ["derive"] }
modified src/adapter.rs
@@ -492,7 +492,9 @@ impl AdapterError {
#[cfg(test)]
mod test {
    use super::*;
-
    use std::{fs::write, io::ErrorKind, path::PathBuf, sync::mpsc::channel, time::Duration};
+
    use std::{
+
        fs::write, io::ErrorKind, path::PathBuf, str::FromStr, sync::mpsc::channel, time::Duration,
+
    };

    use tempfile::{NamedTempFile, TempDir, tempdir};

@@ -524,7 +526,7 @@ mod test {
            .repo_name("test.repo")
            .whence(Whence::branch(
                "main",
-
                Oid::try_from("ff3099ba5de28d954c41d0b5a84316f943794ea4")?,
+
                Oid::from_str("ff3099ba5de28d954c41d0b5a84316f943794ea4")?,
                Some("J. Random Hacker <random@example.com>"),
            ))
            .timestamp("2024-02-29T12:58:12+02:00".into())
modified src/bin/cibtoolcmd/message.rs
@@ -4,7 +4,7 @@ use radicle::cob::Title;
use radicle_ci_broker::msg::{Request, RequestBuilder, Response, RunId, RunResult};
use radicle_ci_broker::test::MockNode;

-
use radicle::git::RefString;
+
use git_ref_format_core::RefString;
use radicle::patch::{MergeTarget, Patches};
use radicle::storage::ReadRepository;

modified src/ci_event.rs
@@ -1,16 +1,18 @@
use std::{
    collections::BTreeMap,
    path::{Path, PathBuf},
+
    str::FromStr,
};

use regex::Regex;
use serde::{Deserialize, Serialize};

+
use git_ref_format_core::{Namespaced, Qualified, RefString};
use radicle::{
    Profile,
    cob::patch::PatchId,
    crypto::PublicKey,
-
    git::{BranchName, Namespaced, Oid, Qualified, RefString},
+
    git::{BranchName, Oid},
    node::{Event, NodeId},
    prelude::RepoId,
    storage::{
@@ -302,7 +304,7 @@ impl CiEvent {
                    .map_err(CiEventError::Repository)?;
                let parent = repo
                    .backend
-
                    .find_commit(*refs.at)
+
                    .find_commit(refs.at.into())
                    .map_err(CiEventError::Git)?
                    .parent(0)
                    .map_err(CiEventError::Git)?
@@ -535,8 +537,8 @@ mod test {
    const MAIN_BRANCH_REF_NAME: &str =
        "refs/namespaces/z6MkiB8T5cBEQHnrs2MgjMVqvpSVj42X81HjKfFi2XBoMbtr/refs/heads/main";

-
    const PATCH_REF_NAME: &str = "refs/namespaces/z6MkiB8T5cBEQHnrs2MgjMVqvpSVj42X81HjKfFi2XBoMbtr/refs/heads/patches/f9fa90725474de9002be503ae3cda4670c9a174";
-
    const PATCH_ID: &str = "f9fa90725474de9002be503ae3cda4670c9a174";
+
    const PATCH_REF_NAME: &str = "refs/namespaces/z6MkiB8T5cBEQHnrs2MgjMVqvpSVj42X81HjKfFi2XBoMbtr/refs/heads/patches/f9fa90725474de9002be503ae3cda4670c9a1740";
+
    const PATCH_ID: &str = "f9fa90725474de9002be503ae3cda4670c9a1740";

    fn nid() -> NodeId {
        const NID: &str = "z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV";
@@ -549,7 +551,7 @@ mod test {
    }

    fn oid_from(oid: &str) -> Oid {
-
        Oid::try_from(oid).unwrap()
+
        Oid::from_str(oid).unwrap()
    }

    fn oid() -> Oid {
@@ -847,7 +849,7 @@ impl ParsedRef {
            let re = Regex::new(PATTERN).unwrap();
            if let Some(captures) = re.captures(refname)
                && let Some(patch_id) = captures.get(1)
-
                && let Ok(oid) = Oid::try_from(patch_id.as_str())
+
                && let Ok(oid) = Oid::from_str(patch_id.as_str())
            {
                let patch_id = PatchId::from(oid);
                return Some(ParsedRef::Patch(patch_id));
modified src/cob.rs
@@ -203,17 +203,21 @@ fn announce(profile: &Profile, repo_id: RepoId, announce: bool) -> Result<(), Jo

        let mut node = Node::new(profile.home.socket());

-
        let (synced, unsynced) = node.seeds(repo_id).map_err(JobError::seeds)?.iter().fold(
-
            (BTreeSet::new(), BTreeSet::new()),
-
            |(mut synced, mut unsynced), seed| {
-
                if seed.is_synced() {
-
                    synced.insert(seed.nid);
-
                } else {
-
                    unsynced.insert(seed.nid);
-
                }
-
                (synced, unsynced)
-
            },
-
        );
+
        let (synced, unsynced) = node
+
            .seeds_for(repo_id, [])
+
            .map_err(JobError::seeds)?
+
            .iter()
+
            .fold(
+
                (BTreeSet::new(), BTreeSet::new()),
+
                |(mut synced, mut unsynced), seed| {
+
                    if seed.is_synced() {
+
                        synced.insert(seed.nid);
+
                    } else {
+
                        unsynced.insert(seed.nid);
+
                    }
+
                    (synced, unsynced)
+
                },
+
            );

        let announcer = Announcer::new(AnnouncerConfig::public(
            *profile.id(),
@@ -223,7 +227,7 @@ fn announce(profile: &Profile, repo_id: RepoId, announce: bool) -> Result<(), Jo
            unsynced,
        ))
        .map_err(|_| JobError::Announcer)?;
-
        node.announce(repo_id, TIMEOUT, announcer, |_, _| ())
+
        node.announce(repo_id, [], TIMEOUT, announcer, |_, _| ())
            .map_err(JobError::announce)?;
    }

modified src/ergo.rs
@@ -224,17 +224,14 @@ impl ErgoError {
        Self::CacheListItem(*id, Box::new(err))
    }

-
    pub(crate) fn resolve_patch_id<S: Into<String>>(
-
        id: S,
-
        err: radicle::storage::git::raw::Error,
-
    ) -> Self {
+
    pub(crate) fn resolve_patch_id<S: Into<String>>(id: S, err: radicle::git::raw::Error) -> Self {
        Self::ResolvePatchId(id.into(), Box::new(err))
    }

    pub(crate) fn resolve_commit<S: Into<String>>(
        commit: S,
        repo: &RepoId,
-
        err: radicle::storage::git::raw::Error,
+
        err: radicle::git::raw::Error,
    ) -> Self {
        Self::ResolveCommit(commit.into(), *repo, Box::new(err))
    }
modified src/filter.rs
@@ -386,7 +386,7 @@ fn has_file(repo_id: &RepoId, oid: &Oid, filename: &Path) -> bool {
        let profile = Profile::load()?;
        let repo = Repository::open(profile.storage.path().join(repo_id.canonical()), *repo_id)?;

-
        let obj = repo.backend.find_object(*oid, None);
+
        let obj = repo.backend.find_object(oid.into(), None);
        let obj = obj?;
        let commit = match obj.kind() {
            None => return Ok(false),
@@ -443,6 +443,7 @@ impl Filters {
mod test {
    use qcheck_macros::quickcheck;
    use radicle::prelude::{Did, RepoId};
+
    use std::str::FromStr;

    use crate::refs::{TagName, branch_from_str};

@@ -467,7 +468,7 @@ mod test {
    }

    fn oid_from(oid: &str) -> Oid {
-
        Oid::try_from(oid).unwrap()
+
        Oid::from_str(oid).unwrap()
    }

    fn oid() -> Oid {
modified src/lib.rs
@@ -31,3 +31,6 @@ pub mod test;
pub mod timeoutcmd;
pub mod util;
pub mod worker;
+

+
// #[cfg(test)]
+
// pub mod subplot;
modified src/msg.rs
@@ -14,6 +14,7 @@ use std::{
    fmt,
    hash::{Hash, Hasher},
    io::{BufRead, BufReader, Read, Write},
+
    str::FromStr,
};

use serde::{Deserialize, Serialize};
@@ -212,22 +213,22 @@ impl<'a> RequestBuilder<'a> {
            // Unwrapping is OK here, because we know `tip` is OK.
            #[allow(clippy::unwrap_used)]
            let commit = {
-
                let ext_oid = radicle_surf::Oid::try_from(tip.as_bytes()).unwrap();
+
                let ext_oid = radicle_surf::Oid::try_from(tip.as_ref()).unwrap();
                git_repo.commit(ext_oid).unwrap()
            };
            git_repo
                .history(commit)?
                .take_while(|c| {
                    if let Ok(c) = c {
-
                        c.id.as_bytes() != base.as_bytes()
+
                        c.id.as_bytes() != base.as_ref()
                    } else {
                        false
                    }
                })
                .filter_map(|result| {
                    if let Ok(commit) = result {
-
                        if let Ok(id) = Oid::try_from(commit.id.as_bytes()) {
-
                            Some(Ok(id))
+
                        if let Ok(oid) = Oid::from_str(&commit.id.to_string()) {
+
                            Some(Ok(oid))
                        } else {
                            None
                        }
@@ -1082,8 +1083,8 @@ impl MessageError {
pub mod trigger_from_ci_event_tests {
    use crate::ci_event::{CiEvent, CiEventV1};
    use crate::msg::{EventType, Request, RequestBuilder};
+
    use git_ref_format_core::RefString;
    use radicle::cob::Title;
-
    use radicle::git::RefString;
    use radicle::patch::{MergeTarget, Patches};
    use radicle::prelude::Did;
    use radicle::storage::ReadRepository;
modified src/refs.rs
@@ -4,10 +4,8 @@ use std::str::FromStr;

use serde::{Deserialize, Serialize};

-
use radicle::{
-
    cob::patch::PatchId,
-
    git::{BranchName, Component, Namespaced, Qualified, RefStr, RefString},
-
};
+
use git_ref_format_core::{Component, Namespaced, Qualified, RefStr, RefString};
+
use radicle::{cob::patch::PatchId, git::BranchName};

/// A generic ref name.
#[derive(Debug, Eq, PartialEq, Clone, Deserialize, Serialize)]
modified src/subplot.rs
@@ -1,5 +1,8 @@
// Implementations of Subplot scenario steps for the CI broker.

+
// #![allow(clippy::unwrap_used)]
+
// #![allow(clippy::collapsible_if)]
+

use std::{
    fs::{metadata, set_permissions},
    io::Write,
@@ -9,19 +12,21 @@ use std::{
    str::FromStr,
};

+
use git_ref_format_core::RefString;
use radicle::{
-
    git::RefString,
    node::{Event, NodeId},
    prelude::RepoId,
    storage::RefUpdate,
};

-
use subplotlib::steplibrary::datadir::Datadir;
-
use subplotlib::steplibrary::runcmd::Runcmd;
+
pub use subplotlib::prelude::*;
+
pub use subplotlib::steplibrary::datadir::Datadir;
+
pub use subplotlib::steplibrary::runcmd::Runcmd;

use radicle_ci_broker::ergo::Oid;

#[derive(Debug, Default)]
+
#[allow(dead_code)]
struct SubplotContext {}

impl ContextElement for SubplotContext {}
modified src/test.rs
@@ -7,10 +7,10 @@ use std::{
use crate::adapter::Adapter;
use crate::ci_event::{CiEvent, CiEventV1};
use crate::msg::{Request, RequestBuilder};
+
use git_ref_format_core::RefString;
use radicle::Profile;
use radicle::crypto::ssh::Keystore;
use radicle::crypto::test::signer::MockSigner;
-
use radicle::git::RefString;
use radicle::profile::{Config, Home};
use radicle::storage::ReadRepository;
use radicle::test::setup::Node;