Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(lint): explicitly configures ireturn exceptions #1085

Merged

Conversation

bartoszmajsak
Copy link
Contributor

@bartoszmajsak bartoszmajsak commented Jun 26, 2024

Description

Instead of using //nolint:ireturn the linter allows the use of generic return types through the global config (on top of the listed defaults which now have been explicitly set).

This approach also eliminates a recurring issue where nolintlint reports the directive above as not used by the defined linter.

Related issue: golangci/golangci-lint#3228

On top of that, we have --fix flag enabled for golangci-lint runner. This results in the removal of these comments as nolintlint tries to auto fix.

As a consequence the subsequent run of make lint yields errors for previously disabled linters and the cycle continues :)

Important

This behaviour has also been observed for other linters.

As part of this work, the declarations of kustomize plugin constructor funcs has been reworked to return struct pointers instead. The reason for this is that in our feature branch, we rely on kustomize plugins and want to iterate over a slice of resmap.Transfomers but these functions cannot be used in the current form because structs returned have pointer receivers. From the current functionality standpoint (on the incubation branch) this change is harmless.

How Has This Been Tested?

make

Screenshot or short clip

Merge criteria

  • You have read the contributors guide.
  • Commit messages are meaningful - have a clear and concise summary and detailed explanation of what was changed and why.
  • Pull Request contains a description of the solution, a link to the JIRA issue, and to any dependent or related Pull Request.
  • Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
  • The developer has manually tested the changes and verified that the changes work

Instead of using `//nolint:ireturn` the linter allows a use of `generic`
return types (on top of the listed defaults which now have been
explicitly set).

This approach also eliminates a re-occuring issue where `nolintlint`
reports aforementioned directive as not used by defined linter.

Related issue: golangci/golangci-lint#3228

On top of that we have `--fix` flag enabled for golangci-lint runner.
This results in removal of these comments as `nolintlint` tries to
autofix.

As a consequence the subsequent run of `make lint` yields errors for
previously disabled linters and the cycle continues :)

> [!IMPORTANT]
> This behaviour has also been observed for other linters.

As part of this the declarations of kustomize plugin constructor funcs
has been reworkted to return struct pointers instead. The reason for
this is that in our feature branch we are relying on kustomize plugins
and want to iterate over a slice of resmap.Transfomers but in the
current form these functions cannot be used due to the fact that
structs returned have pointer receivers. From the current functionality
standpoint (on incubation branch) this change is harmless.
@bartoszmajsak bartoszmajsak removed the request for review from Sara4994 June 26, 2024 15:03
Copy link

openshift-ci bot commented Jun 26, 2024

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ykaliuta, zdtsw

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-merge-bot openshift-merge-bot bot merged commit 613d552 into opendatahub-io:incubation Jun 26, 2024
8 checks passed
VaishnaviHire pushed a commit to VaishnaviHire/opendatahub-operator that referenced this pull request Jul 24, 2024
)

Instead of using `//nolint:ireturn` the linter allows a use of `generic`
return types (on top of the listed defaults which now have been
explicitly set).

This approach also eliminates a re-occuring issue where `nolintlint`
reports aforementioned directive as not used by defined linter.

Related issue: golangci/golangci-lint#3228

On top of that we have `--fix` flag enabled for golangci-lint runner.
This results in removal of these comments as `nolintlint` tries to
autofix.

As a consequence the subsequent run of `make lint` yields errors for
previously disabled linters and the cycle continues :)

> [!IMPORTANT]
> This behaviour has also been observed for other linters.

As part of this the declarations of kustomize plugin constructor funcs
has been reworkted to return struct pointers instead. The reason for
this is that in our feature branch we are relying on kustomize plugins
and want to iterate over a slice of resmap.Transfomers but in the
current form these functions cannot be used due to the fact that
structs returned have pointer receivers. From the current functionality
standpoint (on incubation branch) this change is harmless.

(cherry picked from commit 613d552)
VaishnaviHire pushed a commit to VaishnaviHire/opendatahub-operator that referenced this pull request Jul 24, 2024
)

Instead of using `//nolint:ireturn` the linter allows a use of `generic`
return types (on top of the listed defaults which now have been
explicitly set).

This approach also eliminates a re-occuring issue where `nolintlint`
reports aforementioned directive as not used by defined linter.

Related issue: golangci/golangci-lint#3228

On top of that we have `--fix` flag enabled for golangci-lint runner.
This results in removal of these comments as `nolintlint` tries to
autofix.

As a consequence the subsequent run of `make lint` yields errors for
previously disabled linters and the cycle continues :)

> [!IMPORTANT]
> This behaviour has also been observed for other linters.

As part of this the declarations of kustomize plugin constructor funcs
has been reworkted to return struct pointers instead. The reason for
this is that in our feature branch we are relying on kustomize plugins
and want to iterate over a slice of resmap.Transfomers but in the
current form these functions cannot be used due to the fact that
structs returned have pointer receivers. From the current functionality
standpoint (on incubation branch) this change is harmless.

(cherry picked from commit 613d552)
@bartoszmajsak bartoszmajsak deleted the ireturn-fix branch July 30, 2024 17:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

3 participants