Upgrade rust dependencies

Upgrade all radicle-* dependencies to the latest versions regardless of
cooldown and the remaining rust dependencies honoring cooldown period.
This commit is contained in:
Rūdolfs Ošiņš
2026-07-27 15:19:45 +02:00
parent 883046269c
commit 935b02308a
14 changed files with 496 additions and 978 deletions
Generated
+453 -951
View File
File diff suppressed because it is too large Load Diff
+6
View File
@@ -2,6 +2,12 @@
members = ["crates/*"]
resolver = "2"
[patch.crates-io]
radicle-job = {
git = "https://seed.radicle.dev/z2UcCU1LgMshWvXj6hXSDDrwB8q8M/z6MkwPUeUS2fJMfc2HZN1RQTQcTTuhw4HhPySB8JeUg2mVvx",
branch = "patches/da55667860741ee221483fc42fa7cbbb58e0cfc2"
}
[workspace.package]
edition = "2024"
+3 -3
View File
@@ -17,12 +17,12 @@ tauri-build = { version = "2.6.1", features = ["isolation"] }
anyhow = { version = "1.0.90" }
base64 = { version = "0.22.1" }
either = { version = "1.15" }
git2 = { version = "0.20.4", default-features = false, features = ["vendored-libgit2"] }
git2 = { version = "0.21", default-features = false, features = ["vendored-libgit2"] }
infer = { version = "0.19.0" }
log = { version = "0.4.22" }
radicle = { version = "0.24", features = ["tor", "i2p"] }
radicle = { version = "0.25", features = ["tor", "i2p"] }
radicle-types = { version = "0.1.0", path = "../radicle-types" }
radicle-surf = { version = "0.27.1", features = ["serde"] }
radicle-surf = { version = "0.29.0", features = ["serde"] }
serde = { version = "1.0.0", features = ["derive"] }
serde_json = { version = "1.0.0" }
tauri = { version = "2.11.1", features = ["isolation"] }
+8 -1
View File
@@ -1,9 +1,11 @@
use std::str::FromStr;
use radicle::crypto::Seed;
use radicle::crypto::ssh::{self, Passphrase};
use radicle::node::Alias;
use radicle::profile::env;
use radicle_types::error::Error;
use ssh_key::rand_core::{OsRng, RngCore};
use crate::AppState;
@@ -47,7 +49,12 @@ pub(crate) fn init(alias: String, passphrase: Passphrase) -> Result<(), Error> {
radicle::crypto::ssh::keystore::Error::PassphraseMissing,
));
}
let profile = radicle::Profile::init(home, alias, Some(passphrase.clone()), env::seed())?;
let seed = env::seed().unwrap_or_else(|| {
let mut bytes = [0u8; 32];
OsRng.fill_bytes(&mut bytes);
Seed::new(bytes)
});
let profile = radicle::Profile::init(home, alias, Some(passphrase.clone()), seed)?;
match ssh::agent::Agent::connect() {
Ok(mut agent) => register(&mut agent, &profile, passphrase.clone())?,
Err(e) if e.is_not_running() => return Err(Error::AgentNotRunning),
+4 -4
View File
@@ -10,14 +10,14 @@ doctest = false
anyhow = { version = "1.0.90" }
axum = { version = "0.8.1", default-features = false, features = ["json"] }
base64 = { version = "0.22.1" }
git2 = { version = "0.20.4", default-features = false, features = ["vendored-libgit2"] }
git2 = { version = "0.21", default-features = false, features = ["vendored-libgit2"] }
log = { version = "0.4.22" }
infer = { version = "0.19.0" }
mime-infer = { version = "3.0.0" }
radicle = { version = "0.24", features = ["tor", "i2p"] }
radicle = { version = "0.25", features = ["tor", "i2p"] }
radicle-job = { version = "0.6" }
radicle-localtime = { version = "0.1.0", features = ["serde"] }
radicle-surf = { version = "0.27.1", features = ["serde"] }
radicle-surf = { version = "0.29.0", features = ["serde"] }
serde = { version = "1.0.0", features = ["derive"] }
serde_json = { version = "1.0.0" }
sqlite = { version = "0.37.0", features = ["bundled"] }
@@ -53,4 +53,4 @@ ts-rs = { version = "12.0.1", features = [
url = { version = "2.5.4", features = ["serde"] }
[dev-dependencies]
radicle = { version = "0.24", features = ["test", "tor", "i2p"] }
radicle = { version = "0.25", features = ["test", "tor", "i2p"] }
+1 -1
View File
@@ -318,7 +318,7 @@ where
})?;
action(&blob, op, author).map_err(error::TreeAction::from)
};
let name = entry.name()?;
let name = entry.name().ok()?;
// An entry is only considered an action if it:
// a) Is a blob
// b) Its name is numeric, e.g. 1, 2, 3, etc.
@@ -320,7 +320,7 @@ impl From<(git::fmt::RefString, Option<git::Oid>, Option<git::Oid>)> for RefUpda
},
_ => RefUpdate::Skipped {
name,
oid: new.unwrap_or(radicle::git::raw::Oid::zero().into()),
oid: new.unwrap_or(radicle::git::raw::Oid::ZERO_SHA1.into()),
},
}
}
+5 -2
View File
@@ -1,7 +1,10 @@
// `radicle_surf::Oid` and `radicle::git::Oid` are both aliases for
// `radicle_oid::Oid`, so these conversions are identities. They are kept as a
// single boundary in case the two crates diverge on their Oid type again.
pub(crate) fn from_surf(oid: radicle_surf::Oid) -> radicle::git::Oid {
radicle::git::Oid::from(radicle::git::raw::Oid::from(oid))
oid
}
pub(crate) fn into_surf(oid: radicle::git::Oid) -> radicle_surf::Oid {
radicle_surf::Oid::from(radicle::git::raw::Oid::from(oid))
oid
}
+7 -7
View File
@@ -3,7 +3,7 @@ use std::path::Path;
use radicle::Storage;
use radicle::cob::migrate;
use radicle::crypto::ssh::Keystore;
use radicle::crypto::{KeyPair, Seed};
use radicle::crypto::{Seed, Signer, SigningKey};
use radicle::node::{Features, Timestamp, UserAgent};
use radicle::profile::Home;
use radicle::{node, profile};
@@ -17,23 +17,23 @@ pub fn profile(home: &Path, seed: [u8; 32]) -> radicle::Profile {
let config = profile::Config::new(alias.clone());
let keystore = Keystore::new(&home.keys());
let keypair = KeyPair::from_seed(Seed::from(seed));
let signer = SigningKey::from_seed(Seed::new(seed));
let storage = Storage::open(
home.storage(),
radicle::git::UserInfo {
alias: alias.clone(),
key: keypair.pk.into(),
key: *signer.public_key(),
},
)
.unwrap();
let mut db = home.policies_mut().unwrap();
db.follow(&keypair.pk.into(), Some(&alias)).unwrap();
db.follow(signer.public_key(), Some(&alias)).unwrap();
let node_db = home.database_mut(config.node.database).unwrap();
node_db
.init(
&keypair.pk.into(),
signer.public_key(),
Features::SEED,
&alias,
&UserAgent::default(),
@@ -47,13 +47,13 @@ pub fn profile(home: &Path, seed: [u8; 32]) -> radicle::Profile {
cobs.migrate(migrate::ignore).unwrap();
radicle::storage::git::transport::local::register(storage.clone());
keystore.store(keypair.clone(), "radicle", None).unwrap();
keystore.store(&signer, "radicle", None).unwrap();
radicle::Profile {
home,
storage,
keystore,
public_key: keypair.pk.into(),
public_key: *signer.public_key(),
config,
}
}
+2 -3
View File
@@ -37,8 +37,7 @@ pub trait Profile {
mod test {
use std::str::FromStr;
use radicle::crypto::Signer;
use radicle::crypto::test::signer::MockSigner;
use radicle::crypto::{Seed, Signer, SigningKey};
use radicle::node::{Alias, config};
use crate::config::Config;
@@ -48,7 +47,7 @@ mod test {
fn config() {
let tmp = tempfile::tempdir().unwrap();
let profile = test::profile(tmp.path(), [0xff; 32]);
let signer = MockSigner::from_seed([0xff; 32]);
let signer = SigningKey::from_seed(Seed::new([0xff; 32]));
let state = AppState { profile };
assert_eq!(
+2 -2
View File
@@ -249,7 +249,7 @@ fn canonical_refs(repo: &storage::git::Repository) -> Result<repo::Canonical, Er
for (pattern, _) in rules.iter() {
for r in repo.backend.references_glob(pattern.as_str())? {
let r = r?;
let Some(name) = r.name() else { continue };
let Ok(name) = r.name() else { continue };
let Some(oid) = r.target() else { continue };
if let Some(short) = name.strip_prefix("refs/tags/") {
@@ -295,7 +295,7 @@ fn resolve_tag(repo: &storage::git::Repository, oid: git::raw::Oid) -> Option<re
oid: commit.id().into(),
timestamp,
tagger,
message: tag.message().map(str::to_owned),
message: tag.message().ok().flatten().map(str::to_owned),
});
}
let commit = repo.backend.find_commit(oid).ok()?;
@@ -2,6 +2,7 @@ use std::fs;
use radicle::Node;
use radicle::cob;
use radicle::crypto::Signer;
use radicle::git;
use radicle::identity;
use radicle::node::Handle;
+2 -2
View File
@@ -13,8 +13,8 @@ anyhow = { version = "1.0.90" }
axum = { version = "0.8.1", default-features = false, features = ["json", "query", "tokio", "http1"] }
hyper = { version = "1.6", default-features = false }
lexopt = { version = "0.3.0" }
radicle = { version = "0.24" }
radicle-surf = { version = "0.27.1", default-features = false, features = ["serde"] }
radicle = { version = "0.25" }
radicle-surf = { version = "0.29.0", default-features = false, features = ["serde"] }
radicle-types = { path = "../radicle-types" }
serde = { version = "1.0.0", features = ["derive"] }
serde_json = { version = "1.0.0", features = ["preserve_order"] }
+1 -1
View File
@@ -1,4 +1,4 @@
[toolchain]
channel = "1.90"
channel = "1.95"
profile = "default"
components = [ "rust-src" ]