Sync upstream 2026 06#10
Open
raflFaisal wants to merge 97 commits into
Open
Conversation
…1783) ## This PR - Proposes `Support Non-String Inputs for Fractional Bucketing` ADR ### Related Issues open-feature#1737 --------- Signed-off-by: cupofcat <maks@google.com> Signed-off-by: Maks Osowski <maks@google.com>
Signed-off-by: André Silva <2493377+askpt@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
<!-- Please use this template for your pull request. --> <!-- Please use the sections that you need and delete other sections --> ## This PR <!-- add the description of the PR here --> - Updates installation document to note additional Kubernetes deployment option per discussion on open-feature#1835 ### Related Issues <!-- add here the GitHub issue that this PR resolves if applicable --> Fixes open-feature#1835 ### Notes <!-- any additional notes for this PR --> N/A ### Follow-up Tasks <!-- anything that is related to this PR but not done here should be noted under this section --> <!-- if there is a need for a new issue, please link it here --> N/A ### How to test <!-- if applicable, add testing instructions under this section --> Build & look at the docs page. --------- Signed-off-by: Sean Killeen <SeanKilleen@gmail.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…ite (open-feature#1827) with open-feature#1797 we introduced this bug, that the format of the response is not correct. current state: ```javacript { flagConfiguration: {/* flag object */} } ``` should be: ```javacript { flagConfiguration: { flags: {/* flag object */} } } ``` Clarification from @toddbaert - this is an UNRELEASED bug so far. --------- Signed-off-by: Simon Schrottner <simon.schrottner@dynatrace.com> Signed-off-by: Todd Baert <todd.baert@dynatrace.com> Co-authored-by: Todd Baert <todd.baert@dynatrace.com> Co-authored-by: alexandraoberaigner <82218944+alexandraoberaigner@users.noreply.github.com>
## This PR fixes an issue in documentation about using OAuth with HTTP Syncs Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Signed-off-by: Brandon Duffany <brandon@buildbuddy.io>
open-feature#1826) This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [golang.org/x/crypto](https://pkg.go.dev/golang.org/x/crypto) | [`v0.39.0` -> `v0.45.0`](https://cs.opensource.google/go/x/crypto/+/refs/tags/v0.39.0...refs/tags/v0.45.0) |  |  | ### GitHub Vulnerability Alerts #### [CVE-2025-58181](https://nvd.nist.gov/vuln/detail/CVE-2025-58181) SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. #### [CVE-2025-47914](https://nvd.nist.gov/vuln/detail/CVE-2025-47914) SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. --- ### Configuration 📅 **Schedule**: Branch creation - "" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled because a matching PR was automerged previously. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/open-feature/flagd). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xNi4xIiwidXBkYXRlZEluVmVyIjoiNDIuNTQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=--> --------- Signed-off-by: Todd Baert <todd.baert@dynatrace.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
🤖 I have created a release *beep* *boop* --- <details><summary>flagd: 0.13.0</summary> ## [0.13.0](open-feature/flagd@flagd/v0.12.9...flagd/v0.13.0) (2025-12-23) ### 🐛 Bug Fixes * fixing sync return format missing flag layer, adding full e2e suite ([open-feature#1827](open-feature#1827)) ([570693d](open-feature@570693d)) * **security:** update module github.com/go-viper/mapstructure/v2 to v2.4.0 [security] ([open-feature#1784](open-feature#1784)) ([037e30b](open-feature@037e30b)) * **security:** update module golang.org/x/crypto to v0.45.0 [security] ([open-feature#1826](open-feature#1826)) ([7e0762b](open-feature@7e0762b)) ### ✨ New Features * add support for http-based ofrep metrics ([open-feature#1803](open-feature#1803)) ([fcd19b3](open-feature@fcd19b3)) * cleanup evaluator interface ([open-feature#1793](open-feature#1793)) ([aa504f7](open-feature@aa504f7)) * enable parsing of array flag configurations for flagd ([open-feature#1797](open-feature#1797)) ([97c6ffa](open-feature@97c6ffa)) * multi-project support via selectors and flagSetId namespacing ([open-feature#1702](open-feature#1702)) ([f9ce46f](open-feature@f9ce46f)) * normalize selector in sync (use header as in OFREP and RPC) ([open-feature#1815](open-feature#1815)) ([c1f06cb](open-feature@c1f06cb)) ### 🧹 Chore * **refactor:** use memdb for flag storage ([open-feature#1697](open-feature#1697)) ([5c5c1cf](open-feature@5c5c1cf)) ### 🔄 Refactoring * store cleanup ([open-feature#1705](open-feature#1705)) ([bcff8d7](open-feature@bcff8d7)) </details> <details><summary>flagd-proxy: 0.8.1</summary> ## [0.8.1](open-feature/flagd@flagd-proxy/v0.8.0...flagd-proxy/v0.8.1) (2025-12-23) ### 🐛 Bug Fixes * **security:** update module github.com/go-viper/mapstructure/v2 to v2.4.0 [security] ([open-feature#1784](open-feature#1784)) ([037e30b](open-feature@037e30b)) * **security:** update module golang.org/x/crypto to v0.45.0 [security] ([open-feature#1826](open-feature#1826)) ([7e0762b](open-feature@7e0762b)) </details> <details><summary>core: 0.13.0</summary> ## [0.13.0](open-feature/flagd@core/v0.12.1...core/v0.13.0) (2025-12-23) ### ⚠ BREAKING CHANGES * enable parsing of array flag configurations for flagd ([open-feature#1797](open-feature#1797)) * cleanup evaluator interface ([open-feature#1793](open-feature#1793)) * removes the `fractionalEvaluation` operator since it has been replaced with `fractional`. ([open-feature#1704](open-feature#1704)) ### 🐛 Bug Fixes * **security:** update module github.com/go-viper/mapstructure/v2 to v2.4.0 [security] ([open-feature#1784](open-feature#1784)) ([037e30b](open-feature@037e30b)) * **security:** update module golang.org/x/crypto to v0.45.0 [security] ([open-feature#1825](open-feature#1825)) ([44edcc9](open-feature@44edcc9)) * **security:** update module golang.org/x/crypto to v0.45.0 [security] ([open-feature#1826](open-feature#1826)) ([7e0762b](open-feature@7e0762b)) ### ✨ New Features * Add OAuth support for HTTP Sync ([open-feature#1791](open-feature#1791)) ([268fd75](open-feature@268fd75)) * Add OTEL default variables ([open-feature#1812](open-feature#1812)) ([c2e3fc6](open-feature@c2e3fc6)) * allow null flagSetId Selector, restrict Selector to single key-value-pairs ([open-feature#1708](open-feature#1708)) ([open-feature#1811](open-feature#1811)) ([c12a0ae](open-feature@c12a0ae)) * change jsonschema parser ([open-feature#1794](open-feature#1794)) ([bf3f722](open-feature@bf3f722)) * cleanup evaluator interface ([open-feature#1793](open-feature#1793)) ([aa504f7](open-feature@aa504f7)) * enable parsing of array flag configurations for flagd ([open-feature#1797](open-feature#1797)) ([97c6ffa](open-feature@97c6ffa)) * multi-project support via selectors and flagSetId namespacing ([open-feature#1702](open-feature#1702)) ([f9ce46f](open-feature@f9ce46f)) ### 🧹 Chore * **refactor:** use memdb for flag storage ([open-feature#1697](open-feature#1697)) ([5c5c1cf](open-feature@5c5c1cf)) * removes the `fractionalEvaluation` operator since it has been replaced with `fractional`. ([open-feature#1704](open-feature#1704)) ([3228ad8](open-feature@3228ad8)) ### 🔄 Refactoring * remove deprecated bearerToken option ([open-feature#1816](open-feature#1816)) ([efda06a](open-feature@efda06a)) * removed unused Selector from Flag and Store. ([open-feature#1747](open-feature#1747)) ([1083005](open-feature@1083005)) * store cleanup ([open-feature#1705](open-feature#1705)) ([bcff8d7](open-feature@bcff8d7)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com> Signed-off-by: Todd Baert <todd.baert@dynatrace.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
This PR: - adds documentation for our new selector and metadata features, added mostly in open-feature#1702 - conceptual docs - practical usage docs - additions to troubleshooting - migration guide Fixes: open-feature#1828 --------- Signed-off-by: Todd Baert <todd.baert@dynatrace.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Guido Breitenhuber <guido.breitenhuber@dynatrace.com>
To fix CVE-2025-47907 | CVE-2025-61725 | CVE-2025-58188 | CVE-2025-61723 | CVE-2025-58187 | CVE-2025-61729 Thanks @pramod-ahire for the headsup. I had to make some unrelated minor code changes to fix new lint issues that came with the required upgrade of our linter. Most were auto-fixed by the linter. --------- Signed-off-by: Todd Baert <todd.baert@dynatrace.com> Co-authored-by: Pramod Ahire <pramod.ahire18@gmail.com>
🤖 I have created a release *beep* *boop* --- <details><summary>flagd: 0.13.1</summary> ## [0.13.1](open-feature/flagd@flagd/v0.13.0...flagd/v0.13.1) (2025-12-27) ### 🐛 Bug Fixes * **security:** update go for various stdlib CVEs ([open-feature#1840](open-feature#1840)) ([6dcb36d](open-feature@6dcb36d)) </details> <details><summary>flagd-proxy: 0.8.2</summary> ## [0.8.2](open-feature/flagd@flagd-proxy/v0.8.1...flagd-proxy/v0.8.2) (2025-12-27) ### 🐛 Bug Fixes * **security:** update go for various stdlib CVEs ([open-feature#1840](open-feature#1840)) ([6dcb36d](open-feature@6dcb36d)) </details> <details><summary>core: 0.13.1</summary> ## [0.13.1](open-feature/flagd@core/v0.13.0...core/v0.13.1) (2025-12-27) ### 🐛 Bug Fixes * **security:** update go for various stdlib CVEs ([open-feature#1840](open-feature#1840)) ([6dcb36d](open-feature@6dcb36d)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…1839) Adds a "cheat sheet" with a a bunch of simple, easily searchable examples for: - starting flagd - docker and binary - with file source - with http source - with multiple sources - with header and static context injection - calling OFREP with curl - evaluating multiple flags - evaluating one flag - using the `flagd-selector` header - calling proto API - streaming and evaluation - flagd-selector ... and more [DIRECT PREVIEW](https://deploy-preview-1839--polite-licorice-3db33c.netlify.app/reference/cheat-sheet/) :play_or_pause_button: The idea is this is a searchable reference. Concepts are not explained we have lots of that elsewhere. This is just for quick reference for useful commands. --------- Signed-off-by: Todd Baert <todd.baert@dynatrace.com> Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
## This PR - Keeps Go 1.24 as the minimum supported version for the core package. While development may use newer Go releases (e.g. 1.25.x), go.mod should reflect the lowest compatible version to avoid unnecessarily restricting downstream users. ### Related Issues <!-- add here the GitHub issue that this PR resolves if applicable --> Closes open-feature#1843 Signed-off-by: Roman Dmytrenko <rdmytrenko@gmail.com>
….13.1 [security] (open-feature#1846) This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [github.com/open-feature/flagd/core](https://redirect.github.com/open-feature/flagd) | `v0.12.1` → `v0.13.1` |  |  | | [github.com/open-feature/flagd/core](https://redirect.github.com/open-feature/flagd) | `v0.11.8` → `v0.13.1` |  |  | ### GitHub Vulnerability Alerts #### [GHSA-4c5f-9mj4-m247](https://redirect.github.com/open-feature/flagd/security/advisories/GHSA-4c5f-9mj4-m247) ### Summary In 2025, several vulnerabilities in the Go Standard Library were disclosed, impacting Go-based applications like flagd (the evaluation engine for OpenFeature). These CVEs primarily focus on Denial of Service (DoS) through resource exhaustion and Race Conditions in database handling. | CVE ID | Impacted Package | Severity | Description & Impact on flagd | | -- | -- | -- | -- | | CVE-2025-47907 | database/sql | 7.0 (High) | Race Condition: Canceling a query during a Scan call can return data from the wrong query. Critical if flagd uses SQL-based sync providers (e.g., Postgres), potentially leading to incorrect flag configurations. | | CVE-2025-61725 | net/mail | 7.5 (High) | DoS: Inefficient complexity in ParseAddress. Attackers can provide crafted email strings with large domain literals to exhaust CPU if flagd parses email-formatted metadata. | | CVE-2025-61723 | encoding/pem | 7.5 (High) | DoS: Quadratic complexity when parsing invalid PEM inputs. Relevant if flagd loads TLS certificates or keys via PEM files from untrusted sources. | | CVE-2025-61729 | crypto/x509 | 7.5 (High) | Resource Exhaustion: HostnameError.Error() lacks string concatenation limits. A malicious TLS certificate with thousands of hostnames could crash flagd during connection handshakes. | | CVE-2025-58188 | net/http | Medium | Request Smuggling: Improper header handling in HTTP/1.1. Could allow attackers to bypass security filters positioned in front of flagd sync or evaluation APIs. | | CVE-2025-58187 | archive/zip | Medium | DoS: Improper validation of malformed ZIP archives. Impacts flagd if configured to fetch and unpack zipped configuration bundles from remote providers. | --- ### Release Notes <details> <summary>open-feature/flagd (github.com/open-feature/flagd/core)</summary> ### [`v0.12.1`](https://redirect.github.com/open-feature/flagd/releases/tag/flagd/v0.12.1): flagd: v0.12.1 ##### 🐛 Bug Fixes - **deps:** update module github.com/open-feature/flagd/core to v0.11.0 ([#​1541](https://redirect.github.com/open-feature/flagd/issues/1541)) ([986a436](https://redirect.github.com/open-feature/flagd/commit/986a436e10e9766b897319085cf7dbbe2f10cb24)) - **deps:** update module golang.org/x/sync to v0.11.0 ([#​1543](https://redirect.github.com/open-feature/flagd/issues/1543)) ([7d6c0dc](https://redirect.github.com/open-feature/flagd/commit/7d6c0dc6e6e6955af1e5225807deeb2b6797900b)) ### [`v0.12.0`](https://redirect.github.com/open-feature/flagd/releases/tag/flagd/v0.12.0): flagd: v0.12.0 ##### ⚠ BREAKING CHANGES - flagSetMetadata in OFREP/ResolveAll, core refactors ([#​1540](https://redirect.github.com/open-feature/flagd/issues/1540)) ##### 🐛 Bug Fixes - **deps:** update module buf.build/gen/go/open-feature/flagd/connectrpc/go to v1.18.1-20250127221518-be6d1143b690.1 ([#​1535](https://redirect.github.com/open-feature/flagd/issues/1535)) ([d5ec921](https://redirect.github.com/open-feature/flagd/commit/d5ec921f02263615cd87625e211ba82b0811d041)) - **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to v1.5.1-20250127221518-be6d1143b690.2 ([#​1536](https://redirect.github.com/open-feature/flagd/issues/1536)) ([e23060f](https://redirect.github.com/open-feature/flagd/commit/e23060f24b2a714ae748e6b37d0d06b7caa1c95c)) - **deps:** update module buf.build/gen/go/open-feature/flagd/protocolbuffers/go to v1.36.4-20241220192239-696330adaff0.1 ([#​1529](https://redirect.github.com/open-feature/flagd/issues/1529)) ([8881a80](https://redirect.github.com/open-feature/flagd/commit/8881a804b4055da0127a16b8fc57022d24906e1b)) - **deps:** update module buf.build/gen/go/open-feature/flagd/protocolbuffers/go to v1.36.4-20250127221518-be6d1143b690.1 ([#​1537](https://redirect.github.com/open-feature/flagd/issues/1537)) ([f74207b](https://redirect.github.com/open-feature/flagd/commit/f74207bc13b75bae4275bc486df51e2da569dd41)) - **deps:** update module github.com/open-feature/flagd/core to v0.10.8 ([#​1526](https://redirect.github.com/open-feature/flagd/issues/1526)) ([fbf2ed5](https://redirect.github.com/open-feature/flagd/commit/fbf2ed527fcf3b300808c7b835a8d891df7b88a8)) - **deps:** update module google.golang.org/grpc to v1.70.0 ([#​1528](https://redirect.github.com/open-feature/flagd/issues/1528)) ([79b2b0a](https://redirect.github.com/open-feature/flagd/commit/79b2b0a6bbd48676dcbdd2393feb8247529bf29c)) ##### ✨ New Features - flagSetMetadata in OFREP/ResolveAll, core refactors ([#​1540](https://redirect.github.com/open-feature/flagd/issues/1540)) ([b49abf9](https://redirect.github.com/open-feature/flagd/commit/b49abf95069da93bdf8369c8aa0ae40e698df760)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/open-feature/flagd). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43NC41IiwidXBkYXRlZEluVmVyIjoiNDIuNzQuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
🤖 I have created a release *beep* *boop* --- <details><summary>flagd: 0.13.2</summary> ## [0.13.2](open-feature/flagd@flagd/v0.13.1...flagd/v0.13.2) (2026-01-09) ### 🐛 Bug Fixes * **security:** update module github.com/open-feature/flagd/core to v0.13.1 [security] ([open-feature#1846](open-feature#1846)) ([a8a57ad](open-feature@a8a57ad)) </details> <details><summary>flagd-proxy: 0.8.3</summary> ## [0.8.3](open-feature/flagd@flagd-proxy/v0.8.2...flagd-proxy/v0.8.3) (2026-01-09) ### 🐛 Bug Fixes * **security:** update module github.com/open-feature/flagd/core to v0.13.1 [security] ([open-feature#1846](open-feature#1846)) ([a8a57ad](open-feature@a8a57ad)) </details> <details><summary>core: 0.13.2</summary> ## [0.13.2](open-feature/flagd@core/v0.13.1...core/v0.13.2) (2026-01-09) ### 🔙 Reverts * use go 1.24 in go.mod for core package ([open-feature#1844](open-feature#1844)) ([c92a159](open-feature@c92a159)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This PR specifies some provider behavior, specifically around stream health, gRPC retry policy, and FATAL codes. Specifically, it: - publishes a retry policy that is shall be used by all flagd providers - specifies a new option for marking some gRPC status codes as FATAL, which will cause the provider to stop attempting to reconnect (generally useful and requested in open-feature/go-sdk-contrib#756) - makes clear via state diagram that flagd provider should support re-initialization (if not in FATAL state) --------- Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Corrected default value for retryBackoffMaxMs from 120000 to 12000. Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
) ## This PR With [this Feature introduced](open-feature#1646), the defaultVariant is no longer *required* property. This PR updates the documentation to match those changes. ### Related Issues Follow up on open-feature#1646 ### Notes No breaking changes, just update to documentation --------- Signed-off-by: Marcin Olko <molko@google.com> Signed-off-by: m-olko <molko@google.com> Signed-off-by: Todd Baert <todd.baert@dynatrace.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
…upport For Non-string Attributes in Fractional Evaluation ADR to accepted (open-feature#1831) Update the status of the [ADR](https://github.com/open-feature/flagd/blob/main/docs/architecture-decisions/fractional-non-string-rand-units.md) to `accepted` --------- Signed-off-by: cupofcat <maks@google.com> Signed-off-by: Maks Osowski <maks@google.com>
<!-- Please use this template for your pull request. --> <!-- Please use the sections that you need and delete other sections --> ## This PR <!-- add the description of the PR here --> - backfills the ADR on static and dynamic context enrichment ### Related Issues <!-- add here the GitHub issue that this PR resolves if applicable --> Closes open-feature#1745 ### Notes If I missed anything, please point it out so I can add it! --------- Signed-off-by: Konvalinka <lea.konvalinka@dynatrace.com> Signed-off-by: Todd Baert <todd.baert@dynatrace.com> Co-authored-by: Todd Baert <todd.baert@dynatrace.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Fixes an issue that made header -> context mapping case-sensitive, because we were using direct access instead of `headers.Get`. Also reduces some duplication by extracting this logic, and adds test coverage. --------- Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
…en-feature#1859) # Fix HTTP Metrics Histogram Bucket Boundaries The HTTP request duration histogram was using incorrect bucket boundaries due to swapped parameters in the `getDurationView()` function calls. This caused the intended Prometheus default buckets to never be applied, falling back to OpenTelemetry's default buckets instead. The default OpenTelemetry buckets provide very coarse granularity for HTTP request latency: **Before (incorrect buckets - in seconds):** ``` [0, 5, 10, 25, 50, 75, 100, 250, 500, 750, 1000, 2500, 5000, 7500, 10000] ``` **After (correct buckets - in seconds):** ``` [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10] ``` ## Testing Added two new test cases: 1. `TestHTTPRequestDurationBuckets` - Validates HTTP request duration uses `prometheus.DefBuckets` 2. `TestHTTPResponseSizeBuckets` - Validates HTTP response size uses exponential buckets These tests verify that the custom bucket configuration is actually applied by: 1. Creating a metrics recorder 2. Recording sample data 3. Collecting the histogram metadata 4. Asserting bucket boundaries match expected values --------- Signed-off-by: Alexandre Chakroun <achakroun@macmail.fr> Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
…onfiguration (open-feature#1706) ## This PR - Changes the code default implementation approach from error-based (`FLAG_NOT_FOUND`) to success-based (`DEFAULT` reason code) - Specifies need for `optional` fields in response messages to enable proper field presence detection - Code default usage now treated as successful evaluation rather than error condition - Removes false error metrics when code defaults are used - Documents the significant architectural change ### Notes This revision addresses a fundamental change in approach enabled by recent OFREP improvements (see [OFREP ADR 0006](https://github.com/open-feature/protocol/blob/main/service/adrs/0006-optional-value-for-code-defaults.md)). The key changes include: - Previously used `FLAG_NOT_FOUND` error responses - Now uses `DEFAULT` reason with omitted value fields - Added need for `optional` fields to support field presence detection - Reordered steps to prioritize schema changes and proper dependency flow The revised approach provides better semantics, accurate telemetry, and cleaner client-side handling while maintaining backward compatibility. ### Follow-up Tasks Implementation work will follow the updated implementation plan: 1. Protobuf schema updates (add `optional` fields) 2. JSON schema updates 3. Core flagd logic implementation 4. Provider updates for field presence detection 5. Comprehensive testing across all protocols ### How to test This is a documentation-only change to the ADR. No functional testing required at this stage. --------- Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…tributions (open-feature#1800) ## This PR - extends the fractional operator to support up to .001% distributions. - defines the expected behavior of several edge cases. ### Notes Addresses a limitation of the current fractional operator that prevents sub-percent traffic allocations. In high-throughput services, 1% of traffic may represent a significant number of requests. ### Related issues open-feature#1788 --------- Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com> Signed-off-by: Todd Baert <todd.baert@dynatrace.com> Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
<!-- Please use this template for your pull request. --> <!-- Please use the sections that you need and delete other sections --> ## This PR <!-- add the description of the PR here --> - improves errror logs in the store's Watch function ### Related Issues <!-- add here the GitHub issue that this PR resolves if applicable --> open-feature#1863 --------- Signed-off-by: Konvalinka <lea.konvalinka@dynatrace.com> Signed-off-by: lea konvalinka <lea.konvalinka@dynatrace.com> Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
🤖 I have created a release *beep* *boop* --- <details><summary>flagd: 0.13.3</summary> ## [0.13.3](open-feature/flagd@flagd/v0.13.2...flagd/v0.13.3) (2026-02-09) ### 🐛 Bug Fixes * case sensitivity in header context mapping ([open-feature#1855](open-feature#1855)) ([be5c94f](open-feature@be5c94f)) </details> <details><summary>core: 0.13.3</summary> ## [0.13.3](open-feature/flagd@core/v0.13.2...core/v0.13.3) (2026-02-09) ### 🐛 Bug Fixes * correct parameter order in histogram bucket configuration⚠️ ([open-feature#1859](open-feature#1859)) ([335af32](open-feature@335af32)) * Enhance error logs in store's Watch func ([open-feature#1865](open-feature#1865)) ([a58a707](open-feature@a58a707)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…[security] (open-feature#1883) > ℹ️ **Note** > > This PR body was truncated due to platform limits. This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [go.opentelemetry.io/otel/sdk](https://redirect.github.com/open-telemetry/opentelemetry-go) | `v1.38.0` → `v1.40.0` |  |  | ### GitHub Vulnerability Alerts #### [CVE-2026-24051](https://redirect.github.com/open-telemetry/opentelemetry-go/security/advisories/GHSA-9h8m-3fm2-qjrq) ### Impact The OpenTelemetry Go SDK in version `v1.20.0`-`1.39.0` is vulnerable to Path Hijacking (Untrusted Search Paths) on macOS/Darwin systems. The resource detection code in `sdk/resource/host_id.go` executes the `ioreg` system command using a search path. An attacker with the ability to locally modify the PATH environment variable can achieve Arbitrary Code Execution (ACE) within the context of the application. ### Patches This has been patched in [d45961b](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/d45961bcda453fcbdb6469c22d6e88a1f9970a53), which was released with `v1.40.0`. ### References - [CWE-426: Untrusted Search Path](https://cwe.mitre.org/data/definitions/426.html) --- ### Release Notes <details> <summary>open-telemetry/opentelemetry-go (go.opentelemetry.io/otel/sdk)</summary> ### [`v1.40.0`](https://redirect.github.com/open-telemetry/opentelemetry-go/compare/v1.39.0...v1.40.0) [Compare Source](https://redirect.github.com/open-telemetry/opentelemetry-go/compare/v1.39.0...v1.40.0) ### [`v1.39.0`](https://redirect.github.com/open-telemetry/opentelemetry-go/releases/tag/v1.39.0) [Compare Source](https://redirect.github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...v1.39.0) #### Overview ##### Added - Greatly reduce the cost of recording metrics in `go.opentelemetry.io/otel/sdk/metric` using hashing for map keys. ([#​7175](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7175)) - Add `WithInstrumentationAttributeSet` option to `go.opentelemetry.io/otel/log`, `go.opentelemetry.io/otel/metric`, and `go.opentelemetry.io/otel/trace` packages. This provides a concurrent-safe and performant alternative to `WithInstrumentationAttributes` by accepting a pre-constructed `attribute.Set`. ([#​7287](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7287)) - Add experimental observability for the Prometheus exporter in `go.opentelemetry.io/otel/exporters/prometheus`. Check the `go.opentelemetry.io/otel/exporters/prometheus/internal/x` package documentation for more information. ([#​7345](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7345)) - Add experimental observability metrics in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc`. ([#​7353](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7353)) - Add temporality selector functions `DeltaTemporalitySelector`, `CumulativeTemporalitySelector`, `LowMemoryTemporalitySelector` to `go.opentelemetry.io/otel/sdk/metric`. ([#​7434](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7434)) - Add experimental observability metrics for simple log processor in `go.opentelemetry.io/otel/sdk/log`. ([#​7548](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7548)) - Add experimental observability metrics in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`. ([#​7459](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7459)) - Add experimental observability metrics in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`. ([#​7486](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7486)) - Add experimental observability metrics for simple span processor in `go.opentelemetry.io/otel/sdk/trace`. ([#​7374](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7374)) - Add experimental observability metrics in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`. ([#​7512](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7512)) - Add experimental observability metrics for manual reader in `go.opentelemetry.io/otel/sdk/metric`. ([#​7524](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7524)) - Add experimental observability metrics for periodic reader in `go.opentelemetry.io/otel/sdk/metric`. ([#​7571](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7571)) - Support `OTEL_EXPORTER_OTLP_LOGS_INSECURE` and `OTEL_EXPORTER_OTLP_INSECURE` environmental variables in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`. ([#​7608](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7608)) - Add `Enabled` method to the `Processor` interface in `go.opentelemetry.io/otel/sdk/log`. All `Processor` implementations now include an `Enabled` method. ([#​7639](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7639)) - The `go.opentelemetry.io/otel/semconv/v1.38.0` package. The package contains semantic conventions from the `v1.38.0` version of the OpenTelemetry Semantic Conventions. See the [migration documentation](./semconv/v1.38.0/MIGRATION.md) for information on how to upgrade from `go.opentelemetry.io/otel/semconv/v1.37.0.`([#​7648](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7648)) ##### Changed - `Distinct` in `go.opentelemetry.io/otel/attribute` is no longer guaranteed to uniquely identify an attribute set. Collisions between `Distinct` values for different Sets are possible with extremely high cardinality (billions of series per instrument), but are highly unlikely. ([#​7175](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7175)) - `WithInstrumentationAttributes` in `go.opentelemetry.io/otel/trace` synchronously de-duplicates the passed attributes instead of delegating it to the returned `TracerOption`. ([#​7266](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7266)) - `WithInstrumentationAttributes` in `go.opentelemetry.io/otel/meter` synchronously de-duplicates the passed attributes instead of delegating it to the returned `MeterOption`. ([#​7266](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7266)) - `WithInstrumentationAttributes` in `go.opentelemetry.io/otel/log` synchronously de-duplicates the passed attributes instead of delegating it to the returned `LoggerOption`. ([#​7266](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7266)) - Rename the `OTEL_GO_X_SELF_OBSERVABILITY` environment variable to `OTEL_GO_X_OBSERVABILITY` in `go.opentelemetry.io/otel/sdk/trace`, `go.opentelemetry.io/otel/sdk/log`, and `go.opentelemetry.io/otel/exporters/stdout/stdouttrace`. ([#​7302](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7302)) - Improve performance of histogram `Record` in `go.opentelemetry.io/otel/sdk/metric` when min and max are disabled using `NoMinMax`. ([#​7306](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7306)) - Improve error handling for dropped data during translation by using `prometheus.NewInvalidMetric` in `go.opentelemetry.io/otel/exporters/prometheus`. ⚠️ **Breaking Change:** Previously, these cases were only logged and scrapes succeeded. Now, when translation would drop data (e.g., invalid label/value), the exporter emits a `NewInvalidMetric`, and Prometheus scrapes **fail with HTTP 500** by default. To preserve the prior behavior (scrapes succeed while errors are logged), configure your Prometheus HTTP handler with: `promhttp.HandlerOpts{ ErrorHandling: promhttp.ContinueOnError }`. ([#​7363](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7363)) - Replace fnv hash with xxhash in `go.opentelemetry.io/otel/attribute` for better performance. ([#​7371](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7371)) - The default `TranslationStrategy` in `go.opentelemetry.io/exporters/prometheus` is changed from `otlptranslator.NoUTF8EscapingWithSuffixes` to `otlptranslator.UnderscoreEscapingWithSuffixes`. ([#​7421](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7421)) - Improve performance of concurrent measurements in `go.opentelemetry.io/otel/sdk/metric`. ([#​7427](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7427)) - Include W3C TraceFlags (bits 0–7) in the OTLP `Span.Flags` field in `go.opentelemetry.io/exporters/otlp/otlptrace/otlptracehttp` and `go.opentelemetry.io/exporters/otlp/otlptrace/otlptracegrpc`. ([#​7438](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7438)) - The `ErrorType` function in `go.opentelemetry.io/otel/semconv/v1.37.0` now handles custom error types. If an error implements an `ErrorType() string` method, the return value of that method will be used as the error type. ([#​7442](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7442)) ##### Fixed - Fix `WithInstrumentationAttributes` options in `go.opentelemetry.io/otel/trace`, `go.opentelemetry.io/otel/metric`, and `go.opentelemetry.io/otel/log` to properly merge attributes when passed multiple times instead of replacing them. Attributes with duplicate keys will use the last value passed. ([#​7300](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7300)) - The equality of `attribute.Set` when using the `Equal` method is not affected by the user overriding the empty set pointed to by `attribute.EmptySet` in `go.opentelemetry.io/otel/attribute`. ([#​7357](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7357)) - Return partial OTLP export errors to the caller in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc`. ([#​7372](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7372)) - Return partial OTLP export errors to the caller in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`. ([#​7372](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7372)) - Return partial OTLP export errors to the caller in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`. ([#​7372](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7372)) - Return partial OTLP export errors to the caller in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. ([#​7372](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7372)) - Return partial OTLP export errors to the caller in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`. ([#​7372](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7372)) - Return partial OTLP export errors to the caller in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`. ([#​7372](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7372)) - Fix `AddAttributes`, `SetAttributes`, `SetBody` on `Record` in `go.opentelemetry.io/otel/sdk/log` to not mutate input. ([#​7403](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7403)) - Do not double record measurements of `RecordSet` methods in `go.opentelemetry.io/otel/semconv/v1.37.0`. ([#​7655](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7655)) - Do not double record measurements of `RecordSet` methods in `go.opentelemetry.io/otel/semconv/v1.36.0`. ([#​7656](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7656)) ##### Removed - Drop support for \[Go 1.23]. ([#​7274](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7274)) - Remove the `FilterProcessor` interface in `go.opentelemetry.io/otel/sdk/log`. The `Enabled` method has been added to the `Processor` interface instead. All `Processor` implementations must now implement the `Enabled` method. Custom processors that do not filter records can implement `Enabled` to return `true`. ([#​7639](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7639)) #### What's Changed - Drop support for Go 1.23 by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7274](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7274) - fix(deps): update module go.opentelemetry.io/collector/pdata to v1.40.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7275](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7275) - chore(deps): update module github.com/securego/gosec/v2 to v2.22.8 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7276](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7276) - fix(deps): update module github.com/golangci/golangci-lint/v2 to v2.4.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7277](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7277) - fix(deps): update golang.org/x by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7188](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7188) - fix(deps): update module github.com/opentracing-contrib/go-grpc to v0.1.2 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7281](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7281) - fix(deps): update googleapis to [`ef028d9`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/ef028d9) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7279](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7279) - chore(deps): update module github.com/rogpeppe/go-internal to v1.14.1 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7283](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7283) - chore(deps): update module github.com/spf13/pflag to v1.0.9 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7282](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7282) - fix(deps): update github.com/opentracing-contrib/go-grpc/test digest to [`0261db7`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/0261db7) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7278](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7278) - Fix missing link in changelog by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7273](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7273) - chore(deps): update module github.com/spf13/cobra to v1.10.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7285](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7285) - chore(deps): update github/codeql-action action to v3.30.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7284](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7284) - chore(deps): update module github.com/spf13/cobra to v1.10.1 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7286](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7286) - Add tracetest example for testing instrumentation by [@​adity1raut](https://redirect.github.com/adity1raut) in [#​7107](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7107) - Fix schema urls by [@​dmathieu](https://redirect.github.com/dmathieu) in [#​7288](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7288) - chore(deps): update module github.com/spf13/pflag to v1.0.10 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7291](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7291) - chore(deps): update benchmark-action/github-action-benchmark action to v1.20.5 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7293](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7293) - chore(deps): update module github.com/ghostiam/protogetter to v0.3.16 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7289](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7289) - chore(deps): update module github.com/golangci/go-printf-func-name to v0.1.1 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7290](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7290) - chore(deps): update module mvdan.cc/gofumpt to v0.9.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7292](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7292) - fix(deps): update module go.opentelemetry.io/proto/otlp to v1.8.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7296](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7296) - chore(deps): update actions/stale action to v10 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7299](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7299) - chore(deps): update actions/setup-go action to v6 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7298](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7298) - fix(deps): update module github.com/prometheus/client\_golang to v1.23.1 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7304](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7304) - chore(deps): update codecov/codecov-action action to v5.5.1 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7303](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7303) - Add Observability section to CONTRIBUTING doc by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7272](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7272) - chore(deps): update module github.com/bombsimon/wsl/v5 to v5.2.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7309](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7309) - chore(deps): update golang.org/x/telemetry digest to [`9b996f7`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/9b996f7) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7308](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7308) - chore(deps): update github/codeql-action action to v3.30.1 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7312](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7312) - chore(deps): update github.com/grafana/regexp digest to [`f7b3be9`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/f7b3be9) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7311](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7311) - chore(deps): update module github.com/pjbgf/sha1cd to v0.5.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7317](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7317) - chore(deps): update golang.org/x/telemetry digest to [`af835b0`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/af835b0) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7313](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7313) - fix(deps): update module github.com/prometheus/client\_golang to v1.23.2 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7314](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7314) - chore(deps): update benchmark-action/github-action-benchmark action to v1.20.7 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7319](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7319) - Don't track min and max when disabled by [@​dashpole](https://redirect.github.com/dashpole) in [#​7306](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7306) - fix(deps): update golang.org/x by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7320](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7320) - Add benchmark for exponential histogram measurements by [@​dashpole](https://redirect.github.com/dashpole) in [#​7305](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7305) - chore(deps): update golang.org/x by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7324](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7324) - chore(deps): update module mvdan.cc/gofumpt to v0.9.1 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7322](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7322) - trace,metric,log: WithInstrumentationAttributes options to merge attributes by [@​pellared](https://redirect.github.com/pellared) in [#​7300](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7300) - Encapsulate observability in Logs SDK by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7315](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7315) - trace,metric,log: add WithInstrumentationAttributeSet option by [@​pellared](https://redirect.github.com/pellared) in [#​7287](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7287) - chore(deps): update module github.com/spf13/afero to v1.15.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7330](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7330) - chore(deps): update module github.com/sagikazarmark/locafero to v0.11.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7329](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7329) - chore(deps): update module github.com/lucasb-eyer/go-colorful to v1.3.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7327](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7327) - chore(deps): update module github.com/antonboom/errname to v1.1.1 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7338](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7338) - fix(deps): update module go.opentelemetry.io/collector/pdata to v1.41.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7337](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7337) - chore(deps): update module github.com/spf13/viper to v1.21.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7334](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7334) - chore(deps): update module github.com/spf13/cast to v1.10.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7333](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7333) - fix(deps): update googleapis to [`9702482`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/9702482) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7335](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7335) - chore(deps): update github/codeql-action action to v3.30.2 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7339](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7339) - chore(deps): update golang.org/x by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7326](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7326) - fix(deps): update module google.golang.org/protobuf to v1.36.9 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7340](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7340) - Encapsulate `stdouttrace.Exporter` instrumentation in internal package by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7307](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7307) - Do not allocate instrument options if possible in generated semconv packages by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7328](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7328) - chore(deps): update module github.com/antonboom/nilnil to v1.1.1 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7343](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7343) - chore(deps): update module golang.org/x/net to v0.44.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7341](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7341) - fix(deps): update module golang.org/x/tools to v0.37.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7347](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7347) - fix(deps): update module google.golang.org/grpc to v1.75.1 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7344](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7344) - chore(deps): update module go.yaml.in/yaml/v2 to v2.4.3 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7349](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7349) - chore(deps): update github/codeql-action action to v3.30.3 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7348](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7348) - Rename Self-Observability as just Observability by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7302](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7302) - fix(deps): update golang.org/x to [`df92998`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/df92998) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7350](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7350) - trace,metric,log: change WithInstrumentationAttributes to not de-depuplicate the passed attributes in a closure by [@​axw](https://redirect.github.com/axw) in [#​7266](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7266) - sdk/metric: add example for metricdatatest package by [@​sanojsubran](https://redirect.github.com/sanojsubran) in [#​7323](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7323) - chore(deps): update module github.com/antonboom/testifylint to v1.6.4 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7359](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7359) - chore(deps): update module github.com/nunnatsa/ginkgolinter to v0.21.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7362](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7362) - chore(deps): update module github.com/tetafro/godot to v1.5.2 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7360](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7360) - Do not use the user-defined empty set when comparing sets. by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7357](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7357) - Track context containing span in `recordingSpan` by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7354](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7354) - fix(deps): update module go.opentelemetry.io/auto/sdk to v1.2.1 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7365](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7365) - Encapsulate SDK BatchSpanProcessor observability by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7332](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7332) - Encapsulate SDK Tracer observability by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7331](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7331) - chore: generate feature flag files from shared by [@​flc1125](https://redirect.github.com/flc1125) in [#​7361](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7361) - fix(deps): update module github.com/prometheus/otlptranslator to v1 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7358](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7358) - chore(deps): update module github.com/djarvur/go-err113 to v0.1.1 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7368](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7368) - Fix the typo in the function name `TestNewInstrumentation` by [@​yumosx](https://redirect.github.com/yumosx) in [#​7369](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7369) - Use Set hash in Distinct (2nd attempt) by [@​dashpole](https://redirect.github.com/dashpole) in [#​7175](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7175) - chore(deps): update module github.com/ldez/grignotin to v0.10.1 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7373](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7373) - chore(deps): update module github.com/kulti/thelper to v0.7.1 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7376](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7376) - chore(deps): update otel/weaver docker tag to v0.18.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7377](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7377) - fix(deps): update github.com/opentracing-contrib/go-grpc/test digest to [`a6e64aa`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/a6e64aa) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7375](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7375) - feat(prometheus): Add observability for prometheus exporter by [@​tongoss](https://redirect.github.com/tongoss) in [#​7345](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7345) - Return partial OTLP export errors to the caller by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7372](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7372) - sdk/log: add TestRecordMethodsInputConcurrentSafe by [@​pellared](https://redirect.github.com/pellared) in [#​7378](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7378) - chore(deps): update module github.com/sagikazarmark/locafero to v0.12.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7390](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7390) - chore(deps): update module github.com/tetafro/godot to v1.5.4 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7391](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7391) - fix(deps): update module github.com/golangci/golangci-lint/v2 to v2.5.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7392](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7392) - chore: sdk/log/internal/x - generate x package from x component template by [@​nikhilmantri0902](https://redirect.github.com/nikhilmantri0902) in [#​7389](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7389) - chore(deps): update module go.opentelemetry.io/build-tools to v0.28.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7394](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7394) - fix(deps): update build-tools to v0.28.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7395](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7395) - fix(deps): update googleapis to [`9219d12`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/9219d12) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7393](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7393) - fix(deps): update module go.opentelemetry.io/collector/pdata to v1.42.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7397](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7397) - refactor: replace `context.Background()` with `t.Context()`/`b.Context()` in tests by [@​flc1125](https://redirect.github.com/flc1125) in [#​7352](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7352) - sdk/log: BenchmarkAddAttributes, BenchmarkSetAttributes, BenchmarkSetBody by [@​pellared](https://redirect.github.com/pellared) in [#​7387](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7387) - Link checker: ignore https localhost uris by [@​dmathieu](https://redirect.github.com/dmathieu) in [#​7399](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7399) - chore(deps): update module github.com/ldez/gomoddirectives to v0.7.1 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7400](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7400) - chore(deps): update module dev.gaijin.team/go/golib to v0.7.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7402](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7402) - Add experimental `x` package to `otlptracegrpc` by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7401](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7401) - chore(deps): update actions/cache action to v4.3.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7409](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7409) - \[chore]: Clean-up unused obsScopeName const by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7408](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7408) - Add benchmark for synchronous gauge measurement by [@​dashpole](https://redirect.github.com/dashpole) in [#​7407](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7407) - Add measure benchmarks with exemplars recorded by [@​dashpole](https://redirect.github.com/dashpole) in [#​7406](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7406) - chore(deps): update github/codeql-action action to v3.30.4 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7414](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7414) - chore(deps): update module github.com/quasilyte/go-ruleguard to v0.4.5 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7416](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7416) - chore(deps): update module github.com/quasilyte/go-ruleguard/dsl to v0.3.23 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7417](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7417) - Optimize the return type of ExportSpans by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7405](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7405) - Optimize Observability return types in in Prometheus exporter by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7410](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7410) - chore(deps): update module github.com/mattn/go-runewidth to v0.0.17 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7418](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7418) - chore(deps): update module github.com/cyphar/filepath-securejoin to v0.5.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7419](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7419) - Add concurrent safe tests for metric aggregations by [@​dashpole](https://redirect.github.com/dashpole) in [#​7379](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7379) - chore(deps): update github/codeql-action action to v3.30.5 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7425](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7425) - sdk/trace/internal/x: generate x package from x component template [#​7385](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7385) by [@​ternua8](https://redirect.github.com/ternua8) in [#​7411](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7411) - chore(deps): update module go.augendre.info/fatcontext to v0.9.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7426](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7426) - Generate gRPC Client target parsing func by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7424](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7424) - chore(deps): update module github.com/mattn/go-runewidth to v0.0.19 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7428](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7428) - Prometheus exporter: change default translation strategy by [@​dashpole](https://redirect.github.com/dashpole) in [#​7421](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7421) - Only enforce cardinality limits when the attribute set does not already exist by [@​dashpole](https://redirect.github.com/dashpole) in [#​7422](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7422) - fix(deps): update googleapis to [`57b25ae`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/57b25ae) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7429](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7429) - chore(deps): update module github.com/charmbracelet/x/ansi to v0.10.2 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7432](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7432) - chore(deps): update golang.org/x/telemetry digest to [`8e64475`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/8e64475) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7431](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7431) - chore(deps): update ossf/scorecard-action action to v2.4.3 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7435](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7435) - Allow optimizing locking for built-in exemplar reservoirs by [@​dashpole](https://redirect.github.com/dashpole) in [#​7423](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7423) - chore(deps): update golang.org/x/telemetry digest to [`4eae98a`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/4eae98a) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7439](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7439) - chore(deps): update peter-evans/create-issue-from-file action to v6 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7440](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7440) - Add temporality selector functions by [@​dprotaso](https://redirect.github.com/dprotaso) in [#​7434](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7434) - fix(deps): update module google.golang.org/protobuf to v1.36.10 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7445](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7445) - chore(deps): update github/codeql-action action to v3.30.6 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7446](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7446) - Skip link checking for acm.org which blocks the link checker by [@​dashpole](https://redirect.github.com/dashpole) in [#​7444](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7444) - feat: logs SDK observability - otlploggrpc exporter metrics by [@​yumosx](https://redirect.github.com/yumosx) in [#​7353](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7353) - fix(deps): update golang.org/x to [`27f1f14`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/27f1f14) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7448](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7448) - fix(deps): update googleapis to [`7c0ddcb`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/7c0ddcb) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7449](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7449) - chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2 to v2.27.3 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7450](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7450) - Add exemplar reservoir parallel benchmarks by [@​dashpole](https://redirect.github.com/dashpole) in [#​7441](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7441) - chore(deps): update module github.com/ghostiam/protogetter to v0.3.17 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7451](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7451) - chore(deps): update actions/stale action to v10.1.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7452](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7452) - Support custom error type semantics by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7442](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7442) - fix(deps): update build-tools to v0.28.1 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7455](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7455) - chore(deps): update module github.com/go-git/go-git/v5 to v5.16.3 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7456](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7456) - chore(deps): update module github.com/bombsimon/wsl/v5 to v5.3.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7457](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7457) - sdk/trace: trace id high 64 bit tests by [@​mahendrabishnoi2](https://redirect.github.com/mahendrabishnoi2) in [#​7212](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7212) - Add the `internal/observ` package to `otlptracegrpc` by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7404](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7404) - fix(deps): update googleapis to [`65f7160`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/65f7160) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7460](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7460) - chore(deps): update module go.opentelemetry.io/collector/featuregate to v1.43.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7461](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7461) - fix(deps): update module google.golang.org/grpc to v1.76.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7463](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7463) - fix(deps): update module go.opentelemetry.io/collector/pdata to v1.43.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7462](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7462) - Use sync.Map and atomics to improve sum performance by [@​dashpole](https://redirect.github.com/dashpole) in [#​7427](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7427) - chore(deps): update module github.com/stretchr/objx to v0.5.3 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7464](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7464) - chore(deps): update module github.com/prometheus/common to v0.67.1 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7465](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7465) - Document the ordering guarantees provided by the metrics SDK by [@​dashpole](https://redirect.github.com/dashpole) in [#​7453](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7453) - chore(deps): update github/codeql-action action to v3.30.7 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7467](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7467) - chore(deps): update google.golang.org/genproto/googleapis/api digest to [`49b9836`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/49b9836) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7468](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7468) - Instrument the `otlptracegrpc` exporter by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7459](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7459) - fix(deps): update google.golang.org/genproto/googleapis/rpc digest to [`49b9836`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/49b9836) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7469](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7469) - chore(deps): update module golang.org/x/net to v0.45.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7470](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7470) - chore(deps): update github/codeql-action action to v4 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7472](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7472) - chore(deps): update module github.com/skeema/knownhosts to v1.3.2 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7471](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7471) - fix(deps): update golang.org/x by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7475](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7475) - chore(deps): update golang.org/x by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7477](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7477) - chore(deps): update module github.com/nunnatsa/ginkgolinter to v0.21.2 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7481](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7481) - chore(deps): update module github.com/ldez/exptostd to v0.4.5 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7483](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7483) - Add the internal `x` package to `otlptracehttp` by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7476](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7476) - Add a version const to otlptracehttp by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7479](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7479) - feat: Improve error handling in prometheus exporter by [@​tongoss](https://redirect.github.com/tongoss) in [#​7363](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7363) - Add the `internal/observ` pkg to `otlptracehttp` by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7480](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7480) - Move sdk/internal/env to sdk/trace/internal/env by [@​dmathieu](https://redirect.github.com/dmathieu) in [#​7437](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7437) - chore(deps): update module github.com/gofrs/flock to v0.13.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7487](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7487) - Instrument the `otlptracehttp` exporter by [@​MrAlias](https://redirect.github.com/MrAlias) in [#​7486](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7486) - chore(deps): update github/codeql-action action to v4.30.8 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7489](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7489) - chore(deps): update module github.com/catenacyber/perfsprint to v0.10.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7496](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7496) - OTLP trace exporter include W3C trace flags (bits 0–7) in Span.Flags by [@​nikhilmantri0902](https://redirect.github.com/nikhilmantri0902) in [#​7438](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7438) - Fix typos and linguistic errors in documentation / hacktoberfest by [@​survivant](https://redirect.github.com/survivant) in [#​7494](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7494) - chore(deps): update module github.com/kunwardeep/paralleltest to v1.0.15 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7501](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7501) - RELEASING - Remove demo-accounting service from dependency list by [@​Kielek](https://redirect.github.com/Kielek) in [#​7503](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7503) - Added the `internal/observ` package to otlploghttp by [@​yumosx](https://redirect.github.com/yumosx) in [#​7484](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7484) - fix(deps): update googleapis to [`4626949`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/4626949) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7506](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7506) - chore(deps): update module github.com/godoc-lint/godoc-lint to v0.10.1 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7508](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7508) - fix(observ): correct rejected items and update comment style by [@​yumosx](https://redirect.github.com/yumosx) in [#​7502](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7502) - chore(deps): update module github.com/go-critic/go-critic to v0.14.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7509](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7509) - Prometheus exporter tests: iterate through all scopes rather than looking only at the first by [@​tongoss](https://redirect.github.com/tongoss) in [#​7510](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7510) - chore: sdk/internal/x - generate x package from shared template by [@​nikhilmantri0902](https://redirect.github.com/nikhilmantri0902) in [#​7495](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7495) - sdk/log: Fix AddAttributes, SetAttributes, SetBody on Record to not mutate input by [@​pellared](https://redirect.github.com/pellared) in [#​7403](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7403) - chore(deps): update github/codeql-action action to v4.30.9 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7515](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7515) - feat: sdk/trace: span processed metric for simple span processor by [@​mahendrabishnoi2](https://redirect.github.com/mahendrabishnoi2) in [#​7374](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7374) - Simulate failures for histogram creation paths without risking a nil-interface panic by [@​tongoss](https://redirect.github.com/tongoss) in [#​7518](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7518) - fix(deps): update golang.org/x by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7482](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7482) - fix(deps): update googleapis to [`88f65dc`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/88f65dc) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7521](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7521) - chore(deps): update module go.opentelemetry.io/collector/featuregate to v1.44.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7522](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7522) - fix(deps): update module go.opentelemetry.io/collector/pdata to v1.44.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7523](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7523) - chore(deps): update module github.com/abirdcfly/dupword to v0.1.7 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7525](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7525) - Instrument the `otlploghttp` exporter by [@​yumosx](https://redirect.github.com/yumosx) in [#​7512](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7512) - chore(deps): update module mvdan.cc/gofumpt to v0.9.2 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7527](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7527) - Move scorpionknifes to emeritus by [@​dmathieu](https://redirect.github.com/dmathieu) in [#​7526](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7526) - chore(deps): update module github.com/prometheus/procfs to v0.18.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7530](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7530) - fix(deps): update googleapis to [`3a174f9`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/3a174f9) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7529](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7529) - chore(deps): update golang.org/x/telemetry digest to [`5be28d7`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/5be28d7) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7528](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7528) - fix(deps): update golang.org/x to [`a4bb9ff`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/a4bb9ff) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7533](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7533) - Added the `internal/observ` package to log by [@​yumosx](https://redirect.github.com/yumosx) in [#​7532](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7532) - chore(deps): update module github.com/charithe/durationcheck to v0.0.11 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7534](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7534) - chore(deps): update github artifact actions (major) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7537](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/7537) - chore(deps): update github/codeql-action action to v4. </details> --- ### Configuration 📅 **Schedule**: Branch creation - "" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/open-feature/flagd). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My40My4yIiwidXBkYXRlZEluVmVyIjoiNDMuNDMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…1934) > ℹ️ **Note** > > This PR body was truncated due to platform limits. This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp](https://redirect.github.com/open-telemetry/opentelemetry-go) | `v0.14.0` → `v0.19.0` |  |  | | [go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp](https://redirect.github.com/open-telemetry/opentelemetry-go) | `v0.18.0` → `v0.19.0` |  |  | | [go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp](https://redirect.github.com/open-telemetry/opentelemetry-go) | `v1.40.0` → `v1.43.0` |  |  | | [go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp](https://redirect.github.com/open-telemetry/opentelemetry-go) | `v1.42.0` → `v1.43.0` |  |  | | [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp](https://redirect.github.com/open-telemetry/opentelemetry-go) | `v1.40.0` → `v1.43.0` |  |  | | [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp](https://redirect.github.com/open-telemetry/opentelemetry-go) | `v1.42.0` → `v1.43.0` |  |  | | [go.opentelemetry.io/otel/sdk](https://redirect.github.com/open-telemetry/opentelemetry-go) | `v1.40.0` → `v1.43.0` |  |  | ### GitHub Vulnerability Alerts #### [CVE-2026-39882](https://redirect.github.com/open-telemetry/opentelemetry-go/security/advisories/GHSA-w8rr-5gcm-pp58) overview: this report shows that the otlp HTTP exporters (traces/metrics/logs) read the full HTTP response body into an in-memory `bytes.Buffer` without a size cap. this is exploitable for memory exhaustion when the configured collector endpoint is attacker-controlled (or a network attacker can mitm the exporter connection). severity HIGH not claiming: this is a remote dos against every default deployment. claiming: if the exporter sends traces to an untrusted collector endpoint (or over a network segment where mitm is realistic), that endpoint can crash the process via a large response body. callsite (pinned): - exporters/otlp/otlptrace/otlptracehttp/client.go:199 - exporters/otlp/otlptrace/otlptracehttp/client.go:230 - exporters/otlp/otlpmetric/otlpmetrichttp/client.go:170 - exporters/otlp/otlpmetric/otlpmetrichttp/client.go:201 - exporters/otlp/otlplog/otlploghttp/client.go:190 - exporters/otlp/otlplog/otlploghttp/client.go:221 permalinks (pinned): - https://github.com/open-telemetry/opentelemetry-go/blob/248da958375e4dfb4a1105645107be3ef04b1c59/exporters/otlp/otlptrace/otlptracehttp/client.go#L199 - https://github.com/open-telemetry/opentelemetry-go/blob/248da958375e4dfb4a1105645107be3ef04b1c59/exporters/otlp/otlptrace/otlptracehttp/client.go#L230 - https://github.com/open-telemetry/opentelemetry-go/blob/248da958375e4dfb4a1105645107be3ef04b1c59/exporters/otlp/otlpmetric/otlpmetrichttp/client.go#L170 - https://github.com/open-telemetry/opentelemetry-go/blob/248da958375e4dfb4a1105645107be3ef04b1c59/exporters/otlp/otlpmetric/otlpmetrichttp/client.go#L201 - https://github.com/open-telemetry/opentelemetry-go/blob/248da958375e4dfb4a1105645107be3ef04b1c59/exporters/otlp/otlplog/otlploghttp/client.go#L190 - https://github.com/open-telemetry/opentelemetry-go/blob/248da958375e4dfb4a1105645107be3ef04b1c59/exporters/otlp/otlplog/otlploghttp/client.go#L221 root cause: each exporter client reads `resp.Body` using `io.Copy(&respData, resp.Body)` into a `bytes.Buffer` on both success and error paths, with no upper bound. impact: a malicious collector can force large transient heap allocations during export (peak memory scales with attacker-chosen response size) and can potentially crash the instrumented process (oom). affected component: - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp - go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp repro (local-only): ```bash unzip poc.zip -d poc cd poc make canonical resp_bytes=33554432 chunk_delay_ms=0 ``` expected output contains: ``` [CALLSITE_HIT]: otlptracehttp.UploadTraces::io.Copy(resp.Body) [PROOF_MARKER]: resp_bytes=33554432 peak_alloc_bytes=118050512 ``` control (same env, patched target): ```bash unzip poc.zip -d poc cd poc make control resp_bytes=33554432 chunk_delay_ms=0 ``` expected control output contains: ``` [CALLSITE_HIT]: otlptracehttp.UploadTraces::io.Copy(resp.Body) [NC_MARKER]: resp_bytes=33554432 peak_alloc_bytes=512232 ``` attachments: poc.zip (attached) [PR_DESCRIPTION.md](https://redirect.github.com/user-attachments/files/25564272/PR_DESCRIPTION.md) [attack_scenario.md](https://redirect.github.com/user-attachments/files/25564273/attack_scenario.md) [poc.zip](https://redirect.github.com/user-attachments/files/25564271/poc.zip) Fixed in: [https://github.com/open-telemetry/opentelemetry-go/pull/8108](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/8108) #### [CVE-2026-39883](https://redirect.github.com/open-telemetry/opentelemetry-go/security/advisories/GHSA-hfvc-g4fc-pqhx) ## Summary The fix for GHSA-9h8m-3fm2-qjrq (CVE-2026-24051) changed the Darwin `ioreg` command to use an absolute path but left the BSD `kenv` command using a bare name, allowing the same PATH hijacking attack on BSD and Solaris platforms. ## Root Cause `sdk/resource/host_id.go` line 42: if result, err := r.execCommand("kenv", "-q", "smbios.system.uuid"); err == nil { Compare with the fixed Darwin path at line 58: result, err := r.execCommand("/usr/sbin/ioreg", "-rd1", "-c", "IOPlatformExpertDevice") The `execCommand` helper at `sdk/resource/host_id_exec.go` uses `exec.Command(name, arg...)` which searches `$PATH` when the command name contains no path separator. Affected platforms (per build tag in `host_id_bsd.go:4`): DragonFly BSD, FreeBSD, NetBSD, OpenBSD, Solaris. The `kenv` path is reached when `/etc/hostid` does not exist (line 38-40), which is common on FreeBSD systems. ## Attack 1. Attacker has local access to a system running a Go application that imports `go.opentelemetry.io/otel/sdk` 2. Attacker places a malicious `kenv` binary earlier in `$PATH` 3. Application initializes OpenTelemetry resource detection at startup 4. `hostIDReaderBSD.read()` calls `exec.Command("kenv", ...)` which resolves to the malicious binary 5. Arbitrary code executes in the context of the application Same attack vector and impact as CVE-2026-24051. ## Suggested Fix Use the absolute path: if result, err := r.execCommand("/bin/kenv", "-q", "smbios.system.uuid"); err == nil { On FreeBSD, `kenv` is located at `/bin/kenv`. --- ### Release Notes <details> <summary>open-telemetry/opentelemetry-go (go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp)</summary> ### [`v0.19.0`](https://redirect.github.com/open-telemetry/opentelemetry-go/releases/tag/v0.19.0) [Compare Source](https://redirect.github.com/open-telemetry/opentelemetry-go/compare/v0.18.0...v0.19.0) ##### Added - Added `Marshaler` config option to `otlphttp` to enable otlp over json or protobufs. ([#​1586](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1586)) - A `ForceFlush` method to the `"go.opentelemetry.io/otel/sdk/trace".TracerProvider` to flush all registered `SpanProcessor`s. ([#​1608](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1608)) - Added `WithSampler` and `WithSpanLimits` to tracer provider. ([#​1633](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1633), [#​1702](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1702)) - `"go.opentelemetry.io/otel/trace".SpanContext` now has a `remote` property, and `IsRemote()` predicate, that is true when the `SpanContext` has been extracted from remote context data. ([#​1701](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1701)) - A `Valid` method to the `"go.opentelemetry.io/otel/attribute".KeyValue` type. ([#​1703](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1703)) ##### Changed - `trace.SpanContext` is now immutable and has no exported fields. ([#​1573](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1573)) - `trace.NewSpanContext()` can be used in conjunction with the `trace.SpanContextConfig` struct to initialize a new `SpanContext` where all values are known. - Update the `ForceFlush` method signature to the `"go.opentelemetry.io/otel/sdk/trace".SpanProcessor` to accept a `context.Context` and return an error. ([#​1608](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1608)) - Update the `Shutdown` method to the `"go.opentelemetry.io/otel/sdk/trace".TracerProvider` return an error on shutdown failure. ([#​1608](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1608)) - The SimpleSpanProcessor will now shut down the enclosed `SpanExporter` and gracefully ignore subsequent calls to `OnEnd` after `Shutdown` is called. ([#​1612](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1612)) - `"go.opentelemetry.io/sdk/metric/controller.basic".WithPusher` is replaced with `WithExporter` to provide consistent naming across project. ([#​1656](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1656)) - Added non-empty string check for trace `Attribute` keys. ([#​1659](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1659)) - Add `description` to SpanStatus only when `StatusCode` is set to error. ([#​1662](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1662)) - Jaeger exporter falls back to `resource.Default`'s `service.name` if the exported Span does not have one. ([#​1673](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1673)) - Jaeger exporter populates Jaeger's Span Process from Resource. ([#​1673](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1673)) - Renamed the `LabelSet` method of `"go.opentelemetry.io/otel/sdk/resource".Resource` to `Set`. ([#​1692](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1692)) - Changed `WithSDK` to `WithSDKOptions` to accept variadic arguments of `TracerProviderOption` type in `go.opentelemetry.io/otel/exporters/trace/jaeger` package. ([#​1693](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1693)) - Changed `WithSDK` to `WithSDKOptions` to accept variadic arguments of `TracerProviderOption` type in `go.opentelemetry.io/otel/exporters/trace/zipkin` package. ([#​1693](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1693)) - `"go.opentelemetry.io/otel/sdk/resource".NewWithAttributes` will now drop any invalid attributes passed. ([#​1703](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1703)) - `"go.opentelemetry.io/otel/sdk/resource".StringDetector` will now error if the produced attribute is invalid. ([#​1703](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1703)) ##### Removed - Removed `serviceName` parameter from Zipkin exporter and uses resource instead. ([#​1549](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1549)) - Removed `WithConfig` from tracer provider to avoid overriding configuration. ([#​1633](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1633)) - Removed the exported `SimpleSpanProcessor` and `BatchSpanProcessor` structs. These are now returned as a SpanProcessor interface from their respective constructors. ([#​1638](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1638)) - Removed `WithRecord()` from `trace.SpanOption` when creating a span. ([#​1660](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1660)) - Removed setting status to `Error` while recording an error as a span event in `RecordError`. ([#​1663](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1663)) - Removed `jaeger.WithProcess` configuration option. ([#​1673](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1673)) - Removed `ApplyConfig` method from `"go.opentelemetry.io/otel/sdk/trace".TracerProvider` and the now unneeded `Config` struct. ([#​1693](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1693)) ##### Fixed - Jaeger Exporter: Ensure mapping between OTEL and Jaeger span data complies with the specification. ([#​1626](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1626)) - `SamplingResult.TraceState` is correctly propagated to a newly created span's `SpanContext`. ([#​1655](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1655)) - The `otel-collector` example now correctly flushes metric events prior to shutting down the exporter. ([#​1678](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1678)) - Do not set span status message in `SpanStatusFromHTTPStatusCode` if it can be inferred from `http.status_code`. ([#​1681](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1681)) - Synchronization issues in global trace delegate implementation. ([#​1686](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1686)) - Reduced excess memory usage by global `TracerProvider`. ([#​1687](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1687)) *** ##### Raw changes made between v0.18.0 and v0.19.0 [`2b4fa96`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/2b4fa9681bd0c69574aaa879039382002b220204) (HEAD -> main, tag: v0.19.0, tag: trace/v0.19.0, tag: sdk/v0.19.0, tag: sdk/metric/v0.19.0, tag: sdk/export/metric/v0.19.0, tag: oteltest/v0.19.0, tag: metric/v0.19.0, tag: exporters/trace/zipkin/v0.19.0, tag: exporters/trace/jaeger/v0.19.0, tag: exporters/stdout/v0.19.0, tag: exporters/otlp/v0.19.0, tag: exporters/metric/prometheus/v0.19.0, tag: example/zipkin/v0.19.0, tag: example/prometheus/v0.19.0, tag: example/prom-collector/v0.19.0, tag: example/otel-collector/v0.19.0, tag: example/opencensus/v0.19.0, tag: example/namedtracer/v0.19.0, tag: example/jaeger/v0.19.0, tag: bridge/opentracing/v0.19.0, tag: bridge/opencensus/v0.19.0, upstream/main, origin/main) Release v0.19.0 ([#​1710](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1710)) [`4beb704`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/4beb70416e1272c578edfe1d5f88a3a2236da178) sdk/trace: removing ApplyConfig and Config ([#​1693](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1693)) [`1d42be1`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/1d42be1601e2d9bbd1101780759520e3f3960a29) Rename WithDefaultSampler TracerProvider option to WithSampler and update docs ([#​1702](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1702)) [`860d5d8`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/860d5d86e7ace12bf2b2ca8e437d2d4fc68a6913) Add flag to determine whether SpanContext is remote ([#​1701](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1701)) [`0fe65e6`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/0fe65e6bd2b3fad00289427e0bac1974086d4326) Comply with OpenTelemetry attributes specification ([#​1703](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1703)) [`8888435`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/888843519dae308f165d1d20c095bb6352baeb52) Bump google.golang.org/api from 0.40.0 to 0.41.0 in /exporters/trace/jaeger ([#​1700](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1700)) [`345f264`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/345f264a137ed7162c30d14dd4739b5b72f76537) (global-docs) breaking(zipkin): removes servicName from zipkin exporter. ([#​1697](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1697)) [`62cbf0f`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/62cbf0f240112813105d7056506496b59740e0c2) Populate Jaeger's Span.Process from Resource ([#​1673](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1673)) [`28eaaa9`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/28eaaa9a919d03227856d83e2149b85f78d57775) Add a test to prove the Tracer is safe for concurrent calls ([#​1665](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1665)) [`8b1be11`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/8b1be11a549eefb6efeda2f940cbda70b3c3d08d) Rename resource pkg label vars and methods ([#​1692](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1692)) [`a1539d4`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/a1539d44857a29ea43c9da9bc95e0229f79c2663) OpenCensus metric exporter bridge ([#​1444](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1444)) [`77aa218`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/77aa218d4d8fa2ebda14a7a0b58db22fd20398b7) Fix issue [#​1490](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1490), apply same logic as in the SDK ([#​1687](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1687)) [`9d3416c`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/9d3416cc915ba4bfe0e7328da24bb6a3000549f9) Fix synchronization issues in global trace delegate implementation ([#​1686](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1686)) [`58f69f0`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/58f69f091e61db2ca7a8ca31d518c5de02411184) Span status from HTTP code: Do not set status message if it can be inferred ([#​1681](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1681)) [`9c305bd`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/9c305bde9c27bc2252f13ca21fc869918601b124) Flush metric events prior to shutdown in OTLP example ([#​1678](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1678)) [`66b1135`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/66b1135af4afdd1740d1c0738b9e2c5e6fe4e937) Fix CHANGELOG ([#​1680](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1680)) [`90bd4ab`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/90bd4ab50c6e85743f2b8f3a1768a5afceeb1fc0) Update employer information for maintainers ([#​1683](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1683)) [`3684191`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/368419133859dcd7a97a881ce57082d1c0a3fbfe) Remove WithRecord() option from trace.SpanOption when starting a span ([#​1660](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1660)) [`65c7de2`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/65c7de206921411cc4220c107bcad893a12033c5) Remove trace prefix from NoOp src files. ([#​1679](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1679)) [`e88a091`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/e88a091a72e4cf4c3f3a6d6e4b440d757bd3ecac) Make SpanContext Immutable ([#​1573](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1573)) [`d75e268`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/d75e268053a7a3fc19394cb48a98d22fd15eb36a) Avoid overriding configuration of tracer provider ([#​1633](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1633)) [`2b4d5ac`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/2b4d5ac3293eee30536754a5d5efec5124433ded) Bump github.com/golangci/golangci-lint in /internal/tools ([#​1671](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1671)) [`150b868`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/150b868d02c8b9844f3db446d91267ad4e75beb9) Bump github.com/google/go-cmp from 0.5.4 to 0.5.5 ([#​1667](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1667)) [`76aa924`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/76aa924e75b22f95bb189337fb9d46b64bc66c53) Fix the examples target info messaging ([#​1676](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1676)) [`a3aa9fd`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/a3aa9fdab061197aae67ac4a2c57712cfe5ef38e) Bump github.com/itchyny/gojq from 0.12.1 to 0.12.2 in /internal/tools ([#​1672](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1672)) [`a5edd79`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/a5edd79e312675f0cccf75aa324495205c95fe73) Removed setting error status while recording err as span event ([#​1663](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1663)) [`e981475`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/e9814758278b57ef5bd939aa6fcb6a1a10772db0) chore(zipkin): improves zipkin example to not to depend on timeouts. ([#​1566](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1566)) [`3dc91f2`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/3dc91f2d76146ac6a08012b8c451cc00e59ef481) Add ForceFlush method to TracerProvider ([#​1608](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1608)) [`bd0bba4`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/bd0bba43b5a1edb1da059760462fa15d81ff7cd9) exporter: swap pusher for exporter ([#​1656](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1656)) [`5690485`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/569048591c2661808ebddbd953c41c6808289454) Update the SimpleSpanProcessor ([#​1612](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1612)) [`a7f7aba`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/a7f7abac654d0c3fc93732c7f47c2bef05976eb4) SpanStatus description set only when status code is set to Error ([#​1662](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1662)) [`05252f4`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/05252f40d807999388813afb2802918a38cc0e8a) Jaeger Exporter: Fix minor mapping discrepancies ([#​1626](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1626)) [`238e7c6`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/238e7c61ba9e5b2ca3f66f20a5db5711e062f36e) Add non-empty string check for attribute keys ([#​1659](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1659)) [`e9b9aca`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/e9b9aca8a6dc8cd0b13ffea4f7a26186f4b316fd) Add tests for propagation of Sampler Tracestate changes ([#​1655](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1655)) [`875a258`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/875a25835fcfcddd61e94d87b1a0b14db4d5a0e5) Add docs on when reviews should be cleared ([#​1556](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1556)) [`7153ef2`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/7153ef2dc294fbfebaafd355ab98050b4181ff1f) Add HTTP/JSON to the otlp exporter ([#​1586](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1586)) [`62e2a0f`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/62e2a0f766d001e48867866ba7293565b9caa0c0) Unexport the simple and batch SpanProcessors ([#​1638](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1638)) [`992837f`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/992837f195eacbd84f0596bfaa79470dba7408e5) Add TracerProvider tests to oteltest harness ([#​1607](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1607)) ### [`v0.18.0`](https://redirect.github.com/open-telemetry/opentelemetry-go/releases/tag/v0.18.0) [Compare Source](https://redirect.github.com/open-telemetry/opentelemetry-go/compare/v0.17.0...v0.18.0) ##### Added - Added `resource.Default()` for use with meter and tracer providers. ([#​1507](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1507)) - `AttributePerEventCountLimit` and `AttributePerLinkCountLimit` for `SpanLimits`. ([#​1535](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1535)) - Added `Keys()` method to `propagation.TextMapCarrier` and `propagation.HeaderCarrier` to adapt `http.Header` to this interface. ([#​1544](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1544)) - Added `code` attributes to `go.opentelemetry.io/otel/semconv` package. ([#​1558](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1558)) - Compatibility testing suite in the CI system for the following systems. ([#​1567](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1567)) | OS | Go Version | Architecture | | ------- | ---------- | ------------ | | Ubuntu | 1.15 | amd64 | | Ubuntu | 1.14 | amd64 | | Ubuntu | 1.15 | 386 | | Ubuntu | 1.14 | 386 | | MacOS | 1.15 | amd64 | | MacOS | 1.14 | amd64 | | Windows | 1.15 | amd64 | | Windows | 1.14 | amd64 | | Windows | 1.15 | 386 | | Windows | 1.14 | 386 | ##### Changed - Replaced interface `oteltest.SpanRecorder` with its existing implementation `StandardSpanRecorder` ([#​1542](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1542)). - Default span limit values to 128. ([#​1535](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1535)) - Rename `MaxEventsPerSpan`, `MaxAttributesPerSpan` and `MaxLinksPerSpan` to `EventCountLimit`, `AttributeCountLimit` and `LinkCountLimit`, and move these fields into `SpanLimits`. ([#​1535](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1535)) - Renamed the `otel/label` package to `otel/attribute`. ([#​1541](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1541)) - Vendor the Jaeger exporter's dependency on Apache Thrift. ([#​1551](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1551)) - Parallelize the CI linting and testing. ([#​1567](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1567)) - Stagger timestamps in exact aggregator tests. ([#​1569](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1569)) - Changed all examples to use `WithBatchTimeout(5 * time.Second)` rather than `WithBatchTimeout(5)`. ([#​1621](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1621)) - Prevent end-users from implementing some interfaces ([#​1575](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1575)) ``` "otel/exporters/otlp/otlphttp".Option "otel/exporters/stdout".Option "otel/oteltest".Option "otel/trace".TracerOption "otel/trace".SpanOption "otel/trace".EventOption "otel/trace".LifeCycleOption "otel/trace".InstrumentationOption "otel/sdk/resource".Option "otel/sdk/trace".ParentBasedSamplerOption "otel/sdk/trace".ReadOnlySpan "otel/sdk/trace".ReadWriteSpan ``` ##### Removed - Removed attempt to resample spans upon changing the span name with `span.SetName()`. ([#​1545](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1545)) - The `test-benchmark` is no longer a dependency of the `precommit` make target. ([#​1567](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1567)) - Removed the `test-386` make target. This was replaced with a full compatibility testing suite (i.e. multi OS/arch) in the CI system. ([#​1567](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1567)) ##### Fixed - The sequential timing check of timestamps in the stdout exporter are now setup explicitly to be sequential ([#​1571](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1571)). ([#​1572](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1572)) - Windows build of Jaeger tests now compiles with OS specific functions ([#​1576](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1576)). ([#​1577](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1577)) - The sequential timing check of timestamps of go.opentelemetry.io/otel/sdk/metric/aggregator/lastvalue are now setup explicitly to be sequential ([#​1578](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1578)). ([#​1579](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1579)) - Validate tracestate header keys with vedors according to the W3C TraceContext specification ([#​1475](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1475)). ([#​1581](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1581)) - The OTLP exporter includes related labels for translations of a GaugeArray ([#​1563](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1563)). ([#​1570](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1570)) # Raw changes made between v0.17.0 and v0.18.0 [`bb4c297`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/bb4c297eb36f6af082bfa1d3216d33bd90da05f0) Pre release v0.18.0 ([#​1635](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1635)) [`712c3dc`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/712c3dccf805f2397a4b15ce467e234c7b515c18) Fix makefile ci target and coverage test packages ([#​1634](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1634)) [`841d2a5`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/841d2a5885b37fc25fe77e72dca3b0f6bac945b2) Rename local var new to not collide with builtin ([#​1610](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1610)) [`13938ab`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/13938ab5a867b7840c6c829b74a9ab39b828730e) Update SpanProcessor docs ([#​1611](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1611)) [`e25503a`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/e25503a00edef6baf2b3deb1a5884d4501e08dcf) Add compatibility tests to CI ([#​1567](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1567)) [`1519d95`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/1519d959829b2fd7a7a1b9b904b57235eb54e114) Use reasonable interval in sdktrace.WithBatchTimeout ([#​1621](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1621)) [`7d4496e`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/7d4496e0fefc99cfa70b86a09e3f8af8eae537f6) Pass metric labels when transforming to gaugeArray ([#​1570](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1570)) [`6d4a5e0`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/6d4a5e0df334546987f7d0583e0e86cdf01f2e66) Bump google.golang.org/grpc from 1.35.0 to 1.36.0 in /exporters/otlp ([#​1619](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1619)) [`a93393a`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/a93393a0d754d3b16227fbfa9df4f37b07351028) Bump google.golang.org/grpc in /example/prom-collector ([#​1620](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1620)) [`e499ca8`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/e499ca86b7ef54b42f6dd684ccbf73f226af10bd) Fix validation for tracestate with vendor and add tests ([#​1581](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1581)) [`43886e5`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/43886e52f38de640d5f7abf6d9622fc1483ce649) Make timestamps sequential in lastvalue agg check ([#​1579](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1579)) [`37688ef`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/37688ef67616aa5a99e27fb03320fd0dc87e590e) revent end-users from implementing some interfaces ([#​1575](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1575)) [`85e696d`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/85e696d20b9a6fee781fd42f68fe1b447559dc5c) Updating documentation with an working example for creating NewExporter ([#​1513](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1513)) [`562eb28`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/562eb28b7169cd83959fdb7fe1dddec74ee44ea1) Unify the Added sections of the unreleased changes ([#​1580](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1580)) [`c4cf1af`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/c4cf1aff6bba39f4e0384f5223d33647f9973a77) Fix Windows build of Jaeger tests ([#​1577](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1577)) [`4a163be`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/4a163beaa103fd57b4cf6e07dc19781ab2fda4a9) Fix stdout TestStdoutTimestamp failure with sleep ([#​1572](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1572)) [`bd4701e`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/bd4701eb935b94b0cfa21f925410fcb13cc1e389) Stagger timestamps in exact aggregator tests ([#​1569](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1569)) [`b94cd4b`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/b94cd4b24917d0099eb0ddee6f9d6be0bddee469) add code attributes to semconv package ([#​1558](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1558)) [`78c06ce`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/78c06cef3537999b4692c9f88dfb91a6451337a0) Update docs from gitter to slack for communication ([#​1554](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1554)) [`1307c91`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/1307c9116265619812781cf5b02898acabc1ef83) Remove vendor exclude from license-check ([#​1552](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1552)) [`5d2636e`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/5d2636e5bfa8538c8f36b8f11145d96351dbcd6b) Bump github.com/golangci/golangci-lint in /internal/tools ([#​1565](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1565)) [`d7aff47`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/d7aff47338ec7f6957a15262721da7fdfe5524ca) Vendor Thrift dependency ([#​1551](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1551)) [`298c5a1`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/298c5a142f4e4eb9eb9f249ff4d2fdff63bbd702) Update span limits to conform with OpenTelemetry specification ([#​1535](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1535)) [`ecf65d7`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/ecf65d7968225482a4d50e4955d6bc826119b49c) Rename otel/label -> otel/attribute ([#​1541](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1541)) [`1b5b662`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/1b5b66213656691e3528909fe39fa030eae15423) Remove resampling on span.SetName ([#​1545](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1545)) [`8da5299`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/8da5299621bd6b2de185a1e06c93289a96b1af25) fix: grpc reconnection ([#​1521](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1521)) [`3bce9c9`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/3bce9c97f800c12a791e78a1611991818f9b4db6) Add Keys() method to propagation.TextMapCarrier ([#​1544](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1544)) [`0b1a1c7`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/0b1a1c7237f3172586bb6332397997bf71e27de0) Make oteltest.SpanRecorder into a concrete type ([#​1542](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1542)) [`7d0e3e5`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/7d0e3e52b69b2ba62ef617719fba5c3ca2aea86b) SDK span no modification after ended ([#​1543](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1543)) [`7de3b58`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/7de3b58ce9e893f0f1f8214d63329ac82d759327) Remove extra labels types ([#​1314](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1314)) [`73194e4`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/73194e44dbe9ecb2ba68f80b9a687edc66ce4d2d) Bump google.golang.org/api from 0.39.0 to 0.40.0 in /exporters/trace/jaeger ([#​1536](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1536)) [`8fae0a6`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/8fae0a644ad30b2f45f0e30cdea2efd7c8654ccf) Create resource.Default() with required attributes/default values ([#​1507](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1507)) ### [`v0.17.0`](https://redirect.github.com/open-telemetry/opentelemetry-go/releases/tag/v0.17.0) [Compare Source](https://redirect.github.com/open-telemetry/opentelemetry-go/compare/v0.16.0...v0.17.0) ##### Changed - Rename project default branch from `master` to `main`. - Reverse order in which `Resource` attributes are merged, per change in spec. ([#​1501](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1501)) - Add tooling to maintain "replace" directives in go.mod files automatically. ([#​1528](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1528)) - Create new modules: otel/metric, otel/trace, otel/oteltest, otel/sdk/export/metric, otel/sdk/metric ([#​1528](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1528)) - Move metric-related public global APIs from otel to otel/metric/global. ([#​1528](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1528)) *** [`9b242bc`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/9b242bc4015d82acd63614a9e9ddba0cd1bceca8) (upstream/main, origin/main, main) Organize API into Go modules based on stability and dependencies ([#​1528](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1528)) [`e50a1c8`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/e50a1c8cecb8c584bdfada6cb21fe0b173a22646) Bump actions/cache from v2 to v2.1.4 ([#​1518](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1518)) [`a6aa7f0`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/a6aa7f00d02eb0f97056c51c439ef2874ba2410d) Bump google.golang.org/api from 0.38.0 to 0.39.0 in /exporters/trace/jaeger ([#​1517](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1517)) [`38efc87`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/38efc875cf1c9e9ae72d3021b0a813ed7fa3ce00) Code Improvement - Error strings should not be capitalized ([#​1488](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1488)) [`6b34050`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/6b340501b3b722ca36c4f9ad23678ed0a9783df3) Update default branch name ([#​1505](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1505)) [`b39fd05`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/b39fd052d472c9100286cd2af61bef735bd5c7fd) nit: Fix comment to be up-to-date ([#​1510](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1510)) [`186c295`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/186c29539f41ce5aa93b732aa70f08d50338164d) Fix golint error of package comment form ([#​1487](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1487)) [`9308d66`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/9308d6628ef77b38a9383f13dddaf7ddfe83b882) Bump google.golang.org/api from 0.37.0 to 0.38.0 in /exporters/trace/jaeger ([#​1506](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1506)) [`1952d7b`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/1952d7b6af6bbd1de70fad8abfc2585b750b8fc4) Reverse order of attribute precedence when merging two Resources ([#​1501](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1501)) [`ad7b471`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/ad7b4715860b3b40abc876093c075bf765a6e120) Remove build flags for runtime/trace support ([#​1498](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1498)) [`4bf4b69`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/4bf4b69050b7bcfe8c414522d051ebe5566c983d) Remove inaccurate and unnecessary import comment ([#​1481](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1481)) [`7e19eb6`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/7e19eb6a76deb9cc46b33604ce3dee919d398e62) Bump google.golang.org/api from 0.36.0 to 0.37.0 in /exporters/trace/jaeger ([#​1504](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1504)) [`c6a4406`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/c6a4406a586feeb14a046c31781899c073d42389) Bump github.com/golangci/golangci-lint in /internal/tools ([#​1503](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1503)) [`9524ac0`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/9524ac095466565e01746600da3d83f27220a5da) (upstream/master, origin/master, origin/HEAD) Update workflows to include main branch as trigger ([#​1497](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1497)) [`c066f15`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/c066f15ed74fec52c4755014bfcf2bdfb8e0e661) Bump github.com/gogo/protobuf from 1.3.1 to 1.3.2 in /internal/tools ([#​1478](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1478)) [`894e024`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/894e024027a47cad15c6a6a49449e100f4bfb63a) Bump github.com/golangci/golangci-lint in /internal/tools ([#​1477](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1477)) [`71ffba3`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/71ffba39d1f96df023a31df14aa57c99f53017d0) Bump google.golang.org/grpc from 1.34.0 to 1.35.0 in /exporters/otlp ([#​1471](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1471)) [`515809a`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/515809a845a9f5991c3436ce0d8e5d2aa535152a) Bump github.com/itchyny/gojq from 0.12.0 to 0.12.1 in /internal/tools ([#​1472](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1472)) [`3e96ad1`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/3e96ad1ee68eebf5ea4726af58162591a326b32e) gitignore: remove unused example path ([#​1474](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1474)) [`c562277`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/c56227771d4c3551cf4eec84a3a6d1881f5dbd9f) Histogram aggregator functional options ([#​1434](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1434)) [`0df8cd6`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/0df8cd620c46567b38a70f1f1a8e968d0a806c06) Rename Makefile.proto to avoid interpretation as proto file ([#​1468](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1468)) [`979ff51`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/979ff51f2229b9a4c66dda798b14a778a9c636a9) Bump github.com/stretchr/testify from 1.6.1 to 1.7.0 ([#​1453](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1453)) [`1df8b3b`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/1df8b3b8812a296c68fedb14d67de4ec00f4394b) Bump github.com/gogo/protobuf from 1.3.1 to 1.3.2 in /exporters/otlp ([#​1456](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1456)) [`4c30a90`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/4c30a90a45f28be483d96565ef3fb35222de1d69) Bump github.com/stretchr/testify from 1.6.1 to 1.7.0 in /sdk ([#​1455](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1455)) [`5a9f8f6`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/5a9f8f6e4e6c472179585ba743ffb14de372d973) Bump github.com/stretchr/testify from 1.6.1 to 1.7.0 in /exporters/stdout ([#​1454](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1454)) [`7786f34`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/7786f34cff0cd9e3b40505c9460cf53014cb044c) Bump github.com/stretchr/testify from 1.6.1 to 1.7.0 in /exporters/trace/zipkin ([#​1457](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1457)) [`4352a7a`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/4352a7a671347be0c676240bdb60cf87f85f8360) Bump github.com/stretchr/testify from 1.6.1 to 1.7.0 in /exporters/otlp ([#​1460](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1460)) [`6990b3b`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/6990b3b3ea1f792e3e9ac90694dec1b74171b80f) Bump github.com/stretchr/testify from 1.6.1 to 1.7.0 in /exporters/metric/prometheus ([#​1461](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1461)) [`7af40d2`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/7af40d2221f0ccdc1cec53b960e55d5767c4c14a) Bump github.com/stretchr/testify from 1.6.1 to 1.7.0 in /exporters/trace/jaeger ([#​1463](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1463)) [`f16f189`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/f16f18929b778b2430dca66ccc50ffed1f25300b) Bump google.golang.org/grpc in /example/otel-collector ([#​1465](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1465)) [`fe363be`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/fe363be3994012a06e58c713ed0f6e60a2193151) Move Span Event to API ([#​1452](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1452)) [`4392224`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/439222408b10859b9b92c9bd410041507a8bbf14) Bump google.golang.org/grpc in /example/prom-collector ([#​1466](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1466)) ### [`v0.16.0`](https://redirect.github.com/open-telemetry/opentelemetry-go/releases/tag/v0.16.0) [Compare Source](https://redirect.github.com/open-telemetry/opentelemetry-go/compare/v0.15.0...v0.16.0) ##### Added - Add the `ReadOnlySpan` and `ReadWriteSpan` interfaces to provide better control for accessing span data. ([#​1360](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1360)) - `NewGRPCDriver` function returns a `ProtocolDriver` that maintains a single gRPC connection to the collector. ([#​1369](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1369)) - Added documentation about the project's versioning policy. ([#​1388](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1388)) - Added `NewSplitDriver` for OTLP exporter that allows sending traces and metrics to different endpoints. ([#​1418](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1418)) - Added codeql worfklow to GitHub Actions ([#​1428](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1428)) - Added Gosec workflow to GitHub Actions ([#​1429](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1429)) - Add new HTTP driver for OTLP exporter in `exporters/otlp/otlphttp`. Currently it only supports the binary protobuf payloads. ([#​1420](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1420)) ##### Changed - Rename `internal/testing` to `internal/internaltest`. ([#​1449](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1449)) - Rename `export.SpanData` to `export.SpanSnapshot` and use it only for exporting spans. ([#​1360](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1360)) - Store the parent's full `SpanContext` rather than just its span ID in the `span` struct. ([#​1360](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1360)) - Improve span duration accuracy. ([#​1360](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1360)) - Migrated CI/CD from CircleCI to GitHub Actions ([#​1382](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1382)) - Remove duplicate checkout from GitHub Actions workflow ([#​1407](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1407)) - Metric `array` aggregator renamed `exact` to match its `aggregation.Kind` ([#​1412](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1412)) - Metric `exact` aggregator includes per-point timestamps ([#​1412](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1412)) - Metric stdout exporter uses MinMaxSumCount aggregator for ValueRecorder instruments ([#​1412](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1412)) - `NewExporter` from `exporters/otlp` now takes a `ProtocolDriver` as a parameter. ([#​1369](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1369)) - Many OTLP Exporter options became gRPC ProtocolDriver options. ([#​1369](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1369)) - Unify endpoint API that related to OTel exporter. ([#​1401](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1401)) - Optimize metric histogram aggregator to re-use its slice of buckets. ([#​1435](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1435)) - Metric aggregator Count() and histogram Bucket.Counts are consistently `uint64`. (1430) - `SamplingResult` now passed a `Tracestate` from the parent `SpanContext` ([#​1432](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1432)) - Moved gRPC driver for OTLP exporter to `exporters/otlp/otlpgrpc`. ([#​1420](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1420)) - The `TraceContext` propagator now correctly propagates `TraceState` through the `SpanContext`. ([#​1447](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1447)) - Metric Push and Pull Controller components are combined into a single "basic" Controller: - `WithExporter()` and `Start()` to configure Push behavior - `Start()` is optional; use `Collect()` and `ForEach()` for Pull behavior - `Start()` and `Stop()` accept Context. ([#​1378](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1378)) ##### Removed - Remove `errUninitializedSpan` as its only usage is now obsolete. ([#​1360](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1360)) - Remove Metric export functionality related to quantiles and summary data points: this is not specified ([#​1412](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1412)) - Remove DDSketch metric aggregator; our intention is to re-introduce this as an option of the histogram aggregator after [new OTLP histogram data types](https://redirect.github.com/open-telemetry/opentelemetry-proto/pull/226) are released ([#​1412](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1412)) ##### Fixed - `BatchSpanProcessor.Shutdown()` will now shutdown underlying `export.SpanExporter`. ([#​1443](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1443)) # Raw changes made between v0.15.0 and v0.16.0 [`0aadfb2`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/0aadfb27bc9e0d6fc0008001720aa5d466c06156) Prepare release v0.16.0 ([#​1464](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1464)) [`207587b`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/207587b6ab2d658ad39774d6a3cc7fa2f5c6c52b) Metric histogram aggregator: Swap in SynchronizedMove to avoid allocations ([#​1435](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1435)) [`c29c6fd`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/c29c6fd1adf4f9c1faf8165fe326f507efd84425) Shutdown underlying span exporter while shutting down BatchSpanProcessor ([#​1443](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1443)) [`dfece3d`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/dfece3d2b97fd38ac9182db978dbacd953e58f4a) Combine the Push and Pull metric controllers ([#​1378](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1378)) [`74deedd`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/74deeddd2608efffe53a2cd9163314af3015eacb) Handle tracestate in TraceContext propagator ([#​1447](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1447)) [`49f699d`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/49f699d65742e144cf19b5dd28f3d3a0891bf200) Remove Quantile aggregation, DDSketch aggregator; add Exact timestamps ([#​1412](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/1412)) [`9c94941`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/9c949411ce58356a4553732733e5a7144860d1e0) Rename internal/testing to internal/internaltest ([#​1449](https://redirect.github.com/open-telemetry/open </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - "" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/open-feature/flagd). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjExMC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
## This PR Adds an opt-in `incrementalUpdates` option to `SourceConfig` for gRPC sync sources. When enabled, `store.Update` scopes flag deletion to the `flagSetId`(s) present in each update payload, rather than replacing all flags for the source. This allows per-flagSetId updates (e.g., from multi-project gRPC backends) to accumulate in the store without clobbering unrelated flagSetIds. ### Changes - `SourceConfig.IncrementalUpdates` (`bool`, default `false`): new per-source config field, marked EXPERIMENTAL - `DataSync.IncrementalUpdates`: propagates the setting from source config to `store.Update` - `store.Update` accepts an `incrementalUpdate` parameter; when `true` and metadata contains a `flagSetId`, deletion is scoped to the touched flagSetIds; when `false`, the original full-snapshot behavior is preserved - `ToLogString` updated to handle compound (multi-key) selectors for debug logging; the previous implementation only handled single-key selectors and returned `<none>` for compound ones, making it impossible to troubleshoot store operations with flagSetId+source queries - Docs: added `incrementalUpdates` to the sync configuration reference table and a new "Incremental Updates (Experimental)" section with usage example and caveats - Error handling: `txn.Get` failures now abort the transaction early instead of proceeding with partial state ### Caveats - Orphaned flags: if a flagSetId is renamed or stops being sent, its flags persist until flagd restarts or an explicit empty update is sent for that flagSetId - This is per-source, not per-message; all updates from an opted-in source use flagSetId-scoped deletion - Marked EXPERIMENTAL; may change or be removed in a future release ### Related Issues Supports using flagd with a gRPC provider that streams per-flagSetId (per-project) updates from a single source. --------- Signed-off-by: Eren Atas <eren_atas@hotmail.com> Signed-off-by: Eren Atas <sovairon@gmail.com> Signed-off-by: Todd Baert <todd.baert@dynatrace.com> Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
🤖 I have created a release *beep* *boop* --- <details><summary>flagd: 0.15.2</summary> ## [0.15.2](open-feature/flagd@flagd/v0.15.1...flagd/v0.15.2) (2026-04-09) ### 🐛 Bug Fixes * **security:** update vulnerability-updates [security] ([open-feature#1933](open-feature#1933)) ([04338dc](open-feature@04338dc)) * **security:** update vulnerability-updates [security] ([open-feature#1934](open-feature#1934)) ([40d444a](open-feature@40d444a)) ### ✨ New Features * gRPC sync experimental incremental updates ([open-feature#1922](open-feature#1922)) ([d785557](open-feature@d785557)) </details> <details><summary>flagd-proxy: 0.9.4</summary> ## [0.9.4](open-feature/flagd@flagd-proxy/v0.9.3...flagd-proxy/v0.9.4) (2026-04-09) ### 🐛 Bug Fixes * **security:** update vulnerability-updates [security] ([open-feature#1933](open-feature#1933)) ([04338dc](open-feature@04338dc)) * **security:** update vulnerability-updates [security] ([open-feature#1934](open-feature#1934)) ([40d444a](open-feature@40d444a)) ### 🧹 Chore * fix proxy test race ([17cd08f](open-feature@17cd08f)) </details> <details><summary>core: 0.15.2</summary> ## [0.15.2](open-feature/flagd@core/v0.15.1...core/v0.15.2) (2026-04-09) ### 🐛 Bug Fixes * **security:** update vulnerability-updates [security] ([open-feature#1933](open-feature#1933)) ([04338dc](open-feature@04338dc)) * **security:** update vulnerability-updates [security] ([open-feature#1934](open-feature#1934)) ([40d444a](open-feature@40d444a)) ### ✨ New Features * gRPC sync experimental incremental updates ([open-feature#1922](open-feature#1922)) ([d785557](open-feature@d785557)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
- Custom ops (sem_ver, starts_with/ends_with, fractional) now specify null on error instead of false in specs and flowcharts - Added null error-handling admonition to the custom operations section in flag-definitions.md - Documented semver edge cases (v-prefix stripping, partial version padding, numeric coercion, build metadata ignored) - Documented shared evaluator $ref resolution and nested $ref limitation in both flag-definitions.md and providers.md - Fixed fractional spec Go reference code fallthrough to return nil instead of "" - Fixed dotnet provider README include path Everything here is covered in newly added gherkin tests. Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
<!-- Please use this template for your pull request. --> <!-- Please use the sections that you need and delete other sections --> ## This PR <!-- add the description of the PR here --> - allows single entries in the fractional operator ### Related Issues <!-- add here the GitHub issue that this PR resolves if applicable --> open-feature#1924 ### Notes <!-- any additional notes for this PR --> ### Follow-up Tasks <!-- anything that is related to this PR but not done here should be noted under this section --> <!-- if there is a need for a new issue, please link it here --> ### How to test <!-- if applicable, add testing instructions under this section --> --------- Signed-off-by: Lea Konvalinka <lea.konvalinka@dynatrace.com> Signed-off-by: Todd Baert <todd.baert@dynatrace.com> Co-authored-by: Todd Baert <todd.baert@dynatrace.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
## This PR - Preserve FeatureFlag metadata when syncing from Kubernetes by marshalling `spec.flagSpec` directly from unstructured objects. - Harden informer tombstone handling and watcher readiness for Kubernetes sync. - Add unit tests covering metadata preservation and tombstone unwrap. ### Related Issues Fixes # open-feature#754 (CRD definition is not following the latest flagD specifications) - in the [open-feature-operator](https://github.com/open-feature/open-feature-operator) already rased the pr for open-feature-operator CRD support for metaData - (open-feature/open-feature-operator#808 that alone is not enough, so in Flagd also want to change. This PR refers to that. ### Notes - Architecture unchanged; only Kubernetes sync path touched. - No dependency/version changes. ### Follow-up Tasks - None. This change keeps the Kubernetes sync path working with metadata by treating FeatureFlag resources as unstructured objects and marshaling spec.flagSpec directly. That avoids converting into typed CRDs (which can drop unknown fields like metadata) and ensures delete tombstones are handled safely, so the synced payload now preserves any metadata the CRD allows. ### How to test 1) From repo root: - `cd core && GOPATH=/tmp/go GOCACHE=/tmp/go-build go test ./pkg/sync/kubernetes` 2) (Optional) Build and run your existing workflow to confirm metadata is present end-to-end. --------- Signed-off-by: Nilushiya.K <Nilushiya.K@cloudsolutions.com.sa> Signed-off-by: Todd Baert <todd.baert@dynatrace.com> Signed-off-by: Nilushiya Kaneshalingam <107831659+Nilushiya@users.noreply.github.com> Co-authored-by: Nilushiya.K <Nilushiya.K@cloudsolutions.com.sa> Co-authored-by: Todd Baert <todd.baert@dynatrace.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
See title. Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
🤖 I have created a release *beep* *boop* --- <details><summary>flagd: 0.15.3</summary> ## [0.15.3](open-feature/flagd@flagd/v0.15.2...flagd/v0.15.3) (2026-04-14) ### 🐛 Bug Fixes * web and cli docs do not mention s3 ([open-feature#1941](open-feature#1941)) ([49ff1cf](open-feature@49ff1cf)) </details> <details><summary>core: 0.15.3</summary> ## [0.15.3](open-feature/flagd@core/v0.15.2...core/v0.15.3) (2026-04-14) ### 🐛 Bug Fixes * allow single entry in fractional operator ([open-feature#1935](open-feature#1935)) ([5fa86c6](open-feature@5fa86c6)) * web and cli docs do not mention s3 ([open-feature#1941](open-feature#1941)) ([49ff1cf](open-feature@49ff1cf)) ### ✨ New Features * metadata support in the kubernetes_sync ([open-feature#1905](open-feature#1905)) ([f8173a4](open-feature@f8173a4)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* adds an `intervalSeed` source option * enables configuration of deterministic offset to polling * disabled by default (no offset, wall-clock polling is maintained * improves sync source logging consistency --- Fixes: open-feature#1944 The HTTP sync and blob syncs use robfig/cron with a simple interval-based cron expression (e.g. */5 * * * *). This means all flagd instances configured with the same polling interval will poll at exactly the same wall-clock times, which can cause thundering herd issues against the flag source server; this adds a feature to address this issue in large deployments. --------- Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
* adds an `intervalSeed` source option * enables configuration of deterministic offset to polling * disabled by default (no offset, wall-clock polling is maintained * improves sync source logging consistency ref open-feature#1945 Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
🤖 I have created a release *beep* *boop* --- <details><summary>flagd: 0.15.4</summary> ## [0.15.4](open-feature/flagd@flagd/v0.15.3...flagd/v0.15.4) (2026-04-15) ### ✨ New Features * add intervalSeed source option ([9926b95](open-feature@9926b95)) </details> <details><summary>core: 0.15.4</summary> ## [0.15.4](open-feature/flagd@core/v0.15.3...core/v0.15.4) (2026-04-15) ### ✨ New Features * add intervalSeed source option ([open-feature#1945](open-feature#1945)) ([7c501eb](open-feature@7c501eb)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…-feature#1949) Fixes open-feature#1948 The fractional evaluator wasn't handling missing or null targeting keys the same way other SDKs did. Added nil checks to return the default variant when the key is missing or null. Also added tests for the three cases: missing key, null key, and empty string.
## Summary - Resolved 15 open Dependabot security alerts by bumping vulnerable dependencies across Go modules and the playground app - Two alerts (152, 151) for `github.com/docker/docker` were skipped as no patched version is available yet --------- Signed-off-by: Jonathan Norris <jonathan.norris@dynatrace.com>
* support V prefix in semver * return null on errors in semver, ends_with, and fractional (already existed on starts_with) * fix fractional fallback when total weight is zero Fixes: open-feature#1942 --- Related: * open-feature/java-sdk-contrib#1778 * open-feature/js-sdk-contrib#1519 * open-feature/dotnet-sdk-contrib#635 * open-feature/python-sdk-contrib#386 --------- Signed-off-by: Lea Konvalinka <lea.konvalinka@dynatrace.com> Signed-off-by: Todd Baert <todd.baert@dynatrace.com> Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
…ure#1952) ## Summary - Fix code block language from `shell` to `json` for JSON result examples in custom operation docs - Affects fractional operation and string-comparison operation result examples ## Test plan - [x] Verify rendered output shows JSON syntax highlighting instead of shell (This supersedes open-feature#1951, which only covered the fractional operation fix.) --------- Signed-off-by: kamina-zzz <kamina.dev1991@gmail.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Setting `service.name` or `service.version` via OTEL_RESOURCE_ATTRIBUTES (or OTEL_SERVICE_NAME) now correctly overrides the values flagd sets programmatically Fixes open-feature#1938 Signed-off-by: Lea Konvalinka <lea.konvalinka@dynatrace.com>
See: diegoholiveira/jsonlogic#135 Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
🤖 I have created a release *beep* *boop* --- <details><summary>flagd: 0.15.5</summary> ## [0.15.5](open-feature/flagd@flagd/v0.15.4...flagd/v0.15.5) (2026-04-30) ### 🐛 Bug Fixes * handle missing/null targeting keys in fractional evaluator ([open-feature#1949](open-feature#1949)) ([651c7bb](open-feature@651c7bb)) * override otel service name and version ([open-feature#1956](open-feature#1956)) ([ec4ff12](open-feature@ec4ff12)) * update jsonlogic for and/or bug ([open-feature#1957](open-feature#1957)) ([6edd6e8](open-feature@6edd6e8)) * various custom operator conformance fixes ([open-feature#1950](open-feature#1950)) ([670c91c](open-feature@670c91c)) </details> <details><summary>flagd-proxy: 0.9.5</summary> ## [0.9.5](open-feature/flagd@flagd-proxy/v0.9.4...flagd-proxy/v0.9.5) (2026-04-30) ### 🧹 Chore * resolve open dependabot security alerts ([open-feature#1954](open-feature#1954)) ([c5adbb7](open-feature@c5adbb7)) </details> <details><summary>core: 0.15.5</summary> ## [0.15.5](open-feature/flagd@core/v0.15.4...core/v0.15.5) (2026-04-30) ### 🐛 Bug Fixes * handle missing/null targeting keys in fractional evaluator ([open-feature#1949](open-feature#1949)) ([651c7bb](open-feature@651c7bb)) * override otel service name and version ([open-feature#1956](open-feature#1956)) ([ec4ff12](open-feature@ec4ff12)) * update jsonlogic for and/or bug ([open-feature#1957](open-feature#1957)) ([6edd6e8](open-feature@6edd6e8)) * various custom operator conformance fixes ([open-feature#1950](open-feature#1950)) ([670c91c](open-feature@670c91c)) ### 🧹 Chore * resolve open dependabot security alerts ([open-feature#1954](open-feature#1954)) ([c5adbb7](open-feature@c5adbb7)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com> Signed-off-by: Todd Baert <todd.baert@dynatrace.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
* adds note about explicit backoff in stream reconnect to avoid tight loops * this is already implemented in JS, Go, and Java (in-process) Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Signed-off-by: raflFaisal <faisal.rafi.mca@gmail.com>
## Summary Resolved 5 open Dependabot security alerts by bumping vulnerable dependencies. ## Dependabot Alerts Resolved | Alert | Package | Severity | Fix | |-------|---------|----------|-----| | open-feature#179 | `postcss` | **medium** | Bumped from 8.5.8 to 8.5.14 in `playground-app/package-lock.json` (vite resolves postcss to patched version naturally, no override needed) | | open-feature#181 | `github.com/go-git/go-git/v5` | **high** | Bumped from 5.18.0 to 5.19.1 in `test/integration/go.mod` | | open-feature#182 | `github.com/go-git/go-billy/v5` | **medium** | Bumped from 5.8.0 to 5.9.0 via go-git upgrade | | open-feature#183 | `github.com/go-git/go-billy/v5` | **high** | Bumped from 5.8.0 to 5.9.0 via go-git upgrade | | open-feature#180 | `github.com/in-toto/in-toto-golang` | **medium** | Bumped from 0.10.0 to 0.11.0 in `test/integration/go.mod` | ## Unresolvable alerts - **Alert open-feature#184** (`github.com/docker/docker`, high) — vulnerable `<= 28.5.2`; no patched Go module version is published yet (latest is 28.5.2; fix is on `moby/moby/v2` 2.0.0-beta.14, a different module path) - **Alert open-feature#185** (`github.com/docker/docker`, medium) — same; no patched version available on the `docker/docker` module path - **Alert open-feature#186** (`github.com/docker/docker`, high) — same; no patched version available on the `docker/docker` module path - **Alert open-feature#152** (`github.com/docker/docker`, high) — requires >= 29.3.1 but no patched Go module version is published yet - **Alert open-feature#151** (`github.com/docker/docker`, medium) — same; requires >= 29.3.1, no patched version available All docker/docker alerts are transitive deps of `testcontainers-go` in the orphaned integration-test module; will be resolved when upstream cuts a Go module under the existing `docker/docker` path or testcontainers-go migrates to `moby/moby/v2`. --------- Signed-off-by: Jonathan Norris <jonathan.norris@dynatrace.com> Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
<!-- Please use this template for your pull request. --> <!-- Please use the sections that you need and delete other sections --> ## This PR <!-- add the description of the PR here --> - adds ADR for disabled flag behavior updates ### Related Issues <!-- add here the GitHub issue that this PR resolves if applicable --> Fixes open-feature#1918 ### Notes <!-- any additional notes for this PR --> ### Follow-up Tasks <!-- anything that is related to this PR but not done here should be noted under this section --> <!-- if there is a need for a new issue, please link it here --> ### How to test <!-- if applicable, add testing instructions under this section --> --------- Signed-off-by: Parth Suthar <parth.suthar@dynatrace.com> Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com> Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
🤖 I have created a release *beep* *boop* --- <details><summary>core: 0.15.6</summary> ## [0.15.6](open-feature/flagd@core/v0.15.5...core/v0.15.6) (2026-05-21) ### ✨ New Features * add custom headers support for sync providers ([open-feature#1960](open-feature#1960)) ([65d3796](open-feature@65d3796)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
## Summary Bump core to v0.15.6 in `flagd` and `flagd-proxy `so the custom headers support added in open-feature#1960 ships in the next released binaries. Also expand the docs with use cases and per-provider examples. Updated document related to custom header Scope & compatibility - No source code changes in flagd or flagd-proxy, only go.mod / go.sum updates. - Fully backward compatible. ### Related Issues feat: add custom headers support for sync providers open-feature#1960 ### Refereence: https://cloud-native.slack.com/archives/C03J36ZP020/p1777713882642069 Tagging @beeme1mr @toddbaert --------- Signed-off-by: faisal.rafi <faisal.rafi.mca@gmail.com>
…eature#1971) ## Summary Forward S3 URI query parameters (`use_path_style`, `region`, `accelerate`, `disable_https`, etc.) to the bucket URL so gocloud's `s3blob` driver actually reads them. This lets flagd sync from path-style or non-AWS S3-compatible endpoints (MinIO, LocalStack, Ceph). ## Why this matters `newS3` in `core/pkg/sync/builder/syncbuilder.go` splits the source URI with `regS3` (`^s3://.+?/`), which matches only up to the first `/`. For `s3://my-bucket/my-flag.json?use_path_style=true` that leaves the query string on the object name (`my-flag.json?use_path_style=true`) rather than on the bucket URL, which is where `s3blob.URLOpener` reads its options. The option is silently dropped and the object key is corrupted with a trailing `?...`. This matches what the open-feature#1961 thread found: @kawingliu6 hit `strconv.ParseBool: parsing "true/"` when passing the parameter through, and @erka asked whether `s3://my-bucket/my-flag.json?use_path_style=true` should work. With this change it does. ## Changes `newS3` now splits any `?query` off the URI before the bucket/object regex split, then re-attaches it to the bucket URL (trimming the trailing slash so the host stays well-formed) and leaves the object key clean. gcs and azblob are untouched; the fix is scoped to S3, where the issue and `s3blob`'s documented query options apply. ## Testing Added a `Test_S3Config` case asserting `s3://bucket/path/to/object?use_path_style=true` resolves to bucket `s3://bucket?use_path_style=true` and object `path/to/object`. `go test ./pkg/sync/builder/...` passes in the `core` module; `gofmt` clean. Closes open-feature#1961 Signed-off-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
🤖 I have created a release *beep* *boop* --- <details><summary>flagd: 0.15.6</summary> ## [0.15.6](open-feature/flagd@flagd/v0.15.5...flagd/v0.15.6) (2026-05-28) ### ✨ New Features * bump core for custom headers, add docs ([open-feature#1969](open-feature#1969)) ([4f33a0c](open-feature@4f33a0c)) </details> <details><summary>flagd-proxy: 0.9.6</summary> ## [0.9.6](open-feature/flagd@flagd-proxy/v0.9.5...flagd-proxy/v0.9.6) (2026-05-28) ### ✨ New Features * bump core for custom headers, add docs ([open-feature#1969](open-feature#1969)) ([4f33a0c](open-feature@4f33a0c)) </details> <details><summary>core: 0.15.7</summary> ## [0.15.7](open-feature/flagd@core/v0.15.6...core/v0.15.7) (2026-05-28) ### ✨ New Features * **sync:** forward S3 URI query parameters to the bucket URL ([open-feature#1971](open-feature#1971)) ([7e253f9](open-feature@7e253f9)), closes [open-feature#1961](open-feature#1961) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
## This PR While working on the non-string fractional ADR, we identified several critical pitfalls in the initial proposal and wanted to expand the requirements to ensure strict cross-language consistency. This PR updates the ADR (fractional-non-string-rand-units.md) with the following key changes: * **`null` Rejection:** Explicitly reject `null` as the first argument to prevent silent errors from evaluation failures. * **Number Normalization:** Mandate normalization of numeric values (casting floats without fractional parts to integers) to ensure consistent CBOR major types across different language parsers. * **Datetime Clarification:** Removed CBOR Tag 1 and marked datetime usage as undefined behavior, recommending POSIX epoch or ISO 8601 instead. * **Encoding Flexibility:** Clarified deterministic encoding requirements, allowing fallback to RFC 7049 (Canonical Encoding) where RFC 8949 support is lacking in language libraries. ### Related Issues Under scope of open-feature#1737 ### Notes No Breaking Change: As none of the languages implemented this ADR yet, those changes won't affect any of the implementations, while avoiding pitfalls that could arise later on. The changes are purely semantic and do not affect the flagd JSON schema and the rest of the adr. ### Follow-up Tasks We should update [reference specification of fractional operator on flagd page](https://flagd.dev/reference/specifications/custom-operations/fractional-operation-spec/) Signed-off-by: Marcin Olko <molko@google.com>
open-feature#1971 put the query string on the bucket URL (so gocloud reads it), but `blob.Sync` still emits `Source` as `Bucket + Object`, so it no longer matches the registered URI and `Store.Update` panics. Pulled the split/join into `internal/bloburi` and rebuild the URI when emitting `DataSync.Source` so that things stay consistent if there's changes here - added a test for that as well to lock them as inverses. Verified manually/locally against MinIO. Closes open-feature#1973 FYI @mvanhorn --------- Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
🤖 I have created a release *beep* *boop* --- <details><summary>flagd: 0.15.7</summary> ## [0.15.7](open-feature/flagd@flagd/v0.15.6...flagd/v0.15.7) (2026-05-29) ### 🐛 Bug Fixes * **sync:** panic on s3 URI with query string ([open-feature#1974](open-feature#1974)) ([82040ff](open-feature@82040ff)) </details> <details><summary>core: 0.15.8</summary> ## [0.15.8](open-feature/flagd@core/v0.15.7...core/v0.15.8) (2026-05-29) ### 🐛 Bug Fixes * **sync:** panic on s3 URI with query string ([open-feature#1974](open-feature#1974)) ([82040ff](open-feature@82040ff)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
Hey there and thank you for opening this pull request! 👋🏼 We require pull request titles to follow the Conventional Commits specification and it looks like your proposed title needs to be adjusted. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sync from upstream repo