Skip to content

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 30 May 00:50
· 20 commits to trunk since this release
37c8a0f

v0.6.0 — real-world surface readiness

The generator and proxy now cover the read side of a real HTTP surface:
bodyless operations — GET reads, path-only POSTs, and 204 responses — bundle
and proxy end-to-end, where v0.5 rejected them. wavefront also becomes visible
in distributed traces, emitting its own attributed span per request, and the
release workflow now renders these notes from the tag annotation itself. The
span ships without the OpenTelemetry SDK — a hand-rolled OTLP/HTTP exporter
keeps the server's dependency tree free of opentelemetry and grpc (#92 resolved
by approach).

  • Bodyless operations end-to-end. wavefront-bundle add no longer rejects
    operations with no request body or no 200 response: each layer synthesizes a
    single wavefront.gen.v.Empty message, and bodyless operations bind it
    for the request and/or response side. At runtime a request_message of Empty
    produces a clean bodyless upstream call (no body, no Content-Type — not {}
    with application/json), and a response_message of Empty emits no response
    body. Path and query parameters still pass through verbatim (#105 closed).

  • wavefront-attributed OpenTelemetry span. With
    WAVEFRONT_TRACES_OTLP_ENDPOINT set, wavefront emits one wavefront.proxy span
    per request to an OTLP/HTTP collector, continuing the inbound W3C traceparent
    (trace id preserved, the inbound span becomes the parent, fresh child span id)
    while still forwarding the client's traceparent/tracestate untouched. Each
    span carries contract_version, target, and transform_outcome attributes and a
    service.name resource (WAVEFRONT_TRACES_SERVICE_NAME, default wavefront);
    WAVEFRONT_TRACES_SAMPLE_RATIO in (0,1] sets the root-trace sample probability.
    Emission is non-blocking and best-effort — a full queue or a collector error
    drops the span, never the request. Unset endpoint = disabled, zero overhead.
    Implemented as a hand-rolled OTLP/JSON exporter, no OTel SDK (#71, #92
    closed).

  • Release notes from the tag annotation. The release workflow extracts the
    annotated-tag body explicitly (git tag -l --format='%(contents)' into
    --notes-file) instead of --notes-from-tag, which had silently fallen back to
    the commit message on v0.5.0 (#106 closed).

  • feat: synthesize a synthetic Empty message for bodyless operations (#107)

  • feat: send bodyless upstream requests / empty responses for Empty (#111)

  • feat: emit a wavefront-attributed OTLP span per request (#110)

  • fix: extract release notes from the tag annotation explicitly (#109)