From ebcb31e657b2cb239cf746496fd4ec27b279304b Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Thu, 22 Oct 2026 00:26:58 +0200 Subject: [PATCH 1/8] [RELEASE] Release opentelemetry-cpp 1.30.0 --- CHANGELOG.md | 2 ++ CMakeLists.txt | 2 +- MODULE.bazel | 2 +- api/include/opentelemetry/version.h | 2 +- sdk/include/opentelemetry/sdk/version/version.h | 2 +- sdk/src/version/version.cc | 6 +++--- tbump.toml | 2 +- 7 files changed, 10 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d51988d4d..76029a687a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,8 @@ Increment the: ## [Unreleased] +## [1.30.0] 2026-10-22 + * [API/SDK] Add ASCII helpers and remove regex from InstrumentMetaDataValidator [#4715](https://github.com/open-telemetry/opentelemetry-cpp/pull/4715) diff --git a/CMakeLists.txt b/CMakeLists.txt index e26f064a25..789a7fb446 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,7 @@ if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.20.0") endif() set(OPENTELEMETRY_VERSION_NUMBER "1.30.0") -set(OPENTELEMETRY_VERSION_SUFFIX "-dev") +set(OPENTELEMETRY_VERSION_SUFFIX "") set(OPENTELEMETRY_VERSION "${OPENTELEMETRY_VERSION_NUMBER}${OPENTELEMETRY_VERSION_SUFFIX}") diff --git a/MODULE.bazel b/MODULE.bazel index 742a8c2d9a..eafa27cef1 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -3,7 +3,7 @@ module( name = "opentelemetry-cpp", - version = "1.30.0-dev", + version = "1.30.0", repo_name = "io_opentelemetry_cpp", ) diff --git a/api/include/opentelemetry/version.h b/api/include/opentelemetry/version.h index 3ffaadb732..f2f5c856d7 100644 --- a/api/include/opentelemetry/version.h +++ b/api/include/opentelemetry/version.h @@ -12,7 +12,7 @@ #endif // NOLINTBEGIN(cppcoreguidelines-macro-to-enum) -#define OPENTELEMETRY_VERSION "1.30.0-dev" +#define OPENTELEMETRY_VERSION "1.30.0" #define OPENTELEMETRY_VERSION_MAJOR 1 #define OPENTELEMETRY_VERSION_MINOR 30 #define OPENTELEMETRY_VERSION_PATCH 0 diff --git a/sdk/include/opentelemetry/sdk/version/version.h b/sdk/include/opentelemetry/sdk/version/version.h index 504f73b948..13fbe99a68 100644 --- a/sdk/include/opentelemetry/sdk/version/version.h +++ b/sdk/include/opentelemetry/sdk/version/version.h @@ -3,7 +3,7 @@ #pragma once -#define OPENTELEMETRY_SDK_VERSION "1.30.0-dev" +#define OPENTELEMETRY_SDK_VERSION "1.30.0" #include "opentelemetry/version.h" diff --git a/sdk/src/version/version.cc b/sdk/src/version/version.cc index 9230830b98..5b84b34821 100644 --- a/sdk/src/version/version.cc +++ b/sdk/src/version/version.cc @@ -14,16 +14,16 @@ namespace version const int major_version = 1; const int minor_version = 30; const int patch_version = 0; -const char *pre_release = "dev"; +const char *pre_release = ""; const char *build_metadata = "none"; const char *short_version = "1.30.0"; -const char *full_version = "1.30.0-dev"; +const char *full_version = "1.30.0"; /** * Release date. * For published releases: YYYY-MM-DD * For -dev releases: empty string */ -const char *build_date = ""; +const char *build_date = "2026-10-22"; } // namespace version } // namespace sdk OPENTELEMETRY_END_NAMESPACE diff --git a/tbump.toml b/tbump.toml index e6be57215a..cd72cb4f21 100644 --- a/tbump.toml +++ b/tbump.toml @@ -21,7 +21,7 @@ github_url = "https://github.com/open-telemetry/opentelemetry-cpp" [version] -current = "1.30.0-dev" +current = "1.30.0" # Example of a semver regexp. # Make sure this matches current_version before From c4a8fd3f3ebfe49acf976672ebd1ca1274b8dddf Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Thu, 22 Oct 2026 01:19:58 +0200 Subject: [PATCH 2/8] CHANGELOG --- CHANGELOG.md | 362 +++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 264 insertions(+), 98 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 76029a687a..a7c1c4fa15 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,138 +17,300 @@ Increment the: ## [1.30.0] 2026-10-22 -* [API/SDK] Add ASCII helpers and remove regex from InstrumentMetaDataValidator - [#4715](https://github.com/open-telemetry/opentelemetry-cpp/pull/4715) +* [RELEASE] Bump main branch to 1.30.0-dev + [#4563](https://github.com/open-telemetry/opentelemetry-cpp/pull/4563) -* [SDK] Release provider mutexes before construction-failure diagnostics so - custom log handlers can retrieve cached or noop tracers, loggers, and meters - from the same provider without deadlocking. - [#4693](https://github.com/open-telemetry/opentelemetry-cpp/issues/4693) - -* [SDK] Fix disabled Tracer StartSpan noop behavior - [#4710](https://github.com/open-telemetry/opentelemetry-cpp/pull/4710) +* [BENCHMARK] Add probability and composite sampler benchmarks + [#4569](https://github.com/open-telemetry/opentelemetry-cpp/pull/4569) -* [API] Preserve a valid parent SpanContext in spans returned by the no-op tracer. - [#4711](https://github.com/open-telemetry/opentelemetry-cpp/issues/4711) +* [API] Remove regex from trace_state.h + [#4570](https://github.com/open-telemetry/opentelemetry-cpp/pull/4570) -* [SDK] Preserve the default unlimited timeout when batch span and log record - processors shut down their exporters. - [#4686](https://github.com/open-telemetry/opentelemetry-cpp/pull/4686) +* [SDK] Fix span-limit compilation on 32-bit platforms + [#4573](https://github.com/open-telemetry/opentelemetry-cpp/pull/4573) -* [CODE HEALTH] Prevent `std::out_of_range` escaping `noexcept` substr callers. - [#4562](https://github.com/open-telemetry/opentelemetry-cpp/pull/4562) +* [CODE HEALTH] Fix typos in comments and docs + [#4572](https://github.com/open-telemetry/opentelemetry-cpp/pull/4572) -* [METRICS SDK] Enforce a runtime minimum scale of `-11` for - `Base2ExponentialHistogramAggregation`, so a recording that spans the full - double range no longer downscales without end. - [#4353](https://github.com/open-telemetry/opentelemetry-cpp/pull/4353) +* Bump curl from 8.21.0.bcr.1 to 8.21.0.bcr.2 + [#4578](https://github.com/open-telemetry/opentelemetry-cpp/pull/4578) -* [SDK] Remove TracerConfig copy from Tracer - [#4712](https://github.com/open-telemetry/opentelemetry-cpp/pull/4712) +* Bump github/codeql-action/init from 4.37.9 to 4.38.0 + [#4577](https://github.com/open-telemetry/opentelemetry-cpp/pull/4577) -* [LOGS] Fix undefined behavior in `Logger::EmitLogRecord()` when a logger is - enabled (e.g. via `LoggerProvider::UpdateLoggerConfigurator()`) after - `CreateLogRecord()` was called while it was still disabled. The disabled - path previously returned a `NoopLogRecord`, which is not the SDK's internal - `Recordable`; `EmitLogRecord()` re-checks the enabled state at emit time, so - such a record could reach its unconditional `static_cast` and - then `MultiLogRecordProcessor::OnEmit()`'s own `static_cast`, both undefined - behavior. `CreateLogRecord()` now returns an empty `MultiRecordable` while - disabled instead, which is a safe target either way: every `Set*` call and - `ReleaseRecordable()` on it simply loop over zero wrapped recordables, so - the record is dropped without reaching a real processor. No API or ABI - change. - [#4624](https://github.com/open-telemetry/opentelemetry-cpp/pull/4624) +* [BENCHMARK] Add cases for nested samplers and multiple tracestate keys + [#4576](https://github.com/open-telemetry/opentelemetry-cpp/pull/4576) -* [CMAKE] Add pkg-config install consumer tests for Ubuntu system packages - [#4503](https://github.com/open-telemetry/opentelemetry-cpp/issues/4503) -* [METRICS SDK] Drop aggregation behaves as a no-op, prevent duplicate metric recording - from conflicting streams, and warn if stream conflicts were configured - [#4515](https://github.com/open-telemetry/opentelemetry-cpp/pull/4515) +* [SDK] Add missing cstdint include to predicate_factory.h + [#4574](https://github.com/open-telemetry/opentelemetry-cpp/pull/4574) -* [EXAMPLES] Fix random attribute selection in metrics foo example to include - all key-value pairs +* [BUG] Fix random attribute selection in metrics foo example [#4585](https://github.com/open-telemetry/opentelemetry-cpp/pull/4585) -* [SDK] Fix span-limit environment variable handling compilation on 32-bit - platforms (#4573) - [#4573](https://github.com/open-telemetry/opentelemetry-cpp/pull/4573) -* [API] Remove regex from trace_state.h - [#4570](https://github.com/open-telemetry/opentelemetry-cpp/pull/4570) -* [SDK] Add `MeterProvider::UpdateMeterConfigurator()` and example. Instruments - observe the enabled state of the Meter that created them, so they do not - have to be recreated. Data recorded before a Meter is disabled is still - exported - [#4313](https://github.com/open-telemetry/opentelemetry-cpp/pull/4313) -* [API] `TraceState::Set` now overwrites an entry with the same key, and - `TraceState::FromHeader` discards duplicate keys. +* [CODE HEALTH] Add missing include in aggregation_config.h + [#4567](https://github.com/open-telemetry/opentelemetry-cpp/pull/4567) + +* [CI] Add renovate configuration + [#4568](https://github.com/open-telemetry/opentelemetry-cpp/pull/4568) + +* Pin otel/cpp_format_tools Docker tag to 45d4342 + [#4588](https://github.com/open-telemetry/opentelemetry-cpp/pull/4588) + +* Update dependency rules_cc to v0.2.25 + [#4590](https://github.com/open-telemetry/opentelemetry-cpp/pull/4590) + +* [CI] finish switch to renovate + [#4593](https://github.com/open-telemetry/opentelemetry-cpp/pull/4593) + +* pin runner images + [#4594](https://github.com/open-telemetry/opentelemetry-cpp/pull/4594) + +* Update dependency rules_foreign_cc to v0.16.0 + [#4592](https://github.com/open-telemetry/opentelemetry-cpp/pull/4592) + +* Update all [patches] + [#4591](https://github.com/open-telemetry/opentelemetry-cpp/pull/4591) + +* [DEVCONTAINER] Pin to the ubuntu 24.04 base image and pin cmake + [#4595](https://github.com/open-telemetry/opentelemetry-cpp/pull/4595) + +* [DOCKER] specify image versions + [#4599](https://github.com/open-telemetry/opentelemetry-cpp/pull/4599) + +* Update infra [minor] + [#4597](https://github.com/open-telemetry/opentelemetry-cpp/pull/4597) + +* [CI] Require approval for major 'docker' updates + [#4598](https://github.com/open-telemetry/opentelemetry-cpp/pull/4598) + +* Update dependency bazel to v8.8.0 + [#4605](https://github.com/open-telemetry/opentelemetry-cpp/pull/4605) + +* Update all [patches] + [#4607](https://github.com/open-telemetry/opentelemetry-cpp/pull/4607) + +* [BAZEL] use default bazel version + [#4606](https://github.com/open-telemetry/opentelemetry-cpp/pull/4606) + +* Update dependency abseil-cpp to v20260526 + [#4602](https://github.com/open-telemetry/opentelemetry-cpp/pull/4602) + +* [BUILD] Build break with bazel for configuration examples + [#4611](https://github.com/open-telemetry/opentelemetry-cpp/pull/4611) + +* Update dependency grpc to v1.84.0 + [#4612](https://github.com/open-telemetry/opentelemetry-cpp/pull/4612) + +* Update dependency googletest to v1.18.0.bcr.1 + [#4601](https://github.com/open-telemetry/opentelemetry-cpp/pull/4601) + +* [API] TraceState::Set overwrites an entry with the same key [#4586](https://github.com/open-telemetry/opentelemetry-cpp/pull/4586) -* [SDK] Add a missing `` include to `predicate_factory.h`, which - uses `uint8_t` without including the header that declares it. This relied - on a transitive include from elsewhere in the translation unit and failed - to compile standalone on newer standard library implementations. - [#4574](https://github.com/open-telemetry/opentelemetry-cpp/pull/4574) +* Update dependency abseil-cpp to v20260817 + [#4613](https://github.com/open-telemetry/opentelemetry-cpp/pull/4613) -* [CI] Enable the bugprone-unhandled-exception-at-new check - [#4689](https://github.com/open-telemetry/opentelemetry-cpp/pull/4689) +* Update dependency protobuf to v36 + [#4615](https://github.com/open-telemetry/opentelemetry-cpp/pull/4615) -* [EXPORTER ETW] Fix `PropertyValue` string conversions that pre-sized a - `vector` then `push_back`'d (doubling length) and that built - `std::string` from `string_view::data()` without using the view length - (reading past non-NUL-terminated views). Copies now use length-aware - conversion. No API or ABI change. - [#4347](https://github.com/open-telemetry/opentelemetry-cpp/issues/4347) +* Update actions/upload-artifact action to v7 + [#4620](https://github.com/open-telemetry/opentelemetry-cpp/pull/4620) -* [CODE HEALTH] Fix bugprone-exception-escape in NoopTracer::StartSpan() - [#4673](https://github.com/open-telemetry/opentelemetry-cpp/pull/4673) +* Update otel/opentelemetry-collector Docker tag to v0.161.0 + [#4623](https://github.com/open-telemetry/opentelemetry-cpp/pull/4623) + +* [CI] Reset ignorePaths in Renovate configuration + [#4626](https://github.com/open-telemetry/opentelemetry-cpp/pull/4626) + +* Update open-telemetry/shared-workflows action to v0.16.0 + [#4628](https://github.com/open-telemetry/opentelemetry-cpp/pull/4628) -* [BUG] Send one request per curl session, rather than replacing the operation - a running request still belongs to - [#4396](https://github.com/open-telemetry/opentelemetry-cpp/issues/4396) +* Pin python Docker tag to be8ccd0 + [#4627](https://github.com/open-telemetry/opentelemetry-cpp/pull/4627) -* [BUG] Compare the curl seek offset in `curl_off_t` before narrowing it to - `size_t`, so an offset past the `size_t` range cannot wrap back inside the - request body on a 32-bit build +* chore: fix inconsistent format in bug template + [#4633](https://github.com/open-telemetry/opentelemetry-cpp/pull/4633) + +* [LOGS] Fix Logger::EmitLogRecord unsafe static_cast to Recordable + [#4624](https://github.com/open-telemetry/opentelemetry-cpp/pull/4624) + +* [BUG] Send one request per curl session + [#4431](https://github.com/open-telemetry/opentelemetry-cpp/pull/4431) + +* [BUG] Compare the curl seek offset before narrowing it to size_t [#4630](https://github.com/open-telemetry/opentelemetry-cpp/pull/4630) * [BUG] Do not queue a curl session closed by the Retry-After cap [#4632](https://github.com/open-telemetry/opentelemetry-cpp/pull/4632) +* Update all [patches] + [#4640](https://github.com/open-telemetry/opentelemetry-cpp/pull/4640) + * [BUG] Fix a data race on the curl operation's last result code [#4618](https://github.com/open-telemetry/opentelemetry-cpp/pull/4618) -* [BUG] Do not busy-spin the curl background thread while a retry is queued - at shutdown +* [BUG] Do not busy-spin the curl background thread while a retry is queued at shutdown [#4637](https://github.com/open-telemetry/opentelemetry-cpp/pull/4637) -* [SDK] Fix spatial re-aggregation for asynchronous instruments. A view which - drops attributes is now applied to asynchronous instruments as well, and the - observations which collapse onto the same attribute set are re-aggregated - (summed up for the additive instruments) instead of the last observation - overwriting the previous ones. - Note that `AsyncMetricStorage`'s constructor now takes the view's - `AttributesProcessor`, matching `SyncMetricStorage`. - [#1724](https://github.com/open-telemetry/opentelemetry-cpp/issues/1724) +* chore: fix duplicated and incorrect SpinLockMutex comments + [#4641](https://github.com/open-telemetry/opentelemetry-cpp/pull/4641) + +* Update dependency curl to v8.22.0 + [#4645](https://github.com/open-telemetry/opentelemetry-cpp/pull/4645) -* [BUG] Keep the curl retry deadline stable within each attempt +* chore: Move Tom Tan from maintainer to approver + [#4644](https://github.com/open-telemetry/opentelemetry-cpp/pull/4644) + +* [METRICS SDK] Enforce a runtime minimum scale for Base2ExponentialHistogramAggregation + [#4353](https://github.com/open-telemetry/opentelemetry-cpp/pull/4353) + +* [Metrics SDK] Fix spatial re-aggregation for asynchronous instruments + [#4635](https://github.com/open-telemetry/opentelemetry-cpp/pull/4635) + +* Update dependency windows to v2025 + [#4648](https://github.com/open-telemetry/opentelemetry-cpp/pull/4648) + +* [EXAMPLE] Remove duplicate global propagator setup in gRPC client example + [#4654](https://github.com/open-telemetry/opentelemetry-cpp/pull/4654) + +* [BUG] Keep the curl retry deadline stable within an attempt [#4452](https://github.com/open-telemetry/opentelemetry-cpp/pull/4452) -* [SDK] `BatchSpanProcessor` now waits for a full batch - (`max_export_batch_size`) before exporting, instead of draining the buffer - whenever it is non-empty. This reduces gRPC request count and CPU usage - under steady load while preserving `ForceFlush`/`Shutdown` drain semantics. - Force-flush exports also respect `max_export_batch_size`, splitting buffered - spans into multiple batches when needed. +* [SDK] Handle instrumentation object construction failures safely + [#4469](https://github.com/open-telemetry/opentelemetry-cpp/pull/4469) + +* [METRICS SDK] Drop aggregation behaves as a no-op + [#4515](https://github.com/open-telemetry/opentelemetry-cpp/pull/4515) + +* Update all [patches] + [#4657](https://github.com/open-telemetry/opentelemetry-cpp/pull/4657) + +* Update infra [minor] + [#4667](https://github.com/open-telemetry/opentelemetry-cpp/pull/4667) + +* Update all [patches] + [#4674](https://github.com/open-telemetry/opentelemetry-cpp/pull/4674) + +* [REMOVAL] Remove WITH_OTLP_RETRY_PREVIEW + [#4668](https://github.com/open-telemetry/opentelemetry-cpp/pull/4668) + +* [API] Remove opentelemetry::plugin + [#4660](https://github.com/open-telemetry/opentelemetry-cpp/pull/4660) + +* Add dependencies labels to Renovate pr’s + [#4675](https://github.com/open-telemetry/opentelemetry-cpp/pull/4675) + +* Update all [patches] + [#4676](https://github.com/open-telemetry/opentelemetry-cpp/pull/4676) + +* [CODE HEALTH] Prevent std::out_of_range escaping noexcept substr callers + [#4562](https://github.com/open-telemetry/opentelemetry-cpp/pull/4562) + +* Update Python base image in Dockerfile + [#4677](https://github.com/open-telemetry/opentelemetry-cpp/pull/4677) + +* [REMOVAL] Remove WITH_OTLP_GRPC_SSL_MTLS_PREVIEW + [#4666](https://github.com/open-telemetry/opentelemetry-cpp/pull/4666) + +* [CMAKE] Clean up pkg-config install methods and add tests + [#4528](https://github.com/open-telemetry/opentelemetry-cpp/pull/4528) + +* [CODE HEALTH] Fix clang-tidy bugprone-exception-escape in lastvalue_aggregation.cc + [#4564](https://github.com/open-telemetry/opentelemetry-cpp/pull/4564) + +* [EXPORTER ETW] Fix PropertyValue string conversions that doubled length and ignored string_view size + [#4656](https://github.com/open-telemetry/opentelemetry-cpp/pull/4656) + +* [SDK] Preserve unlimited batch processor shutdown timeout + [#4686](https://github.com/open-telemetry/opentelemetry-cpp/pull/4686) + +* Update all [patches] + [#4679](https://github.com/open-telemetry/opentelemetry-cpp/pull/4679) + +* [CODE HEALTH] Fix bugprone-exception-escape in NoopTracer::StartSpan() + [#4673](https://github.com/open-telemetry/opentelemetry-cpp/pull/4673) + +* [SDK] Move predicate_factory code from header file (#1429) + [#4688](https://github.com/open-telemetry/opentelemetry-cpp/pull/4688) + +* [CI] enable the `bugprone-unhandled-exception-at-new` check + [#4689](https://github.com/open-telemetry/opentelemetry-cpp/pull/4689) + +* [SDK] remove false warning from metric reader collect + [#4687](https://github.com/open-telemetry/opentelemetry-cpp/pull/4687) + +* Update python:3.14.8 Docker digest to b9767f5 + [#4690](https://github.com/open-telemetry/opentelemetry-cpp/pull/4690) + +* Update infra [minor] + [#4691](https://github.com/open-telemetry/opentelemetry-cpp/pull/4691) + +* [CODE HEALTH] Fix bugprone-exception-escape in Tracer::StartSpan() + [#4672](https://github.com/open-telemetry/opentelemetry-cpp/pull/4672) + +* [API/BENCHMARK] Trace Propagator Benchmark + [#4692](https://github.com/open-telemetry/opentelemetry-cpp/pull/4692) + +* [CI] Add help for IWYU and clang-tidy. + [#4698](https://github.com/open-telemetry/opentelemetry-cpp/pull/4698) + +* [SDK] Release provider locks before construction-failure diagnostics + [#4702](https://github.com/open-telemetry/opentelemetry-cpp/pull/4702) + +* Update python:3.14.8 Docker digest to 12d187a + [#4705](https://github.com/open-telemetry/opentelemetry-cpp/pull/4705) + +* [ADMIN] Add Mateen Anjum as approver + [#4699](https://github.com/open-telemetry/opentelemetry-cpp/pull/4699) + +* [SDK] Allow context construction failures to propagate + [#4703](https://github.com/open-telemetry/opentelemetry-cpp/pull/4703) + +* Update infra [minor] + [#4708](https://github.com/open-telemetry/opentelemetry-cpp/pull/4708) + +* [API] Optimize trace propagators + [#4696](https://github.com/open-telemetry/opentelemetry-cpp/pull/4696) + +* [SDK] BatchSpanProcessor: wait for a full batch instead of draining partial batches [#4466](https://github.com/open-telemetry/opentelemetry-cpp/pull/4466) +* [SDK] Fix disabled Tracer StartSpan noop behavior + [#4710](https://github.com/open-telemetry/opentelemetry-cpp/pull/4710) + +* [SDK] Remove TracerConfig copy from Tracer + [#4712](https://github.com/open-telemetry/opentelemetry-cpp/pull/4712) + +* Update infra [minor] + [#4714](https://github.com/open-telemetry/opentelemetry-cpp/pull/4714) + +* Update all [patches] + [#4716](https://github.com/open-telemetry/opentelemetry-cpp/pull/4716) + +* [API] Preserve parent SpanContext in NoopTracer spans + [#4717](https://github.com/open-telemetry/opentelemetry-cpp/pull/4717) + +* [API/SDK] Add ASCII helpers and remove regex from InstrumentMetaDataValidator + [#4715](https://github.com/open-telemetry/opentelemetry-cpp/pull/4715) + +* [SDK] Support MeterConfigurator updates and example + [#4313](https://github.com/open-telemetry/opentelemetry-cpp/pull/4313) + +* Update step-security/harden-runner action to v2.22.2 + [#4720](https://github.com/open-telemetry/opentelemetry-cpp/pull/4720) + +* [RELEASE] Release opentelemetry-cpp 1.30.0 + [#4722](https://github.com/open-telemetry/opentelemetry-cpp/pull/4722) + Breaking changes: -* [SDK] Remove `noexcept` from the public `TracerContext`, `LoggerContext`, - and `MeterContext` constructors so allocation failures propagate to provider - initialization callers instead of terminating. This changes their exception - contract and may affect code relying on nothrow construction. - [#4695](https://github.com/open-telemetry/opentelemetry-cpp/issues/4695) +* [SDK] Allow context construction failures to propagate + [#4703](https://github.com/open-telemetry/opentelemetry-cpp/pull/4703) + * Remove `noexcept` from the public `TracerContext`, `LoggerContext`, + and `MeterContext` constructors so allocation failures propagate + to provider initialization callers instead of terminating. + * This changes their exception contract and may affect + code relying on nothrow construction. * [SDK] Handle instrumentation object construction failures safely [#4469](https://github.com/open-telemetry/opentelemetry-cpp/pull/4469) @@ -162,7 +324,7 @@ Breaking changes: noop immediately without retrying construction. Existing cached objects continue to be returned. -* [REMOVAL] Remove WITH_OTLP_RETRY_PREVIEW - #4668 +* [REMOVAL] Remove WITH_OTLP_RETRY_PREVIEW [#4668](https://github.com/open-telemetry/opentelemetry-cpp/pull/4668) * CMake flags WITH_OTLP_RETRY_PREVIEW is removed, the feature is no longer in preview status. @@ -185,6 +347,10 @@ Breaking changes: the exporter implementation needs to be adjusted, when using the NoopSpan. +Security fixes: + +* TBD + ## [1.29.0] 2026-09-13 * [RELEASE] Bump main branch to 1.29.0-dev (#4259) From 3db19f03db8291b24ead58f5ad73a2786ba3c243 Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Thu, 22 Oct 2026 01:23:33 +0200 Subject: [PATCH 3/8] Format --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a7c1c4fa15..3c08fec7d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -218,7 +218,8 @@ Increment the: * [CODE HEALTH] Fix clang-tidy bugprone-exception-escape in lastvalue_aggregation.cc [#4564](https://github.com/open-telemetry/opentelemetry-cpp/pull/4564) -* [EXPORTER ETW] Fix PropertyValue string conversions that doubled length and ignored string_view size +* [EXPORTER ETW] Fix PropertyValue string conversions that + doubled length and ignored string_view size [#4656](https://github.com/open-telemetry/opentelemetry-cpp/pull/4656) * [SDK] Preserve unlimited batch processor shutdown timeout From f04b1798a014fd15698e3ac0060556a6aa55e043 Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Thu, 22 Oct 2026 11:54:51 +0200 Subject: [PATCH 4/8] Adjust warning count --- .github/workflows/clang-tidy.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/clang-tidy.yaml b/.github/workflows/clang-tidy.yaml index 7bb49d207e..a7fa3d434c 100644 --- a/.github/workflows/clang-tidy.yaml +++ b/.github/workflows/clang-tidy.yaml @@ -17,9 +17,9 @@ jobs: matrix: include: - cmake_options: all-options-abiv1-preview - warning_limit: 204 + warning_limit: 199 - cmake_options: all-options-abiv2-preview - warning_limit: 218 + warning_limit: 213 env: CC: /usr/bin/clang-22 CXX: /usr/bin/clang++-22 From 46323e201aa9f3b44f31506cc32d2f65480f841b Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Thu, 22 Oct 2026 11:56:51 +0200 Subject: [PATCH 5/8] Adjust CHANGELOG --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c08fec7d3..f65090f9b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -300,6 +300,9 @@ Increment the: * Update step-security/harden-runner action to v2.22.2 [#4720](https://github.com/open-telemetry/opentelemetry-cpp/pull/4720) +* Update all [patches] + [#4723](https://github.com/open-telemetry/opentelemetry-cpp/pull/4723) + * [RELEASE] Release opentelemetry-cpp 1.30.0 [#4722](https://github.com/open-telemetry/opentelemetry-cpp/pull/4722) From 31a0f8cc37862d03f921817c9ce44eb138f80d45 Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Thu, 22 Oct 2026 17:35:56 +0200 Subject: [PATCH 6/8] Implement review comments for CHANGELOG. --- CHANGELOG.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f65090f9b5..e031d36b90 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -303,9 +303,29 @@ Increment the: * Update all [patches] [#4723](https://github.com/open-telemetry/opentelemetry-cpp/pull/4723) +* [CODE HEALTH] Fix misc-use-internal-linkage warning + [#4724](https://github.com/open-telemetry/opentelemetry-cpp/pull/4724) + * [RELEASE] Release opentelemetry-cpp 1.30.0 [#4722](https://github.com/open-telemetry/opentelemetry-cpp/pull/4722) +Important changes: + +* [API] Preserve parent SpanContext in NoopTracer spans + [#4717](https://github.com/open-telemetry/opentelemetry-cpp/pull/4717) + * When a valid parent span context is present, StartSpan() now + returns a non recording span referencing the parent, + instead of a NoopSpan as before. + * This is the behavior required by the specification, + to avoid breaking traces when code is instrumented but traces + are disabled. + * Because this fix is in the header only API, + instrumented code must be compiled again using API headers + from opentelemetry-cpp 1.30.0 (or later), so see the benefits of this fix. + * Instrumentation compiled with older API headers and linked with + the SDK from opentelemetry-cpp 1.30 (or later) will not see the fix, + causing traces to break. + Breaking changes: * [SDK] Allow context construction failures to propagate From 8550a48f06018b0e30d377242df9252aae5c22a6 Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Thu, 22 Oct 2026 18:08:03 +0200 Subject: [PATCH 7/8] Format --- CHANGELOG.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e1bb8adb1..57103aac28 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,10 +18,15 @@ Increment the: ## [1.30.0] 2026-10-22 This release contains: + * Important changes * Breaking changes * Security fixes +Please check the full release notes. + +Changes: + * [RELEASE] Bump main branch to 1.30.0-dev [#4563](https://github.com/open-telemetry/opentelemetry-cpp/pull/4563) @@ -390,7 +395,8 @@ Security fixes: containing raw control bytes other than permitted HTAB are dropped. * Members with empty metadata properties (`;;` or a trailing `;`), non-token property keys, or non-ASCII metadata are also dropped. - * `Baggage::Set()` rejects invalid metadata without replacing existing entries or adding new ones. + * `Baggage::Set()` rejects invalid metadata without replacing + existing entries or adding new ones. * The curl client now fails the whole request for non-token header names or header values containing control bytes other than HTAB, or DEL. * This includes configured exporter headers. From 5362df15f54787fc9bb7851657ee92d0ca1b7660 Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Thu, 22 Oct 2026 18:31:56 +0200 Subject: [PATCH 8/8] Rework security bug title. --- CHANGELOG.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 57103aac28..098a96cc33 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -316,8 +316,7 @@ Changes: * [CODE HEALTH] Fix misc-use-internal-linkage warning [#4724](https://github.com/open-telemetry/opentelemetry-cpp/pull/4724) -* [SECURITY] HTTP request splitting and header injection - on outbound requests via unencoded baggage metadata (CRLF) +* [SECURITY] Fix baggage metadata injection and reject unsafe curl headers [GHSA-j5cq-83xw-rx48](https://github.com/open-telemetry/opentelemetry-cpp/security/advisories/GHSA-j5cq-83xw-rx48) * [RELEASE] Release opentelemetry-cpp 1.30.0 @@ -387,8 +386,7 @@ Breaking changes: Security fixes: -* [SECURITY] HTTP request splitting and header injection - on outbound requests via unencoded baggage metadata (CRLF) +* [SECURITY] Fix baggage metadata injection and reject unsafe curl headers [GHSA-j5cq-83xw-rx48](https://github.com/open-telemetry/opentelemetry-cpp/security/advisories/GHSA-j5cq-83xw-rx48) * Reject invalid baggage metadata during extraction and injection. * After the existing trimming of leading and trailing whitespace, members