fmt: introduce golangci-lint and go vet #802
Draft
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.
see #789
Some notes:
Install the linter locally by:
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/HEAD/install.sh | sh -s -- -b $(go env GOPATH)/bin v2.5.0or by a way of your choice: https://golangci-lint.run/docs/welcome/install/#local-installation.The current linter configuration is quite long, because we drop many linters caused by a single or only a few findings. This will usually decreased by the time, when those findings are fixed.
Because we have to skip some packages and this is not supported by the linters, we have to apply the linter to each allowed package (folder) separately.
This leads to following behavior for local run:
This leads to following behavior for CI run when using the make file in docker container or plain setup in runner (currently implemented in this PR):
Alternatively, there are 2 other PRs using GitHub Action:
One other alternative way for CI would be to collect all usable packages in another folder and set this as the working directory, but this would introduce other problems:
TODO: