-
Notifications
You must be signed in to change notification settings - Fork 255
golangci: migrate to v2 schema #4712
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
base: main
Are you sure you want to change the base?
Conversation
Reviewer's Guide by SourceryThis pull request migrates the golangci-lint configuration to the v2 schema and disables the revive linter due to dot-import conflicts. The configuration structure has been reorganized, and issue filtering has been updated for more flexibility. Updated class diagram for golangci-lint configurationclassDiagram
class GolangCIConfigV1 {
build-tags: string[]
timeout: string
enable: string[]
exclude-rules: string[]
}
note for GolangCIConfigV1 "Represents the v1 version of the golangci-lint configuration"
class GolangCIConfigV2 {
version: string
run: RunConfig
linters: LintersConfig
issues: IssuesConfig
formatters: FormattersConfig
}
note for GolangCIConfigV2 "Represents the v2 version of the golangci-lint configuration"
class RunConfig {
build-tags: string[]
}
class LintersConfig {
enable: string[]
exclusions: ExclusionsConfig
}
class IssuesConfig {
exclude-rules: string[]
}
class FormattersConfig {
enable: string[]
exclusions: ExclusionsConfig
}
class ExclusionsConfig {
generated: string
presets: string[]
paths: string[]
}
GolangCIConfigV2 *-- RunConfig : has
GolangCIConfigV2 *-- LintersConfig : has
GolangCIConfigV2 *-- IssuesConfig : has
GolangCIConfigV2 *-- FormattersConfig : has
LintersConfig *-- ExclusionsConfig : has
FormattersConfig *-- ExclusionsConfig : has
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Hi @sebrandon1. Thanks for your PR. I'm waiting for a crc-org member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @sebrandon1 - I've reviewed your changes - here's some feedback:
Overall Comments:
- Consider enabling
revive
and fixing the dot-imports instead of disabling the linter.
Here's what I looked at during the review
- 🟢 General issues: all looks good
- 🟢 Security: all looks good
- 🟢 Testing: all looks good
- 🟢 Complexity: all looks good
- 🟢 Documentation: all looks good
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this PR to upgrade to golangci-lint v2!
b6a270a
to
ca9de33
Compare
Need rebase and also looks like updated revive need some more changes as part of import. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You will also need some changes in the tools
directory to fully complete the changes:
diff --git a/tools/dummy.go b/tools/dummy.go
index a58944ffa..cc37744fc 100644
--- a/tools/dummy.go
+++ b/tools/dummy.go
@@ -5,7 +5,7 @@ package buildtools
import (
_ "github.com/cfergeau/gomod2rpmdeps/cmd/gomod2rpmdeps"
- _ "github.com/golangci/golangci-lint/cmd/golangci-lint"
+ _ "github.com/golangci/golangci-lint/v2/cmd/golangci-lint"
_ "github.com/randall77/makefat"
_ "golang.org/x/tools/cmd/goimports"
)
diff --git a/tools/tools.mk b/tools/tools.mk
index e324e1a5c..b9b9c407b 100644
--- a/tools/tools.mk
+++ b/tools/tools.mk
@@ -4,7 +4,7 @@ $(TOOLS_BINDIR)/makefat: $(TOOLS_DIR)/go.mod
cd $(TOOLS_DIR) && GOBIN="$(TOOLS_BINDIR)" go install github.com/randall77/makefat
$(TOOLS_BINDIR)/golangci-lint: $(TOOLS_DIR)/go.mod
- cd $(TOOLS_DIR) && GOBIN="$(TOOLS_BINDIR)" go install github.com/golangci/golangci-lint/cmd/golangci-lint
+ cd $(TOOLS_DIR) && GOBIN="$(TOOLS_BINDIR)" go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint
$(TOOLS_BINDIR)/gomod2rpmdeps: $(TOOLS_DIR)/go.mod
cd $(TOOLS_DIR) && GOBIN="$(TOOLS_BINDIR)" go install github.com/cfergeau/gomod2rpmdeps/cmd/gomod2rpmdeps
and
$ go get github.com/golangci/golangci-lint/v2
$ go mod tidy
$ go mod vendor
ca9de33
to
ae39ee1
Compare
90aca3e
to
a0ed3fd
Compare
ac3707c
to
4548093
Compare
4548093
to
1417608
Compare
Utilize the
golangci-lint migrate
command to migrate the config over to the v2 schema.Note: I disabled the
revive
linter because it was flagging the dot-imports for ginkgo and gomega.Similar to: redhat-best-practices-for-k8s/certsuite#2875
Summary by Sourcery
Migrate golangci-lint configuration to version 2 schema, updating linter settings and configuration structure
Bug Fixes:
Enhancements:
Chores: