Skip to content

release: prepare v0.3.0#4

Merged
eareimu merged 85 commits into
mainfrom
endpoint
Jun 15, 2026
Merged

release: prepare v0.3.0#4
eareimu merged 85 commits into
mainfrom
endpoint

Conversation

@eareimu

@eareimu eareimu commented Jun 14, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • prepare the single-package ddns release line for v0.3.0
  • converge same-wave upstream dependencies onto released tags for dquic v0.5.1 and h3x v0.3.0
  • capture the planned tag / release notes in the PR so the merge gate can confirm the exact text before tagging

Planned tag

  • v0.3.0

Draft release / tag notes

ddns v0.3.0

This release packages the current ddns line as a single published crate,
expands signed endpoint publishing, and hardens resolver / server behavior for
the newer dhttp / h3x / dquic stack.

The notes below describe the end-state delivered by the v0.2.0...v0.3.0
cycle. Some bullets include follow-up refinement of capabilities that were
introduced during the same cycle, rather than implying that every intermediate
surface already existed in v0.2.0.

Crate and API structure

  • completed the move to a single published ddns crate with internal core,
    mdns, resolvers, and feature-gated ddns-server surfaces
  • moved multicast DNS integration and the resolver facade onto that unified
    package surface
  • updated examples, public exports, and dependency layout around the final
    single-crate release shape

Signed endpoint publishing and identity-derived selectors

  • added signed DNS endpoint publishing during this cycle and released its final
    integrated form in v0.3.0
  • derive E.MAIN and normalized E.sequence selectors from the publisher
    certificate SKI instead of exposing caller-supplied selector knobs on the
    released surface
  • publish explicit DNS host endpoints from caller-selected address views
  • aligned public DHTTP identity examples and validation paths with the DHTTP
    suffix model

Resolver and publication behavior

  • added configurable publisher options, deferred weak resolver wrappers, and
    static seed record lookup support
  • preserved endpoint ports encoded in H3 / HTTP E records instead of
    overwriting them from the query authority
  • grouped E records by normalized certificate-chain key before endpoint
    selection
  • bounded H3 lookup retries and reset H3 pools after request / publish
    failures
  • tightened retry and republish flows around binding changes, location
    changes, NAT / default-route discovery, and partial publish failures

Server and transport integration

  • migrated resolver and server paths to the newer h3x endpoint API and the
    dquic 0.5.1 transport surface
  • added build-time bootstrap constant injection with docs-safe placeholder
    defaults for non-release builds
  • tightened ddns-server behavior around explicit bind patterns, dual-stack
    wildcard binding, H3 ALPN advertisement, and long-running H3 serving
  • kept empty publish packets usable for clear semantics while enforcing
    selector / certificate consistency for signed endpoint updates

Upgrade notes

  • downstream crates should consume the released ddns package surface directly
  • ddns-server bind configuration is explicit binds = [...], not legacy
    implicit wildcard rewriting
  • the released signed endpoint publishing surface uses certificate-derived
    selectors rather than caller-chosen selector APIs
  • this release expects h3x 0.3.0 and dquic 0.5.1

Full changelog: v0.2.0...v0.3.0

Release surface

  • crates.io

CI gate

  • PR release dry-run must stay green before merge

Known wait conditions

  • final merge / tag remains part of the coordinated multi-repo release wave

eareimu and others added 30 commits May 11, 2026 17:21
- qresolve → resolver + net modules
- h3x::server::  → h3x::endpoint::server::
- boundAddr → h3x::dquic::net::BoundAddr
- Client → H3Endpoint
- ConnectServerError → ConnectError
- Remove BoundAddr usage (bound_addr() now returns SocketAddr directly)
- Replace SocketEndpointAddr with DquicEndpointAddr in TryFrom conversions
- Update EndpointAddr::Socket(..) -> EndpointAddr::Direct{..}
- Migrate to h3x Request builder API:
  .get(uri)/.with_body().post() -> .method()+.uri()+.write()+.into_response()
- Use std::thread::spawn + oneshot channel to bridge non-Send
  Request future for Publish/Resolve trait implementations
- Fix examples/query.rs to use new Request API
…sage

- Fix clippy io_other_error and redundant_closure in publish.rs
- Remove unused http::Method imports
- Replace deprecated new_request_owned/method/uri API with H3Endpoint::get/post
- Rename H3Resolver::client to endpoint for clarity
…ns_resolvers

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Update H3Endpoint<C> to H3Endpoint<C, C::Connection> in H3Resolver
to match the new dual-generic signature.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@eareimu eareimu marked this pull request as ready for review June 15, 2026 08:51
@eareimu eareimu merged commit ed54370 into main Jun 15, 2026
1 of 2 checks passed
@eareimu eareimu deleted the endpoint branch June 15, 2026 15:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant