Skip to content

Upgrade iroh to 1.0.0-rc.0 #161

@drewr

Description

@drewr

Part of datum-cloud/network-services-operator#168. See also datum-cloud/iroh-gateway#11.

iroh released v1.0.0-rc.0 on May 11 2026. This issue tracks the changes needed in this repo. iroh-gateway should be updated first (datum-cloud/iroh-gateway#11); this work can proceed in parallel once the blocking crate compatibility check passes.

Dependency bumps

Cargo.toml (workspace)

Crate Current Target
iroh 0.97.0 1.0.0-rc.0
iroh-base 0.97.0 0.98.0
iroh-relay 0.97.0 0.98.0
iroh-metrics 0.38.3 verify latest
iroh-proxy-utils 0.1.0 verify latest compatible
iroh-services 0.12.0 verify latest compatible (align with iroh-gateway which uses 0.13)

lib/Cargo.toml

  • iroh-blobs: 0.99.0 → verify latest

n0des-local/Cargo.toml

  • iroh-n0des: 0.10 → verify latest
  • irpc-iroh: 0.13 → verify latest

Breaking API changes to fix

Old New File
PathWatcher Connection::paths() (snapshot) + Connection::path_events()PathEventStream lib/src/node.rs
Connection::to_info()ConnectionInfo Connection::weak_handle() lib/src/node.rs
CertConfig::Reloading AcmeConfig builder lib/src/node.rs
Source type removed lib/src/node.rs, lib/src/auth.rs
Exhaustive enum/struct patterns many types now #[non_exhaustive] — add _ => arms all pattern-match sites

Lower-risk files that still need verification with cargo check:

  • lib/src/auth.rsEndpointId, iroh_proxy_utils::Authority
  • lib/src/diagnostics.rsiroh_services API surface
  • lib/src/state.rsEndpointId, Authority, Ticket
  • cli/src/dns_dev.rsiroh_base::EndpointId
  • n0des-local/src/lib.rsiroh::*, iroh_n0des::*

Pre-flight

Before bumping Cargo.toml, confirm that iroh-proxy-utils and iroh-services have published versions compatible with iroh 1.0.0-rc.0. If iroh-proxy-utils isn't available yet, the escape hatch is already scaffolded (commented out in Cargo.toml):

# [patch."https://github.com/n0-computer/iroh-proxy-utils"]
# iroh-proxy-utils = { path = "../iroh-proxy-utils" }

Checklist

  • Verify iroh-proxy-utils, iroh-services, iroh-n0des, irpc-iroh have compatible releases
  • Bump workspace Cargo.toml dependencies
  • Bump lib/Cargo.toml (iroh-blobs) and n0des-local/Cargo.toml
  • Align iroh-services to same version as iroh-gateway (currently 0.13)
  • Fix PathWatcher usages in lib/src/node.rs
  • Fix conn.to_info()conn.weak_handle() in lib/src/node.rs
  • Fix any #[non_exhaustive] pattern-match failures across the workspace
  • cargo build --workspace && cargo clippy --workspace && cargo test --workspace clean

Metadata

Metadata

Assignees

No one assigned

    Labels

    dependenciesPull requests that update a dependency file

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions