Skip to content

Regenerate proto bindings with ProtoBuf.jl 1.3#127

Merged
krynju merged 3 commits into
oolong-dev:masterfrom
krynju:regen-protobuf-1.3
May 25, 2026
Merged

Regenerate proto bindings with ProtoBuf.jl 1.3#127
krynju merged 3 commits into
oolong-dev:masterfrom
krynju:regen-protobuf-1.3

Conversation

@krynju

@krynju krynju commented May 25, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Regenerates all *_pb.jl files in src/proto with ProtoBuf.jl 1.3 codegen, removing the older version of ProtoBuf.jl ... was deprecated warning.
  • Adds a compat shim in OpenTelemetryProto.jl so the package still loads against the full ProtoBuf = "1" compat range. ProtoBuf 1.3 widened message_done(d) into message_done(d, endpos, group); on older ProtoBuf the 3-arg form is defined as a delegate to the 1-arg one. Uses hasmethod feature detection rather than a version check.
  • Public API surface is preserved: struct names, field names, and exports are unchanged because the new codegen exposes the same names via const Foo = var"##Stub#Foo"{...} aliases.

Also bumps OpenTelemetryProto from 0.20.0 to 0.20.1 and adds CodecZlib/Downloads/Tar to src/proto/dev/Project.toml (already imported by gen.jl).

Fixes #123

Test plan

  • Load OpenTelemetryProto against ProtoBuf 1.3.0 — no deprecation warning, roundtrip encode/decode of a nested ExportTraceServiceRequest succeeds.
  • Load OpenTelemetryProto against ProtoBuf 1.2.2 — shim engages, same roundtrip succeeds.
  • CI green.

🤖 Generated with Claude Code

krynju and others added 3 commits May 25, 2026 10:21
Removes the "older version of ProtoBuf.jl ... was deprecated" warning
emitted when loading the package on ProtoBuf 1.3+.

Adds a compat shim in OpenTelemetryProto.jl: ProtoBuf 1.3 widened
`message_done(d)` to `message_done(d, endpos, group)`. On older ProtoBuf
the 3-arg form is defined as a delegate to the 1-arg one (OTLP is proto3
so endpos/group are unused). Uses `hasmethod` feature detection so the
existing `ProtoBuf = "1"` compat range keeps working.

Public API (struct names, fields, exports) is preserved via const
aliases generated for the new ##Stub# parametric types.

Fixes oolong-dev#123

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Covers scalar/array/kvlist AnyValue, nested ExportTraceServiceRequest
and ExportLogsServiceRequest, and the unknown-field skip path that
exercises the regenerated decoders' `Base.skip` call site.

Verified passing on ProtoBuf 1.0.16, 1.2.2 and 1.3.0.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Adds an ExportMetricsServiceRequest roundtrip with Sum (with attributes,
AGGREGATION_TEMPORALITY_CUMULATIVE, is_monotonic), Histogram (count,
sum, bucket_counts, explicit_bounds, min/max) and Gauge (as_double).
Exercises the largest schema in the OTLP set.

Verified 66/66 on ProtoBuf 1.0.16, 1.2.2 and 1.3.0.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@krynju krynju merged commit 55d93ae into oolong-dev:master May 25, 2026
4 checks passed
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.

TODO: regenerate protobuf definitions for ProtoBuf 1.3

1 participant