This tool is a custom GO linter for Cells code, based on the go/analysis package. It must be passing before builds are performed.
Compile the linter and run ./cells-linter github.com/pydio/cells/...
(or any other package, or a specific go file).
The execution output is 0 if no warnings were found, 3 otherwise.
A sample boilerplate based on Using go/analysis to write a custom linter blog post.
An analyzer looking for zap.Any() calls that would pass a "slice" as argument to logger. Real-life examples show that passing huge slices to the logger can totally stick a service. When writing code for Cells, developers must use log.DangerouslyZapSmallSlices() instead, indicating that they are sure that the logged slice will never grow huge.