Skip to content

bump minimum version of go to 1.25#14567

Merged
codeboten merged 9 commits into
open-telemetry:mainfrom
codeboten:codeboten/1.25
Feb 11, 2026
Merged

bump minimum version of go to 1.25#14567
codeboten merged 9 commits into
open-telemetry:mainfrom
codeboten:codeboten/1.25

Conversation

@codeboten
Copy link
Copy Markdown
Contributor

@codeboten codeboten commented Feb 10, 2026

Follows the normal procedure with the release of go 1.26

Follows the normal procedure with the release of go 1.26

Signed-off-by: alex boten <223565+codeboten@users.noreply.github.com>
Signed-off-by: alex boten <223565+codeboten@users.noreply.github.com>
@codeboten
Copy link
Copy Markdown
Contributor Author

Looks like oldstable has not been updated yet

Copy link
Copy Markdown
Member

@mx-psi mx-psi left a comment

Choose a reason for hiding this comment

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

LGTM modulo the oldstable update

@codecov
Copy link
Copy Markdown

codecov Bot commented Feb 11, 2026

Codecov Report

❌ Patch coverage is 81.81818% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 91.79%. Comparing base (b7214f9) to head (bc4155a).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
cmd/builder/internal/builder/main.go 0.00% 0 Missing and 1 partial ⚠️
internal/memorylimiter/memorylimiter.go 0.00% 1 Missing ⚠️

❌ Your patch status has failed because the patch coverage (81.81%) is below the target coverage (95.00%). You can increase the patch coverage or adjust the target coverage.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #14567      +/-   ##
==========================================
- Coverage   91.82%   91.79%   -0.03%     
==========================================
  Files         679      679              
  Lines       42857    42839      -18     
==========================================
- Hits        39352    39324      -28     
- Misses       2438     2444       +6     
- Partials     1067     1071       +4     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@mx-psi
Copy link
Copy Markdown
Member

mx-psi commented Feb 11, 2026

Okay after retrying we seem to have the following issues:

  1. Modernize lint failure:
Error: confmap/resolver_test.go:402:2: waitgroup: Goroutine creation can be simplified using WaitGroup.Go (modernize)
	go func() {
	^
Error: confmap/resolver_test.go:540:2: waitgroup: Goroutine creation can be simplified using WaitGroup.Go (modernize)
	go func() {
	^
  1. FIPS-140 failure cc @ycombinator
gotest.tools/gotestsum: gotest.tools/gotestsum@v1.13.0: Get "https://proxy.golang.org/gotest.tools/gotestsum/@v/v1.13.0.zip": crypto/ecdh: use of X25519 is not allowed in FIPS 140-only mode
  1. Contrib test failures like:
'stability' expected type 'component.StabilityLevel', got unconvertible type 'map[string]interface {}'
'metrics[active_directory.ds.replication.object.rate]' decoding failed due to the following error(s):

@dmathieu
Copy link
Copy Markdown
Member

The contrib tests failures will be fixed with open-telemetry/opentelemetry-collector-contrib#45903

@mx-psi
Copy link
Copy Markdown
Member

mx-psi commented Feb 11, 2026

Okay gotestsum can run now, but there are now failures like

failed running go mod tidy: exit status 1 (go: finding module for package go.opentelemetry.io/collector/cmd/builder
        	            	go: finding module for package go.opentelemetry.io/collector/cmd/builder
        	            	go: go.opentelemetry.io/collector/cmd/builder: module go.opentelemetry.io/collector/cmd/builder: Get "https://proxy.golang.org/go.opentelemetry.io/collector/cmd/builder/@v/list": crypto/ecdh: use of X25519 is not allowed in FIPS 140-only mode

@ycombinator would appreciate your help!

mx-psi and others added 3 commits February 11, 2026 14:49
Signed-off-by: alex boten <223565+codeboten@users.noreply.github.com>
Signed-off-by: alex boten <223565+codeboten@users.noreply.github.com>
@codeboten
Copy link
Copy Markdown
Contributor Author

@mx-psi i think that's all the linter errors, i don't know what to do about the fips thing

@codeboten
Copy link
Copy Markdown
Contributor Author

From golang/go#74630 (comment):

I mildly regret shipping fips140=only mode. It should be understood as a debugging mode, a way to discover non-compliance while testing, not as a security measure. But even as a debugging mode it is currently a broken debugging mode, because it makes absolute assertions (X25519 is not ok) when actually compliance is context-aware (X25519 is ok as part of a hybrid and SHA-1 is ok for non-security purposes). I don't know how to propagate that context without a bubble.

Should we disable the check for now?

@codeboten
Copy link
Copy Markdown
Contributor Author

A comment on another thread Azure/azure-sdk-for-go#25848 (comment):

The root cause of this panic is in the standard library and apparently fixed for Go 1.26 at least (see golang/go#74630 (comment) and related patch). The gist is, for TLS 1.3 crypto/tls selects an allowed hybrid KEM part of which uses a disallowed curve (X25519). Future Go versions won't panic in this case because they'll recognize X25519 as allowed in the context of this hybrid KEM. I suppose one way to avoid this panic in the meantime is to restrict clients to TLS 1.2, however we won't do that for the SDK's default configuration; application developers can override that if necessary.

@mx-psi
Copy link
Copy Markdown
Member

mx-psi commented Feb 11, 2026

From golang/go#74630 (comment):

I mildly regret shipping fips140=only mode. It should be understood as a debugging mode, a way to discover non-compliance while testing, not as a security measure. But even as a debugging mode it is currently a broken debugging mode, because it makes absolute assertions (X25519 is not ok) when actually compliance is context-aware (X25519 is ok as part of a hybrid and SHA-1 is ok for non-security purposes). I don't know how to propagate that context without a bubble.

Should we disable the check for now?

+1 to this

codeboten added a commit to codeboten/opentelemetry-collector that referenced this pull request Feb 11, 2026
This is blocking the go upgrade, see open-telemetry#14567 for more details.

Part of open-telemetry#13925

Signed-off-by: alex boten <223565+codeboten@users.noreply.github.com>
@codeboten
Copy link
Copy Markdown
Contributor Author

Disabled it in a separate PR, see #14571

github-merge-queue Bot pushed a commit that referenced this pull request Feb 11, 2026
This is blocking the go upgrade, see
#14567 for
more details.

Part of #13925

Signed-off-by: alex boten <223565+codeboten@users.noreply.github.com>
@codeboten codeboten enabled auto-merge February 11, 2026 22:21
@codeboten codeboten added this pull request to the merge queue Feb 11, 2026
Merged via the queue into open-telemetry:main with commit b81f7c7 Feb 11, 2026
48 of 50 checks passed
@codeboten codeboten deleted the codeboten/1.25 branch February 11, 2026 22:56
zeekay pushed a commit to hanzoai/telemetry that referenced this pull request Feb 22, 2026
This is blocking the go upgrade, see
open-telemetry/opentelemetry-collector#14567 for
more details.

Part of #13925

Signed-off-by: alex boten <223565+codeboten@users.noreply.github.com>
TimoBehrendt pushed a commit to TimoBehrendt/tracebasedlogsampler that referenced this pull request Mar 19, 2026
…ocessortest to v0.147.0 (#38)

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/collector/processor/processortest](https://github.com/open-telemetry/opentelemetry-collector) | `v0.144.0` → `v0.147.0` | ![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fcollector%2fprocessor%2fprocessortest/v0.147.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fcollector%2fprocessor%2fprocessortest/v0.144.0/v0.147.0?slim=true) |

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-collector (go.opentelemetry.io/collector/processor/processortest)</summary>

### [`v0.147.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1530v01470)

[Compare Source](open-telemetry/opentelemetry-collector@v0.146.1...v0.147.0)

##### 💡 Enhancements 💡

- `exporter/debug`: Output bucket counts for exponential histogram data points in normal verbosity. ([#&#8203;10463](open-telemetry/opentelemetry-collector#10463))
- `pkg/exporterhelper`: Add `metadata_keys` configuration to `sending_queue.batch.partition` to partition batches by client metadata ([#&#8203;14139](open-telemetry/opentelemetry-collector#14139))
  The `metadata_keys` configuration option is now available in the `sending_queue.batch.partition` section for all exporters.
  When specified, batches are partitioned based on the values of the listed metadata keys, allowing separate batching per metadata partition. This feature
  is automatically configured when using `exporterhelper.WithQueue()`.

##### 🧰 Bug fixes 🧰

- `cmd/builder`: Fix duplicate error output when CLI command execution fails in the builder tool. ([#&#8203;14436](open-telemetry/opentelemetry-collector#14436))

- `cmd/mdatagen`: Fix duplicate error output when CLI command execution fails in the mdatagen tool. ([#&#8203;14436](open-telemetry/opentelemetry-collector#14436))

- `cmd/mdatagen`: Fix semconv URL validation for metrics with underscores in their names ([#&#8203;14583](open-telemetry/opentelemetry-collector#14583))
  Metrics like `system.disk.io_time` now correctly validate against semantic convention URLs containing underscores in the anchor tag.

- `extension/memory_limiter`: Use ChainUnaryInterceptor instead of UnaryInterceptor to allow multiple interceptors. ([#&#8203;14634](open-telemetry/opentelemetry-collector#14634))
  If multiple extensions that use the UnaryInterceptor are set the binary panics at start time.

- `extension/memory_limiter`: Add support for streaming services. ([#&#8203;14634](open-telemetry/opentelemetry-collector#14634))

- `pkg/config/configmiddleware`: Add context.Context to HTTP middleware interface constructors. ([#&#8203;14523](open-telemetry/opentelemetry-collector#14523))
  This is a breaking API change for components that implement or use extensionmiddleware.

- `pkg/confmap`: Fix another issue where configs could fail to decode when using interpolated values in string fields. ([#&#8203;14034](open-telemetry/opentelemetry-collector#14034))
  For example, a resource attribute can be set via an environment variable to a string that is parseable as a number, e.g. `1234`.

  (A similar bug was fixed in a previous release: that one was triggered when the field was nested in a struct,
  whereas this one is triggered when the field internally has type "pointer to string" rather than "string".)

- `pkg/otelcol`: The featuregate subcommand now rejects extra positional arguments instead of silently ignoring them. ([#&#8203;14554](open-telemetry/opentelemetry-collector#14554))

- `pkg/queuebatch`: Fix data race in partition\_batcher where resetTimer() was called outside mutex, causing concurrent timer.Reset() calls and unpredictable batch flush timing under load. ([#&#8203;14491](open-telemetry/opentelemetry-collector#14491))

- `pkg/scraperhelper`: Log scrapers now emit log-appropriate receiver telemetry ([#&#8203;14654](open-telemetry/opentelemetry-collector#14654))
  Log scrapers previously emitted the same receiver telemetry as metric scrapers,
  such as the otelcol\_receiver\_accepted\_metric\_points metric (instead of otelcol\_receiver\_accepted\_log\_records),
  or spans named receiver/myreceiver/MetricsReceived (instead of receiver/myreceiver/LogsReceived).

  This did not affect scraper-specific spans and metrics.

- `processor/batch`: Fixes a bug where the batch processor would not copy `SchemaUrl` metadata from resource and scope containers during partial batch splits. ([#&#8203;12279](open-telemetry/opentelemetry-collector#12279), [#&#8203;14620](open-telemetry/opentelemetry-collector#14620))

<!-- previous-version -->

### [`v0.146.1`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1520v01461)

[Compare Source](open-telemetry/opentelemetry-collector@v0.146.0...v0.146.1)

<!-- previous-version -->

### [`v0.146.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v01460)

[Compare Source](open-telemetry/opentelemetry-collector@v0.145.0...v0.146.0)

##### 🛑 Breaking changes 🛑

- `all`: Increase minimum Go version to 1.25 ([#&#8203;14567](open-telemetry/opentelemetry-collector#14567))

##### 🚩 Deprecations 🚩

- `pdata/pprofile`: Declare removed aggregation elements as deprecated. ([#&#8203;14528](open-telemetry/opentelemetry-collector#14528))

##### 💡 Enhancements 💡

- `all`: Add detailed failure attributes to exporter send\_failed metrics at detailed telemetry level. ([#&#8203;13956](open-telemetry/opentelemetry-collector#13956))
  The `otelcol_exporter_send_failed_{spans,metric_points,log_records}` metrics now include
  failure attributes when telemetry level is Detailed: `error.type` (OpenTelemetry semantic convention
  describing the error class) and `error.permanent` (indicates if error is permanent/non-retryable).
  The `error.type` attribute captures gRPC status codes (e.g., "Unavailable", "ResourceExhausted"),
  standard Go context errors (e.g., "canceled", "deadline\_exceeded"),
  and collector-specific errors (e.g., "shutdown").
  This enables better alerting and debugging by providing standardized error classification.

- `cmd/builder`: Introduce new experimental `init` subcommand ([#&#8203;14530](open-telemetry/opentelemetry-collector#14530))
  The new `init` subcommand initializes a new custom collector

- `cmd/builder`: Add "telemetry" field to allow configuring telemetry providers ([#&#8203;14575](open-telemetry/opentelemetry-collector#14575))
  Most users should not need to use this, this field should only be set if you
  intend to provide your own OpenTelemetry SDK.

- `cmd/mdatagen`: Introduce additional metadata (the version since the deprecation started, and the deprecation reason) for deprecated metrics. ([#&#8203;14113](open-telemetry/opentelemetry-collector#14113))

- `cmd/mdatagen`: Add optional `relationships` field to entity schema in metadata.yaml ([#&#8203;14284](open-telemetry/opentelemetry-collector#14284))

- `exporter/debug`: Add `output_paths` configuration option to control output destination when `use_internal_logger` is false. ([#&#8203;10472](open-telemetry/opentelemetry-collector#10472))
  When `use_internal_logger` is set to `false`, the debug exporter now supports configuring the output destination via the `output_paths` option.
  This allows users to send debug exporter output to `stdout`, `stderr`, or a file path.
  The default value is `["stdout"]` to maintain backward compatibility.

- `pkg/confmap`: Add experimental `ToStringMapRaw` function to decode `confmap.Conf` into a string map without losing internal types ([#&#8203;14480](open-telemetry/opentelemetry-collector#14480))
  This method exposes the internal structure of a `confmap.Conf` which may change at any time without prior notice

##### 🧰 Bug fixes 🧰

- `cmd/mdatagen`: Reset aggDataPoints during metric init to avoid index out of range panic across emit cycles when reaggregation is enabled. ([#&#8203;14569](open-telemetry/opentelemetry-collector#14569))
- `cmd/mdatagen`: Fix panic when mdatagen is run without arguments. ([#&#8203;14506](open-telemetry/opentelemetry-collector#14506))
- `pdata/pprofile`: Fix off-by-one issue in dictionary lookups. ([#&#8203;14534](open-telemetry/opentelemetry-collector#14534))
- `pkg/config/confighttp`: Fix high cardinality span name from request method from confighttp server internal telemetry ([#&#8203;14516](open-telemetry/opentelemetry-collector#14516))
  Follow spec to bound request method cardinality.
- `pkg/otelcol`: Ignore component aliases in the `otelcol components` command ([#&#8203;14492](open-telemetry/opentelemetry-collector#14492))
- `pkg/otelcol`: Order providers and converters in alphabetical order in the `components` subcommand. ([#&#8203;14476](open-telemetry/opentelemetry-collector#14476))

<!-- previous-version -->

### [`v0.145.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1510v01450)

[Compare Source](open-telemetry/opentelemetry-collector@v0.144.0...v0.145.0)

##### 💡 Enhancements 💡

- `pkg/scraperhelper`: ScraperID has been added to the logs for metrics, logs, and profiles ([#&#8203;14461](open-telemetry/opentelemetry-collector#14461))

##### 🧰 Bug fixes 🧰

- `exporter/otlp_grpc`: Fix the OTLP exporter balancer to use round\_robin by default, as intended. ([#&#8203;14090](open-telemetry/opentelemetry-collector#14090))

- `pkg/config/configoptional`: Fix `Unmarshal` methods not being called when config is wrapped inside `Optional` ([#&#8203;14500](open-telemetry/opentelemetry-collector#14500))
  This bug notably manifested in the fact that the `sending_queue::batch::sizer` config for exporters
  stopped defaulting to `sending_queue::sizer`, which sometimes caused the wrong units to be used
  when configuring `sending_queue::batch::min_size` and `max_size`.

  As part of the fix, `xconfmap` exposes a new `xconfmap.WithForceUnmarshaler` option, to be used in the `Unmarshal` methods
  of wrapper types like `configoptional.Optional` to make sure the `Unmarshal` method of the inner type is called.

  The default behavior remains that calling `conf.Unmarshal` on the `confmap.Conf` passed as argument to an `Unmarshal`
  method will skip any top-level `Unmarshal` methods to avoid infinite recursion in standard use cases.

- `pkg/confmap`: Fix an issue where configs could fail to decode when using interpolated values in string fields. ([#&#8203;14413](open-telemetry/opentelemetry-collector#14413))
  For example, a header can be set via an environment variable to a string that is parseable as a number, e.g. `1234`

- `pkg/service`: Don't error on startup when process metrics are enabled on unsupported OSes (e.g. AIX) ([#&#8203;14307](open-telemetry/opentelemetry-collector#14307))

<!-- previous-version -->

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, 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 has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41LjQiLCJ1cGRhdGVkSW5WZXIiOiI0My41LjQiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Reviewed-on: https://gitea.t000-n.de/t.behrendt/tracebasedlogsampler/pulls/38
Reviewed-by: t.behrendt <t.behrendt@noreply.localhost>
Co-authored-by: Renovate Bot <renovate@t00n.de>
Co-committed-by: Renovate Bot <renovate@t00n.de>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants