Description
Welcome
- Yes, I'm using a binary release within 2 latest major releases. Only such installations are supported.
- Yes, I've searched similar issues on GitHub and didn't find any.
- Yes, I've included all information below (version, config, etc).
- Yes, I've tried with the standalone linter if available. (https://golangci-lint.run/usage/linters/)
Description of the problem
Our company uses a monorepo which we lint using golangci-lint. There are some imports of packages that use Cgo code which Mac developers cannot build.
In previous versions of golangci-lint, such as 1.43.0, this just presented a warning that the goanalysis_metalinter stage failed to run, but the linter would succeed.
This allowed our devs to run the linter locally on the stuff they were concerned with, then our CI would run the linter against our whole codebase (including the Cgo stuff).
oscar@oscar-mbp src % golangci-lint --version
golangci-lint has version v1.43.0 built from (unknown, mod sum: "h1:SLwZFEmDgopqZpfP495zCtV9REUf551JJlJ51Ql7NZA=") on (unknown)
oscar@oscar-mbp src % golangci-lint run --sort-results --config ../.golangci-enforced.yml --fix
WARN [runner] Can't run linter goanalysis_metalinter: inspect: failed to load package ******: could not load export data: no export data for "gitlab.com/-----/*******-go"
Now since updating to 1.44.0, this now causes Mac developers to have the linter fail, and no exclusions or skip-dirs
values avoid the failure.
oscar@oscar-mbp src % golangci-lint --version
golangci-lint has version v1.44.0 built from (unknown, mod sum: "h1:YJPouGNQEdK+x2KsCpWMIBy0q6MSuxHjkWMxJMNj/DU=") on (unknown)
oscar@oscar-mbp src % golangci-lint run --sort-results --config ../.golangci-enforced.yml --fix
WARN [runner] Can't run linter goanalysis_metalinter: inspect: failed to load package ******: could not load export data: no export data for "gitlab.com/-----/*******-go"
ERRO Running error: 1 error occurred:
* can't run linter goanalysis_metalinter: inspect: failed to load package *******: could not load export data: no export data for "gitlab.com/-----/*******-go"
It would be nice if this just caused a warning, not a failure. Alternatively it would be nice if there was something that could be changed in the linter .yml config to skip certain packages that use Cgo code. I don't believe there's anything I can add to our .yml files that would solve this.
Version of golangci-lint
before (warning only)
$ golangci-lint --version
golangci-lint has version v1.43.0 built from (unknown, mod sum: "h1:SLwZFEmDgopqZpfP495zCtV9REUf551JJlJ51Ql7NZA=") on (unknown)
now (failures)
$ golangci-lint --version
golangci-lint has version v1.44.0 built from (unknown, mod sum: "h1:YJPouGNQEdK+x2KsCpWMIBy0q6MSuxHjkWMxJMNj/DU=") on (unknown)
Configuration file
$ cat .golangci.yml
# paste output here
Go environment
$ go version && go env
go version go1.17.6 darwin/amd64
GO111MODULE="on"
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/oscar/Library/Caches/go-build"
GOENV="/Users/oscar/Library/Application Support/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/oscar/go/pkg/mod"
GONOPROXY="gitlab.com/------/*,github.com/------/*"
GONOSUMDB="gitlab.com/------/*,github.com/------/*"
GOOS="darwin"
GOPATH="/Users/oscar/go"
GOPRIVATE="gitlab.com/------/*,github.com/------/*"
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/Users/oscar/sdk/go1.17.6"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/Users/oscar/sdk/go1.17.6/pkg/tool/darwin_amd64"
GOVCS=""
GOVERSION="go1.17.6"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/Users/oscar/go/src/gitlab.com/------/---/src/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -arch x86_64 -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/z4/tjbsqpbj5pz3_mh9jzb4vhxw0000gn/T/go-build2130917196=/tmp/go-build -gno-record-gcc-switches -fno-common"
Verbose output of running
$ golangci-lint cache clean
$ golangci-lint run -v --sort-results --config ../.golangci-enforced.yml --fix
INFO [config_reader] Used config file ../.golangci-enforced.yml
INFO [lintersdb] Active 27 linters: [asciicheck bidichk bodyclose deadcode durationcheck errcheck exhaustive exportloopref goimports gomoddirectives gosimple govet importas ineffassign makezero nilerr noctx nolintlint predeclared staticcheck thelper typecheck unconvert unparam unused varcheck wastedassign]
INFO [loader] Go packages loading at mode 575 (imports|compiled_files|deps|exports_file|files|name|types_sizes) took 3.353112351s
INFO [runner/filename_unadjuster] Pre-built 0 adjustments in 63.960641ms
INFO [linters context] importas settings found, but no aliases listed. List aliases under alias: key.
INFO [linters context/goanalysis] analyzers took 8m45.758959855s with top 10 stages: bidichk: 4m21.520773337s, buildir: 1m18.284510654s, wastedassign: 21.543788956s, buildssa: 21.106679526s, nilness: 16.516473361s, goimports: 11.927896551s, exhaustive: 6.866076876s, unparam: 6.51882134s, printf: 5.955050487s, ctrlflow: 5.803888925s
WARN [runner] Can't run linter goanalysis_metalinter: inspect: failed to load package pmx: could not load export data: no export data for "gitlab.com/pexip/pmx-go"
INFO [runner] processing took 5.872µs with stages: max_same_issues: 2.024µs, nolint: 1.79µs, skip_dirs: 340ns, max_from_linter: 192ns, cgo: 149ns, autogenerated_exclude: 129ns, filename_unadjuster: 127ns, identifier_marker: 127ns, uniq_by_line: 122ns, path_prettifier: 120ns, skip_files: 118ns, source_code: 113ns, exclude: 111ns, max_per_file_from_linter: 65ns, sort_results: 62ns, exclude-rules: 61ns, diff: 57ns, path_shortener: 56ns, severity-rules: 55ns, path_prefixer: 54ns
INFO [runner] linters took 25.212941809s with stages: goanalysis_metalinter: 25.212898392s
ERRO Running error: 1 error occurred:
* can't run linter goanalysis_metalinter: inspect: failed to load package ******: could not load export data: no export data for "gitlab.com/*****/******-go"
INFO Memory: 287 samples, avg is 1732.0MB, max is 2382.7MB
INFO Execution took 28.642381s
Code example or link to a public repository
// add your code here