Skip to content

feat(agentless)!: vendor rust-tuf crate in libdatadog for release - #2365

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 11 commits into
mainfrom
paullgdc/agentless/vendor_tuf_rust
Aug 19, 2026
Merged

gh-worker-dd-mergequeue-cf854d[bot] merged 11 commits into
mainfrom
paullgdc/agentless/vendor_tuf_rust

Conversation

@paullegranddc

@paullegranddc paullegranddc commented Aug 18, 2026 •

Copy link
Copy Markdown
Collaborator

What does this PR do?

  1. Vendor tuf-rust in libdatadog under the package name libdd-tuf-rust
  2. Apply clippy and fmt lints to the code so that it passes the CI

Motivation

The tuf crate was added as a git dependency to support agentless remote config.
There is a pushed crate for tuf, but we depend on a fork of the main repo (Datadog/rust-tuf) which does not exist as a crate.

Having git dependencies, even if optional prevents pushing to crates.io so we are blocked for releases.
This is vendored under a new name so that we can push the forked code

Vendor the tuf crate from https://github.com/DataDog/rust-tuf at commit
eb129ccad320b11e8bf99d2f0ff2c415a0795ccb into vendor/tuf/, renaming the
package from 'tuf' to 'libdd-tuf-rust' (the [lib] name stays 'tuf' so all
import paths in the codebase remain unchanged).

libdd-remote-config now depends on the local path instead of a git
reference, using a package alias so no import paths need to change:

  tuf = { package = "libdd-tuf-rust", path = "../vendor/tuf", ... }
- Replace deprecated chrono APIs throughout (in both production code and
  tests):
  - `Utc.ymd(y, m, d).and_hms(h, min, s)`
    → `Utc.with_ymd_and_hms(y, m, d, h, min, s).unwrap()`
  - `DateTime::from_utc(NaiveDateTime::from_timestamp(0, 0), Utc)`
    → `DateTime::from_timestamp(0, 0).unwrap()`
  - Remove now-unused `use chrono::NaiveDateTime` import.
- crypto: elide needless explicit lifetime `'a` on `retain_supported_hashes`
- crypto: fix non-canonical `PartialOrd` impls on `PublicKey` and `Signature`
  to delegate to `Ord::cmp` (clippy::non_canonical_partial_ord_impl)
- crypto: replace manual `BuildHasher`/`Hasher` pair in test with
  `BuildHasher::hash_one` (clippy::manual_hash_one)
- metadata: replace `.into_iter().map(|(_k, v)| v)` on a `HashMap` with
  `.into_values()` (clippy::iter_kv_map)
- metadata: fix doc-comment list-continuation indentation (4 items,
  clippy::doc_lazy_continuation)
- lib: fix doc-comment list-continuation indentation (4 items)
- repo_builder: remove redundant `.into_iter()` calls on `Vec` passed to
  `.extend()` (clippy::useless_conversion)
- repository: replace `::std::usize::MAX` with `usize::MAX`
  (clippy::legacy_numeric_constants)
- repository/ephemeral: remove redundant `.into_iter()` (clippy::useless_conversion)
- repository/file_system: add explicit `'_` lifetime to `FileSystemBatchUpdate`
  return type (mismatched_lifetime_syntaxes); remove needless `&` borrows on
  `Path` args to `File::open` (clippy::needless_borrows_for_generic_args)
- repository/http: elide needless `'a` lifetime on `get`; replace
  `io::Error::new(io::ErrorKind::Other, e)` with `io::Error::other(e)`
  (clippy::io_other_error)
Reformat all source files in vendor/tuf/ with the workspace rustfmt
configuration (max_width=100, wrap_comments=true,
format_code_in_doc_comments=true, etc.).

This commit is specific to the libdatadog vendoring and is not intended
for upstream application.
@datadog-datadog-prod-us1

datadog-datadog-prod-us1 Bot commented Aug 18, 2026 •

Copy link
Copy Markdown
Contributor

Tests

⚠️ Warnings

❄️ 1 New flaky test detected

crypto::test::verify_ecdsa_signatures_against_canonical_signed_body from libdd-tuf-rust   View in Datadog
thread 'crypto::test::verify_ecdsa_signatures_against_canonical_signed_body' panicked at vendor\tuf

thread 'crypto::test::verify_ecdsa_signatures_against_canonical_signed_body' panicked at vendor\tuf
ECDSA signature e58379d2785859f8df7e47273c331880a81aae0af7a2ec382a276593123aede2 did not verify: BadSignature(MetadataPath("root"))
note: run with \`RUST_BACKTRACE=1\` environment variable to display a backtrace

View in Flaky Test Management

ℹ️ Info

No other issues found (see more)

🧪 All tests passed

🎯 Code Coverage (details)
• Patch Coverage: 91.82%
• Overall Coverage: 77.92% (+1.54%)

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 80a615d | Docs | View more details | Give us feedback!

These lints only surface when the `unstable_rsa` feature is enabled
(the CI runs `--all-features`, but the previous local clippy run did not).

- Replace three uses of the deprecated `ring::rsa::KeyPair::public_modulus_len()`
  with `key.public().modulus_len()` (per the deprecation notice).
- Remove needless `&` borrows on two array literals passed to
  `Command::args()` (clippy::needless_borrows_for_generic_args).
…y CSV

- .github/workflows/lint.yml: add `-not -path "./vendor/*"` to the
  licensecheck find command, alongside the existing exclusions for
  symbolizer-ffi, datadog-ipc/plugins, and datadog-ipc/tarpc. Vendored
  code carries its own upstream licences and must not be required to
  carry Datadog copyright headers.

- LICENSE-3rdparty.csv: regenerated with `dd-rust-license-tool dump`.
  The old git-sourced `tuf` entry is removed because libdd-tuf-rust is
  now a workspace path dependency (first-party code) and the tool
  correctly omits workspace members from the third-party list.
@paullegranddc paullegranddc changed the title Paullgdc/agentless/vendor tuf rust feat(agentless)!: vendor rust-tuf crate in libdatadog for release Aug 18, 2026
@dd-octo-sts

dd-octo-sts Bot commented Aug 18, 2026 •

Copy link
Copy Markdown
Contributor

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 89.47 MB 89.47 MB 0% (0 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 8.20 MB 8.20 MB 0% (0 B) 👌
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 100.65 MB 100.65 MB 0% (0 B) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.06 MB 11.06 MB 0% (0 B) 👌
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 26.62 MB 26.62 MB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 94.56 KB 94.56 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 180.70 MB 180.69 MB -0% (-8.00 KB) 👌
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 772.47 MB 772.47 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 8.72 MB 8.72 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 94.56 KB 94.56 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 25.64 MB 25.64 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 51.06 MB 51.06 MB 0% (0 B) 👌
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 23.20 MB 23.20 MB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 96.04 KB 96.04 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 185.58 MB 185.57 MB -0% (-8.00 KB) 👌
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 758.91 MB 758.91 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 6.74 MB 6.74 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 96.04 KB 96.04 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 27.58 MB 27.58 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 48.60 MB 48.60 MB 0% (0 B) 👌
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 79.73 MB 79.73 MB 0% (0 B) 👌
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 9.16 MB 9.16 MB 0% (0 B) 👌
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 95.38 MB 95.38 MB 0% (0 B) 👌
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.16 MB 11.16 MB 0% (0 B) 👌

Replace the two late-initialized `let` bindings (`targets_version`,
`snapshot_version`) with a single `let (…, …) = if … { … } else { … }`
expression (clippy::needless_late_init, nightly only).
The crate depends on ring (FFI, assembly) and async I/O helpers that are
not Miri-compatible.  Skipping is done at the crate level with two
complementary guards:

* vendor/tuf/src/lib.rs — inner attribute `#![cfg(not(all(test, miri)))]`
  strips the entire compilation unit when the crate is the direct Miri
  test target (`cfg(test)` is only set on the root crate under test, not
  on dependencies).  This removes all `#[cfg(test)]` modules without
  touching each one individually.

* vendor/tuf/tests/{integration,simple_example}.rs — inner attribute
  `#![cfg(not(miri))]` on each integration-test file.  These are
  separate crates compiled with `cfg(test)=true` themselves, so the
  lib.rs guard above would not reach them.
@pr-commenter

pr-commenter Bot commented Aug 18, 2026 •

Copy link
Copy Markdown

Benchmarks

Comparison

Benchmark execution time: 2026-08-18 23:00:18

Comparing candidate commit 80a615d in PR branch paullgdc/agentless/vendor_tuf_rust with baseline commit aab513c in branch main.

Found 0 performance improvements and 4 performance regressions! Performance is the same for 164 metrics, 10 unstable metrics.

Explanation

This is an A/B test comparing a candidate commit's performance against that of a baseline commit. Performance changes are noted in the tables below as:

  • 🟩 = significantly better candidate vs. baseline
  • 🟥 = significantly worse candidate vs. baseline

We compute a confidence interval (CI) over the relative difference of means between metrics from the candidate and baseline commits, considering the baseline as the reference.

If the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD), the change is considered significant.

Feel free to reach out to #apm-benchmarking-platform on Slack if you have any questions.

More details about the CI and significant changes

You can imagine this CI as a range of values that is likely to contain the true difference of means between the candidate and baseline commits.

CIs of the difference of means are often centered around 0%, because often changes are not that big:

---------------------------------(------|---^--------)-------------------------------->
                              -0.6%    0%  0.3%     +1.2%
                                 |          |        |
         lower bound of the CI --'          |        |
sample mean (center of the CI) -------------'        |
         upper bound of the CI ----------------------'

As described above, a change is considered significant if the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD).

For instance, for an execution time metric, this confidence interval indicates a significantly worse performance:

----------------------------------------|---------|---(---------^---------)---------->
                                       0%        1%  1.3%      2.2%      3.1%
                                                  |   |         |         |
       significant impact threshold --------------'   |         |         |
                      lower bound of CI --------------'         |         |
       sample mean (center of the CI) --------------------------'         |
                      upper bound of CI ----------------------------------'

scenario:alloc_free/system/4096

  • 🟥 execution_time [+11.529ns; +11.711ns] or [+14.089%; +14.313%]

scenario:no_profiler/short_circuit/4096

  • 🟥 execution_time [+9.582ns; +9.710ns] or [+10.198%; +10.334%]

scenario:profiler_attached/fast_path_system/4096

  • 🟥 execution_time [+4.116ns; +4.262ns] or [+4.086%; +4.230%]

scenario:profiler_attached/slow_path_system/4096

  • 🟥 execution_time [+18.529ns; +18.636ns] or [+14.434%; +14.517%]

Candidate

Omitted due to size.

Baseline

Omitted due to size.

The ECDSA canonical-JSON fixture (tests/ecdsa/ecdsa_root.canonical)
embeds PEM-encoded public keys whose internal LF newlines are part of
the signed bytes.  Git's autocrlf on Windows converts those LFs to CRLF
on checkout, producing different bytes from what the signature was
computed over, causing the verify_ecdsa_signatures_against_canonical_signed_body
test to panic with "BadSignature".

Add a vendor/tuf/.gitattributes that marks all files under tests/ecdsa/,
tests/ed25519/, and tests/rsa/ as binary so Git never touches their line
endings.
@paullegranddc
paullegranddc marked this pull request as ready for review August 18, 2026 14:15
@paullegranddc
paullegranddc requested review from a team as code owners August 18, 2026 14:15

@datadog-datadog-prod-us1 datadog-datadog-prod-us1 Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Datadog Autotest: FAIL

The vendoring switch cannot currently be released: libdd-remote-config’s path dependency lacks a publication version, while the copied TUF README and license symlinks resolve to nonexistent files. Cargo packaging therefore fails before the agentless crates can be published.

Open Bits AI session

🤖 Datadog Autotest · Commit 535a9da · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest

Comment thread libdd-remote-config/Cargo.toml Outdated
hashbrown = "0.15"
# branch = "opw-develop"
tuf = { git = "https://github.com/DataDog/rust-tuf/", rev = "eb129ccad320b11e8bf99d2f0ff2c415a0795ccb", default-features = false, optional = true }
tuf = { package = "libdd-tuf-rust", path = "../vendor/tuf", default-features = false, optional = true }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Add the required publication version

A future release containing agentless remote config cannot package and publish libdd-remote-config.

Assertion details
  • Input: Packaging libdd-remote-config for publication, even though the TUF dependency is optional.
  • Expected: Declare the vendored package's registry version alongside its local path so Cargo can rewrite the dependency for publication.
  • Actual: The new normal, optional path dependency has no version. Cargo requires a version for dependencies when packaging a publishable crate, and the repository's other normal path dependencies follow that rule.
Suggested change
tuf = { package = "libdd-tuf-rust", path = "../vendor/tuf", default-features = false, optional = true }
tuf = { package = "libdd-tuf-rust", version = "0.3.0-beta10", path = "../vendor/tuf", default-features = false, optional = true }

Was this helpful? React 👍 or 👎
🤖 Datadog Autotest · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest

Comment thread vendor/tuf/README.md Outdated
@@ -0,0 +1 @@
../README.md No newline at end of file

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Include valid package metadata files

Packaging the new libdd-tuf-rust crate fails before it can be released.

Assertion details
  • Input: The release workflow packages the newly added libdd-tuf-rust workspace member.
  • Expected: Replace all three broken symlinks with the corresponding upstream README and license contents so the published crate contains readable metadata and licensing material.
  • Actual: README.md, LICENSE-APACHE, and LICENSE-MIT still point one level upward as they did in the original rust-tuf layout. Under vendor/tuf those targets resolve to nonexistent vendor/README.md and vendor/LICENSE-* files.

Was this helpful? React 👍 or 👎
🤖 Datadog Autotest · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 535a9da309

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread vendor/tuf/README.md Outdated
@@ -0,0 +1 @@
../README.md No newline at end of file

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Point the vendored metadata symlinks at existing files

On Unix checkouts, this symlink resolves to vendor/README.md, which does not exist; the two added license symlinks similarly resolve to missing vendor/LICENSE-APACHE and vendor/LICENSE-MIT. Because vendor/tuf/Cargo.toml declares this path as its package readme, cargo package -p libdd-tuf-rust exits with readme README.md does not appear to exist, blocking the release workflow this change is intended to enable and omitting the vendored license texts. Copy the referenced upstream files into the package or adjust the links to real repository files.

Useful? React with 👍 / 👎.

- name: Check licenses
# Exclude symbolizer-ffi from the checks (mostly imported code)
run: '! find . \( -name "*.rs" -o -name "*.c" -o -name "*.sh" \) -not -path "./symbolizer-ffi/*" -not -path "./datadog-ipc/plugins/*" -not -path "./datadog-ipc/tarpc/*" -print0 | xargs -0 licensecheck -c ".*" | grep -v "Apache License 2.0"'
run: '! find . \( -name "*.rs" -o -name "*.c" -o -name "*.sh" \) -not -path "./symbolizer-ffi/*" -not -path "./datadog-ipc/plugins/*" -not -path "./datadog-ipc/tarpc/*" -not -path "./vendor/*" -print0 | xargs -0 licensecheck -c ".*" | grep -v "Apache License 2.0"'

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Keep vendored source in the license-header check

This new exclusion hides every file under vendor/ from the license-header job, and all 22 added Rust files under vendor/tuf lack the required Apache 2.0 header. The repository convention applies to all source files except symbolizer-ffi, so either add the required headers and keep these files covered by the check or narrow the exception without bypassing that invariant.

AGENTS.md reference: AGENTS.md:L90-L94

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, every vendored crate should be excluded, this is voluntary

Comment thread vendor/tuf/Cargo.toml
[package]
name = "libdd-tuf-rust"
edition = "2021"
version = "0.3.0-beta10"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Start the new crate at the release workflow's initial version

When the inspected release-proposal-dispatch.yml flow targets libdd-remote-config, publication-order.sh now includes this new publishable dependency, but there is no libdd-tuf-rust-v0.3.0-beta10 tag. The workflow therefore enters its initial-release branch and explicitly exits unless the manifest version is 0.1.0 (lines 586–598), so setting the new crate's initial version to the upstream 0.3.0-beta10 blocks release proposals before publishing. Initialize it at the version required by the workflow or seed/handle the imported version explicitly.

Useful? React with 👍 / 👎.

@morrisonlevi

Copy link
Copy Markdown
Contributor

/merge

@gh-worker-devflow-routing-ef8351

gh-worker-devflow-routing-ef8351 Bot commented Aug 19, 2026 •

Copy link
Copy Markdown

View all feedbacks in Devflow UI.

2026-08-19 02:22:12 UTC ℹ️ Start processing command /merge


2026-08-19 02:22:16 UTC ℹ️ MergeQueue: pull request added to the queue

The expected merge time in main is approximately 60m (p90).


2026-08-19 03:11:09 UTC ℹ️ MergeQueue: This merge request was merged

@gh-worker-dd-mergequeue-cf854d
gh-worker-dd-mergequeue-cf854d Bot merged commit 9ea9268 into main Aug 19, 2026
90 checks passed
@gh-worker-dd-mergequeue-cf854d
gh-worker-dd-mergequeue-cf854d Bot deleted the paullgdc/agentless/vendor_tuf_rust branch August 19, 2026 03:11
paullegranddc added a commit that referenced this pull request Aug 19, 2026
…#2374)

# Motivation

Using the libdatadog release system for vendored crate might be
problematic, so this PR reverts the vendoring and instead depends on the
new package we pushed to crates.io from the forked repo
hoolioh added a commit that referenced this pull request Aug 26, 2026
…ker, libdd-data-pipeline, li... (#2409)

# Release proposal for libdd-capabilities-impl, libdd-crashtracker,
libdd-data-pipeline, libdd-http-client, libdd-ipc, libdd-library-config,
libdd-otel-thread-ctx, libdd-remote-config, libdd-shared-runtime,
libdd-telemetry, libdd-tracer-flare and their dependencies

This PR contains version bumps based on public API changes and commits
since last release.

## libdd-gotter
**Next version:** `1.1.0`
**Semver bump:** `minor`
**Tag:** `libdd-gotter-v1.1.0`

### Commits

- fix(crashtracker): fix vdso recognition during GOT patching on musl
(#2379)

## libdd-ipc-macros
**Next version:** `1.0.0`
**Semver bump:** `major`
**Tag:** `libdd-ipc-macros-v1.0.0`

**Warning:** this is an initial release. Please verify that the version
and commits included are correct.


## libdd-trace-protobuf
**Next version:** `5.0.0`
**Semver bump:** `major`
**Tag:** `libdd-trace-protobuf-v5.0.0`

### Commits

- chore(trace-protobuf)!: sync span.proto with datadog-agent (#2356)

## libdd-library-config
**Next version:** `4.0.0`
**Semver bump:** `major`
**Tag:** `libdd-library-config-v4.0.0`

### ⚠️ major bump forced due to:

- `libdd-trace-protobuf`: ^4.0.0 → ^5.0.0

### Commits

- fix(library-config): omit absent process context attributes (#2337)
- refactor: migrate to workspace dependencies, phase 4 (#2296)
- refactor: migrate to workspace dependencies, phase 3 (#2283)
- refactor: consolidate core dependencies at workspace level (phase 1)
(#2253)
- fix(library-config): update Linux process context (#2237)
- refactor(library-config): reorganize Linux process context (#2228)
- feat(library-config): otel process context reader (#2176)

## libdd-remote-config
**Next version:** `4.0.0`
**Semver bump:** `major`
**Tag:** `libdd-remote-config-v4.0.0`

### ⚠️ major bump forced due to:

- `libdd-trace-protobuf`: ^4.0.1 → ^5.0.0

### Commits

- feat(rc): add overrides for RC config/director roots (#2404)
- fix(rc): avoid depending on the crypto nodejs API for remote config
(#2407)
- fix(rc)!: fixup rc to be wasm compatible (#2393)
- feat: Revert vendoring of tuf-rust (#2365), use new crates.io package
(#2374)
- feat(agentless)!: vendor rust-tuf crate in libdatadog for release
(#2365)
- chore(rc)!: add DEBUG product (#2306)
- feat(remote-config)!: agentless RC fetcher (#2112)

## libdd-trace-utils
**Next version:** `11.0.0`
**Semver bump:** `major`
**Tag:** `libdd-trace-utils-v11.0.0`

### ⚠️ major bump forced due to:

- `libdd-trace-protobuf`: ^4.0.1 → ^5.0.0

### Commits

- feat(compression): use zrip for wasm targets (#2386)
- fix(trace-utils)!: fix forward compatibility for string streaming
(#2295)

## libdd-tracer-flare
**Next version:** `2.0.0`
**Semver bump:** `major`
**Tag:** `libdd-tracer-flare-v2.0.0`

### ⚠️ major bump forced due to:

- `libdd-remote-config`: ^3.0.0 → ^4.0.0
- `libdd-trace-utils`: ^10.0.0 → ^11.0.0

### Commits

- feat(remote-config)!: agentless RC fetcher (#2112)

## libdd-crashtracker
**Next version:** `2.0.1`
**Semver bump:** `patch`
**Tag:** `libdd-crashtracker-v2.0.1`

### Commits

- fix(crashtracker): hold the collector connection open through
symbolization (#2384)
- fix(crashtracking): stop resolving thread symbols with libunwind in
the receiver (#2361)

## libdd-data-pipeline
**Next version:** `9.0.0`
**Semver bump:** `major`
**Tag:** `libdd-data-pipeline-v9.0.0`

### ⚠️ major bump forced due to:

- `libdd-trace-protobuf`: ^4.0.1 → ^5.0.0
- `libdd-trace-utils`: ^10.1.0 → ^11.0.0

### Commits

- feat(compression): use zrip for wasm targets (#2386)

## libdd-ipc
**Next version:** `1.0.0`
**Semver bump:** `major`
**Tag:** `libdd-ipc-v1.0.0`

**Warning:** this is an initial release. Please verify that the version
and commits included are correct.


## libdd-trace-normalization
**Next version:** `4.0.0`
**Semver bump:** `major`
**Tag:** `libdd-trace-normalization-v4.0.0`

### ⚠️ major bump forced due to:

- `libdd-trace-protobuf`: ^4.0.1 → ^5.0.0


## libdd-trace-obfuscation
**Next version:** `7.0.0`
**Semver bump:** `major`
**Tag:** `libdd-trace-obfuscation-v7.0.0`

### ⚠️ major bump forced due to:

- `libdd-trace-protobuf`: ^4.0.1 → ^5.0.0
- `libdd-trace-utils`: ^10.1.0 → ^11.0.0


## libdd-trace-stats
**Next version:** `8.0.0`
**Semver bump:** `major`
**Tag:** `libdd-trace-stats-v8.0.0`

### ⚠️ major bump forced due to:

- `libdd-trace-protobuf`: ^4.0.1 → ^5.0.0
- `libdd-trace-utils`: ^10.1.0 → ^11.0.0

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: hoolioh <107922352+hoolioh@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants