Skip to content

opentelemetry-cpp 1.29.0 - #310576

Merged
BrewTestBot merged 2 commits into
mainfrom
bump-opentelemetry-cpp-1.29.0
Sep 13, 2026
Merged

BrewTestBot merged 2 commits into
mainfrom
bump-opentelemetry-cpp-1.29.0

Conversation

@BrewTestBot

Copy link
Copy Markdown
Contributor

Created by brew bump


Created with brew bump-formula-pr.

  • resource blocks have been checked for updates.
release notes
## v1.29.0 release

Release of:

  • opentelemetry-api
  • opentelemetry-sdk
  • exporter packages

Breaking changes:

  • [CONFIGURATION] Align declarative configuration schema defaults with
    OpenTelemetry Configuration Schema v1.1.0
    #4432

    • When a YAML field is omitted, the parsed configuration model now uses
      these schema defaults instead of the previous legacy values:
      • attribute_limits.attribute_value_length_limit,
        logger_provider.limits.attribute_value_length_limit, and
        tracer_provider.limits.attribute_value_length_limit default to no limit
        (unlimited attribute value length) instead of 4096 bytes.
      • batch log record processor schedule_delay defaults to 1000 ms instead
        of 5000 ms (more frequent batch exports when the field is omitted).
      • periodic metric reader interval defaults to 60000 ms instead of 5000 ms
        (less frequent metric exports when the field is omitted).
      • trace_id_ratio_based sampler ratio defaults to 1.0 instead of 0.0
        (sample all traces instead of dropping all when the field is omitted).
  • [CONFIGURATION] SDK default component builder libraries and example
    #4367

    • The declarative configuration registry is now empty on construction and
      the default SDK component builders are provided optionally through
      the opentelemetry-cpp::configuration_registry_factory library and
      the opentelemetry::sdk::configuration::RegistryFactory::Create() method.
  • [BUILD] Install an explicit list of ext headers instead of the whole
    directory
    #4327

    • The ext_common component installed include/opentelemetry/ext with a
      *.h glob. It now installs a named list, and these five headers are no
      longer part of the package:
      • opentelemetry/ext/http/client/curl/http_client_curl.h
      • opentelemetry/ext/http/client/curl/http_operation_curl.h
      • opentelemetry/ext/http/client/detail/default_factory.h
      • opentelemetry/ext/http/server/http_server.h
      • opentelemetry/ext/http/server/socket_tools.h
    • Code that included any of them from an installed package will no longer
      compile. A curl client is created through http_client_factory_curl.h,
      which needs only the abstract http_client_factory.h. The two server
      headers are an embedded test server; moving them out of ext is tracked
      in #4332.
  • [CMAKE] Rename cmake options with prefix OTELCPP_
    #4268

    • All CMake build options were renamed with the OTELCPP_ prefix to avoid
      name collisions with user and third-party project variables. For example,
      WITH_OTLP_HTTP, WITH_CONFIGURATION, and WITH_OTLP_RETRY_PREVIEW are
      now OTELCPP_WITH_OTLP_HTTP, OTELCPP_WITH_CONFIGURATION, and
      OTELCPP_WITH_OTLP_RETRY_PREVIEW.
    • BUILD_TESTING becomes OTELCPP_BUILD_TESTING, but is not treated as a
      deprecated alias:
      • When opentelemetry-cpp is the top-level project, BUILD_TESTING sets the
        default value of OTELCPP_BUILD_TESTING.
      • When opentelemetry-cpp is a subproject, the parent project's
        BUILD_TESTING no longer controls opentelemetry-cpp tests, which default
        to OFF.
      • Set OTELCPP_BUILD_TESTING explicitly to enable or disable
        opentelemetry-cpp tests in either top-level or subproject builds.
    • OTELCPP_WITH_BENCHMARK now defaults to the value of
      OTELCPP_BUILD_TESTING instead of always defaulting to ON.
    • The other legacy option names are still accepted but deprecated: a
      deprecation warning is emitted at configure time, and the OTELCPP_ name
      takes precedence when both names are set.
  • [METRICS SDK] Rename Base2 Exponential Histogram Aggregation config field
    #4253

    • The public configuration member max_buckets_ was renamed to max_size_ to
      match the configuration schema. Please adjust SDK configuration accordingly.
  • [CONFIGURATION] Update prometheus config to schema v1.1.0
    #4383

    • The following YAML values for translation_strategy have been replaced
      • UnderscoreEscapingWithSuffixes is replaced by underscore_escaping_with_suffixes
      • UnderscoreEscapingWithoutSuffixes is replaced by underscore_escaping_without_suffixes/development
      • NoUTF8EscapingWithSuffixes is replaced by no_utf8_escaping_with_suffixes/development
      • NoTranslation is replaced by no_translation/development
  • [METRICS SDK] Add an ExemplarFilterType parameter to the MeterContext
    constructor when metrics exemplars are enabled. The parameter has a default
    value, so existing source calls remain valid, but the constructor signature
    and SDK ABI change. Applications using the preview exemplar feature must be
    rebuilt.
    #4328

  • [METRICS SDK] Remove the SystemTimestamp parameter from the preview
    ExemplarReservoir::OfferMeasurement() overloads
    #4267

    • This is an incompatible API and ABI change for custom exemplar reservoirs.
      Implementations and callers must remove the timestamp parameter.
  • [METRICS SDK] Breaking change to the preview metrics exemplar surface: the
    SyncMetricStorage/AsyncMetricStorage constructors now take an
    ExemplarFilterType, and ExemplarData::Create takes the SpanContext
    by value.
    #4267

Important changes

  • [CONFIGURATION] Complete resource detection support in SdkBuilder (#4424)
    #4424

    • Behavior change: SetResource no longer runs OTELResourceDetector and no
      longer injects a default service.name, since neither is part of the
      configuration model. Use the service detector or set the attributes in
      the configuration file instead.
  • [API] Never set a null global provider or propagator
    #4420

    • trace::Provider::SetTracerProvider(),
      metrics::Provider::SetMeterProvider(),
      logs::Provider::SetLoggerProvider(),
      logs::Provider::SetEventLoggerProvider() and
      context::propagation::GlobalTextMapPropagator::SetGlobalPropagator()
      now install the corresponding no-op implementation when passed a null
      pointer, instead of storing the null. The matching getters therefore never
      return nullptr, as already documented, and code that resets a global
      during cleanup no longer risks a nullptr de-ref on a later use.
      Note: this is a correctness fix to an inline API header; the observable
      behavior of these methods changes towards the already documented contract
      (see docs/abi-policy.md).
  • [SDK] Enforce Span Status transition rules (#4547)
    #4547

    • Previously every SetStatus call overwrote the recorded status. It now
      follows the specification, which changes behavior for users in three ways:
      • A call with StatusCode::kUnset is ignored.
      • Once the status is kOk, it is final. So a later call can no longer
        change an explicit kOk.
      • The description is kept only for kError; it is dropped for kOk and
        kUnset.
    • ETWSpan::SetStatus in the ETW exporter follows the same rules.

Deprecations

This release contains deprecations, see file DEPRECATED.md

What's Changed

New Contributors

View the full release notes at https://github.com/open-telemetry/opentelemetry-cpp/releases/tag/v1.29.0.


@github-actions github-actions Bot added the bump-formula-pr PR was created using `brew bump-formula-pr` label Sep 13, 2026
@github-actions

Copy link
Copy Markdown
Contributor

:shipit: @p-linnane has requested bottles to be published to this PR.

Caution

Please do not push to this PR branch before the bottle commits have been pushed, as this results in a state that is difficult to recover from. If you need to resolve a merge conflict, please use a merge commit. Do not force-push to this PR branch.

@github-actions github-actions Bot added the CI-published-bottle-commits The commits for the built bottles have been pushed to the PR branch. label Sep 13, 2026
@BrewTestBot
BrewTestBot added this pull request to the merge queue Sep 13, 2026
Merged via the queue into main with commit e96ba0c Sep 13, 2026
22 checks passed
@BrewTestBot
BrewTestBot deleted the bump-opentelemetry-cpp-1.29.0 branch September 13, 2026 21:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bump-formula-pr PR was created using `brew bump-formula-pr` CI-published-bottle-commits The commits for the built bottles have been pushed to the PR branch.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants