Bump libdatadog to 36.0.0.1.0#5928
Conversation
🎉 All green!🧪 All tests passed 🎯 Code Coverage (details) 🔗 Commit SHA: cb494a1 | Docs | Datadog PR Page | Give us feedback! |
7ce8a0a to
df1e46b
Compare
BenchmarksBenchmark execution time: 2026-06-24 12:05:43 Comparing candidate commit cb494a1 in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 48 metrics, 1 unstable metrics.
|
df1e46b to
3a259e7
Compare
Bump the pinned libdatadog version in all gemfiles/*.lock to match the gemspec, so the frozen-lockfile CI (#5831) resolves. Also refresh the sha256 checksums in the one lockfile that records a CHECKSUMS section.
tools/yard.gemfile uses `gemspec path: '..'`, so the gemspec bump also applies to the YARD bundle. yard.yml runs bundle install with BUNDLE_GEMFILE=tools/yard.gemfile and BUNDLE_FROZEN=true, so the frozen tools/yard.gemfile.lock must pin the same version or the release deploy fails in Bundler.
TEMPORARY WORKAROUND. libdatadog v36's vendored common.h regressed its header dedup and now emits duplicate typedefs: forward + full-struct collisions for ddog_prof_EncodedProfile, ddog_prof_StringId and OpaqueStringId, plus exact-duplicate opaque typedefs for ddog_prof_StringId2, ddog_prof_MappingId2 and ddog_prof_FunctionId2. These are benign at runtime, but under DATADOG_GEM_CI the extensions compile with -Werror, so the -Wtypedef-redefinition C11 warnings become fatal and break crashtracker.o in both the libdatadog_api and profiling native extensions. Append -Wno-error=typedef-redefinition (keeping it a warning, not an error) to both affected extconfs, gated on DATADOG_GEM_CI like the -Werror it relaxes. Remove this once a fixed common.h ships in libdatadog/libdatadog-rb.
78ed9bc to
c6cac23
Compare
Root causelibdatadog v36 intentionally changed FFE semantics: an invalid/unsupported per-flag config now resolves to caller-default instead of error.
EffectSystem tests
ActionNot a dd-trace-rb or libdatadog defect — system-tests must be updated to the v36 caller-default semantics (owned by FFE team, mirroring ffe-system-test-data#15). Until then, either update/relax those two tests or gate them off for the Ruby weblog so the libdatadog 36 bump can land. |
…36-ffe-parse-error-rb fix(openfeature): map invalid FFE configs to parse errors
Typing analysisNote: Ignored files are excluded from the next sections. Untyped methodsThis PR introduces 2 partially typed methods, and clears 1 partially typed method. It decreases the percentage of typed methods from 65.53% to 65.52% (-0.01%). Partially typed methods (+2-1)❌ Introduced:If you believe a method or an attribute is rightfully untyped or partially typed, you can add |

What does this PR do?
Bumps the
libdatadogdependency from~> 35.0.0.1.0to~> 36.0.0.1.0, indatadog.gemspecand the matchingLIBDATADOG_VERSIONconstant inext/libdatadog_extconf_helpers.rb(kept in sync byspec/datadog/core/libdatadog_extconf_helpers_spec.rb), and updates allgemfiles/*.lockplustools/yard.gemfile.lockto match.Motivation:
Pick up the libdatadog 36.0.0 release.
Change log entry
None. (Internal dependency bump; no user-visible behavior change.)
Additional Notes:
Bump libdatadog to 36.0.0.1.0— gemspec + extconf constant + allgemfiles/*.lock(constraint, resolved version, per-platform specs) plus therefreshed
sha256checksums in the one lockfile that records aCHECKSUMSsection, using the values published on RubyGems.org.
Update YARD lockfile for libdatadog 36.0.0.1.0—tools/yard.gemfileinherits the gemspec via
gemspec path: '..', andyard.ymlruns withBUNDLE_FROZEN=true, so its frozen lockfile must pin the same version.gemfiles/*.lockare updated in this PR (not left to the bot). Since Use frozen lockfiles in CI #5831made CI use frozen lockfiles, the pinned
libdatadogversion must alreadymatch in every lockfile or
bundle installfails.Known issue + temporary stopgap
libdatadog v36's vendored
common.hregressed its header dedup and now shipsduplicate typedefs (forward + full-struct collisions for
ddog_prof_EncodedProfile,ddog_prof_StringId,OpaqueStringId, andexact-duplicate opaque typedefs for
ddog_prof_StringId2,ddog_prof_MappingId2,ddog_prof_FunctionId2). These are benign at runtime,but under
DATADOG_GEM_CI=truethe native extensions compile with-Werror,so the
-Wtypedef-redefinition(C11) warnings become fatal and breakcrashtracker.oin both thelibdatadog_apiand profiling native extensions.As a temporary stopgap, the final commit appends
-Wno-error=typedef-redefinition(keeping it a warning, not an error) to theaffected extconfs, gated on
DATADOG_GEM_CIlike the-Werrorit relaxes. Aproper fix — restoring the header dedup so
common.hno longer emits duplicatetypedefs — is being pursued upstream in libdatadog / libdatadog-rb; this
suppression should be removed once a fixed header ships.
How to test the change?
CI (36.0.0.1.0 is published to RubyGems.org). Locally:
DATADOG_GEM_CI=true bundle exec rake clean compile— fails with fatal-Wtypedef-redefinitionerrors after the bump-only commits, and succeeds afterthe stopgap commit.
Note
One of three coordinated changes for the libdatadog v36 duplicate-typedef header issue (increasing order of permanence):
-Wno-error=typedef-redefinitionstopgap.36.0.0.1.1, without waiting for a libdatadog release. Once consumed, the stopgap here can be dropped.dedup_headers: makescommon.hclean by construction; the durable fix.