Revision history for Punk-OpenTelemetry

0.10    2026-09-16
        - ADDS: http.server.request.duration, recorded by the SDK itself.
          Claimed by the POD since this distribution was written and never
          built. Recorded on EVERY request, including the unsampled ones: a
          duration histogram over a sample is not a smaller histogram, it is
          a wrong one. Seconds, the conventions' boundaries, and http.route
          absent rather than substituted - on a metric that substitution is
          a million series.
        - ADDS: a `metrics` switch beside server/client/db, and install()
          takes the meter. No meter means no clock is even stashed.
        - ADDS: a database span is a CHILD of the request that issued it.
          Started with a NULL parent it got a fresh trace id, so every
          statement was its own trace one span long while the request sat
          in another. Needs Punk 0.50 (pk_abi v5 current_of); against an
          older Punk it still roots, as before.
        - ADDS: an outbound call with no caller-set traceparent is a child
          of the request being served, instead of a root.
        - ADDS: DBIx::Loop's statement observer is registered. Three
          comments here said it was and it never had been; install() now
          reports db_loop.
        - FIXES: the boot line printed the configured propagators, which
          said they did something. The automatic instrumentation reads and
          injects W3C traceparent only, whatever OTEL_PROPAGATORS says, so
          the line told an operator the opposite of the truth. Dropped from
          the banner and documented instead.

0.08    2026-08-27
        - This distribution is now an ExtUtils::Depends PROVIDER
        - otel_proto.h is installed and published

0.07    2026-08-26
        - An outbound call joins the trace it was made from.
        - A traceparent the caller already set is honoured as the parent and
        replaced in place.
        - Punk::OpenTelemetry::SpanRef, a BORROWED span handle with no
        DESTROY: the request's span belongs to the instrumentation, and a
        handle to it in the owning class would free what the response side
        is about to end.
        - Span: add sampled, child_of and traceparent.
        - The logs signal is the application's own logger: $c->log is tapped
        through pk_abi v4 and exported with its request's trace id. 
        - REMOVED: the $c->otel_log helper

0.06    2026-08-26
        - Metrics and logs encode. Both encoders existed in the header and the
        exporter never dispatched to them, so every signal but traces was
        refused at the last step.
        - One eval per signal in flush. A failure in any one signal aborted
        the block, so metrics failing to encode meant logs were never
        drained: two signals lost to one broken encoder.

0.05    2026-08-23
        - Fixed the module failing to load with "undefined symbol:
          clock_gettime" on glibc before 2.17 (Debian wheezy, reported by
          CPAN Testers on 5.20, 5.22 and 5.24). clock_gettime lives in librt
          there, so the configure probe now retries with -lrt and links it
          when that is what makes it work.

0.04    2026-08-20
        - FIX: change abi version checks from == to <=
        - Fixed a SEGFAULT on perls before 5.32, POPs
        - Fixed t/07-metrics.t failing on every perl built uselongdouble

0.03    2026-08-20
        - Fixed a SEGFAULT on perls before 5.20, reported by CPAN Testers
          against 0.01 on 5.18.2 (FreeBSD 9.2, gcc 4.2.1) and 5.18.4
          (Linux, gcc 12). Eleven XSUBs returned by assigning &PL_sv_undef to an
          SV* RETVAL. The typemap mortalises RETVAL, so each of those
          returns decremented the refcount of an IMMORTAL and before
          5.20 immortals have no refcount protection, so the decrements
          are real and the SV is eventually freed underneath the
          interpreter. 

0.02    2026-08-19
        - Fixed a SEGFAULT on perls before 5.20, reported by CPAN Testers
          against 0.01 on 5.18.2 (FreeBSD 9.2, gcc 4.2.1) and 5.18.4
          (Linux, gcc 12). Eleven XSUBs returned by assigning &PL_sv_undef to an
          SV* RETVAL. The typemap mortalises RETVAL, so each of those
          returns decremented the refcount of an IMMORTAL and before
          5.20 immortals have no refcount protection, so the decrements
          are real and the SV is eventually freed underneath the
          interpreter. 

0.01    2026-08-19
	First version
