feat: upgrade iroh to 1.0.2 - #165
Merged
Merged
Conversation
Upgrade the workspace iroh dependency stack from 0.97 to the stable 1.0 release line (latest 1.0.2). The original target was v1.0.0-rc.0; stable 1.0.0 shipped 2026-06-15 and 1.0.2 is current, so this jumps straight to stable and skips the release candidates. Dependency bumps: - Workspace: iroh, iroh-base, iroh-relay, iroh-tickets to 1.0, iroh-metrics to 1.0, iroh-proxy-utils to 0.3, iroh-services to 1.0, n0-error to 1.0 - lib: iroh-blobs 0.99.0 -> 0.103.0 - n0des-local: irpc, irpc-iroh 0.13 -> 0.17 API migration (compile-driven against 1.0.2): - iroh-services net_diagnostics/client_host feature gates removed; those modules are now compiled unconditionally, so drop the features list - DnsProtocol/DnsResolver move from iroh_relay::dns to iroh::dns - Endpoint::empty_builder() removed; use Endpoint::builder(presets::Empty) - SecretKey::generate() no longer takes an rng argument - iroh_tickets::Ticket reshaped: to_bytes/from_bytes renamed to encode_bytes/decode_bytes, and the removed Ticket::deserialize is replaced by the trait-provided decode_string; round-trip is preserved Remove the obsolete pkcs8 = "=0.11.0-rc.11" transitive pin: iroh 1.0.2 resolves stable pkcs8 0.11.0 with ed25519-dalek 3.0.0-rc.0, satisfying the pin's own removal condition. cargo check, test (34 passed), and clippy are clean. Part of datum-cloud/network-services-operator#168. Closes #161
Closed
24 tasks
scotwells
approved these changes
Jul 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Upgrade the
datum-cloud/appworkspace's iroh dependency stack from0.97to the stable1.0line (latest1.0.2), with the accompanying API migration.Why
Issue #161 originally targeted
v1.0.0-rc.0, now obsolete — stable1.0.0shipped 2026-06-15 and1.0.2is current. This jumps straight to stable and skips the release candidates. Parallel to the iroh-gateway upgrade (datum-cloud/iroh-gateway#11).Dependency bumps
Workspace
Cargo.toml:iroh/iroh-base/iroh-relay1.0iroh-tickets1.0iroh-metrics1.0iroh-proxy-utils0.3iroh-services1.0n0-error1.0lib/Cargo.toml:iroh-blobs0.99.0→0.103.0n0des-local/Cargo.toml:irpc/irpc-iroh0.13→0.17API migration
Compile-driven against iroh 1.0.2. Breakages surfaced:
iroh-servicesfeature gates removed — thenet_diagnosticsandclient_hostfeatures no longer exist; those modules (ClientHost,CLIENT_HOST_ALPN,caps::NetDiagnosticsCap,net_diagnostics) are now compiled unconditionally. Dropped thefeatures = [...]list.iroh_relay::dnsis private →DnsProtocol/DnsResolverimported fromiroh::dns(lib/src/node.rs).Endpoint::empty_builder()removed →Endpoint::builder(presets::Empty)(lib/src/node.rs).SecretKey::generate(rng)→SecretKey::generate()— no argument (lib/src/repo.rs,n0des-local/src/lib.rs).iroh_tickets::Tickettrait reshaped (lib/src/state.rs):to_bytes/from_bytesrenamed toencode_bytes/decode_bytes; the removedTicket::deserialize(s)is replaced by the trait's provideddecode_string(s). Round-trip is preserved — the defaultencode_string/decode_stringare mutually consistent (KINDprefix + base32 ofencode_bytes).Obsolete pin removed
lib/Cargo.tomlcarried a transitive pinpkcs8 = "=0.11.0-rc.11"to work around aned25519-dalek 3.0.0-pre.1incompatibility via the old iroh. iroh 1.0.2 resolves stablepkcs8 0.11.0withed25519-dalek 3.0.0-rc.0, so the pin is removed per its own TODO.Validation
cargo check --workspaceclean (exit 0; only 2 pre-existing unused-variable warnings inui/, unrelated)cargo test --workspace— see PR checkscargo clippy --workspace— see PR checksn0des-localnote: this crate isexcluded from the workspace yet inheritsworkspace = truedependencies, so it is not standalone-buildable withcargoin its own directory (pre-existing structural condition, independent of this upgrade — it is not a CI target). Its edits (irpc/irpc-irohbump,SecretKey::generate()) are applied for consistency but could not be compile-verified in isolation.Follow-up
Overall upgrade tracked in datum-cloud/network-services-operator#168. Relay image bump (Step 3) is datum-cloud/infra#3212.
Closes #161