diff --git a/Makefile b/Makefile index 1486777c1..497c39d39 100644 --- a/Makefile +++ b/Makefile @@ -271,6 +271,13 @@ govulncheck: $(_Q)go tool govulncheck ./... @echo " govulncheck ok" +# NilAway — advisory nil-panic analysis. Not in preflight: it has a known +# false-positive rate, so findings are triaged by hand rather than gating commits. +nilaway: + @echo "Running nilaway..." + $(_Q)go tool nilaway -include-pkgs=github.com/mulgadc/spinifex -exclude-test-files ./... + @echo " nilaway ok" + # Build release tarballs — use distro-ARCH for single arch, distro for both distro: distro-amd64 distro-arm64 @echo "" @@ -317,5 +324,5 @@ distro-clean: .PHONY: build build-ui build-installer build-lb-agent build-ecs-agent build-system-image build-eks-node-image import-eks-node-image publish-eks-node-image build-ecs-node-image import-ecs-node-image build-microvm-image install-microvm go_build preflight test test-cover test-race diff-coverage bench test-actions test-harness test-integration manifest-check manifest-lint manifest-lint-update \ deploy reinstall clean \ install-system install-go install-aws quickinstall \ - lint fix govulncheck \ + lint fix govulncheck nilaway \ distro distro-amd64 distro-arm64 distro-clean diff --git a/go.mod b/go.mod index 4d695b07a..8ddad492f 100644 --- a/go.mod +++ b/go.mod @@ -187,7 +187,9 @@ require ( go.opentelemetry.io/auto/sdk v1.2.1 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.44.0 // indirect go.opentelemetry.io/proto/otlp v1.10.0 // indirect + go.uber.org/nilaway v0.0.0-20260721205819-4a0f7653488a // indirect go.yaml.in/yaml/v2 v2.4.4 // indirect + golang.org/x/exp/typeparams v0.0.0-20260611194520-c48552f49976 // indirect golang.org/x/mod v0.37.0 // indirect golang.org/x/net v0.56.0 // indirect golang.org/x/telemetry v0.0.0-20260625142307-59b4966ccb57 // indirect @@ -215,4 +217,7 @@ require ( // stop requiring the monolith. replace google.golang.org/genproto => google.golang.org/genproto v0.0.0-20260622175928-b703f567277d -tool golang.org/x/vuln/cmd/govulncheck +tool ( + go.uber.org/nilaway/cmd/nilaway + golang.org/x/vuln/cmd/govulncheck +) diff --git a/go.sum b/go.sum index 539ec7bcb..6128d2471 100644 --- a/go.sum +++ b/go.sum @@ -1812,6 +1812,8 @@ go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/ go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/nilaway v0.0.0-20260721205819-4a0f7653488a h1:CsRd824LAzMmlpu9nYv2PHOqPQYv4Zjd4kGM+g0ahS0= +go.uber.org/nilaway v0.0.0-20260721205819-4a0f7653488a/go.mod h1:i9Hi8GeZFLBtUCXP73ZNSHKZ4K2JtxT0pLmo3sbJzlo= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= @@ -1911,6 +1913,8 @@ golang.org/x/exp/shiny v0.0.0-20230801115018-d63ba01acd4b/go.mod h1:UH99kUObWAZk golang.org/x/exp/shiny v0.0.0-20230817173708-d852ddb80c63/go.mod h1:UH99kUObWAZkDnWqppdQe5ZhPYESUw8I0zVV1uWBR+0= golang.org/x/exp/shiny v0.0.0-20240707233637-46b078467d37/go.mod h1:3F+MieQB7dRYLTmnncoFbb1crS5lfQoTfDgQy6K4N0o= golang.org/x/exp/shiny v0.0.0-20241009180824-f66d83c29e7c/go.mod h1:3F+MieQB7dRYLTmnncoFbb1crS5lfQoTfDgQy6K4N0o= +golang.org/x/exp/typeparams v0.0.0-20260611194520-c48552f49976 h1:GTD/WuaexTazIG/SxLOz4rEKZPDVilmVVC2nz4xhwfE= +golang.org/x/exp/typeparams v0.0.0-20260611194520-c48552f49976/go.mod h1:PqrXSW65cXDZH0k4IeUbhmg/bcAZDbzNz3byBpKCsXo= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=