prepare for 0.10

This commit is contained in:
Simon Cruanes 2025-05-27 09:58:19 -04:00
parent cd5785d938
commit d9cd7621f5
No known key found for this signature in database
GPG key ID: EBFFF6F283F3A2B4
9 changed files with 26 additions and 14 deletions

View file

@ -1,9 +1,21 @@
# 0.10 (wip) # 0.10
- breaking: manual spans now take a `explicit_span_ctx` as parent, that - breaking: manual spans now take a `explicit_span_ctx` as parent, that
can potentially be transmitted across processes/machines. It also can potentially be transmitted across processes/machines. It also
is intended to be more compatible with OTEL. is intended to be more compatible with OTEL.
- depopt on unix for TEF timestamps - breaking `trace.subscriber`: timestamps are `int64`ns now, not floats
- breaking `trace`: pass a `string` trace_id in manual spans, which helps
for backends such as opentelemetry. It's also useful for extensions.
- refactor `trace-fuchsia`: full revamp of the library, modularized, using subscriber API
- refactor `trace-tef`: split into exporter,writer,subscriber, using subscriber API
- feat: add `trace.event`, useful for background threads
- feat `trace.subscriber`: add `Span_tbl`, and a depopt on picos_aux
- feat `trace.subscriber`: tee a whole array at once
- feat tef-tldrs: use EMIT_TEF_AT_EXIT
- feat `trace.subscriber`: depopt on unix for timestamps
- refactor `trace-tef`: depopt on unix for TEF timestamps
# 0.9.1 # 0.9.1

View file

@ -4,7 +4,7 @@
(generate_opam_files true) (generate_opam_files true)
(version 0.9.1) (version 0.10)
(source (source
(github c-cube/ocaml-trace)) (github c-cube/ocaml-trace))

View file

@ -1,6 +1,6 @@
# This file is generated by dune, edit dune-project instead # This file is generated by dune, edit dune-project instead
opam-version: "2.0" opam-version: "2.0"
version: "0.9.1" version: "0.10"
synopsis: "A ppx-based preprocessor for trace" synopsis: "A ppx-based preprocessor for trace"
maintainer: ["Simon Cruanes"] maintainer: ["Simon Cruanes"]
authors: ["Simon Cruanes"] authors: ["Simon Cruanes"]

View file

@ -62,7 +62,7 @@ module type S = sig
hmap in the {!explicit_span}'s [meta] field. hmap in the {!explicit_span}'s [meta] field.
{b NOTE} the [parent] argument is now an {!explicit_span_ctx} and not an {b NOTE} the [parent] argument is now an {!explicit_span_ctx} and not an
{!explicit_span} since NEXT_RELEASE. {!explicit_span} since 0.10.
This means that the collector doesn't need to implement contextual storage This means that the collector doesn't need to implement contextual storage
mapping {!span} to scopes, metadata, etc. on its side; everything can be mapping {!span} to scopes, metadata, etc. on its side; everything can be

View file

@ -33,7 +33,7 @@ val set_default_level : Level.t -> unit
val ctx_of_span : explicit_span -> explicit_span_ctx val ctx_of_span : explicit_span -> explicit_span_ctx
(** Turn a span into a span context. (** Turn a span into a span context.
@since NEXT_RELEASE *) @since 0.10 *)
val with_span : val with_span :
?level:Level.t -> ?level:Level.t ->
@ -111,7 +111,7 @@ val enter_manual_span :
@param level @param level
optional level for this span. since 0.7. Default is set via optional level for this span. since 0.7. Default is set via
{!set_default_level}. {!set_default_level}.
@since NEXT_RELEASE *) @since 0.10 *)
val enter_manual_sub_span : val enter_manual_sub_span :
parent:explicit_span -> parent:explicit_span ->
@ -124,7 +124,7 @@ val enter_manual_sub_span :
string -> string ->
explicit_span explicit_span
[@@deprecated "use enter_manual_span"] [@@deprecated "use enter_manual_span"]
(** @deprecated since NEXT_RELEASE, use {!enter_manual_span} *) (** @deprecated since 0.10, use {!enter_manual_span} *)
val enter_manual_toplevel_span : val enter_manual_toplevel_span :
?flavor:[ `Sync | `Async ] -> ?flavor:[ `Sync | `Async ] ->
@ -136,7 +136,7 @@ val enter_manual_toplevel_span :
string -> string ->
explicit_span explicit_span
[@@deprecated "use enter_manual_span"] [@@deprecated "use enter_manual_span"]
(** @deprecated since NEXT_RELEASE, use {!enter_manual_span} *) (** @deprecated since 0.10, use {!enter_manual_span} *)
val exit_manual_span : explicit_span -> unit val exit_manual_span : explicit_span -> unit
(** Exit an explicit span. This can be on another thread, in a fiber or (** Exit an explicit span. This can be on another thread, in a fiber or

View file

@ -6,7 +6,7 @@ type span = int64
type trace_id = string type trace_id = string
(** A bytestring representing a (possibly distributed) trace made of async (** A bytestring representing a (possibly distributed) trace made of async
spans. With opentelemetry this is 16 bytes. spans. With opentelemetry this is 16 bytes.
@since NEXT_RELEASE *) @since 0.10 *)
type user_data = type user_data =
[ `Int of int [ `Int of int
@ -23,7 +23,7 @@ type explicit_span_ctx = {
trace_id: trace_id; (** The trace this belongs to *) trace_id: trace_id; (** The trace this belongs to *)
} }
(** A context, passed around for async traces. (** A context, passed around for async traces.
@since NEXT_RELEASE *) @since 0.10 *)
type explicit_span = { type explicit_span = {
span: span; span: span;

View file

@ -1,6 +1,6 @@
# This file is generated by dune, edit dune-project instead # This file is generated by dune, edit dune-project instead
opam-version: "2.0" opam-version: "2.0"
version: "0.9.1" version: "0.10"
synopsis: synopsis:
"A high-performance backend for trace, emitting a Fuchsia trace into a file" "A high-performance backend for trace, emitting a Fuchsia trace into a file"
maintainer: ["Simon Cruanes"] maintainer: ["Simon Cruanes"]

View file

@ -1,6 +1,6 @@
# This file is generated by dune, edit dune-project instead # This file is generated by dune, edit dune-project instead
opam-version: "2.0" opam-version: "2.0"
version: "0.9.1" version: "0.10"
synopsis: synopsis:
"A simple backend for trace, emitting Catapult/TEF JSON into a file" "A simple backend for trace, emitting Catapult/TEF JSON into a file"
maintainer: ["Simon Cruanes"] maintainer: ["Simon Cruanes"]

View file

@ -1,6 +1,6 @@
# This file is generated by dune, edit dune-project instead # This file is generated by dune, edit dune-project instead
opam-version: "2.0" opam-version: "2.0"
version: "0.9.1" version: "0.10"
synopsis: synopsis:
"A stub for tracing/observability, agnostic in how data is collected" "A stub for tracing/observability, agnostic in how data is collected"
maintainer: ["Simon Cruanes"] maintainer: ["Simon Cruanes"]