Commit Graph

4 Commits

Author SHA1 Message Date
Patrick Ohly
1af5425696 hack: disable gomega.Consistently/Eventually check due to false positives
For example, this is a false positive that currently exists in the code base:

    test/e2e_node/dra_test.go:129:4: ginkgo-linter: use a function call in Consistently. This actually checks nothing, because Consistently receives the function returned value, instead of function itself, and this value is never changed; consider using `gomega.Consistently(ctx, e2epod.Get).WithArguments(f.ClientSet, pod).WithTimeout(podInPendingStateTimeout).Should(e2epod.BeInPhase(v1.PodPending),
    	"Pod should be in Pending state as resource preparation time outed")` instead (ginkgolinter)
    			gomega.Consistently(ctx, e2epod.Get(f.ClientSet, pod)).WithTimeout(podInPendingStateTimeout).Should(e2epod.BeInPhase(v1.PodPending),
    			^

It's a false positive because e2epod.Get returns the function that Consistently
is meant to call.

This could be worked around by assigning e2epod.Get(f.ClientSet, pod) to a
variable and then use that variable, but that is less readable.
2023-06-27 14:20:41 +02:00
Patrick Ohly
4169d7d028 golangci-lint: allow exceptions for Go naming convention
In strict mode, stylecheck complains about Convert_* and SetDefaults_*
functions in Kubernetes because they use underscores. We want to allow that to
make the functions more readable.
2023-04-24 15:05:47 +02:00
Patrick Ohly
a04e20f622 golangci-lint: synchronize configs and add verification for that
https://github.com/kubernetes/kubernetes/pull/109728 added a
golangci-strict.yaml where gingkolinter and stylecheck (some recent additions
to golangci.yaml) were missing.

To prevent such mistakes in the future, lines that are intentionally different
get annotated with a comment about golangci-strict.yaml or golangci.yaml.
Then a suitable diff command in the new verify-golangci-lint-config.sh checks
that only such lines, comments and blank lines are different.
2023-03-08 15:23:27 +01:00
Patrick Ohly
78a3430606 golangci-lint: support stricter checking in new code
It is useful to check new code with a stricter configuration because we want it
to be of higher quality. Code reviews also become easier when reviewers don't
need to point out inefficient code manually.

What exactly should be enabled is up for debate. The current config uses the
golangci-lint defaults plus everything that is enabled explicitly by the normal
golangci.yaml, just to be on the safe side.
2023-03-07 19:37:57 +01:00