version: "2" run: timeout: 5m tests: true linters: # Start from the standard set (errcheck, govet, ineffassign, staticcheck, # unused) and add a few low-noise, high-value linters on top. default: standard enable: - bodyclose - misspell - unconvert - usestdlibvars settings: errcheck: exclude-functions: - (*encoding/json.Encoder).Encode - (net/http.ResponseWriter).Write - fmt.Fprintf - fmt.Fprint - fmt.Fprintln misspell: locale: US staticcheck: checks: - all # Deprecations are tracked separately; some (e.g. gRPC dial options) # are kept intentionally for compatibility. Migrate them on their own. - -SA1019 # Initialism/naming convention (Id->ID, Http->HTTP, ...). The remaining # offenders are exported identifiers (e.g. web.Id, web.DefaultId) whose # rename is a breaking API change; not worth it in a lint-bootstrap pass. - -ST1003 exclusions: # Use golangci-lint's built-in sensible exclusions and skip generated code. generated: lax presets: - comments - common-false-positives - legacy - std-error-handling rules: # The protobuf code generator is a port of upstream protoc-gen-go and # keeps its structure; don't flag its unused legacy helpers. - path: cmd/protoc-gen-micro/generator/ linters: - unused # Tests are held to a looser standard. - path: _test\.go linters: - bodyclose - errcheck # Demo/harness code: fire-and-forget calls are fine and `_ =` noise hurts # readability of examples. - path: (^|/)(examples|internal/harness)/ linters: - errcheck formatters: enable: - gofmt