Skip to content

Conversation

@craig65535
Copy link
Contributor

@craig65535 craig65535 commented Feb 10, 2023

Summary

When an assertion fails in assert.ErrorAs, log the target error type rather than its value.

Changes

Passes the target error type, rather than the target itself, to the Fail() call in assert.ErrorAs. Also, modifies buildErrorChainString to support go 1.20 error wrapping, and to include the error type in its output when called by assert.ErrorAs.

Motivation

The existing error message was confusing - see #1343

Related issues

Closes #1343

Copy link
Collaborator

@brackendawson brackendawson left a comment

Choose a reason for hiding this comment

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

I think as well as printing the type of target after "expected:", we should print the type of every error in chain after "in chain:" otherwise it's still confusing.

Since Go 1.20 this is how you have to get every error in the chain:

func unwrapAll(err error) (errs []error) {
	errs = append(errs, err)
	for {
		switch x := err.(type) {
		case interface{ Unwrap() error }:
			err = x.Unwrap()
			if err == nil {
				return
			}
			errs = append(errs, err)
		case interface{ Unwrap() []error }:
			for _, err := range x.Unwrap() {
				errs = append(errs, unwrapAll(err)...)
			}
			return
		default:
			return
		}
	}
}

@craig65535
Copy link
Contributor Author

@brackendawson Updated as suggested. PTAL

@craig65535
Copy link
Contributor Author

@brackendawson Thank you for the review. It looks like I still need an approval before this can be merged.

@brackendawson
Copy link
Collaborator

@brackendawson Thank you for the review. It looks like I still need an approval before this can be merged.

I wish mine counted for a ✅ but it doesn't. Maintainers drop by from time to time, when one does I think this PR stands a reasonable chance of a merge now.

@dolmen
Copy link
Collaborator

dolmen commented Jul 5, 2023

Missing test case.

@dolmen dolmen added Changes Requested enhancement pkg-assert Change related to package testify/assert labels Jul 5, 2023
@craig65535
Copy link
Contributor Author

@dolmen This modifies the error string, not behaviour, and I'm not sure there are any existing test cases for error strings. Do you want me to add a test case anyway?

@craig65535
Copy link
Contributor Author

@dolmen Actually it should be straightforward for me to add tests for unwrapAll and buildErrorChainString. I can do that now.

@dolmen
Copy link
Collaborator

dolmen commented Jul 6, 2023

We don't want tests that test details of the actual implementation. Good tests must only use the public API of testify.

@craig65535
Copy link
Contributor Author

We don't want tests that test details of the actual implementation. Good tests must only use the public API of testify.

To be clear, you do want these new tests to check the format and contents of the error string returned for ErrorAs? I don't think other tests in this repo are doing anything like that.

@dolmen
Copy link
Collaborator

dolmen commented Jul 6, 2023

@craig65535 testify is now heavily used in the Go ecosystem. We have reached a point where we must stabilize things: slow down API growth, improve test coverage, add more regression tests, ease maintenance work, reduce load for maintainers.

So, yes, I think that because this PR is about the log output, it is important to have a regression test to ensure further changes will not break the output you designed.

@dolmen dolmen added the type-error Issue related to comparing values implementing the error interface label Jul 6, 2023
@craig65535
Copy link
Contributor Author

@dolmen PTAL

@craig65535
Copy link
Contributor Author

@dolmen Wanted your thoughts on the tests - am I on the right track? Thank you

@dolmen
Copy link
Collaborator

dolmen commented Jul 26, 2023

Please do not merge master into your branch.

Instead:

git remote update
git rebase origin/master
git push -f

dolmen
dolmen previously requested changes Jul 26, 2023
Copy link
Collaborator

@dolmen dolmen left a comment

Choose a reason for hiding this comment

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

I think that your changes to improve testing are very good.

However those changes are quite intrusive in the context of this PR.

Could you post the testing refactor as a separate MR that I will merge first? Then you will rebase this PR that will have smaller changes only related to ErrorAs.

@craig65535
Copy link
Contributor Author

@dolmen I added the tests in #1435. I'll also split out a new PR for the go 1.20 error wrapping handling.

@craig65535 craig65535 marked this pull request as draft July 26, 2023 22:51
@craig65535 craig65535 marked this pull request as ready for review October 31, 2023 18:00
@craig65535 craig65535 requested a review from dolmen October 31, 2023 18:02
@craig65535
Copy link
Contributor Author

@dolmen Updated - PTAL

brackendawson
brackendawson previously approved these changes Jan 29, 2024
Copy link
Collaborator

@brackendawson brackendawson left a comment

Choose a reason for hiding this comment

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

I still approve.

@slonopotamus
Copy link

slonopotamus commented Nov 10, 2024

So, what is preventing this from being merged? I've just come across a test failure in assert.ErrorAs and discovered that error message is very far from being helpful because it prints expected error type, but doesn't print actual error types in chain.

@brackendawson
Copy link
Collaborator

brackendawson commented Dec 14, 2024

@dolmen's most recent request to move the test refactor into another PR has been done and merged. So I think I can in good faith dismiss @dolmen's requested changes on this PR. I still approve.

As it has been so long there is now a merge conflict. @craig65535 or anyone else, if you want to re-base and @ me then I will see it.

@craig65535
Copy link
Contributor Author

I'll resolve these conflicts and push an update.

@craig65535
Copy link
Contributor Author

@slonopotamus @brackendawson PTAL

Copy link
Collaborator

@brackendawson brackendawson left a comment

Choose a reason for hiding this comment

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

Thanks for the diligent review @ccoVeille, it's helpful. And thanks @craig65535 for your continued effort. Let me know what you think about my comment and we'll get this merged.

Copy link
Collaborator

@brackendawson brackendawson left a comment

Choose a reason for hiding this comment

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

LGTM

@dolmen can you dismiss your review or approve now? It appears I don't have that permission. Your comments were addressed.

@craig65535
Copy link
Contributor Author

@brackendawson Thanks for the review. If we can't get the old review dismissed in the next week or so, I suppose I could just open a new PR and close this one?

@brackendawson
Copy link
Collaborator

@brackendawson Thanks for the review. If we can't get the old review dismissed in the next week or so, I suppose I could just open a new PR and close this one?

Technically yes, but I think it's poor form. My plan is to give @dolmen some time to reply and if we're still stuck I'll ask @matryer if he can give me permissions to dismiss reviews.

@brackendawson
Copy link
Collaborator

I'm still pulling at this thread, bear with us.

@craig65535
Copy link
Contributor Author

@brackendawson

I'm still pulling at this thread, bear with us.

I just wanted to check in and see how it's going. I'm still open to making a new PR, and at this point my personal opinion is that would not be in bad form.

@brackendawson
Copy link
Collaborator

I've asked @matryer again today.

@brackendawson brackendawson dismissed dolmen’s stale review March 18, 2025 18:03

The request to move the test refactor into another PR has been done and merged.

@brackendawson brackendawson merged commit f784abc into stretchr:master Mar 18, 2025
8 checks passed
@brackendawson
Copy link
Collaborator

Thank you for your contribution, @craig65535. And sorry it took us so long.

@ccoVeille
Copy link
Collaborator

Thank you so much guys.

It feels great to see things merged to testify!

apricote pushed a commit to hetznercloud/fleeting-plugin-hetzner that referenced this pull request Aug 27, 2025
…nercloud/fleeting-plugin-hetzner!273)

This MR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [github.com/stretchr/testify](https://github.com/stretchr/testify) | `v1.10.0` -> `v1.11.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fstretchr%2ftestify/v1.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fstretchr%2ftestify/v1.10.0/v1.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>stretchr/testify (github.com/stretchr/testify)</summary>

### [`v1.11.0`](https://github.com/stretchr/testify/releases/tag/v1.11.0)

[Compare Source](stretchr/testify@v1.10.0...v1.11.0)

#### What's Changed

##### Functional Changes

v1.11.0 Includes a number of performance improvements.

- Call stack perf change for CallerInfo by [@&#8203;mikeauclair](https://github.com/mikeauclair) in [#&#8203;1614](stretchr/testify#1614)
- Lazily render mock diff output on successful match by [@&#8203;mikeauclair](https://github.com/mikeauclair) in [#&#8203;1615](stretchr/testify#1615)
- assert: check early in Eventually, EventuallyWithT, and Never by [@&#8203;cszczepaniak](https://github.com/cszczepaniak) in [#&#8203;1427](stretchr/testify#1427)
- assert: add IsNotType by [@&#8203;bartventer](https://github.com/bartventer) in [#&#8203;1730](stretchr/testify#1730)
- assert.JSONEq: shortcut if same strings by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1754](stretchr/testify#1754)
- assert.YAMLEq: shortcut if same strings by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1755](stretchr/testify#1755)
- assert: faster and simpler isEmpty using reflect.Value.IsZero by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1761](stretchr/testify#1761)
- suite: faster methods filtering (internal refactor) by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1758](stretchr/testify#1758)

##### Fixes

- assert.ErrorAs: log target type by [@&#8203;craig65535](https://github.com/craig65535) in [#&#8203;1345](stretchr/testify#1345)
- Fix failure message formatting for Positive and Negative asserts in [#&#8203;1062](stretchr/testify#1062)
- Improve ErrorIs message when error is nil but an error was expected by [@&#8203;tsioftas](https://github.com/tsioftas) in [#&#8203;1681](stretchr/testify#1681)
- fix Subset/NotSubset when calling with mixed input types by [@&#8203;siliconbrain](https://github.com/siliconbrain) in [#&#8203;1729](stretchr/testify#1729)
- Improve ErrorAs failure message when error is nil by [@&#8203;ccoVeille](https://github.com/ccoVeille) in [#&#8203;1734](stretchr/testify#1734)
- mock.AssertNumberOfCalls: improve error msg by [@&#8203;3scalation](https://github.com/3scalation) in [#&#8203;1743](stretchr/testify#1743)

##### Documentation, Build & CI

- docs: Fix typo in README by [@&#8203;alexandear](https://github.com/alexandear) in [#&#8203;1688](stretchr/testify#1688)
- Replace deprecated io/ioutil with io and os by [@&#8203;alexandear](https://github.com/alexandear) in [#&#8203;1684](stretchr/testify#1684)
- Document consequences of calling t.FailNow() by [@&#8203;greg0ire](https://github.com/greg0ire) in [#&#8203;1710](stretchr/testify#1710)
- chore: update docs for Unset [#&#8203;1621](stretchr/testify#1621) by [@&#8203;techfg](https://github.com/techfg) in [#&#8203;1709](stretchr/testify#1709)
- README: apply gofmt to examples by [@&#8203;alexandear](https://github.com/alexandear) in [#&#8203;1687](stretchr/testify#1687)
- refactor: use %q and %T to simplify fmt.Sprintf by [@&#8203;alexandear](https://github.com/alexandear) in [#&#8203;1674](stretchr/testify#1674)
- Propose Christophe Colombier (ccoVeille) as approver by [@&#8203;brackendawson](https://github.com/brackendawson) in [#&#8203;1716](stretchr/testify#1716)
- Update documentation for the Error function in assert or require package by [@&#8203;architagr](https://github.com/architagr) in [#&#8203;1675](stretchr/testify#1675)
- assert: remove deprecated build constraints by [@&#8203;alexandear](https://github.com/alexandear) in [#&#8203;1671](stretchr/testify#1671)
- assert: apply gofumpt to internal test suite by [@&#8203;ccoVeille](https://github.com/ccoVeille) in [#&#8203;1739](stretchr/testify#1739)
- CI: fix shebang in .ci.\*.sh scripts by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1746](stretchr/testify#1746)
- assert,require: enable parallel testing on (almost) all top tests by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1747](stretchr/testify#1747)
- suite.Passed: add one more status test report by [@&#8203;Ararsa-Derese](https://github.com/Ararsa-Derese) in [#&#8203;1706](stretchr/testify#1706)
- Add Helper() method in internal mocks and assert.CollectT by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1423](stretchr/testify#1423)
- assert.Same/NotSame: improve usage of Sprintf by [@&#8203;ccoVeille](https://github.com/ccoVeille) in [#&#8203;1742](stretchr/testify#1742)
- mock: enable parallel testing on internal testsuite by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1756](stretchr/testify#1756)
- suite: cleanup use of 'testing' internals at runtime by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1751](stretchr/testify#1751)
- assert: check test failure message for Empty and NotEmpty  by [@&#8203;ccoVeille](https://github.com/ccoVeille) in [#&#8203;1745](stretchr/testify#1745)
- deps: fix dependency cycle with objx (again) by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1567](stretchr/testify#1567)
- assert.Empty: comprehensive doc of "Empty"-ness rules by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1753](stretchr/testify#1753)
- doc: improve godoc of top level 'testify' package by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1760](stretchr/testify#1760)
- assert.ErrorAs: simplify retrieving the type name by [@&#8203;ccoVeille](https://github.com/ccoVeille) in [#&#8203;1740](stretchr/testify#1740)
- assert.EqualValues: improve test coverage to 100% by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1763](stretchr/testify#1763)
- suite.Run: simplify running of Setup/TeardownSuite by [@&#8203;renzoarreaza](https://github.com/renzoarreaza) in [#&#8203;1769](stretchr/testify#1769)
- assert.CallerInfo: micro optimization by using LastIndexByte by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1767](stretchr/testify#1767)
- assert.CallerInfo: micro cleanup by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1768](stretchr/testify#1768)
- assert: refactor Test*FileExists and Test*DirExists tests to enable parallel testing by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1766](stretchr/testify#1766)
- suite.Run: refactor handling of stats for improved readability by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1764](stretchr/testify#1764)
- tests: improve captureTestingT helper by [@&#8203;ccoVeille](https://github.com/ccoVeille) in [#&#8203;1741](stretchr/testify#1741)
- build(deps): bump actions/checkout from 4 to 5 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;1778](stretchr/testify#1778)

#### New Contributors

- [@&#8203;greg0ire](https://github.com/greg0ire) made their first contribution in [#&#8203;1710](stretchr/testify#1710)
- [@&#8203;techfg](https://github.com/techfg) made their first contribution in [#&#8203;1709](stretchr/testify#1709)
- [@&#8203;mikeauclair](https://github.com/mikeauclair) made their first contribution in [#&#8203;1614](stretchr/testify#1614)
- [@&#8203;cszczepaniak](https://github.com/cszczepaniak) made their first contribution in [#&#8203;1427](stretchr/testify#1427)
- [@&#8203;architagr](https://github.com/architagr) made their first contribution in [#&#8203;1675](stretchr/testify#1675)
- [@&#8203;tsioftas](https://github.com/tsioftas) made their first contribution in [#&#8203;1681](stretchr/testify#1681)
- [@&#8203;siliconbrain](https://github.com/siliconbrain) made their first contribution in [#&#8203;1729](stretchr/testify#1729)
- [@&#8203;bartventer](https://github.com/bartventer) made their first contribution in [#&#8203;1730](stretchr/testify#1730)
- [@&#8203;Ararsa-Derese](https://github.com/Ararsa-Derese) made their first contribution in [#&#8203;1706](stretchr/testify#1706)
- [@&#8203;renzoarreaza](https://github.com/renzoarreaza) made their first contribution in [#&#8203;1769](stretchr/testify#1769)
- [@&#8203;3scalation](https://github.com/3scalation) made their first contribution in [#&#8203;1743](stretchr/testify#1743)

**Full Changelog**: <stretchr/testify@v1.10.0...v1.11.0>

</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 MR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjgyLjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
project-mirrors-bot-tu bot pushed a commit to project-mirrors/forgejo-runner that referenced this pull request Aug 28, 2025
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [github.com/stretchr/testify](https://github.com/stretchr/testify) | `v1.10.0` -> `v1.11.1` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fstretchr%2ftestify/v1.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fstretchr%2ftestify/v1.10.0/v1.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>stretchr/testify (github.com/stretchr/testify)</summary>

### [`v1.11.1`](https://github.com/stretchr/testify/releases/tag/v1.11.1)

[Compare Source](stretchr/testify@v1.11.0...v1.11.1)

This release fixes [#&#8203;1785](stretchr/testify#1785) introduced in v1.11.0 where expected argument values implementing the stringer interface (`String() string`) with a method which mutates their value, when passed to mock.Mock.On (`m.On("Method", <expected>).Return()`) or actual argument values passed to mock.Mock.Called may no longer match one another where they previously did match. The behaviour prior to v1.11.0 where the stringer is always called is restored. Future testify releases may not call the stringer method at all in this case.

#### What's Changed

- Backport [#&#8203;1786](stretchr/testify#1786) to release/1.11: mock: revert to pre-v1.11.0 argument matching behavior for mutating stringers by [@&#8203;brackendawson](https://github.com/brackendawson) in [#&#8203;1788](stretchr/testify#1788)

**Full Changelog**: <stretchr/testify@v1.11.0...v1.11.1>

### [`v1.11.0`](https://github.com/stretchr/testify/releases/tag/v1.11.0)

[Compare Source](stretchr/testify@v1.10.0...v1.11.0)

#### What's Changed

##### Functional Changes

v1.11.0 Includes a number of performance improvements.

- Call stack perf change for CallerInfo by [@&#8203;mikeauclair](https://github.com/mikeauclair) in [#&#8203;1614](stretchr/testify#1614)
- Lazily render mock diff output on successful match by [@&#8203;mikeauclair](https://github.com/mikeauclair) in [#&#8203;1615](stretchr/testify#1615)
- assert: check early in Eventually, EventuallyWithT, and Never by [@&#8203;cszczepaniak](https://github.com/cszczepaniak) in [#&#8203;1427](stretchr/testify#1427)
- assert: add IsNotType by [@&#8203;bartventer](https://github.com/bartventer) in [#&#8203;1730](stretchr/testify#1730)
- assert.JSONEq: shortcut if same strings by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1754](stretchr/testify#1754)
- assert.YAMLEq: shortcut if same strings by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1755](stretchr/testify#1755)
- assert: faster and simpler isEmpty using reflect.Value.IsZero by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1761](stretchr/testify#1761)
- suite: faster methods filtering (internal refactor) by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1758](stretchr/testify#1758)

##### Fixes

- assert.ErrorAs: log target type by [@&#8203;craig65535](https://github.com/craig65535) in [#&#8203;1345](stretchr/testify#1345)
- Fix failure message formatting for Positive and Negative asserts in [#&#8203;1062](stretchr/testify#1062)
- Improve ErrorIs message when error is nil but an error was expected by [@&#8203;tsioftas](https://github.com/tsioftas) in [#&#8203;1681](stretchr/testify#1681)
- fix Subset/NotSubset when calling with mixed input types by [@&#8203;siliconbrain](https://github.com/siliconbrain) in [#&#8203;1729](stretchr/testify#1729)
- Improve ErrorAs failure message when error is nil by [@&#8203;ccoVeille](https://github.com/ccoVeille) in [#&#8203;1734](stretchr/testify#1734)
- mock.AssertNumberOfCalls: improve error msg by [@&#8203;3scalation](https://github.com/3scalation) in [#&#8203;1743](stretchr/testify#1743)

##### Documentation, Build & CI

- docs: Fix typo in README by [@&#8203;alexandear](https://github.com/alexandear) in [#&#8203;1688](stretchr/testify#1688)
- Replace deprecated io/ioutil with io and os by [@&#8203;alexandear](https://github.com/alexandear) in [#&#8203;1684](stretchr/testify#1684)
- Document consequences of calling t.FailNow() by [@&#8203;greg0ire](https://github.com/greg0ire) in [#&#8203;1710](stretchr/testify#1710)
- chore: update docs for Unset [#&#8203;1621](stretchr/testify#1621) by [@&#8203;techfg](https://github.com/techfg) in [#&#8203;1709](stretchr/testify#1709)
- README: apply gofmt to examples by [@&#8203;alexandear](https://github.com/alexandear) in [#&#8203;1687](stretchr/testify#1687)
- refactor: use %q and %T to simplify fmt.Sprintf by [@&#8203;alexandear](https://github.com/alexandear) in [#&#8203;1674](stretchr/testify#1674)
- Propose Christophe Colombier (ccoVeille) as approver by [@&#8203;brackendawson](https://github.com/brackendawson) in [#&#8203;1716](stretchr/testify#1716)
- Update documentation for the Error function in assert or require package by [@&#8203;architagr](https://github.com/architagr) in [#&#8203;1675](stretchr/testify#1675)
- assert: remove deprecated build constraints by [@&#8203;alexandear](https://github.com/alexandear) in [#&#8203;1671](stretchr/testify#1671)
- assert: apply gofumpt to internal test suite by [@&#8203;ccoVeille](https://github.com/ccoVeille) in [#&#8203;1739](stretchr/testify#1739)
- CI: fix shebang in .ci.\*.sh scripts by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1746](stretchr/testify#1746)
- assert,require: enable parallel testing on (almost) all top tests by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1747](stretchr/testify#1747)
- suite.Passed: add one more status test report by [@&#8203;Ararsa-Derese](https://github.com/Ararsa-Derese) in [#&#8203;1706](stretchr/testify#1706)
- Add Helper() method in internal mocks and assert.CollectT by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1423](stretchr/testify#1423)
- assert.Same/NotSame: improve usage of Sprintf by [@&#8203;ccoVeille](https://github.com/ccoVeille) in [#&#8203;1742](stretchr/testify#1742)
- mock: enable parallel testing on internal testsuite by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1756](stretchr/testify#1756)
- suite: cleanup use of 'testing' internals at runtime by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1751](stretchr/testify#1751)
- assert: check test failure message for Empty and NotEmpty  by [@&#8203;ccoVeille](https://github.com/ccoVeille) in [#&#8203;1745](stretchr/testify#1745)
- deps: fix dependency cycle with objx (again) by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1567](stretchr/testify#1567)
- assert.Empty: comprehensive doc of "Empty"-ness rules by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1753](stretchr/testify#1753)
- doc: improve godoc of top level 'testify' package by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1760](stretchr/testify#1760)
- assert.ErrorAs: simplify retrieving the type name by [@&#8203;ccoVeille](https://github.com/ccoVeille) in [#&#8203;1740](stretchr/testify#1740)
- assert.EqualValues: improve test coverage to 100% by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1763](stretchr/testify#1763)
- suite.Run: simplify running of Setup/TeardownSuite by [@&#8203;renzoarreaza](https://github.com/renzoarreaza) in [#&#8203;1769](stretchr/testify#1769)
- assert.CallerInfo: micro optimization by using LastIndexByte by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1767](stretchr/testify#1767)
- assert.CallerInfo: micro cleanup by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1768](stretchr/testify#1768)
- assert: refactor Test*FileExists and Test*DirExists tests to enable parallel testing by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1766](stretchr/testify#1766)
- suite.Run: refactor handling of stats for improved readability by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1764](stretchr/testify#1764)
- tests: improve captureTestingT helper by [@&#8203;ccoVeille](https://github.com/ccoVeille) in [#&#8203;1741](stretchr/testify#1741)
- build(deps): bump actions/checkout from 4 to 5 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;1778](stretchr/testify#1778)

#### New Contributors

- [@&#8203;greg0ire](https://github.com/greg0ire) made their first contribution in [#&#8203;1710](stretchr/testify#1710)
- [@&#8203;techfg](https://github.com/techfg) made their first contribution in [#&#8203;1709](stretchr/testify#1709)
- [@&#8203;mikeauclair](https://github.com/mikeauclair) made their first contribution in [#&#8203;1614](stretchr/testify#1614)
- [@&#8203;cszczepaniak](https://github.com/cszczepaniak) made their first contribution in [#&#8203;1427](stretchr/testify#1427)
- [@&#8203;architagr](https://github.com/architagr) made their first contribution in [#&#8203;1675](stretchr/testify#1675)
- [@&#8203;tsioftas](https://github.com/tsioftas) made their first contribution in [#&#8203;1681](stretchr/testify#1681)
- [@&#8203;siliconbrain](https://github.com/siliconbrain) made their first contribution in [#&#8203;1729](stretchr/testify#1729)
- [@&#8203;bartventer](https://github.com/bartventer) made their first contribution in [#&#8203;1730](stretchr/testify#1730)
- [@&#8203;Ararsa-Derese](https://github.com/Ararsa-Derese) made their first contribution in [#&#8203;1706](stretchr/testify#1706)
- [@&#8203;renzoarreaza](https://github.com/renzoarreaza) made their first contribution in [#&#8203;1769](stretchr/testify#1769)
- [@&#8203;3scalation](https://github.com/3scalation) made their first contribution in [#&#8203;1743](stretchr/testify#1743)

**Full Changelog**: <stretchr/testify@v1.10.0...v1.11.0>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (UTC), Automerge - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (UTC).

🚦 **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:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjgyLjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJLaW5kL0Nob3JlIl19-->

<!--start release-notes-assistant-->
<!--URL:https://code.forgejo.org/forgejo/runner-->
- other
  - [PR](https://code.forgejo.org/forgejo/runner/pulls/915): <!--number 915 --><!--line 0 --><!--description VXBkYXRlIG1vZHVsZSBnaXRodWIuY29tL3N0cmV0Y2hyL3Rlc3RpZnkgdG8gdjEuMTEuMQ==-->Update module github.com/stretchr/testify to v1.11.1<!--description-->
<!--end release-notes-assistant-->

Reviewed-on: https://code.forgejo.org/forgejo/runner/pulls/915
Reviewed-by: earl-warren <[email protected]>
Co-authored-by: Renovate Bot <[email protected]>
Co-committed-by: Renovate Bot <[email protected]>
TimoBehrendt pushed a commit to TimoBehrendt/tracebasedlogsampler that referenced this pull request Nov 11, 2025
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/stretchr/testify](https://github.com/stretchr/testify) | require | minor | `v1.10.0` -> `v1.11.1` |
| [go.opentelemetry.io/collector/component](https://github.com/open-telemetry/opentelemetry-collector) | require | minor | `v1.35.0` -> `v1.45.0` |
| [go.opentelemetry.io/collector/component/componenttest](https://github.com/open-telemetry/opentelemetry-collector) | require | minor | `v0.129.0` -> `v0.139.0` |
| [go.opentelemetry.io/collector/confmap](https://github.com/open-telemetry/opentelemetry-collector) | require | minor | `v1.35.0` -> `v1.45.0` |
| [go.opentelemetry.io/collector/consumer](https://github.com/open-telemetry/opentelemetry-collector) | require | minor | `v1.35.0` -> `v1.45.0` |
| [go.opentelemetry.io/collector/consumer/consumertest](https://github.com/open-telemetry/opentelemetry-collector) | require | minor | `v0.129.0` -> `v0.139.0` |
| [go.opentelemetry.io/collector/pdata](https://github.com/open-telemetry/opentelemetry-collector) | require | minor | `v1.35.0` -> `v1.45.0` |
| [go.opentelemetry.io/collector/processor](https://github.com/open-telemetry/opentelemetry-collector) | require | minor | `v1.35.0` -> `v1.45.0` |
| [go.opentelemetry.io/collector/processor/processortest](https://github.com/open-telemetry/opentelemetry-collector) | require | minor | `v0.129.0` -> `v0.139.0` |

---

### Release Notes

<details>
<summary>stretchr/testify (github.com/stretchr/testify)</summary>

### [`v1.11.1`](https://github.com/stretchr/testify/releases/tag/v1.11.1)

[Compare Source](stretchr/testify@v1.11.0...v1.11.1)

This release fixes [#&#8203;1785](stretchr/testify#1785) introduced in v1.11.0 where expected argument values implementing the stringer interface (`String() string`) with a method which mutates their value, when passed to mock.Mock.On (`m.On("Method", <expected>).Return()`) or actual argument values passed to mock.Mock.Called may no longer match one another where they previously did match. The behaviour prior to v1.11.0 where the stringer is always called is restored. Future testify releases may not call the stringer method at all in this case.

#### What's Changed

- Backport [#&#8203;1786](stretchr/testify#1786) to release/1.11: mock: revert to pre-v1.11.0 argument matching behavior for mutating stringers by [@&#8203;brackendawson](https://github.com/brackendawson) in [#&#8203;1788](stretchr/testify#1788)

**Full Changelog**: <stretchr/testify@v1.11.0...v1.11.1>

### [`v1.11.0`](https://github.com/stretchr/testify/releases/tag/v1.11.0)

[Compare Source](stretchr/testify@v1.10.0...v1.11.0)

#### What's Changed

##### Functional Changes

v1.11.0 Includes a number of performance improvements.

- Call stack perf change for CallerInfo by [@&#8203;mikeauclair](https://github.com/mikeauclair) in [#&#8203;1614](stretchr/testify#1614)
- Lazily render mock diff output on successful match by [@&#8203;mikeauclair](https://github.com/mikeauclair) in [#&#8203;1615](stretchr/testify#1615)
- assert: check early in Eventually, EventuallyWithT, and Never by [@&#8203;cszczepaniak](https://github.com/cszczepaniak) in [#&#8203;1427](stretchr/testify#1427)
- assert: add IsNotType by [@&#8203;bartventer](https://github.com/bartventer) in [#&#8203;1730](stretchr/testify#1730)
- assert.JSONEq: shortcut if same strings by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1754](stretchr/testify#1754)
- assert.YAMLEq: shortcut if same strings by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1755](stretchr/testify#1755)
- assert: faster and simpler isEmpty using reflect.Value.IsZero by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1761](stretchr/testify#1761)
- suite: faster methods filtering (internal refactor) by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1758](stretchr/testify#1758)

##### Fixes

- assert.ErrorAs: log target type by [@&#8203;craig65535](https://github.com/craig65535) in [#&#8203;1345](stretchr/testify#1345)
- Fix failure message formatting for Positive and Negative asserts in [#&#8203;1062](stretchr/testify#1062)
- Improve ErrorIs message when error is nil but an error was expected by [@&#8203;tsioftas](https://github.com/tsioftas) in [#&#8203;1681](stretchr/testify#1681)
- fix Subset/NotSubset when calling with mixed input types by [@&#8203;siliconbrain](https://github.com/siliconbrain) in [#&#8203;1729](stretchr/testify#1729)
- Improve ErrorAs failure message when error is nil by [@&#8203;ccoVeille](https://github.com/ccoVeille) in [#&#8203;1734](stretchr/testify#1734)
- mock.AssertNumberOfCalls: improve error msg by [@&#8203;3scalation](https://github.com/3scalation) in [#&#8203;1743](stretchr/testify#1743)

##### Documentation, Build & CI

- docs: Fix typo in README by [@&#8203;alexandear](https://github.com/alexandear) in [#&#8203;1688](stretchr/testify#1688)
- Replace deprecated io/ioutil with io and os by [@&#8203;alexandear](https://github.com/alexandear) in [#&#8203;1684](stretchr/testify#1684)
- Document consequences of calling t.FailNow() by [@&#8203;greg0ire](https://github.com/greg0ire) in [#&#8203;1710](stretchr/testify#1710)
- chore: update docs for Unset [#&#8203;1621](stretchr/testify#1621) by [@&#8203;techfg](https://github.com/techfg) in [#&#8203;1709](stretchr/testify#1709)
- README: apply gofmt to examples by [@&#8203;alexandear](https://github.com/alexandear) in [#&#8203;1687](stretchr/testify#1687)
- refactor: use %q and %T to simplify fmt.Sprintf by [@&#8203;alexandear](https://github.com/alexandear) in [#&#8203;1674](stretchr/testify#1674)
- Propose Christophe Colombier (ccoVeille) as approver by [@&#8203;brackendawson](https://github.com/brackendawson) in [#&#8203;1716](stretchr/testify#1716)
- Update documentation for the Error function in assert or require package by [@&#8203;architagr](https://github.com/architagr) in [#&#8203;1675](stretchr/testify#1675)
- assert: remove deprecated build constraints by [@&#8203;alexandear](https://github.com/alexandear) in [#&#8203;1671](stretchr/testify#1671)
- assert: apply gofumpt to internal test suite by [@&#8203;ccoVeille](https://github.com/ccoVeille) in [#&#8203;1739](stretchr/testify#1739)
- CI: fix shebang in .ci.\*.sh scripts by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1746](stretchr/testify#1746)
- assert,require: enable parallel testing on (almost) all top tests by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1747](stretchr/testify#1747)
- suite.Passed: add one more status test report by [@&#8203;Ararsa-Derese](https://github.com/Ararsa-Derese) in [#&#8203;1706](stretchr/testify#1706)
- Add Helper() method in internal mocks and assert.CollectT by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1423](stretchr/testify#1423)
- assert.Same/NotSame: improve usage of Sprintf by [@&#8203;ccoVeille](https://github.com/ccoVeille) in [#&#8203;1742](stretchr/testify#1742)
- mock: enable parallel testing on internal testsuite by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1756](stretchr/testify#1756)
- suite: cleanup use of 'testing' internals at runtime by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1751](stretchr/testify#1751)
- assert: check test failure message for Empty and NotEmpty  by [@&#8203;ccoVeille](https://github.com/ccoVeille) in [#&#8203;1745](stretchr/testify#1745)
- deps: fix dependency cycle with objx (again) by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1567](stretchr/testify#1567)
- assert.Empty: comprehensive doc of "Empty"-ness rules by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1753](stretchr/testify#1753)
- doc: improve godoc of top level 'testify' package by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1760](stretchr/testify#1760)
- assert.ErrorAs: simplify retrieving the type name by [@&#8203;ccoVeille](https://github.com/ccoVeille) in [#&#8203;1740](stretchr/testify#1740)
- assert.EqualValues: improve test coverage to 100% by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1763](stretchr/testify#1763)
- suite.Run: simplify running of Setup/TeardownSuite by [@&#8203;renzoarreaza](https://github.com/renzoarreaza) in [#&#8203;1769](stretchr/testify#1769)
- assert.CallerInfo: micro optimization by using LastIndexByte by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1767](stretchr/testify#1767)
- assert.CallerInfo: micro cleanup by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1768](stretchr/testify#1768)
- assert: refactor Test*FileExists and Test*DirExists tests to enable parallel testing by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1766](stretchr/testify#1766)
- suite.Run: refactor handling of stats for improved readability by [@&#8203;dolmen](https://github.com/dolmen) in [#&#8203;1764](stretchr/testify#1764)
- tests: improve captureTestingT helper by [@&#8203;ccoVeille](https://github.com/ccoVeille) in [#&#8203;1741](stretchr/testify#1741)
- build(deps): bump actions/checkout from 4 to 5 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;1778](stretchr/testify#1778)

#### New Contributors

- [@&#8203;greg0ire](https://github.com/greg0ire) made their first contribution in [#&#8203;1710](stretchr/testify#1710)
- [@&#8203;techfg](https://github.com/techfg) made their first contribution in [#&#8203;1709](stretchr/testify#1709)
- [@&#8203;mikeauclair](https://github.com/mikeauclair) made their first contribution in [#&#8203;1614](stretchr/testify#1614)
- [@&#8203;cszczepaniak](https://github.com/cszczepaniak) made their first contribution in [#&#8203;1427](stretchr/testify#1427)
- [@&#8203;architagr](https://github.com/architagr) made their first contribution in [#&#8203;1675](stretchr/testify#1675)
- [@&#8203;tsioftas](https://github.com/tsioftas) made their first contribution in [#&#8203;1681](stretchr/testify#1681)
- [@&#8203;siliconbrain](https://github.com/siliconbrain) made their first contribution in [#&#8203;1729](stretchr/testify#1729)
- [@&#8203;bartventer](https://github.com/bartventer) made their first contribution in [#&#8203;1730](stretchr/testify#1730)
- [@&#8203;Ararsa-Derese](https://github.com/Ararsa-Derese) made their first contribution in [#&#8203;1706](stretchr/testify#1706)
- [@&#8203;renzoarreaza](https://github.com/renzoarreaza) made their first contribution in [#&#8203;1769](stretchr/testify#1769)
- [@&#8203;3scalation](https://github.com/3scalation) made their first contribution in [#&#8203;1743](stretchr/testify#1743)

**Full Changelog**: <stretchr/testify@v1.10.0...v1.11.0>

</details>

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

### [`v1.45.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1450v01390)

##### 🛑 Breaking changes 🛑

- `cmd/mdatagen`: Make stability.level a required field for metrics ([#&#8203;14070](open-telemetry/opentelemetry-collector#14070))

- `cmd/mdatagen`: Replace `optional` field with `requirement_level` field for attributes in metadata schema ([#&#8203;13913](open-telemetry/opentelemetry-collector#13913))
  The `optional` boolean field for attributes has been replaced with a `requirement_level` field that accepts enum values: `required`, `conditionally_required`, `recommended`, or `opt_in`.
  - `required`: attribute is always included and cannot be excluded
  - `conditionally_required`: attribute is included by default when certain conditions are met (replaces `optional: true`)
  - `recommended`: attribute is included by default but can be disabled via configuration (replaces `optional: false`)
  - `opt_in`: attribute is not included unless explicitly enabled in user config
    When `requirement_level` is not specified, it defaults to `recommended`.

- `pdata/pprofile`: Remove deprecated `PutAttribute` helper method ([#&#8203;14082](open-telemetry/opentelemetry-collector#14082))

- `pdata/pprofile`: Remove deprecated `PutLocation` helper method ([#&#8203;14082](open-telemetry/opentelemetry-collector#14082))

##### 💡 Enhancements 💡

- `all`: Add FIPS and non-FIPS implementations for allowed TLS curves ([#&#8203;13990](open-telemetry/opentelemetry-collector#13990))
- `cmd/builder`: Set CGO\_ENABLED=0 by default, add the `cgo_enabled` configuration to enable it. ([#&#8203;10028](open-telemetry/opentelemetry-collector#10028))
- `pkg/config/configgrpc`: Errors of type status.Status returned from an Authenticator extension are being propagated as is to the upstream client. ([#&#8203;14005](open-telemetry/opentelemetry-collector#14005))
- `pkg/config/configoptional`: Adds new `configoptional.AddEnabledField` feature gate that allows users to explicitly disable a `configoptional.Optional` through a new `enabled` field. ([#&#8203;14021](open-telemetry/opentelemetry-collector#14021))
- `pkg/exporterhelper`: Replace usage of gogo proto for persistent queue metadata ([#&#8203;14079](open-telemetry/opentelemetry-collector#14079))
- `pkg/pdata`: Remove usage of gogo proto and generate the structs with pdatagen ([#&#8203;14078](open-telemetry/opentelemetry-collector#14078))

##### 🧰 Bug fixes 🧰

- `exporter/debug`: add queue configuration ([#&#8203;14101](open-telemetry/opentelemetry-collector#14101))

<!-- previous-version -->

### [`v1.44.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1440v01380)

##### 🛑 Breaking changes 🛑

- `all`: Remove deprecated type `TracesConfig` ([#&#8203;14036](open-telemetry/opentelemetry-collector#14036))

- `pkg/exporterhelper`: Add default values for `sending_queue::batch` configuration. ([#&#8203;13766](open-telemetry/opentelemetry-collector#13766))
  Setting `sending_queue::batch` to an empty value now results in the same setup as the default batch processor configuration.

- `all`: Add unified print-config command with mode support (redacted, unredacted), json support (unstable), and validation support. ([#&#8203;11775](open-telemetry/opentelemetry-collector#11775))
  This replaces the `print-initial-config` command. See the `service` package README for more details. The original command name `print-initial-config` remains an alias, to be retired with the feature flag.

##### 💡 Enhancements 💡

- `all`: Add `keep_alives_enabled` option to ServerConfig to control HTTP keep-alives for all components that create an HTTP server. ([#&#8203;13783](open-telemetry/opentelemetry-collector#13783))
- `pkg/otelcol`: Avoid unnecessary mutex in collector logs, replace by atomic pointer ([#&#8203;14008](open-telemetry/opentelemetry-collector#14008))
- `cmd/mdatagen`: Add lint/ordering validation for metadata.yaml ([#&#8203;13781](open-telemetry/opentelemetry-collector#13781))
- `pdata/xpdata`: Refactor JSON marshaling and unmarshaling to use `pcommon.Value` instead of `AnyValue`. ([#&#8203;13837](open-telemetry/opentelemetry-collector#13837))
- `pkg/exporterhelper`: Expose `MergeCtx` in exporterhelper's queue batch settings\` ([#&#8203;13742](open-telemetry/opentelemetry-collector#13742))

##### 🧰 Bug fixes 🧰

- `all`: Fix zstd decoder data corruption due to decoder pooling for all components that create an HTTP server. ([#&#8203;13954](open-telemetry/opentelemetry-collector#13954))
- `pkg/otelcol`: Remove UB when taking internal logs and move them to the final zapcore.Core ([#&#8203;14009](open-telemetry/opentelemetry-collector#14009))
  This can happen because of a race on accessing `logsTaken`.
- `pkg/confmap`: Fix a potential race condition in confmap by closing the providers first. ([#&#8203;14018](open-telemetry/opentelemetry-collector#14018))

<!-- previous-version -->

### [`v1.43.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1430v01370)

##### 💡 Enhancements 💡

- `cmd/mdatagen`: Improve validation for resource attribute `enabled` field in metadata files ([#&#8203;12722](open-telemetry/opentelemetry-collector#12722))
  Resource attributes now require an explicit `enabled` field in metadata.yaml files, while regular attributes
  are prohibited from having this field. This improves validation and prevents configuration errors.

- `all`: Changelog entries will now have their component field checked against a list of valid components. ([#&#8203;13924](open-telemetry/opentelemetry-collector#13924))
  This will ensure a more standardized changelog format which makes it easier to parse.

- `pkg/pdata`: Mark featuregate pdata.useCustomProtoEncoding as stable ([#&#8203;13883](open-telemetry/opentelemetry-collector#13883))

<!-- previous-version -->

### [`v1.42.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1420v01360)

##### 💡 Enhancements 💡

- `xpdata`: Add Serialization and Deserialization of AnyValue ([#&#8203;12826](open-telemetry/opentelemetry-collector#12826))
- `debugexporter`: add support for batching ([#&#8203;13791](open-telemetry/opentelemetry-collector#13791))
  The default queue size is 1
- `configtls`: Add early validation for TLS server configurations to fail fast when certificates are missing instead of failing at runtime. ([#&#8203;13130](open-telemetry/opentelemetry-collector#13130), [#&#8203;13245](open-telemetry/opentelemetry-collector#13245))
- `mdatagen`: Expose stability level in generated metric documentation ([#&#8203;13748](open-telemetry/opentelemetry-collector#13748))
- `internal/tools`: Add support for modernize in Makefile ([#&#8203;13796](open-telemetry/opentelemetry-collector#13796))

##### 🧰 Bug fixes 🧰

- `otelcol`: Fix a potential deadlock during collector shutdown. ([#&#8203;13740](open-telemetry/opentelemetry-collector#13740))
- `otlpexporter`: fix the validation of unix socket endpoints ([#&#8203;13826](open-telemetry/opentelemetry-collector#13826))

<!-- previous-version -->

### [`v1.41.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1410v01350)

##### 💡 Enhancements 💡

- `exporterhelper`: Add new `exporter_queue_batch_send_size` and `exporter_queue_batch_send_size_bytes` metrics, showing the size of telemetry batches from the exporter. ([#&#8203;12894](open-telemetry/opentelemetry-collector#12894))

<!-- previous-version -->

### [`v1.40.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1400v01340)

##### 💡 Enhancements 💡

- `pdata`: Add custom grpc/encoding that replaces proto and calls into the custom marshal/unmarshal logic in pdata. ([#&#8203;13631](open-telemetry/opentelemetry-collector#13631))
  This change should not affect other gRPC calls since it fallbacks to the default grpc/proto encoding if requests are not pdata/otlp requests.
- `pdata`: Avoid copying the pcommon.Map when same origin ([#&#8203;13731](open-telemetry/opentelemetry-collector#13731))
  This is a very large improvement if using OTTL with map functions since it will avoid a map copy.
- `exporterhelper`: Respect `num_consumers` when batching and partitioning are enabled. ([#&#8203;13607](open-telemetry/opentelemetry-collector#13607))

##### 🧰 Bug fixes 🧰

- `pdata`: Correctly parse OTLP payloads containing non-packed repeated primitive fields ([#&#8203;13727](open-telemetry/opentelemetry-collector#13727), [#&#8203;13730](open-telemetry/opentelemetry-collector#13730))
  This bug prevented the Collector from ingesting most Histogram, ExponentialHistogram,
  and Profile payloads.

<!-- previous-version -->

### [`v1.39.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1390v01330)

##### 🛑 Breaking changes 🛑

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

##### 💡 Enhancements 💡

- `otlphttpexporter`: Add `profiles_endpoint` configuration option to allow custom endpoint for profiles data export ([#&#8203;13504](open-telemetry/opentelemetry-collector#13504))
  The `profiles_endpoint` configuration follows the same pattern as `traces_endpoint`, `metrics_endpoint`, and `logs_endpoint`.
  When specified, profiles data will be sent to the custom URL instead of the default `{endpoint}/v1development/profiles`.

- `pdata`: Add support for local memory pooling for data objects. ([#&#8203;13678](open-telemetry/opentelemetry-collector#13678))
  This is still an early experimental (alpha) feature. Do not recommended to be used production. To enable use "--featuregate=+pdata.useProtoPooling"

- `pdata`: Optimize CopyTo messages to avoid any copy when same source and destination ([#&#8203;13680](open-telemetry/opentelemetry-collector#13680))

- `receiverhelper`: New feature flag to make receiverhelper distinguish internal vs. downstream errors using new `otelcol_receiver_failed_x` and `otelcol_receiver_requests` metrics ([#&#8203;12207](open-telemetry/opentelemetry-collector#12207), [#&#8203;12802](open-telemetry/opentelemetry-collector#12802))
  This is a breaking change for the semantics of the otelcol\_receiver\_refused\_metric\_points,  otelcol\_receiver\_refused\_log\_records and otelcol\_receiver\_refused\_spans metrics.
  These new metrics and semantics are enabled through the `receiverhelper.newReceiverMetrics` feature gate.

- `debugexporter`: Add support for entity references in debug exporter output ([#&#8203;13324](open-telemetry/opentelemetry-collector#13324))

- `pdata`: Fix unnecessary allocation of a new state when adding new values to pcommon.Map ([#&#8203;13634](open-telemetry/opentelemetry-collector#13634))

- `service`: Implement refcounting for pipeline data owned memory. ([#&#8203;13631](open-telemetry/opentelemetry-collector#13631))
  This feature is protected by `--featuregate=+pdata.useProtoPooling`.

- `service`: Add a debug-level log message when a consumer returns an error. ([#&#8203;13357](open-telemetry/opentelemetry-collector#13357))

- `xpdata`: Optimize xpdata/context for persistent queue when only one value for key ([#&#8203;13636](open-telemetry/opentelemetry-collector#13636))

- `otlpreceiver`: Log the listening addresses of the receiver, rather than the configured endpoints. ([#&#8203;13654](open-telemetry/opentelemetry-collector#13654))

- `pdata`: Use the newly added proto marshaler/unmarshaler for the official proto Marshaler/Unmarshaler ([#&#8203;13637](open-telemetry/opentelemetry-collector#13637))
  If any problems observed with this consider to disable the featuregate `--feature-gates=-pdata.useCustomProtoEncoding`

<!-- cspell:ignore MLKEM mlkem -->

- `configtls`: Enable X25519MLKEM768 as per draft-ietf-tls-ecdhe-mlkem ([#&#8203;13670](open-telemetry/opentelemetry-collector#13670))

##### 🧰 Bug fixes 🧰

- `exporterhelper`: Prevent uncontrolled goroutines in batcher due to a incorrect worker pool behaviour. ([#&#8203;13689](open-telemetry/opentelemetry-collector#13689))
- `service`: Ensure the insecure configuration is accounted for when normalizing the endpoint. ([#&#8203;13691](open-telemetry/opentelemetry-collector#13691))
- `configoptional`: Allow validating nested types ([#&#8203;13579](open-telemetry/opentelemetry-collector#13579))
  `configoptional.Optional` now implements `xconfmap.Validator`
- `batchprocessor`: Fix UB in batch processor when trying to read bytes size after adding request to pipeline ([#&#8203;13698](open-telemetry/opentelemetry-collector#13698))
  This bug only happens id detailed metrics are enabled and also an async (sending queue enabled) exporter that mutates data is configure.

<!-- previous-version -->

### [`v1.38.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1380v01320)

##### 🛑 Breaking changes 🛑

- `componentstatus`: Change the signature of the componentstatus.NewEvent to accept multiple options. ([#&#8203;13210](open-telemetry/opentelemetry-collector#13210))
  Changes the signature of the component.NewEvent to accept multiple EventBuilderOption,
  like the new WithAttributes constructor.

##### 🚩 Deprecations 🚩

- `service`: move service.noopTraceProvider feature gate to deprecated stage ([#&#8203;13492](open-telemetry/opentelemetry-collector#13492))
  The functionality of the feature gate is available via configuration with the following telemetry settings:
  ```
  service:
    telemetry:
      traces:
        level: none
  ```

- `mdatagen`: Remove the deletion of `generated_component_telemetry_test.go`. ([#&#8203;12067](open-telemetry/opentelemetry-collector#12067))
  This file used to be generated by mdatagen. Starting with 0.122.0, the code deletes that file.
  It is no longer necessary to delete the file, as code has had time to upgrade to mdatagen and delete the file.

- `service`: The `telemetry.disableHighCardinalityMetrics` feature gate is deprecated ([#&#8203;13537](open-telemetry/opentelemetry-collector#13537))
  The feature gate is now deprecated since metric views can be configured.
  The feature gate will be removed in v0.134.0.

  The metric attributes removed by this feature gate are no longer emitted
  by the Collector by default, but if needed, you can achieve the same
  functionality by configuring the following metric views:

  ```yaml
  service:
    telemetry:
      metrics:
        level: detailed
        views:
          - selector:
              meter_name: "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
            stream:
              attribute_keys:
                excluded: ["net.sock.peer.addr", "net.sock.peer.port", "net.sock.peer.name"]
          - selector:
              meter_name: "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
            stream:
              attribute_keys:
                excluded: ["net.host.name", "net.host.port"]
  ```

  Note that this requires setting `service::telemetry::metrics::level: detailed`.
  If you have a strong use case for using views in combination with a different
  level, please show your interest in
  [#&#8203;10769](open-telemetry/opentelemetry-collector#10769).

##### 💡 Enhancements 💡

- `pdata`: Generate Logs/Traces/Metrics/Profiles and p\[log|trace|metric|profile]ExportResponse with pdatagen. ([#&#8203;13597](open-telemetry/opentelemetry-collector#13597))
  This change brings consistency on how these structs are written and remove JSON marshaling/unmarshaling hand written logic.
- `confighttp`: Add option to configure ForceAttemptHTTP2 to support HTTP/1 specific transport settings. ([#&#8203;13426](open-telemetry/opentelemetry-collector#13426))
- `pdata`: Avoid unnecessary buffer copy when JSON marshal fails. ([#&#8203;13598](open-telemetry/opentelemetry-collector#13598))
- `cmd/mdatagen`: Use a custom host implementation for lifecycle tests ([#&#8203;13589](open-telemetry/opentelemetry-collector#13589))
  Use a custom noop host implementation that implements all non-deprecated, publicly-accessible interfaces implemented by the Collector service.
- `processorhelper`: Add processor internal duration metric. ([#&#8203;13231](open-telemetry/opentelemetry-collector#13231))
- `pdata`: Improve RemoveIf for slices to not reference anymore the removed memory ([#&#8203;13522](open-telemetry/opentelemetry-collector#13522))

##### 🧰 Bug fixes 🧰

- `pdata`: Fix null pointer access when copying into a slice with larger cap but smaller len. ([#&#8203;13523](open-telemetry/opentelemetry-collector#13523))

- `confighttp`: Fix middleware configuration field name from "middleware" to "middlewares" for consistency with configgrpc ([#&#8203;13444](open-telemetry/opentelemetry-collector#13444))

- `memorylimiterextension, memorylimiterprocessor`: Memory limiter extension and processor shutdown don't throw an error if the component was not started first. ([#&#8203;9687](open-telemetry/opentelemetry-collector#9687))
  The components would throw an error if they were shut down before being started.
  With this change, they will no longer return an error, conforming to the lifecycle of components expected.

- `confighttp`: Reuse zstd Reader objects ([#&#8203;11824](open-telemetry/opentelemetry-collector#11824))

<!-- previous-version -->

### [`v1.37.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1370v01310)

##### 🛑 Breaking changes 🛑

- `confighttp`: Move `confighttp.framedSnappy` feature gate to beta. ([#&#8203;10584](open-telemetry/opentelemetry-collector#10584))

##### 💡 Enhancements 💡

- `exporter/debug`: Move to alpha stability except profiles ([#&#8203;13487](open-telemetry/opentelemetry-collector#13487))

- `exporterhelper`: Enable `exporter.PersistRequestContext` feature gate by default. ([#&#8203;13437](open-telemetry/opentelemetry-collector#13437))
  Request context is now preserved by default when using persistent queues.
  Note that Auth extensions context is not propagated through the persistent queue.

- `pdata`: Use pdatagen to generate marshalJSON without using gogo proto jsonpb. ([#&#8203;13450](open-telemetry/opentelemetry-collector#13450))

- `otlpreceiver`: Remove usage of gogo proto which uses reflect.Value.MethodByName. Removes one source of disabling DCE. ([#&#8203;12747](open-telemetry/opentelemetry-collector#12747))

- `exporterhelper`: Fix metrics split logic to consider metrics description into the size. ([#&#8203;13418](open-telemetry/opentelemetry-collector#13418))

- `service`: New pipeline instrumentation now differentiates internal failures from downstream errors ([#&#8203;13234](open-telemetry/opentelemetry-collector#13234))
  With the telemetry.newPipelineTelemetry feature gate enabled, the "received" and "produced"
  metrics related to a component now distinguish between two types of errors:
  - "outcome = failure" indicates that the component returned an internal error;
  - "outcome = refused" indicates that the component successfully emitted data, but returned an
    error coming from a downstream component processing that data.

- `pdata`: Remove usage of text/template from pdata, improves DCE. ([#&#8203;12747](open-telemetry/opentelemetry-collector#12747))

- `architecture`: New Tier 3 platform riscv64 allowing the collector to be built and distributed for this platform. ([#&#8203;13462](open-telemetry/opentelemetry-collector#13462))

##### 🧰 Bug fixes 🧰

- `exporterhelper`: Prevents the exporter for being stuck when telemetry data is bigger than batch.max\_size ([#&#8203;12893](open-telemetry/opentelemetry-collector#12893))
- `mdatagen`: Fix import paths for mdatagen component ([#&#8203;13069](open-telemetry/opentelemetry-collector#13069))
- `otlpreceiver`: Error handler correctly fallbacks to content type ([#&#8203;13414](open-telemetry/opentelemetry-collector#13414))
- `pdata/pprofiles`: Fix profiles JSON unmarshal logic for originalPayload. The bytes have to be base64 encoded. ([#&#8203;13483](open-telemetry/opentelemetry-collector#13483))
- `xpdata`: Fix unmarshaling JSON for entities, add e2e tests to avoid this in the future. ([#&#8203;13480](open-telemetry/opentelemetry-collector#13480))
- `service`: Downgrade dependency of prometheus exporter in OTel Go SDK ([#&#8203;13429](open-telemetry/opentelemetry-collector#13429))
  This fixes the bug where collector's internal metrics are emitted with an unexpected suffix in their names when users configure the service::telemetry::metrics::readers with Prometheus
- `service`: Revert Default internal metrics config now enables `otel_scope_` labels ([#&#8203;12939](open-telemetry/opentelemetry-collector#12939), [#&#8203;13344](open-telemetry/opentelemetry-collector#13344))
  Reverting change temporarily due to prometheus exporter downgrade. This unfortunately re-introduces the bug that instrumentation scope attributes cause errors in Prometheus exporter. See [#&#8203;12939](http://github.com/open-telemetry/opentelemetry-collector/issues/12939) for details.
- `builder`: Remove undocumented handling of `DIST_*` environment variables replacements ([#&#8203;13335](open-telemetry/opentelemetry-collector#13335))

<!-- previous-version -->

### [`v1.36.1`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1361v01301)

##### 🧰 Bug fixes 🧰

- `service`: Fixes bug where internal metrics are emitted with an unexpected suffix in their names when users configure `service::telemetry::metrics::readers` with Prometheus. ([#&#8203;13449](open-telemetry/opentelemetry-collector#13449))
  See more details on [open-telemetry/opentelemetry-go#7039](open-telemetry/opentelemetry-go#7039)

<!-- previous-version -->

### [`v1.36.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1360v01300)

##### ❗ Known Issues ❗

- Due to a [bug](open-telemetry/opentelemetry-go#7039) in the prometheus exporter, if you are configuring a prometheus exporter, the collector's internal metrics will be emitted with an unexpected suffix in its name. For example, the metric `otelcol_exporter_sent_spans__spans__total` instead of `otelcol_exporter_sent_spans_total`. The workaround is to manually configure `without_units: true` in your prometheus exporter config

  ```yaml
  service:
    telemetry:
      metrics:
        readers:
          - pull:
              exporter:
                prometheus:
                  host: 0.0.0.0
                  port: 8888
                  without_units: true
  ```

  If you are using the collector's default Prometheus exporter for exporting internal metrics you are unaffected.

##### 🛑 Breaking changes 🛑

- `exporter/otlp`: Remove deprecated batcher config from OTLP, use queuebatch ([#&#8203;13339](open-telemetry/opentelemetry-collector#13339))

##### 💡 Enhancements 💡

- `exporterhelper`: Enable items and bytes sizers for persistent queue ([#&#8203;12881](open-telemetry/opentelemetry-collector#12881))
- `exporterhelper`: Refactor persistent storage size backup to always record it. ([#&#8203;12890](open-telemetry/opentelemetry-collector#12890))
- `exporterhelper`: Add support to configure a different Sizer for the batcher than the queue ([#&#8203;13313](open-telemetry/opentelemetry-collector#13313))
- `yaml`: Replaced `sigs.k8s.io/yaml` with `go.yaml.in/yaml` for improved support and long-term maintainability. ([#&#8203;13308](open-telemetry/opentelemetry-collector#13308))

##### 🧰 Bug fixes 🧰

- `exporterhelper`: Fix exporter.PersistRequestContext feature gate ([#&#8203;13342](open-telemetry/opentelemetry-collector#13342))

- `exporterhelper`: Preserve all metrics metadata when batch splitting. ([#&#8203;13236](open-telemetry/opentelemetry-collector#13236))
  Previously, when large batches of metrics were processed, the splitting logic in `metric_batch.go` could
  cause the `name` field of some metrics to disappear. This fix ensures that all metric fields are
  properly preserved when `metricRequest` objects are split.

- `service`: Default internal metrics config now enables `otel_scope_` labels ([#&#8203;12939](open-telemetry/opentelemetry-collector#12939), [#&#8203;13344](open-telemetry/opentelemetry-collector#13344))
  By default, the Collector exports its internal metrics using a Prometheus
  exporter from the opentelemetry-go repository. With this change, the Collector
  no longer sets "without\_scope\_info" to true in its configuration.

  This means that all exported metrics will have `otel_scope_name`,
  `otel_scope_schema_url`, and `otel_scope_version` labels corresponding to the
  instrumentation scope metadata for that metric.

  This notably prevents an error when multiple metrics are only distinguished
  by their instrumentation scopes and end up aliased during export.

  If this is not desired behavior, a Prometheus exporter can be explicitly
  configured with this option enabled.

<!-- 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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- 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:eyJjcmVhdGVkSW5WZXIiOiI0MS45OC40IiwidXBkYXRlZEluVmVyIjoiNDIuMS4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: https://gitea.t000-n.de/t.behrendt/tracebasedlogsampler/pulls/23
Reviewed-by: t.behrendt <[email protected]>
Co-authored-by: Renovate Bot <[email protected]>
Co-committed-by: Renovate Bot <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement pkg-assert Change related to package testify/assert type-error Issue related to comparing values implementing the error interface

Projects

None yet

Development

Successfully merging this pull request may close these issues.

assert.ErrorAs: confusing error message

6 participants