Skip to content

Releases: open-telemetry/opentelemetry-java

Version 1.65.0

Choose a tag to compare

@github-actions github-actions released this 07 Aug 20:04
7bc11ed

NOTE: The opentelemetry-exporter-zipkin artifact has stopped being published. It was deprecated in a prior release. Users should migrate to OTLP or use a Zipkin-compatible collector exporter.

API

  • Ignore empty baggage keys in ImmutableBaggage.put (#8658)
  • Use NumberFormatException in baggage decoder (#8593)
  • Fix TraceStateBuilder.remove corrupting the builder when the same key is removed twice (#8613)

Incubating

  • Add bound instrument APIs (BoundLongCounter, BoundDoubleCounter, BoundLongHistogram, BoundDoubleHistogram, BoundLongUpDownCounter, BoundDoubleUpDownCounter, BoundLongGauge, BoundDoubleGauge) to the incubator metrics API (#8527)

Extensions

  • Trace propagators: Fix JaegerPropagator baggage header key case sensitivity (#8496)
  • Trace propagators: Do not overwrite existing baggage with empty baggage in JaegerPropagator (#8632)
  • Trace propagators: Skip empty baggage keys in OtTracePropagator extract (#8631)
  • Trace propagators: Stop parsing a jaeger-baggage header after 64 tokens, including malformed tokens (#8702)

SDK

  • Update SDK attributes implementation (AttributesMap) to enforce last-value-win semantics based on string value of AttributeKey.getKey() (#8548)

Traces

  • Add Sampler shutdown lifecycle: Sampler now extends Closeable and exposes a default shutdown() invoked when the SdkTracerProvider is shut down; JaegerRemoteSampler implements it to stop its polling executor (#8574)

Metrics

  • Gate PeriodicMetricReader self-observability metrics by internal telemetry version (#8597)
  • Record error.type on failed collections in PeriodicMetricReader (#8650)
  • Testing: Fix LongExemplarAssert.hasFilteredAttributesSatisfyingExactly to enforce exact attribute matching (#8518)

Logs

  • Fix ReadWriteLogRecord default getObservedTimestampEpochNanos returning the record timestamp (#8504)

Profiles

  • Fix profiles data model attribute count parameter name and timestamp doc unit (#8514)

Exporters

  • WARNING Zipkin: Delete opentelemetry-exporter-zipkin; the artifact is no longer published (#8677)
  • OTLP: Use HTTP error response bodies in HttpExporter warning logs (#8428)
  • OTLP: Fix OkHttpHttpSender mTLS when using the platform default trust store (#8565)
  • OTLP: Fix sign extension on LogRecord flags in the low-allocation log marshaler (#8493)
  • OTLP: Standardize OkHttpHttpSender, JdkHttpSender, and UpstreamGrpcSender shutdown to await executor/channel termination (#8495, #8627, #8624)
  • OTLP: Log the underlying except/ion when a gRPC response frame is invalid (#8626)
  • OTLP: Avoid the unsafe string encoder on Android (#8637)
  • Prometheus: Merge colliding Prometheus label values (#8364)
  • Prometheus: Fix PrometheusHttpServer.toBuilder() dropping the configured default handler (#8619)
  • Logging: Output event name in SystemOutLogRecordExporter (#8609)
  • Logging: Include aggregation temporality in LoggingMetricExporter toString (#8623)

Extensions

  • Autoconfigure: Avoid exposing configuration values in error messages (#8669)
  • Declarative config: Fix Jaeger sampler polling interval configuration (#8668)
  • Declarative config: Remove duplicate getStringList resolver in DeclarativeConfigPropertyUtil (#8572)
  • Declarative config: Replace jsonschema2pojo with a hand-rolled POJO generator (#8600)
  • Incubator: Restore compliance between composite samplers code and the spec (#8450)

Shims

  • DEPRECATION Deprecate the OpenCensus shim public API (#8674)
  • OpenCensus: Preserve OpenCensus status description when converting to OpenTelemetry (#8511)
  • OpenCensus: Add links to the OpenTelemetry span instead of logging a warning and dropping them (#8635)
  • OpenTracing: Return null from TracerShim extract when the carrier has no span context (#8505)
  • OpenTracing: Return the extracted SpanContext when it is sampled but invalid (#8634)

Project tooling

  • Pin japicmp baseline in version.gradle.kts (#8591)
  • Update contributing guide in response to feedback (#8655)

๐Ÿ™‡ Thank you

This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:

@abdessattar23
@ADITYA-CODE-SOURCE
@anoopjb
@breedx-splk
@calohmn
@ChenX1993
@cijothomas
@Dainerx
@Debashismitra01
@EvgeniiR
@fossadvocate86
@jack-berg
@jaydeluca
@jkwatson
@kevinburkesegment
@LarryHu0217
@LikeTheSalad
@maryliag
@NithinU2802
@opentelemetry-pr-dashboard
@PeterF778
@prasadw
@psx95
@Rajkaran-122
@Sabaev
@Teseus84
@thswlsqls
@TimurRakhmatullin86
@trask
@vadyanuch13-ai
@zeitlinger

Version 1.64.0

Choose a tag to compare

@github-actions github-actions released this 10 Jul 19:30
fd4d976

API

  • Fix W3CBaggagePropagator to allow empty baggage values per W3C spec (#8468)
  • Fix baggage parsing for invalid percent-encoded members (#8480)

Incubating

  • BREAKING Remove deprecated InstrumentationConfigUtil.peerServiceMapping (#8542)
  • Fix EnvironmentGetter/EnvironmentSetter to not enumerate or normalize carrier entries, and normalize empty names consistently (#8474, #8481)

SDK

Traces

  • Add BatchSpanProcessor.create(SpanExporter) convenience factory to mirror SimpleSpanProcessor.create(SpanExporter) (#8564)
  • Fix BatchSpanProcessor benchmark aux counters (exportedSpans/droppedSpans) always reporting zero (#8539)

Metrics

  • Fix PooledHashMap dropping live entries when an entry is removed during forEach (#8499)
  • Safely initialize exemplar reservoir storage in FixedSizeExemplarReservoir (#8524)
  • Use failExceptionally in PeriodicMetricReader when the exporter is busy (#8525)
  • Only set valuesRecorded in AggregatorHandle when false (#8559)
  • Use volatile instead of atomics in Double/LongLastValueAggregator (#8560)
  • Randomize per-thread recording order in metric benchmarks to avoid concurrency hotspots (#8550)

Logs

  • Fix BatchLogRecordProcessor worker thread being killed by non-runtime exceptions (#8529)

Exporters

  • BREAKING Prometheus: Drop deprecated PrometheusMetricReader constructors (#8541)
  • OTLP: Reject host-less endpoints in EndpointUtil.validateEndpoint (#8489)
  • OTLP: Replace Jackson OTLP JSON serialization with a hand-rolled implementation (#8545)
  • OTLP Profiles: Fix OtlpGrpcProfileExporter toString class name (#8492)
  • Prometheus: Add translation strategy support (#8346)
  • Prometheus: Fix serialization of array-valued scope and resource attributes to JSON strings (#8497)

Extensions

  • BREAKING Declarative config: Move experimental types to internal package (#8530)
  • Declarative config: Commit generated schema POJOs to git (#8408)
  • Declarative config: Update to opentelemetry-configuration v1.1.0 (#8451)
  • Declarative config: Adjust POJO toString/hashCode/equals to match AutoValue semantics (#8526)
  • Declarative config: Add ref descriptions to generated model classes (#8540)
  • Declarative config: Emit consistent @JsonProperty annotations on generated models (#8563)
  • Declarative config: Remove duplicate resolver in DeclarativeConfigPropertyUtil (#8579)

Project tooling

  • Add configuration policy guidance (#8429)
  • Exclude certain GitHub Actions from running on forks (#8466)
  • Add guidance to prefer parameterized tests (#8469)
  • Make benchmark path configurable (#8557)

๐Ÿ™‡ Thank you

This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:

@abdessattar23
@ADITYA-CODE-SOURCE
@atoulme
@breedx-splk
@brunobat
@carlosalberto
@dahyvuun
@Develop-KIM
@EvgeniiR
@gfelbing
@jack-berg
@jaydeluca
@jimbobbennett
@jkwatson
@Kielek
@kropptrevor
@opentelemetry-pr-dashboard
@pellared
@psx95
@seongjun-rpls
@thswlsqls
@trask
@Vcode2407
@vivekp14
@zeitlinger

Version 1.63.0

Choose a tag to compare

@github-actions github-actions released this 05 Jun 14:43
485976a

API

  • Add missing setAttribute shortcuts to Span and LogRecordBuilder (#8255)
  • Promote InstrumentationUtil to public class in io.opentelemetry.api.impl package (#8413)
  • Fix index-out-of-bounds in StrictContextStorage (#8294)

Incubating

  • BREAKING Remove deprecated ExtendedAttributes and related code (#8395)

SDK

Metrics

  • Collect async exemplars when exemplar filter is always_on (#8363)
  • Move delta record/collect coordination from instrument to series level (#8313)

Exporters

  • Add noop() factory method to SpanExporter and LogRecordExporter (#8435)
  • BREAKING OTLP: Remove support for deprecated GrpcSenderProvider and HttpSenderProvider SPI property names (use io.opentelemetry.sdk.common.export.GrpcSenderProvider / io.opentelemetry.sdk.common.export.HttpSenderProvider instead) (#8392)
  • OTLP: Bound OkHttp sender dispatchers and surface rejections (#8422)
  • Prometheus: Limit exemplar label characters to conform to Prometheus limits (#8362)
  • Logging: Fix LoggingSpanExporter.flush() to preserve flush failures (#8361)
  • Zipkin: Make exporter self-contained by removing shared internal code dependencies (#8413)

Extensions

  • BREAKING Autoconfigure: Remove deprecated otel.experimental.config.file property (#8393)
  • BREAKING Incubator: Remove deprecated ViewConfig/ViewConfigCustomizer view file config mechanism (#8394)
  • Declarative config: Fix model package (#8403)
  • Declarative config: Fix Java module name to io.opentelemetry.sdk.autoconfigure.declarativeconfig (#8452)

Shims

  • Deprecate OpenTracing shim public API (#8373)

Project tooling

  • Finish adding OSGi support across all modules (#8401, #8417)
  • Force io.zipkin.zipkin2:zipkin:3.6.1 to avoid problematic gson version (#8430)

๐Ÿ™‡ Thank you

This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:

@ADITYA-CODE-SOURCE
@anuq
@bogdandrutu
@breedx-splk
@cijothomas
@jack-berg
@jaydeluca
@jkwatson
@khouari1
@kyyril
@laurit
@ps-mir
@psx95
@royteeuwen
@Sandared
@trask
@zeitlinger

Version 1.62.0

Choose a tag to compare

@github-actions github-actions released this 08 May 16:40
d03621f

API

Context

  • Fix GHSA-rcgg-9c38-7xpx: Apply limits to baggage entries for W3CBaggagePropagator, OtTracePropagator, JaegerPropagator
    (#8378)

SDK

Traces

  • Avoid parentContext allocation on span start for the common case (#8332)

Metrics

  • Add setMaxExportBatchSize to PeriodicMetricReaderBuilder (#8296)
  • Fix PeriodicMetricReader shutdown race that could drop the final flush (#8299)

Exporters

  • BREAKING Prometheus: Change default server host from 0.0.0.0 to localhost (#8298)
  • BREAKING Prometheus: Stop converting unit "1" to "ratio" (#8252)
  • OTLP: Fix null input handling in StringEncoder (#8312)
  • OTLP: Align proto field types and wire tag names in marshalers (#8293)
  • OTLP: Fix MarshalerUtil sizeRepeatedString calculation (#8284)
  • OTLP: Bound JdkHttpSender thread pool size to prevent unbounded thread creation (#8276)
  • OTLP Profiles: Split profiles data model into separate sdk-profiles and JFR shim modules (#8207)
  • OTLP Profiles: Publish alpha release of opentelemetry-sdk-profiles and opentelemetry-exporter-otlp-profiles (#8351)

Extensions

  • BREAKING Declarative config: Extract to new opentelemetry-sdk-extension-declarative-config artifact with new package io.opentelemetry.sdk.autoconfigure.declarativeconfig (#8265)
  • Autoconfigure: Add file size validation in OtlpConfigUtil to avoid unsafe cast to int (#8287)
  • Declarative config: Fix collection fields to not be initialized to empty by default (#8356)
  • Incubator: Add EventToSpanEventBridge to bridge log-based events to span events (#8372)

Testing

  • Add @Nullable to equalTo value argument in OpenTelemetryAssertions (#8301)
  • Add hasValueSatisfying to LongPointAssert and DoublePointAssert for fuzzy value matching (#8328)
  • Add containsPointsSatisfying to metric data asserts for "each given assertion must be satisfied by at least one point, extras allowed" checks on sum, gauge, histogram, exponential histogram, and summary data (#8329)

Project tooling

  • Add initial OSGi support (#7964)
  • Promote ApiUsageLogger to opentelemetry-common public API (#8318)
  • Establish exception logging guidelines and fix inconsistent patterns across exporters and SDK (#8231)
  • Add *.impl.* package naming convention for internal code with japicmp compatibility (#8325)
  • Add Sonatype dependency audit to build (#8365)

๐Ÿ™‡ Thank you

This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:

@abdessattar23
@anuq
@breedx-splk
@cijothomas
@dashpole
@jack-berg
@jaydeluca
@jhalliday
@jkwatson
@jsuereth
@laeubi
@laurit
@maxiking203
@opentelemetrybot
@psx95
@robsunday
@royteeuwen
@Sandared
@stbischof
@SylvainJuge
@trask
@utafrali
@VamshikrishnaMonagari
@zeitlinger

Version 1.61.0

Choose a tag to compare

@github-actions github-actions released this 10 Apr 21:40
339e938

API

  • Stabilize isEnabled() on Tracer, Logger, and metric instruments (#8200)

Incubating

  • BREAKING Update EnvironmentGetter and EnvironmentSetter key normalization to reflect spec changes (#8233)

SDK

Traces

  • Retain propagated context when generating random trace IDs (#8263)
  • Add rate-limited warning log when BatchSpanProcessor drops spans (#8167)

Metrics

  • Track series start time per aggregator rather than at SdkMeterProvider creation time (#8180)
  • Capture context class loader during async callback registration (#8091)
  • Make include/exclude work correctly with empty (but non-null) lists (#8185)

Logs

  • Fix condition for recording successful log processing metrics (#8226)

Exporters

  • OTLP: add configurable bounds to response body reading (#8224, #8277)
  • OTLP: only throw invalid response exception when gRPC response size < 5 bytes (#8194)
  • OTLP: remove duplicate FINEST-level error logging in gRPC exporter (#8216)
  • OTLP Profiles: clean up profile signal exporters for consistency (#8172)

Extensions

  • BREAKING Autoconfigure: remove deprecated ComponentLoader class (use io.opentelemetry.common.ComponentLoader instead) (#8243)
  • Declarative config: fix DeclarativeConfigProperties javadoc to not throw exceptions (#8079)
  • Declarative config: resource attribute filtering should include attributes by default (#8177)
  • Declarative config: enforce IncludedExcludeModel .included and .excluded are not empty (#8266)
  • Autoconfigure: restructure SDK incubator to not depend on autoconfigure internals (#8242)

Project tooling

  • Disable Gradle build cache on releases to mitigate supply chain risk (#8254)

๐Ÿ™‡ Thank you

This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:

@adp2201
@anuraaga
@arun-annamalai
@bhagirath00
@breedx-splk
@brunobat
@cleverchuk
@dashpole
@eamonn-kearns-ibm
@filipetrovic
@jack-berg
@jackshirazi
@jaydeluca
@jhalliday
@jkwatson
@laurit
@martincostello
@maryliag
@MikeGoldsmith
@opensourcevk
@pellared
@robsunday
@SylvainJuge
@trask
@TruongNguyen1305
@Tusharika725
@VamshikrishnaMonagari
@zeitlinger

Version 1.60.1

Choose a tag to compare

@github-actions github-actions released this 08 Mar 00:46
b1273b5

This is a patch release on the previous 1.60.0 release, fixing the issue(s) below.

SDK

Extensions

  • Autoconfigure: fix warning always emitted (#8157)

Version 1.60.0

Choose a tag to compare

@github-actions github-actions released this 06 Mar 21:25
58a5590

API

  • Support W3C trace context random flag (#8012)
  • Clarify that SpanBuilder.setAttribute allows null values (#8072)

Incubating

  • Implement environment variable context propagation carriers (#8074)
  • Deprecate ExtendedAttributes, ExtendedAttributeKey, ExtendedAttributeType, ExtendedAttributesBuilder (#8060)
  • Deprecate peerServiceMapping accessor from InstrumentationConfigUtil (#8088)

SDK

Traces

  • Disable warning when using TraceIdRatioBasedSampler as root sampler (#8065)
  • User-supplied attributes take precedence over exception-derived attributes (#7993)
  • Exclude META-INF/maven from traces SDK shaded dependencies (#8096)
  • Fix inverted condition in LegacySpanProcessorInstrumentation#finishSpans (#8145)

Metrics

  • Split out cumulative vs. delta storage (#8015)
  • Add metrics for PeriodicMetricReader (#8038)
  • Allow configuring min/max in histograms (#8095)
  • Remove deprecated otel.experimental.metrics.cardinality.limit property (#8124)
  • BREAKING bug fix: GlobUtil and IncludePatternMatching, used in views and declarative config matching, previously were inconsistent in case sensitivity. If a glob char (* or ?) was present, it was evaluated with case sensitivity. If no glob chars were present, it was evaluated with case insensitivity. Now, all are consistently evaluated with case sensitivity. (#8152)

Logs

  • Stabilize LogRecordBuilder.setException (#8089)
  • Clarify setTimestamp javadoc for event timestamp behavior (#8104)

Exporters

  • OTLP: Fix marshaling for empty string attributes (#8014)
  • Prometheus: Update Prometheus client to 1.5.0 (#8080)
  • OTLP: Serialize exponential histogram sum as optional double (#8107)
  • OTLP: Use KeyManagerFactory.getDefaultAlgorithm() in TlsUtil.keyManager() (#8122)
  • OTLP: Ensure proto serializer idCache is cleared when exception is thrown (#8147)

Extensions

  • Autoconfigure: Decode plus sign in resource attributes (#8059)
  • Declarative config: update to 1.0 schema (#8123)
  • Declarative config: add support for setting schema URL (#8028)
  • Declarative config: add version mismatch warning (#8069)
  • Declarative config: cache component providers in DeclarativeConfigContext (#8070)
  • Declarative config: add system property substitution (#8073)
  • Declarative config: add exporter customizers (#8081)
  • Declarative config: add support for setting internal telemetry version (#8045)
  • Deprecate View File Configuration mechanism (#8133)
  • Autoconfigure: add property to allow autoconfiguration of SDK telemetry version (#8037)
  • Jaeger remote sampler: refactor to leverage senders (#8046)
  • Declarative config: document ObjectMapper config (#8075)
  • Declarative config: Remove unchecked warning (#8090)

Project tooling

  • Add architecture test to detect usage of shared internal code (#6978)
  • Replace Xlint deprecation check with custom error-prone check (#8061)
  • Enable error-prone's UnnecessarilyFullyQualified check (#8078)
  • Small refactoring to make safety clearer (#8083)
  • Rework span record benchmark and publish results (#8031)
  • Add LogRecordBenchmark (#8106, #8117)

๐Ÿ™‡ Thank you

This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:

@adrielp
@andrzejressel
@antonio-mazzini
@anuraaga
@arnav-dasgupta
@bhagirath00
@blakeli0
@breedx-splk
@carlosalberto
@dashpole
@GerardoGR
@jack-berg
@jaydeluca
@jkwatson
@jmacd
@laurit
@lbarrios
@marcingrzejszczak
@MikeGoldsmith
@mosesn
@PeterF778
@Quaffel
@ruturajjadhav07
@trask
@wglad
@zeitlinger

Version 1.59.0

Choose a tag to compare

@github-actions github-actions released this 06 Feb 14:30
d01a599

API

  • Stabilize complex attributes (#7973)
  • Limit init valid hex array to range that can be true (#7809)

Extensions

  • Trace propagators: Deprecate OtTracePropagator (#8020)
  • Trace propagators: Deprecate JaegerPropagator (#8019)

SDK

  • Move io.opentelemetry.sdk.internal to io.opentelemetry.sdk.common.internal (#8003)
  • Always return ExtendedOpenTelemetry when incubator is available (#7991)

Traces

  • Fix memory leak in SdkSpan#spanEndingThread (#7984)

Metrics

  • Rework and publish metric benchmarks (#8000)
  • Update LongLastValueAggregator algo to avoid allocations (#8017)

Testing

  • Fix OTel JUnit5 Extension cleanup when using Nested test classes (#7999)
  • Add assertion support for Span hasException(null) (#8033)

Exporters

  • DEPRECATION: opentelemetry-exporter-zipkin is now deprecated with the last release planned for 1.65.0 (August 2026) (#7974)
  • Refactor http, grpc senders and promote to public API (#7782)

Extensions

  • Jaeger remote sampler: Remove unused code (#7970)
  • Incubator: Add AlwaysRecordSampler (#7877)

Project tooling

  • Align generate release contributors (#8023)

๐Ÿ™‡ Thank you

This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:

@austince
@baolongnt
@blueswhisper
@bogdandrutu
@breedx-splk
@brunobat
@gerolf-da
@jack-berg
@jaydeluca
@jkwatson
@laurit
@majanjua-amzn
@michaeljohnalbers
@ps-mir
@trask
@tylerbenson
@zeitlinger

Version 1.58.0

Choose a tag to compare

@github-actions github-actions released this 09 Jan 18:14
1e377b4

API

Incubator

  • Delete GlobalConfigProvider in favor of access via ExtendedOpenTelemetry (#7914)
  • Add DeclarativeConfigProperties#get method (#7923)
  • Update ConfigProvider#getInstrumentationConfig response to be non-null (#7954)
  • Add declarative config utility methods for common operations (#7927)

SDK

Traces

  • Implement SDK metrics for trace (#7895, #7930)
  • Emit warning when TraceIdRatioBasedSampler is used as child sampler (#7937)

Logs

  • Implement SDK metrics for logs (#7931)

Exporters

  • Prom exporter update (#7934)

Extensions

  • Declarative config: update to opentelemetry-configuration 1.0.0-rc.3 (#7861)
  • Declarative config: update jaeger remote sampler to require endpoint, initial_sampler (#7943)
  • Declarative config: add support for view unit (#7942)
  • Declarative config: add support for new logger config minimum_severity and trace_based properties (#7940)
  • Declarative config: add support for composable parent threshold sampler (#7941)
  • Declarative config: improve pattern for validating and loading SDK extension plugins (#7947)

Project tooling

  • Use develocity build cache in PRs and local builds (#7906)
  • Configure japicmp classpath to avoid false positives (#7945)

๐Ÿ™‡ Thank you

This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:

@anuraaga
@breedx-splk
@Gosling-dude
@jack-berg
@jkwatson
@JonasKunz
@SylvainJuge
@trask
@zeitlinger

Version 1.57.0

Choose a tag to compare

@github-actions github-actions released this 05 Dec 21:33
2c5a4f8

API

  • Add GlobalOpenTelemetry#getOrNoop, #isSet. Update #get to always returns obfuscated instance (#7819)

Incubating

  • Logs: Complex attributes incubating implementation (#7814)

SDK

Logs

  • Add minimum severity and trace-based logger configuration (incubating API) (#7529)

Exporters

  • OTLP: VarHandle string encoder (#7701)
  • OTLP: Fix OkHttpGrpcSender to properly await executor shutdown (#7840)
  • OTLP: avoid auto-config warning (#7881)
  • OTLP: update error message for missing GrpcSenderProvider dependency (#7884)

Extensions

  • Declarative config: add runtime hints for graal VM (#7866)
  • Declarative config: add missing warning about discarded value (#7821)

Project tooling

  • Update macos version to latest and switch to corretto for testing (#7841)
  • Sync Java worflows: Allow re-running prepare release branch workflow (#7845)
  • Simplify and standardize renovate custom managers across Java repos (#7846)
  • Remove misspell workflow (#7852)
  • Fix link checks on main (#7867)
  • Add zeitlinger as approver (#7868)
  • Move snapshot publishing to daily build (#7886)

๐Ÿ™‡ Thank you

This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:

@breedx-splk
@HarshMehta112
@jack-berg
@jaydeluca
@jeanbisutti
@jkwatson
@kevinburkesegment
@laurit
@michaldo
@trask
@zeitlinger