-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Description
Bazel has added support for code analysis tools that are based on golang.org/x/tools/go/analysis
, just the same as for golangci-lint
https://github.com/bazelbuild/rules_go/blob/master/go/nogo.rst. As golangci-lint
has become a standard for Go static analysis, it would be awesome to bridge that gap. As I see it, there are two potential options for building that integration:
Option 1: only expose golangci-lint to Bazel
In this option, we could create a single Bazel analysis tool for golangci-lint
, which would continue to propagate the shared ast to the underlying tools. This would require golangci-lint
itself to implement Analyzer (not sure if it does yet or not). Ongoing maintenance should be close to zero, as the available linters would automatically be available as users opt into new releases.
Option 2: generate Bazel config from golangci-lint config
This would expose more details to Bazel, but at the cost of more maintenance. I would only investigate this more fully if there were technical reasons that we couldn't go with Option 1.
There has been some related discussion here: atlassian/bazel-tools#118, and I have opened an issue on the Bazel side too bazel-contrib/rules_go#2695
Is this a contribution that would be welcomed or accepted in this project? Am I missing any nuances in my thoughts? I'm a long time user of golangci-lint
, but haven't been involved in code to date, and I am new to Bazel as well.
cc @ash2k @jayconrod