Replace multierror.Append with errors.Join #45344
Merged
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.
Issue:
Problem
The package
go-multierror
from here uses the MPL 2.0 license, which is considered an incompatible license in rancher.Solution
Multierrors can be replaced with
errors.Join
and get similar results. Multierror is formatted a little nicer, but both combine errors and can be checked for the existence of specific errors.Here is an example of the formatting difference:
https://go.dev/play/p/qYefpBQ81GL
While I was working on removing
multierror
, I also replacedhttps://github.com/pkg/errors
with theerrors
standard library. Specifically, I replaced instances oferrors.Wrap(err, "message")
withfmt.Errorf("message: %w", err)
. Both wrap the error and create the same error message. The motivation behind this is thathttps://github.com/pkg/errors
has been archived and hasn't received updates since 2020. In a future PR it should be completely removed from rancher.It's still imported as an indirect requirement, but rancher no longer makes use of it directly.
Testing
The existing unit tests pass. This does not change functionality, just how the errors are handled.
Engineering Testing
Manual Testing
Automated Testing
Summary: TODO
QA Testing Considerations
Regressions Considerations
TODO
Existing / newly added automated tests that provide evidence there are no regressions: