From 4b0bf83b20b9a5898144840a52001087ddf54ab0 Mon Sep 17 00:00:00 2001 From: Hatta Zainal Date: Thu, 27 Aug 2026 22:48:10 +0800 Subject: [PATCH] chore(deps): pin nodedb-client/types to the NodeDB git repo by rev The published crates sit at 0.4.0 while the repo head is at 0.5.0 with hundreds of commits between them, including the fix that makes typed error classification reach the client instead of every server error arriving as a generic internal error. Waiting on a crates.io publish blocks that; pinning the repo does not. Pinned to fda34193, the repo head at the time of writing. Both crates pin the same commit, never a branch, so every CI run builds the same upstream code. The repo is public, so CI fetches it without credentials. The client's native feature stays off: the seam makes no client calls yet, and that feature pulls in a TLS and C-toolchain build tree that should land with the change that needs it. No source changes. Only services/error.rs touches client types, and it compiles unchanged. Transitively this moves zerompk from crates.io 0.6 to the git rev the client depends on. AGENTS.md setup section rewritten to match: the old text said the crates were unpublished and required a local patch, which is no longer the default path. The local-patch override stays documented, keyed on the git source rather than crates.io. --- AGENTS.md | 25 ++++++---- Cargo.lock | 142 +++++++++++++++++++++++++++++++++++++---------------- Cargo.toml | 4 +- 3 files changed, 119 insertions(+), 52 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index b9b48f6..95b5518 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -22,23 +22,30 @@ NodeDB Studio is a **desktop GUI client for NodeDB**, built in Rust with This is a Cargo workspace; the app is the `nodedb-studio` member crate. -## Setup — local NodeDB dependency (do this first) +## Setup — NodeDB dependency -`Cargo.toml` pins `nodedb-client` / `nodedb-types` to a published version, but -those crates are not on crates.io yet. Point them at a local NodeDB checkout with -a **gitignored** Cargo patch — never hardcode machine paths in `Cargo.toml`. +`Cargo.toml` pins `nodedb-client` / `nodedb-types` to the `NodeDB-Lab/nodedb` git +repo by commit `rev`, not to crates.io (the published crates lag the repo by +hundreds of commits). Cargo fetches it on first build; no local NodeDB checkout is +needed. Both crates must pin the **same** rev, and always a commit, never a branch: +a branch would make every CI run build different upstream code. -Create `.cargo/config.toml` at the workspace root (already gitignored): +Bump the rev deliberately. The native wire is not frozen pre-1.0, and the seam +decoders are written against the pinned rev, so re-run fmt, clippy and nextest +after any bump. + +To develop against a local NodeDB checkout instead, override with a **gitignored** +Cargo patch. Never hardcode machine paths in `Cargo.toml`. Create +`.cargo/config.toml` at the workspace root (already gitignored): ```toml -[patch.crates-io] +[patch."https://github.com/NodeDB-Lab/nodedb.git"] nodedb-client = { path = "../nodedb/nodedb-client" } nodedb-types = { path = "../nodedb/nodedb-types" } ``` -Adjust the paths to your checkout. The version pinned in `Cargo.toml` must match -your local NodeDB workspace version (see its root `Cargo.toml`). If Cargo says -your toolchain is too old, run `rustup update stable`. +Adjust the paths to your checkout. If Cargo says your toolchain is too old, run +`rustup update stable`. ## Commands diff --git a/Cargo.lock b/Cargo.lock index a22d76a..6844804 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -26,7 +26,7 @@ checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher", - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -512,6 +512,17 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[package]] +name = "chacha20" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "rand_core 0.10.1", +] + [[package]] name = "cipher" version = "0.4.4" @@ -723,6 +734,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + [[package]] name = "crc32c" version = "0.6.8" @@ -1912,6 +1932,7 @@ dependencies = [ "cfg-if", "libc", "r-efi 6.0.0", + "rand_core 0.10.1", "wasip2", "wasip3", ] @@ -1968,6 +1989,30 @@ dependencies = [ "winapi", ] +[[package]] +name = "glam" +version = "0.30.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19fc433e8437a212d1b6f1e68c7824af3aed907da60afa994e7f542d18d12aa9" + +[[package]] +name = "glam" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "556f6b2ea90b8d15a74e0e7bb41671c9bdf38cd9f78c284d750b9ce58a2b5be7" + +[[package]] +name = "glam" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f70749695b063ecbf6b62949ccccde2e733ec3ecbbd71d467dca4e5c6c97cca0" + +[[package]] +name = "glam" +version = "0.33.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c426daf70099baff33fac0ba85151c42424861c56828cef9ba02dacb78eb6b26" + [[package]] name = "glib" version = "0.18.5" @@ -2705,9 +2750,9 @@ dependencies = [ [[package]] name = "lz4_flex" -version = "0.11.6" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373f5eceeeab7925e0c1098212f2fbc4d416adec9d35051a6ab251e824c1854a" +checksum = "ecbdfe44b1bd960b68170b417450a628c43f7cf56bb3c5317e61cb230ee7f226" [[package]] name = "mac" @@ -2935,11 +2980,15 @@ dependencies = [ [[package]] name = "nalgebra" -version = "0.33.3" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d43ddcacf343185dfd6de2ee786d9e8b1c2301622afab66b6c73baf9882abfd" +checksum = "adc43a60c217b0c6ff46e47f26911015ad8d2e5a8be1af668c67e370d99a4346" dependencies = [ "approx", + "glam 0.30.10", + "glam 0.31.1", + "glam 0.32.1", + "glam 0.33.5", "matrixmultiply", "nalgebra-macros", "num-complex", @@ -2951,9 +3000,9 @@ dependencies = [ [[package]] name = "nalgebra-macros" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "254a5372af8fc138e36684761d3c0cdb758a4410e938babcff1c860ce14ddbfc" +checksum = "973e7178a678cfd059ccec50887658d482ce16b0aa9da3888ddeab5cd5eb4889" dependencies = [ "proc-macro2", "quote", @@ -2962,11 +3011,11 @@ dependencies = [ [[package]] name = "nanoid" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8" +checksum = "8628de41fe064cc3f0cf07f3d299ee3e73521adaff72278731d5c8cae3797873" dependencies = [ - "rand 0.8.6", + "rand 0.9.4", ] [[package]] @@ -3033,9 +3082,8 @@ dependencies = [ [[package]] name = "nodedb-client" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e21742bfa5b8c994f8083114d0af7a169d40e6b14689bb6320c8ace890f423a8" +version = "0.5.0" +source = "git+https://github.com/NodeDB-Lab/nodedb.git?rev=fda34193afd77894b87170a59df224d4791e6495#fda34193afd77894b87170a59df224d4791e6495" dependencies = [ "async-trait", "nodedb-types", @@ -3047,9 +3095,8 @@ dependencies = [ [[package]] name = "nodedb-codec" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72f97fb96fa7d564aa91dd2a0a28f4491584a454f39f1fdf5799cdeb9dc1d486" +version = "0.5.0" +source = "git+https://github.com/NodeDB-Lab/nodedb.git?rev=fda34193afd77894b87170a59df224d4791e6495#fda34193afd77894b87170a59df224d4791e6495" dependencies = [ "lz4_flex", "nalgebra", @@ -3081,17 +3128,16 @@ dependencies = [ [[package]] name = "nodedb-types" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93c489ddea61e73f6e623254ed664665495414ae757e106b8e1eedaea249025" +version = "0.5.0" +source = "git+https://github.com/NodeDB-Lab/nodedb.git?rev=fda34193afd77894b87170a59df224d4791e6495#fda34193afd77894b87170a59df224d4791e6495" dependencies = [ "aes-gcm", "bytemuck", "crc32c", - "getrandom 0.3.4", + "getrandom 0.4.2", "nanoid", "nodedb-codec", - "rand 0.9.4", + "rand 0.10.2", "rkyv 0.8.16", "roaring", "rust_decimal", @@ -3208,7 +3254,7 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" dependencies = [ - "proc-macro-crate 3.5.0", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 2.0.117", @@ -3659,7 +3705,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "opaque-debug", "universal-hash", ] @@ -3935,6 +3981,17 @@ dependencies = [ "rand_core 0.9.5", ] +[[package]] +name = "rand" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80" +dependencies = [ + "chacha20", + "getrandom 0.4.2", + "rand_core 0.10.1", +] + [[package]] name = "rand_chacha" version = "0.2.2" @@ -3992,6 +4049,12 @@ dependencies = [ "getrandom 0.3.4", ] +[[package]] +name = "rand_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + [[package]] name = "rand_hc" version = "0.2.0" @@ -4396,9 +4459,9 @@ dependencies = [ [[package]] name = "safe_arch" -version = "0.7.4" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" +checksum = "42c6efa15875e6ecb39ca61fb0b0c1a40b84fac5a5ffe71eef7d1000c8eb3f5f" dependencies = [ "bytemuck", ] @@ -4580,7 +4643,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest", ] @@ -4591,7 +4654,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest", ] @@ -4632,14 +4695,13 @@ dependencies = [ [[package]] name = "simba" -version = "0.9.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c99284beb21666094ba2b75bbceda012e610f5479dfcc2d6e2426f53197ffd95" +checksum = "f1a7200d82ff1c7b4235efd12f11e2537a402c91cf83a5cb97ce80eef787fde7" dependencies = [ "approx", "num-complex", "num-traits", - "paste", "wide", ] @@ -5336,11 +5398,11 @@ checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "ulid" -version = "1.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "470dbf6591da1b39d43c14523b2b469c86879a53e8b758c8e090a470fe7b1fbe" +checksum = "947dde63b6d514cc5e044edad4e0ca7261afd1099d16c83d942cb2b2f348689c" dependencies = [ - "rand 0.9.4", + "rand 0.10.2", "web-time", ] @@ -5732,9 +5794,9 @@ checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" [[package]] name = "wide" -version = "0.7.33" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03" +checksum = "de2aaf408e58689c2096682331b1f42bb2d9f2ed6b11560407d023cd0a6c634e" dependencies = [ "bytemuck", "safe_arch", @@ -6429,18 +6491,16 @@ checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" [[package]] name = "zerompk" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5fdec1c176abb9ac7f1e1f40aa05c2c2a01984e895787b5f2e0b6c9c1ad7f20" +version = "0.7.1" +source = "git+https://github.com/nuskey8/zerompk?rev=75d527ff8930341c859a757866b0e07f03d09ef8#75d527ff8930341c859a757866b0e07f03d09ef8" dependencies = [ "zerompk_derive", ] [[package]] name = "zerompk_derive" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02586870c5f30b25cf5a2eae9ab9ba29d2023ca79ee267e3c13ad0ec57b24765" +version = "0.7.1" +source = "git+https://github.com/nuskey8/zerompk?rev=75d527ff8930341c859a757866b0e07f03d09ef8#75d527ff8930341c859a757866b0e07f03d09ef8" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 2d17732..d360e3d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,8 +17,8 @@ homepage = "https://nodedb.dev" # enabled in the phase that first constructs a NativeClient — it drags in a # TLS + C-toolchain build tree (tokio-rustls, aws-lc-rs, cmake), so it is not # carried while the seam impl is an inert stub. -nodedb-client = "0.4.0" -nodedb-types = "0.4.0" +nodedb-client = { git = "https://github.com/NodeDB-Lab/nodedb.git", rev = "fda34193afd77894b87170a59df224d4791e6495" } +nodedb-types = { git = "https://github.com/NodeDB-Lab/nodedb.git", rev = "fda34193afd77894b87170a59df224d4791e6495" } # Async async-trait = "0.1" tokio = { version = "1", features = ["rt-multi-thread", "macros", "time"] }