diff --git a/.golangci.yml b/.golangci.yml index a7a8acf62c82..85dbcf7c1ade 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -26,6 +26,7 @@ linters: - staticcheck - testifylint - unused + - unparam - usestdlibvars - usetesting - whitespace @@ -93,9 +94,13 @@ linters: enable-all-rules: false enable-default-rules: true rules: + - name: context-as-argument + arguments: + - allow-types-before: "*testing.T" - name: errorf - name: if-return - name: unnecessary-format + - name: unused-parameter - name: use-errors-new staticcheck: checks: @@ -126,9 +131,6 @@ linters: - linters: - revive text: superfluous-else - - linters: - - revive - text: unused-parameter - linters: - revive text: redefines-builtin-id diff --git a/cache/blobs_nolinux.go b/cache/blobs_nolinux.go index 209391c9dca5..7257da243909 100644 --- a/cache/blobs_nolinux.go +++ b/cache/blobs_nolinux.go @@ -11,6 +11,6 @@ import ( "github.com/pkg/errors" ) -func (sr *immutableRef) tryComputeOverlayBlob(_ context.Context, _, _ []mount.Mount, _ string, _ string, _ compression.Compressor) (_ ocispecs.Descriptor, ok bool, err error) { +func (sr *immutableRef) tryComputeOverlayBlob(context.Context, []mount.Mount, []mount.Mount, string, string, compression.Compressor) (_ ocispecs.Descriptor, ok bool, err error) { return ocispecs.Descriptor{}, true, errors.Errorf("overlayfs-based diff computing is unsupported") } diff --git a/cache/contenthash/checksum.go b/cache/contenthash/checksum.go index c3ddfb56fb9d..1b80e48a579b 100644 --- a/cache/contenthash/checksum.go +++ b/cache/contenthash/checksum.go @@ -121,7 +121,7 @@ func (cm *cacheManager) Checksum(ctx context.Context, ref cache.ImmutableRef, p return cc.Checksum(ctx, ref, p, opts, s) } -func (cm *cacheManager) GetCacheContext(ctx context.Context, md cache.RefMetadata) (CacheContext, error) { +func (cm *cacheManager) GetCacheContext(_ context.Context, md cache.RefMetadata) (CacheContext, error) { cm.locker.Lock(md.ID()) cm.lruMu.Lock() v, ok := cm.lru.Get(md.ID()) @@ -145,7 +145,7 @@ func (cm *cacheManager) GetCacheContext(ctx context.Context, md cache.RefMetadat return cc, nil } -func (cm *cacheManager) SetCacheContext(ctx context.Context, md cache.RefMetadata, cci CacheContext) error { +func (cm *cacheManager) SetCacheContext(_ context.Context, md cache.RefMetadata, cci CacheContext) error { cc, ok := cci.(*cacheContext) if !ok { return errors.Errorf("invalid cachecontext: %T", cc) @@ -306,13 +306,13 @@ func keyPath(p string) string { } // HandleChange notifies the source about a modification operation -func (cc *cacheContext) HandleChange(kind fsutil.ChangeKind, p string, fi os.FileInfo, err error) (retErr error) { +func (cc *cacheContext) HandleChange(kind fsutil.ChangeKind, p string, fi os.FileInfo, _ error) (retErr error) { p = keyPath(p) k := convertPathToKey(p) deleteDir := func(cr *CacheRecord) { if cr.Type == CacheRecordTypeDir { - cc.node.WalkPrefix(append(k, 0), func(k []byte, v *CacheRecord) bool { + cc.node.WalkPrefix(append(k, 0), func(k []byte, _ *CacheRecord) bool { cc.txn.Delete(k) return false }) diff --git a/cache/contenthash/checksum_test.go b/cache/contenthash/checksum_test.go index 7a2e2e374637..a38ea4cbd949 100644 --- a/cache/contenthash/checksum_test.go +++ b/cache/contenthash/checksum_test.go @@ -1573,6 +1573,7 @@ func createRef(t *testing.T, cm cache.Manager, files []string) cache.ImmutableRe return ref } +//nolint:unparam func setupCacheManager(t *testing.T, tmpdir string, snapshotterName string, snapshotter snapshots.Snapshotter) (cache.Manager, func()) { store, err := local.NewStore(tmpdir) require.NoError(t, err) @@ -1612,7 +1613,7 @@ func setupCacheManager(t *testing.T, tmpdir string, snapshotterName string, snap type badMountable struct{} -func (bm *badMountable) Mount(ctx context.Context, readonly bool, _ session.Group) (snapshot.Mountable, error) { +func (bm *badMountable) Mount(context.Context, bool, session.Group) (snapshot.Mountable, error) { return nil, errors.New("tried to mount bad mountable") } diff --git a/cache/contenthash/filehash.go b/cache/contenthash/filehash.go index 961540b7f5a3..73f148741ed2 100644 --- a/cache/contenthash/filehash.go +++ b/cache/contenthash/filehash.go @@ -89,7 +89,7 @@ func (tsh *tarsumHash) Write(p []byte) (n int, err error) { return n, err } -func (tsh *tarsumHash) Sum(_ []byte) []byte { +func (tsh *tarsumHash) Sum([]byte) []byte { b, _ := hex.DecodeString(tsh.Hash.Sum().Hex()) return b } diff --git a/cache/contenthash/filehash_windows.go b/cache/contenthash/filehash_windows.go index 7870eccc7978..331b10e7153c 100644 --- a/cache/contenthash/filehash_windows.go +++ b/cache/contenthash/filehash_windows.go @@ -8,6 +8,6 @@ import ( fstypes "github.com/tonistiigi/fsutil/types" ) -func setUnixOpt(_ string, _ os.FileInfo, _ *fstypes.Stat) error { +func setUnixOpt(string, os.FileInfo, *fstypes.Stat) error { return nil } diff --git a/cache/manager_test.go b/cache/manager_test.go index a28d92604af4..d1bd0a34e7e1 100644 --- a/cache/manager_test.go +++ b/cache/manager_test.go @@ -410,7 +410,7 @@ func TestMergeBlobchainID(t *testing.T) { err = cw.Commit(ctx, 0, cw.Digest()) require.NoError(t, err) descHandlers[desc.Digest] = &DescHandler{ - Provider: func(_ session.Group) content.Provider { return contentBuffer }, + Provider: func(session.Group) content.Provider { return contentBuffer }, } curBlob, err = cm.GetByBlob(ctx, desc, curBlob, descHandlers) require.NoError(t, err) @@ -1217,7 +1217,7 @@ func TestLoopLeaseContent(t *testing.T) { require.NoError(t, err) require.NoError(t, cw.Commit(ctx, 0, cw.Digest())) descHandlers[orgDesc.Digest] = &DescHandler{ - Provider: func(_ session.Group) content.Provider { return contentBuffer }, + Provider: func(session.Group) content.Provider { return contentBuffer }, } // Create a compression loop @@ -1419,7 +1419,7 @@ func testSharingCompressionVariant(ctx context.Context, t *testing.T, co *cmOut, require.NoError(t, err) require.NoError(t, cw.Commit(ctx, 0, cw.Digest())) descHandlers[aDesc.Digest] = &DescHandler{ - Provider: func(_ session.Group) content.Provider { return contentBuffer }, + Provider: func(session.Group) content.Provider { return contentBuffer }, } // Create compression variants @@ -1704,7 +1704,7 @@ func TestGetRemotes(t *testing.T) { require.NoError(t, err) descHandlers[desc.Digest] = &DescHandler{ - Provider: func(_ session.Group) content.Provider { return contentBuffer }, + Provider: func(session.Group) content.Provider { return contentBuffer }, } uncompressedBlobBytes, uncompressedDesc, err := mapToBlob(blobmap, false) @@ -2002,7 +2002,7 @@ func TestNondistributableBlobs(t *testing.T) { require.NoError(t, err) descHandlers[desc.Digest] = &DescHandler{ - Provider: func(_ session.Group) content.Provider { return contentBuffer }, + Provider: func(session.Group) content.Provider { return contentBuffer }, } ref, err := cm.GetByBlob(ctx, desc, nil, descHandlers) @@ -2686,7 +2686,7 @@ func zstdBlobDigest(uncompressedBlobBytes []byte) (digest.Digest, error) { func checkNumBlobs(ctx context.Context, t *testing.T, cs content.Store, expected int) { c := 0 - err := cs.Walk(ctx, func(_ content.Info) error { + err := cs.Walk(ctx, func(content.Info) error { c++ return nil }) diff --git a/cache/metadata.go b/cache/metadata.go index 603e4006709c..5001c3e1f559 100644 --- a/cache/metadata.go +++ b/cache/metadata.go @@ -152,6 +152,7 @@ func (md *cacheMetadata) queueDescription(descr string) error { return md.queueValue(keyDescription, descr, "") } +//nolint:unparam func (md *cacheMetadata) queueCommitted(b bool) error { return md.queueValue(keyCommitted, b, "") } @@ -232,11 +233,10 @@ func (md *cacheMetadata) setEqualMutable(s string) error { return md.queueValue(keyEqualMutable, s, "") } -func (md *cacheMetadata) clearEqualMutable() error { +func (md *cacheMetadata) clearEqualMutable() { md.si.Queue(func(b *bolt.Bucket) error { return md.si.SetValue(b, keyEqualMutable, nil) }) - return nil } func (md *cacheMetadata) queueDiffID(str digest.Digest) error { diff --git a/cache/refs.go b/cache/refs.go index b1595ca8c4ab..62b4f2a8bac3 100644 --- a/cache/refs.go +++ b/cache/refs.go @@ -1627,7 +1627,7 @@ func (sr *mutableRef) Mount(ctx context.Context, readonly bool, s session.Group) return mnt, nil } -func (sr *mutableRef) Commit(ctx context.Context) (ImmutableRef, error) { +func (sr *mutableRef) Commit(context.Context) (ImmutableRef, error) { sr.cm.mu.Lock() defer sr.cm.mu.Unlock() diff --git a/cache/remotecache/azblob/exporter.go b/cache/remotecache/azblob/exporter.go index d553bb304ddd..6e40e784e833 100644 --- a/cache/remotecache/azblob/exporter.go +++ b/cache/remotecache/azblob/exporter.go @@ -30,7 +30,7 @@ import ( // ResolveCacheExporterFunc for "azblob" cache exporter. func ResolveCacheExporterFunc() remotecache.ResolveCacheExporterFunc { - return func(ctx context.Context, g session.Group, attrs map[string]string) (remotecache.Exporter, error) { + return func(ctx context.Context, _ session.Group, attrs map[string]string) (remotecache.Exporter, error) { config, err := getConfig(attrs) if err != nil { return nil, errors.Wrap(err, "failed to create azblob config") diff --git a/cache/remotecache/azblob/importer.go b/cache/remotecache/azblob/importer.go index 1566ffa965a1..8416657ce031 100644 --- a/cache/remotecache/azblob/importer.go +++ b/cache/remotecache/azblob/importer.go @@ -29,7 +29,7 @@ import ( // ResolveCacheImporterFunc for "azblob" cache importer. func ResolveCacheImporterFunc() remotecache.ResolveCacheImporterFunc { - return func(ctx context.Context, g session.Group, attrs map[string]string) (remotecache.Importer, ocispecs.Descriptor, error) { + return func(ctx context.Context, _ session.Group, attrs map[string]string) (remotecache.Importer, ocispecs.Descriptor, error) { config, err := getConfig(attrs) if err != nil { return nil, ocispecs.Descriptor{}, errors.Wrap(err, "failed to create azblob config") diff --git a/cache/remotecache/gha/gha.go b/cache/remotecache/gha/gha.go index a340d378ec33..ea84afa19237 100644 --- a/cache/remotecache/gha/gha.go +++ b/cache/remotecache/gha/gha.go @@ -138,7 +138,7 @@ func getConfig(conf *ghatypes.CacheConfig, v VerifierProvider, attrs map[string] // ResolveCacheExporterFunc for Github actions cache exporter. func ResolveCacheExporterFunc(conf *ghatypes.CacheConfig, v VerifierProvider) remotecache.ResolveCacheExporterFunc { - return func(ctx context.Context, g session.Group, attrs map[string]string) (remotecache.Exporter, error) { + return func(_ context.Context, _ session.Group, attrs map[string]string) (remotecache.Exporter, error) { cfg, err := getConfig(conf, v, attrs) if err != nil { return nil, err @@ -313,7 +313,7 @@ func (ce *exporter) Finalize(ctx context.Context) (_ map[string]string, err erro return nil, err } - if err := ce.cache.SaveMutable(ctx, ce.indexKey(), 15*time.Second, func(old *actionscache.Entry) (actionscache.Blob, error) { + if err := ce.cache.SaveMutable(ctx, ce.indexKey(), 15*time.Second, func(*actionscache.Entry) (actionscache.Blob, error) { return actionscache.NewBlob(dt), nil }); err != nil { return nil, err @@ -422,7 +422,7 @@ func certToStringMap(cert *certificate.Summary) (map[string]string, error) { // ResolveCacheImporterFunc for Github actions cache importer. func ResolveCacheImporterFunc(conf *ghatypes.CacheConfig, v VerifierProvider) remotecache.ResolveCacheImporterFunc { - return func(ctx context.Context, g session.Group, attrs map[string]string) (remotecache.Importer, ocispecs.Descriptor, error) { + return func(_ context.Context, _ session.Group, attrs map[string]string) (remotecache.Importer, ocispecs.Descriptor, error) { cfg, err := getConfig(conf, v, attrs) if err != nil { return nil, ocispecs.Descriptor{}, err diff --git a/cache/remotecache/inline/inline.go b/cache/remotecache/inline/inline.go index 1cb6480ab3f9..2ece2ea192e5 100644 --- a/cache/remotecache/inline/inline.go +++ b/cache/remotecache/inline/inline.go @@ -18,7 +18,7 @@ import ( ) func ResolveCacheExporterFunc() remotecache.ResolveCacheExporterFunc { - return func(ctx context.Context, _ session.Group, _ map[string]string) (remotecache.Exporter, error) { + return func(context.Context, session.Group, map[string]string) (remotecache.Exporter, error) { return NewExporter(), nil } } @@ -43,7 +43,7 @@ func (ce *exporter) Config() remotecache.Config { } } -func (ce *exporter) Finalize(ctx context.Context) (map[string]string, error) { +func (ce *exporter) Finalize(context.Context) (map[string]string, error) { return nil, nil } diff --git a/cache/remotecache/local/local.go b/cache/remotecache/local/local.go index a71f5ce914ec..1dffc7a053d6 100644 --- a/cache/remotecache/local/local.go +++ b/cache/remotecache/local/local.go @@ -124,6 +124,6 @@ type unlazyProvider struct { s session.Group } -func (p *unlazyProvider) UnlazySession(desc ocispecs.Descriptor) session.Group { +func (p *unlazyProvider) UnlazySession(ocispecs.Descriptor) session.Group { return p.s } diff --git a/cache/remotecache/s3/s3.go b/cache/remotecache/s3/s3.go index 3868371eab26..58498935a5a4 100644 --- a/cache/remotecache/s3/s3.go +++ b/cache/remotecache/s3/s3.go @@ -202,7 +202,7 @@ func getConfig(attrs map[string]string) (Config, error) { // ResolveCacheExporterFunc for s3 cache exporter. func ResolveCacheExporterFunc() remotecache.ResolveCacheExporterFunc { - return func(ctx context.Context, g session.Group, attrs map[string]string) (remotecache.Exporter, error) { + return func(ctx context.Context, _ session.Group, attrs map[string]string) (remotecache.Exporter, error) { config, err := getConfig(attrs) if err != nil { return nil, err diff --git a/cache/remotecache/v1/cachestorage.go b/cache/remotecache/v1/cachestorage.go index 2b9e645543b1..612d9e1d3459 100644 --- a/cache/remotecache/v1/cachestorage.go +++ b/cache/remotecache/v1/cachestorage.go @@ -158,14 +158,14 @@ func (cs *cacheKeyStorage) Load(id string, resultID string) (solver.CacheResult, return res, nil } -func (cs *cacheKeyStorage) AddResult(id string, res solver.CacheResult) error { +func (cs *cacheKeyStorage) AddResult(string, solver.CacheResult) error { return nil } -func (cs *cacheKeyStorage) Release(resultID string) error { +func (cs *cacheKeyStorage) Release(string) error { return nil } -func (cs *cacheKeyStorage) AddLink(id string, link solver.CacheInfoLink, target string) error { +func (cs *cacheKeyStorage) AddLink(string, solver.CacheInfoLink, string) error { return nil } @@ -255,7 +255,7 @@ type cacheResultStorage struct { byItem map[*item]string } -func (cs *cacheResultStorage) Save(res solver.Result, createdAt time.Time) (solver.CacheResult, error) { +func (cs *cacheResultStorage) Save(solver.Result, time.Time) (solver.CacheResult, error) { return solver.CacheResult{}, errors.New("importer is immutable") } @@ -323,7 +323,7 @@ func (cs *cacheResultStorage) Load(ctx context.Context, res solver.CacheResult) return nil, errors.WithStack(solver.ErrNotFound) } -func (cs *cacheResultStorage) LoadRemotes(ctx context.Context, res solver.CacheResult, compressionopts *compression.Config, _ session.Group) ([]*solver.Remote, error) { +func (cs *cacheResultStorage) LoadRemotes(_ context.Context, res solver.CacheResult, compressionopts *compression.Config, _ session.Group) ([]*solver.Remote, error) { if it := cs.byResultID(res.ID); it != nil { for _, r := range it.results { if compressionopts == nil { @@ -352,7 +352,7 @@ func (cs *cacheResultStorage) LoadRemotes(ctx context.Context, res solver.CacheR return nil, errors.WithStack(solver.ErrNotFound) } -func (cs *cacheResultStorage) Exists(ctx context.Context, id string) bool { +func (cs *cacheResultStorage) Exists(_ context.Context, id string) bool { return cs.byResultID(id) != nil } diff --git a/cache/util/fsutil.go b/cache/util/fsutil.go index 1309fc257915..c5e9d3a03545 100644 --- a/cache/util/fsutil.go +++ b/cache/util/fsutil.go @@ -22,7 +22,7 @@ type FileRange struct { Length int } -func ReadFile(ctx context.Context, root string, req ReadRequest) ([]byte, error) { +func ReadFile(_ context.Context, root string, req ReadRequest) ([]byte, error) { fp, err := fs.RootPath(root, req.Filename) if err != nil { return nil, errors.WithStack(err) @@ -77,7 +77,7 @@ func ReadDir(ctx context.Context, root string, req ReadDirRequest) ([]*fstypes.S if err != nil { return nil, errors.WithStack(err) } - err = fsutil.Walk(ctx, fp, &fo, func(path string, info os.FileInfo, err error) error { + err = fsutil.Walk(ctx, fp, &fo, func(_ string, info os.FileInfo, err error) error { if err != nil { return errors.Wrapf(err, "walking %q", root) } @@ -99,7 +99,7 @@ func ReadDir(ctx context.Context, root string, req ReadDirRequest) ([]*fstypes.S return rd, nil } -func StatFile(ctx context.Context, root string, path string) (*fstypes.Stat, error) { +func StatFile(_ context.Context, root string, path string) (*fstypes.Stat, error) { fp, err := fs.RootPath(root, path) if err != nil { return nil, errors.WithStack(err) diff --git a/client/build.go b/client/build.go index 65f6a0650fa4..f34cac226806 100644 --- a/client/build.go +++ b/client/build.go @@ -218,7 +218,7 @@ func (g *gatewayClientForBuild) ExecProcess(ctx context.Context, opts ...grpc.Ca return g.gateway.ExecProcess(ctx, opts...) } -func (g *gatewayClientForBuild) Warn(ctx context.Context, in *gatewayapi.WarnRequest, opts ...grpc.CallOption) (*gatewayapi.WarnResponse, error) { +func (g *gatewayClientForBuild) Warn(ctx context.Context, in *gatewayapi.WarnRequest, _ ...grpc.CallOption) (*gatewayapi.WarnResponse, error) { ctx = buildid.AppendToOutgoingContext(ctx, g.buildID) return g.gateway.Warn(ctx, in) } diff --git a/client/client_export_image_test.go b/client/client_export_image_test.go index 6769bbcfcd49..dc4d024bfe8e 100644 --- a/client/client_export_image_test.go +++ b/client/client_export_image_test.go @@ -1427,7 +1427,7 @@ func testOCIExporterContentStore(t *testing.T, sb integration.Sandbox) { require.NoError(t, err) checkStore := func(dir string) { - err = filepath.Walk(dir, func(filename string, fi os.FileInfo, err error) error { + err = filepath.Walk(dir, func(filename string, fi os.FileInfo, _ error) error { filename = strings.TrimPrefix(filename, dir) filename = strings.Trim(filename, "/") if filename == "" || filename == "ingest" { diff --git a/client/client_export_local_test.go b/client/client_export_local_test.go index b162f5b2010a..61a43406e2f4 100644 --- a/client/client_export_local_test.go +++ b/client/client_export_local_test.go @@ -642,7 +642,7 @@ func testSessionExporter(t *testing.T, sb integration.Sandbox) { exporterCalled := false // The provider has no finalization callback; FinalizeExport returning // Unimplemented must not fail the solve. - exporter := exporterprovider.New(func(ctx context.Context, md map[string][]byte, refs []string) ([]*exporter.ExporterRequest, error) { + exporter := exporterprovider.New(func(_ context.Context, _ map[string][]byte, refs []string) ([]*exporter.ExporterRequest, error) { require.Len(t, refs, 1) g := c.GatewayClientForBuild(buildID) resp, err := g.ReadDir(sb.Context(), &gatewaypb.ReadDirRequest{ @@ -833,7 +833,7 @@ func testTarExporterWithSocket(t *testing.T, sb integration.Sandbox) { { Type: ExporterTar, Attrs: map[string]string{}, - Output: func(m map[string]string) (io.WriteCloser, error) { + Output: func(map[string]string) (io.WriteCloser, error) { return &iohelper.NopWriteCloser{Writer: io.Discard}, nil }, }, diff --git a/client/client_frontend_test.go b/client/client_frontend_test.go index 2c500acb9ddb..28cf25d26121 100644 --- a/client/client_frontend_test.go +++ b/client/client_frontend_test.go @@ -37,7 +37,7 @@ func testFrontendImageNaming(t *testing.T, sb integration.Sandbox) { require.NoError(t, err) checkImageName := map[string]func(out, imageName string, exporterResponse map[string]string){ - ExporterOCI: func(out, imageName string, exporterResponse map[string]string) { + ExporterOCI: func(string, string, map[string]string) { // Nothing to check }, ExporterDocker: func(out, imageName string, exporterResponse map[string]string) { @@ -152,7 +152,7 @@ func testFrontendImageNaming(t *testing.T, sb integration.Sandbox) { so.Exports[0].Attrs["name"] = "*" } - frontend := func(ctx context.Context, c gateway.Client) (*gateway.Result, error) { + frontend := func(context.Context, gateway.Client) (*gateway.Result, error) { res := gateway.NewResult() res.AddMeta("image.name", []byte(feName)) return res, nil @@ -221,7 +221,7 @@ func testFrontendMetadataReturn(t *testing.T, sb integration.Sandbox) { require.NoError(t, err) defer c.Close() - frontend := func(ctx context.Context, c gateway.Client) (*gateway.Result, error) { + frontend := func(context.Context, gateway.Client) (*gateway.Result, error) { res := gateway.NewResult() res.AddMeta("frontend.returned", []byte("true")) res.AddMeta("not-frontend.not-returned", []byte("false")) diff --git a/client/client_http_source_test.go b/client/client_http_source_test.go index 9fa36c165095..31dae57899ed 100644 --- a/client/client_http_source_test.go +++ b/client/client_http_source_test.go @@ -489,7 +489,7 @@ func testBuildHTTPSourceUnauthorizedChecksumRace(t *testing.T, sb integration.Sa defer c.Close() var requests atomic.Int32 - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { if requests.Add(1) == 1 { time.Sleep(200 * time.Millisecond) } diff --git a/client/client_mount_test.go b/client/client_mount_test.go index 56ff19afd09d..45243967378e 100644 --- a/client/client_mount_test.go +++ b/client/client_mount_test.go @@ -499,7 +499,7 @@ func testRawSocketMount(t *testing.T, sb integration.Sandbox) { var called atomic.Bool srv := &http.Server{ ReadHeaderTimeout: 10 * time.Second, - Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + Handler: http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { called.Store(true) w.WriteHeader(http.StatusOK) }), diff --git a/client/client_utils_test.go b/client/client_utils_test.go index a1e804335797..ab6fe031b6b2 100644 --- a/client/client_utils_test.go +++ b/client/client_utils_test.go @@ -76,7 +76,7 @@ loop0: if err := workers.HasFeatureCompat(t, sb, workers.FeatureContentCheck); err == nil { store := proxy.NewContentStore(c.ContentClient()) count := 0 - err := store.Walk(sb.Context(), func(info content.Info) error { + err := store.Walk(sb.Context(), func(content.Info) error { count++ return nil }) @@ -249,6 +249,7 @@ func parseFSMetadata(t *testing.T, dt []byte) []fsutiltypes.Stat { return m } +//nolint:unparam func readFileInImage(ctx context.Context, t *testing.T, c *Client, ref, path string) ([]byte, error) { def, err := llb.Image(ref).Marshal(ctx) if err != nil { diff --git a/client/connhelper/dockercontainer/dockercontainer.go b/client/connhelper/dockercontainer/dockercontainer.go index 94f938e80fbd..c461f5fa1c29 100644 --- a/client/connhelper/dockercontainer/dockercontainer.go +++ b/client/connhelper/dockercontainer/dockercontainer.go @@ -23,7 +23,7 @@ func Helper(u *url.URL) (*connhelper.ConnectionHelper, error) { return nil, err } return &connhelper.ConnectionHelper{ - ContextDialer: func(ctx context.Context, addr string) (net.Conn, error) { + ContextDialer: func(context.Context, string) (net.Conn, error) { ctxFlags := []string{} if sp.Context != "" { ctxFlags = append(ctxFlags, "--context="+sp.Context) diff --git a/client/connhelper/kubepod/kubepod.go b/client/connhelper/kubepod/kubepod.go index c5ed6daf94e2..9659ffad09a0 100644 --- a/client/connhelper/kubepod/kubepod.go +++ b/client/connhelper/kubepod/kubepod.go @@ -24,7 +24,7 @@ func Helper(u *url.URL) (*connhelper.ConnectionHelper, error) { return nil, err } return &connhelper.ConnectionHelper{ - ContextDialer: func(ctx context.Context, addr string) (net.Conn, error) { + ContextDialer: func(context.Context, string) (net.Conn, error) { // using background context because context remains active for the duration of the process, after dial has completed return commandconn.New(context.Background(), "kubectl", "--context="+sp.Context, "--namespace="+sp.Namespace, "exec", "--container="+sp.Container, "-i", sp.Pod, "--", "buildctl", "dial-stdio") diff --git a/client/connhelper/nerdctlcontainer/nerdctlcontainer.go b/client/connhelper/nerdctlcontainer/nerdctlcontainer.go index 80f87948563a..49549e76e5fc 100644 --- a/client/connhelper/nerdctlcontainer/nerdctlcontainer.go +++ b/client/connhelper/nerdctlcontainer/nerdctlcontainer.go @@ -23,7 +23,7 @@ func Helper(u *url.URL) (*connhelper.ConnectionHelper, error) { return nil, err } return &connhelper.ConnectionHelper{ - ContextDialer: func(ctx context.Context, addr string) (net.Conn, error) { + ContextDialer: func(context.Context, string) (net.Conn, error) { // using background context because context remains active for the duration of the process, after dial has completed args := []string{"exec"} if sp.Namespace != "" { diff --git a/client/connhelper/npipe/npipe_other.go b/client/connhelper/npipe/npipe_other.go index 75936f48a6bb..d6bdc354014b 100644 --- a/client/connhelper/npipe/npipe_other.go +++ b/client/connhelper/npipe/npipe_other.go @@ -9,6 +9,6 @@ import ( "github.com/moby/buildkit/client/connhelper" ) -func Helper(u *url.URL) (*connhelper.ConnectionHelper, error) { +func Helper(*url.URL) (*connhelper.ConnectionHelper, error) { return nil, errors.New("npipe connections are only supported on windows") } diff --git a/client/connhelper/npipe/npipe_windows.go b/client/connhelper/npipe/npipe_windows.go index c9f1144a014f..e568c600a6e2 100644 --- a/client/connhelper/npipe/npipe_windows.go +++ b/client/connhelper/npipe/npipe_windows.go @@ -21,7 +21,7 @@ func Helper(u *url.URL) (*connhelper.ConnectionHelper, error) { } address := strings.ReplaceAll(addrParts[1], "/", "\\") return &connhelper.ConnectionHelper{ - ContextDialer: func(ctx context.Context, addr string) (net.Conn, error) { + ContextDialer: func(ctx context.Context, _ string) (net.Conn, error) { return winio.DialPipeContext(ctx, address) }, }, nil diff --git a/client/connhelper/podmancontainer/podmancontainer.go b/client/connhelper/podmancontainer/podmancontainer.go index 1018ad7278f9..7fcfc0b95392 100644 --- a/client/connhelper/podmancontainer/podmancontainer.go +++ b/client/connhelper/podmancontainer/podmancontainer.go @@ -23,7 +23,7 @@ func Helper(u *url.URL) (*connhelper.ConnectionHelper, error) { return nil, err } return &connhelper.ConnectionHelper{ - ContextDialer: func(ctx context.Context, addr string) (net.Conn, error) { + ContextDialer: func(context.Context, string) (net.Conn, error) { // using background context because context remains active for the duration of the process, after dial has completed return commandconn.New(context.Background(), "podman", "exec", "-i", sp.Container, "buildctl", "dial-stdio") }, diff --git a/client/connhelper/ssh/ssh.go b/client/connhelper/ssh/ssh.go index 5475691ad6d8..baf482ce44ea 100644 --- a/client/connhelper/ssh/ssh.go +++ b/client/connhelper/ssh/ssh.go @@ -22,7 +22,7 @@ func Helper(u *url.URL) (*connhelper.ConnectionHelper, error) { return nil, err } return &connhelper.ConnectionHelper{ - ContextDialer: func(ctx context.Context, addr string) (net.Conn, error) { + ContextDialer: func(context.Context, string) (net.Conn, error) { args := []string{} if sp.User != "" { args = append(args, "-l", sp.User) diff --git a/client/gateway_solve_test.go b/client/gateway_solve_test.go index c2e592a327be..8fa92573c9e3 100644 --- a/client/gateway_solve_test.go +++ b/client/gateway_solve_test.go @@ -42,7 +42,7 @@ func testClientGatewayEmptyImageExec(t *testing.T, sb integration.Sandbox) { }, }, }, - }, "", func(ctx context.Context, c client.Client) (*client.Result, error) { + }, "", func(context.Context, client.Client) (*client.Result, error) { return client.NewResult(), nil }, nil) require.NoError(t, err) @@ -99,7 +99,7 @@ func testClientGatewayFailedSolve(t *testing.T, sb integration.Sandbox) { require.NoError(t, err) defer c.Close() - b := func(ctx context.Context, c client.Client) (*client.Result, error) { + b := func(context.Context, client.Client) (*client.Result, error) { return nil, errors.New("expected to fail") } diff --git a/client/llb/async_test.go b/client/llb/async_test.go index 8be4bf3ba4ef..b9be686647c8 100644 --- a/client/llb/async_test.go +++ b/client/llb/async_test.go @@ -14,7 +14,7 @@ func TestAsyncNonBlocking(t *testing.T) { wait := make(chan struct{}) ran := make(chan struct{}) - st := Image("alpine").Dir("/foo").Async(func(ctx context.Context, st State, c *Constraints) (State, error) { + st := Image("alpine").Dir("/foo").Async(func(_ context.Context, st State, _ *Constraints) (State, error) { close(ran) <-wait // make sure callback doesn't block the chain return st.Run(Shlex("cmd1")).Dir("sub"), nil diff --git a/client/llb/diff.go b/client/llb/diff.go index 789e1e1c4d90..898b946c6f13 100644 --- a/client/llb/diff.go +++ b/client/llb/diff.go @@ -26,7 +26,7 @@ func NewDiff(lower, upper State, c Constraints) *DiffOp { return op } -func (m *DiffOp) Validate(ctx context.Context, constraints *Constraints) error { +func (m *DiffOp) Validate(context.Context, *Constraints) error { return nil } diff --git a/client/llb/exec.go b/client/llb/exec.go index edc9ff269ab3..696b5c274a43 100644 --- a/client/llb/exec.go +++ b/client/llb/exec.go @@ -616,7 +616,7 @@ func (fn StateOption) SetRunOption(ei *ExecInfo) { ei.State = ei.State.With(fn) } -var _ RunOption = StateOption(func(_ State) State { return State{} }) +var _ RunOption = StateOption(func(State) State { return State{} }) func Shlex(str string) RunOption { return runOptionFunc(func(ei *ExecInfo) { diff --git a/client/llb/fileop.go b/client/llb/fileop.go index 847ff50fecd3..4b30e025b9f5 100644 --- a/client/llb/fileop.go +++ b/client/llb/fileop.go @@ -180,7 +180,7 @@ type fileActionMkdir struct { info MkdirInfo } -func (a *fileActionMkdir) toProtoAction(ctx context.Context, parent string, base pb.InputIndex) (pb.IsFileAction, error) { +func (a *fileActionMkdir) toProtoAction(_ context.Context, parent string, base pb.InputIndex) (pb.IsFileAction, error) { return &pb.FileAction_Mkdir{ Mkdir: &pb.FileActionMkDir{ Path: normalizePath(parent, a.file, false), @@ -422,7 +422,7 @@ type fileActionMkfile struct { info MkfileInfo } -func (a *fileActionMkfile) toProtoAction(ctx context.Context, parent string, base pb.InputIndex) (pb.IsFileAction, error) { +func (a *fileActionMkfile) toProtoAction(_ context.Context, parent string, base pb.InputIndex) (pb.IsFileAction, error) { return &pb.FileAction_Mkfile{ Mkfile: &pb.FileActionMkFile{ Path: normalizePath(parent, a.file, false), @@ -502,7 +502,7 @@ type fileActionRm struct { info RmInfo } -func (a *fileActionRm) toProtoAction(ctx context.Context, parent string, base pb.InputIndex) (pb.IsFileAction, error) { +func (a *fileActionRm) toProtoAction(_ context.Context, parent string, _ pb.InputIndex) (pb.IsFileAction, error) { return &pb.FileAction_Rm{ Rm: &pb.FileActionRm{ Path: normalizePath(parent, a.file, false), diff --git a/client/llb/llbtest/platform_test.go b/client/llb/llbtest/platform_test.go index e3196147da8d..d25be143262b 100644 --- a/client/llb/llbtest/platform_test.go +++ b/client/llb/llbtest/platform_test.go @@ -202,6 +202,7 @@ func depth(e solver.Edge) int { return i } +//nolint:unparam func parent(e solver.Edge, i int) solver.Edge { return e.Vertex.Inputs()[i] } @@ -224,6 +225,7 @@ func mount(e solver.Edge, target string) solver.Edge { panic("could not find mount " + target) } +//nolint:unparam func getenv(e solver.Edge, k string) (string, bool) { env := toOp(e).GetExec().Meta.Env k = k + "=" diff --git a/client/llb/merge.go b/client/llb/merge.go index a3c5d977122d..5c291f37191a 100644 --- a/client/llb/merge.go +++ b/client/llb/merge.go @@ -24,7 +24,7 @@ func NewMerge(inputs []State, c Constraints) *MergeOp { return op } -func (m *MergeOp) Validate(ctx context.Context, constraints *Constraints) error { +func (m *MergeOp) Validate(context.Context, *Constraints) error { if len(m.inputs) < 2 { return errors.New("merge must have at least 2 inputs") } diff --git a/client/llb/resolver_test.go b/client/llb/resolver_test.go index 11f219abcb98..e7ee74dbde97 100644 --- a/client/llb/resolver_test.go +++ b/client/llb/resolver_test.go @@ -75,7 +75,7 @@ type testResolver struct { platform string } -func (r *testResolver) ResolveImageConfig(ctx context.Context, ref string, opt sourceresolver.Opt) (string, digest.Digest, []byte, error) { +func (r *testResolver) ResolveImageConfig(_ context.Context, ref string, opt sourceresolver.Opt) (string, digest.Digest, []byte, error) { var img struct { Config struct { Env []string `json:"Env,omitempty"` diff --git a/client/llb/source.go b/client/llb/source.go index dab72baae457..706cd5231945 100644 --- a/client/llb/source.go +++ b/client/llb/source.go @@ -39,7 +39,7 @@ func NewSource(id string, attrs map[string]string, c Constraints) *SourceOp { return s } -func (s *SourceOp) Validate(ctx context.Context, c *Constraints) error { +func (s *SourceOp) Validate(context.Context, *Constraints) error { if s.err != nil { return s.err } @@ -275,7 +275,7 @@ func Image(ref string, opts ...ImageOption) State { return st.WithImageConfig(dt) }) } - return Scratch().Async(func(ctx context.Context, _ State, c *Constraints) (State, error) { + return Scratch().Async(func(_ context.Context, _ State, c *Constraints) (State, error) { p := info.Platform if p == nil { p = c.Platform diff --git a/client/mergediff_nolinux_test.go b/client/mergediff_nolinux_test.go index e9dc8b98678c..70e6febf0a89 100644 --- a/client/mergediff_nolinux_test.go +++ b/client/mergediff_nolinux_test.go @@ -9,13 +9,13 @@ import ( "github.com/pkg/errors" ) -func mkfifo(_ string, _ os.FileMode) fstest.Applier { +func mkfifo(string, os.FileMode) fstest.Applier { return applyFn(func(string) error { return errors.New("mkfifo applier not implemented yet on this platform") }) } -func mkchardev(_ string, _ os.FileMode, _, _ uint32) fstest.Applier { +func mkchardev(string, os.FileMode, uint32, uint32) fstest.Applier { return applyFn(func(string) error { return errors.New("mkchardev applier not implemented yet on this platform") }) diff --git a/client/mergediff_test.go b/client/mergediff_test.go index d705bbbc8e74..6db7d1a9e8f3 100644 --- a/client/mergediff_test.go +++ b/client/mergediff_test.go @@ -1192,7 +1192,7 @@ func testMissingMaterializedLowerSnapshot(t *testing.T, sb integration.Sandbox) func snapshotInfoMap(ctx context.Context, snapshotter snapshots.Snapshotter) (map[string]snapshots.Info, error) { infos := map[string]snapshots.Info{} - err := snapshotter.Walk(ctx, func(ctx context.Context, info snapshots.Info) error { + err := snapshotter.Walk(ctx, func(_ context.Context, info snapshots.Info) error { infos[info.Name] = info return nil }) @@ -1290,7 +1290,7 @@ func contentsOf(state llb.State) contents { } func apply(appliers ...fstest.Applier) contents { - return func(sb integration.Sandbox) fstest.Applier { + return func(integration.Sandbox) fstest.Applier { return fstest.Apply(appliers...) } } @@ -1305,8 +1305,8 @@ func mergeContents(subContents ...contents) contents { } } -func empty(sb integration.Sandbox) fstest.Applier { - return applyFn(func(root string) error { +func empty(integration.Sandbox) fstest.Applier { + return applyFn(func(string) error { return nil }) } diff --git a/client/ociindex/ociindex.go b/client/ociindex/ociindex.go index 5ed51f41350f..cc486ff3caeb 100644 --- a/client/ociindex/ociindex.go +++ b/client/ociindex/ociindex.go @@ -134,9 +134,7 @@ func (s StoreIndex) Put(desc ocispecs.Descriptor, names ...NameOrTag) error { } for _, name := range namesp { - if err = insertDesc(&idx, desc, name); err != nil { - return err - } + insertDesc(&idx, desc, name) } idxData, err = json.Marshal(idx) @@ -199,9 +197,9 @@ func setOCIIndexDefaults(index *ocispecs.Index) { // insertDesc puts desc to index with tag. // Existing manifests with the same tag will be removed from the index. -func insertDesc(index *ocispecs.Index, in ocispecs.Descriptor, name *NameOrTag) error { +func insertDesc(index *ocispecs.Index, in ocispecs.Descriptor, name *NameOrTag) { if index == nil { - return nil + return } // make a copy to not modify the input descriptor @@ -233,7 +231,6 @@ func insertDesc(index *ocispecs.Index, in ocispecs.Descriptor, name *NameOrTag) index.Manifests = manifests } index.Manifests = append(index.Manifests, desc) - return nil } // ociReferenceName takes the loosely defined reference name same way as diff --git a/client/policy_test.go b/client/policy_test.go index b53cf8ff32a7..be7b73f53b18 100644 --- a/client/policy_test.go +++ b/client/policy_test.go @@ -67,7 +67,7 @@ func testProxyNetworkNoRootless(t *testing.T, sb integration.Sandbox) { })) defer httpSrv.Close() var leakHit atomic.Int32 - leakSrv, leakURL := newProxyHTTPServer(t, "0.0.0.0", testHostIP(t), http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + leakSrv, leakURL := newProxyHTTPServer(t, "0.0.0.0", testHostIP(t), http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { leakHit.Add(1) _, _ = w.Write([]byte("host namespace leak\n")) })) @@ -97,7 +97,7 @@ func testProxyNetworkNoRootless(t *testing.T, sb integration.Sandbox) { require.Equal(t, int32(0), leakHit.Load()) var checked atomic.Int32 - denyProvider := policysession.NewPolicyProvider(func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + denyProvider := policysession.NewPolicyProvider(func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { if req.Source.Source.Identifier != httpURL+"/allowed" { return &policysession.DecisionResponse{ Action: sourcepolicypb.PolicyAction_ALLOW, @@ -438,7 +438,7 @@ func testProxyNetworkDefaultEgressNoRootless(t *testing.T, sb integration.Sandbo } var checked atomic.Int32 - denyProvider := policysession.NewPolicyProvider(func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + denyProvider := policysession.NewPolicyProvider(func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { if req.Source.Source.Identifier == hostURL+"/denied" { checked.Add(1) return &policysession.DecisionResponse{ @@ -542,7 +542,7 @@ func testSourcePolicySession(t *testing.T, sb integration.Sandbox) { name: "basic alpine", state: func() llb.State { return llb.Image("alpine") }, callbacks: []policysession.PolicyCallback{ - func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { require.Equal(t, runtime.GOOS, req.Platform.OS) require.Equal(t, runtime.GOARCH, req.Platform.Architecture) @@ -557,7 +557,7 @@ func testSourcePolicySession(t *testing.T, sb integration.Sandbox) { name: "alpine with attrs", state: func() llb.State { return llb.Image("alpine", llb.WithLayerLimit(1)) }, callbacks: []policysession.PolicyCallback{ - func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { require.Equal(t, "docker-image://docker.io/library/alpine:latest", req.Source.Source.Identifier) require.Equal(t, map[string]string{ "image.layerlimit": "1", @@ -572,7 +572,7 @@ func testSourcePolicySession(t *testing.T, sb integration.Sandbox) { name: "deny alpine", state: func() llb.State { return llb.Image("alpine") }, callbacks: []policysession.PolicyCallback{ - func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { require.Equal(t, "docker-image://docker.io/library/alpine:latest", req.Source.Source.Identifier) return nil, nil, errors.New("policy denied") }, @@ -583,7 +583,7 @@ func testSourcePolicySession(t *testing.T, sb integration.Sandbox) { name: "alpine with digest policy", state: func() llb.State { return llb.Image("alpine") }, callbacks: []policysession.PolicyCallback{ - func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { require.Equal(t, "docker-image://docker.io/library/alpine:latest", req.Source.Source.Identifier) require.Nil(t, req.Source.Image) return nil, &pb.ResolveSourceMetaRequest{ @@ -591,7 +591,7 @@ func testSourcePolicySession(t *testing.T, sb integration.Sandbox) { Platform: req.Platform, }, nil }, - func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { require.Equal(t, "docker-image://docker.io/library/alpine:latest", req.Source.Source.Identifier) require.NotEmpty(t, req.Source.Image.Digest) _, err := digest.Parse(req.Source.Image.Digest) @@ -653,7 +653,7 @@ func testSourcePolicySessionDenyMessages(t *testing.T, sb integration.Sandbox) { def, err := llb.Image("alpine").Marshal(ctx) require.NoError(t, err) - p := policysession.NewPolicyProvider(func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + p := policysession.NewPolicyProvider(func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { require.Equal(t, "docker-image://docker.io/library/alpine:latest", req.Source.Source.Identifier) return &policysession.DecisionResponse{ Action: sourcepolicypb.PolicyAction_DENY, @@ -704,7 +704,7 @@ func testSourceMetaPolicySession(t *testing.T, sb integration.Sandbox) { } }, callbacks: []policysession.PolicyCallback{ - func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { require.Equal(t, runtime.GOOS, req.Platform.OS) require.Equal(t, runtime.GOARCH, req.Platform.Architecture) @@ -723,7 +723,7 @@ func testSourceMetaPolicySession(t *testing.T, sb integration.Sandbox) { }, sourceresolver.Opt{} }, callbacks: []policysession.PolicyCallback{ - func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { require.Equal(t, "docker-image://docker.io/library/alpine:latest", req.Source.Source.Identifier) return nil, nil, errors.New("policy denied") }, @@ -779,7 +779,7 @@ func testSourceMetaPolicySessionResolveAttestations(t *testing.T, sb integration requestedPredicateType := policyimage.SLSAProvenancePredicateType1 callbackCalls := 0 - p := policysession.NewPolicyProvider(func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + p := policysession.NewPolicyProvider(func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { switch callbackCalls { case 0: callbackCalls++ @@ -876,7 +876,7 @@ func testSourcePolicyParallelSession(t *testing.T, sb integration.Sandbox) { waitBusyboxStart := make(chan struct{}) waitAlpineDone := make(chan struct{}) - p := policysession.NewPolicyProvider(func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + p := policysession.NewPolicyProvider(func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { switch req.Source.Source.Identifier { case "docker-image://docker.io/library/alpine:latest": switch countAlpine { @@ -1171,7 +1171,7 @@ func testSourcePolicySignedCommit(t *testing.T, sb integration.Sandbox) { name: "gitchecksum", state: func() llb.State { return llb.Git(server.URL+"/.git", "", llb.GitRef("v2.0")) }, callbacks: []policysession.PolicyCallback{ - func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { require.Equal(t, gitURL+"#v2.0", req.Source.Source.Identifier) require.Nil(t, req.Source.Git) return nil, &pb.ResolveSourceMetaRequest{ @@ -1179,7 +1179,7 @@ func testSourcePolicySignedCommit(t *testing.T, sb integration.Sandbox) { Platform: req.Platform, }, nil }, - func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { require.Equal(t, gitURL+"#v2.0", req.Source.Source.Identifier) require.NotNil(t, req.Source.Git) require.Len(t, req.Source.Git.Checksum, 40) @@ -1196,7 +1196,7 @@ func testSourcePolicySignedCommit(t *testing.T, sb integration.Sandbox) { name: "gitobjects", state: func() llb.State { return llb.Git(server.URL+"/.git", "", llb.GitRef("v2.0")) }, callbacks: []policysession.PolicyCallback{ - func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { require.Equal(t, gitURL+"#v2.0", req.Source.Source.Identifier) require.Nil(t, req.Source.Git) return nil, &pb.ResolveSourceMetaRequest{ @@ -1207,7 +1207,7 @@ func testSourcePolicySignedCommit(t *testing.T, sb integration.Sandbox) { }, }, nil }, - func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { require.Equal(t, gitURL+"#v2.0", req.Source.Source.Identifier) require.NotNil(t, req.Source.Git) require.Len(t, req.Source.Git.Checksum, 40) @@ -1275,7 +1275,7 @@ func testSourcePolicySessionConvert(t *testing.T, sb integration.Sandbox) { name: "convert and allow", state: func() llb.State { return llb.Image("alpine") }, callbacks: []policysession.PolicyCallback{ - func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { require.Equal(t, "docker-image://docker.io/library/alpine:latest", req.Source.Source.Identifier) require.Nil(t, req.Source.Image) src := req.Source.Source @@ -1289,7 +1289,7 @@ func testSourcePolicySessionConvert(t *testing.T, sb integration.Sandbox) { Update: src, }, nil, nil }, - func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { require.Equal(t, "docker-image://docker.io/library/busybox:latest", req.Source.Source.Identifier) require.Nil(t, req.Source.Image) require.Equal(t, "bar", req.Source.Source.Attrs["foo"]) @@ -1303,7 +1303,7 @@ func testSourcePolicySessionConvert(t *testing.T, sb integration.Sandbox) { name: "convert and deny", state: func() llb.State { return llb.Image("alpine") }, callbacks: []policysession.PolicyCallback{ - func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { require.Equal(t, "docker-image://docker.io/library/alpine:latest", req.Source.Source.Identifier) require.Nil(t, req.Source.Image) src := req.Source.Source @@ -1316,7 +1316,7 @@ func testSourcePolicySessionConvert(t *testing.T, sb integration.Sandbox) { Update: src, }, nil, nil }, - func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { require.Equal(t, "docker-image://docker.io/library/alpine:latest", req.Source.Source.Identifier) require.Nil(t, req.Source.Image) require.Equal(t, "bar", req.Source.Source.Attrs["foo"]) @@ -1327,7 +1327,7 @@ func testSourcePolicySessionConvert(t *testing.T, sb integration.Sandbox) { Update: src, }, nil, nil }, - func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { require.Equal(t, "docker-image://docker.io/library/alpine:latest", req.Source.Source.Identifier) require.Nil(t, req.Source.Image) require.Equal(t, "baz", req.Source.Source.Attrs["foo"]) @@ -1378,7 +1378,7 @@ func testSourcePolicySessionConvert(t *testing.T, sb integration.Sandbox) { calls := 0 - p := policysession.NewPolicyProvider(func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + p := policysession.NewPolicyProvider(func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { require.Equal(t, "docker-image://docker.io/library/alpine:latest", req.Source.Source.Identifier) require.Nil(t, req.Source.Image) calls++ @@ -1438,7 +1438,7 @@ func testSourcePolicySessionHTTPChecksumAssist(t *testing.T, sb integration.Sand require.NoError(t, err) callCounter := 0 - p := policysession.NewPolicyProvider(func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + p := policysession.NewPolicyProvider(func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { switch callCounter { case 0: callCounter++ @@ -1483,7 +1483,7 @@ func testSourcePolicySessionHTTPChecksumAssist(t *testing.T, sb integration.Sand t.Run("oversized suffix denied", func(t *testing.T) { callCounter := 0 - p := policysession.NewPolicyProvider(func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + p := policysession.NewPolicyProvider(func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { callCounter++ return nil, &pb.ResolveSourceMetaRequest{ Source: req.Source.Source, @@ -1507,7 +1507,7 @@ func testSourcePolicySessionHTTPChecksumAssist(t *testing.T, sb integration.Sand t.Run("unsupported algo denied", func(t *testing.T) { callCounter := 0 - p := policysession.NewPolicyProvider(func(ctx context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { + p := policysession.NewPolicyProvider(func(_ context.Context, req *policysession.CheckPolicyRequest) (*policysession.DecisionResponse, *pb.ResolveSourceMetaRequest, error) { callCounter++ return nil, &pb.ResolveSourceMetaRequest{ Source: req.Source.Source, diff --git a/client/solve.go b/client/solve.go index 12d68b0c452c..a513686bdaa6 100644 --- a/client/solve.go +++ b/client/solve.go @@ -487,7 +487,7 @@ func resetCacheStore(ctx context.Context, cs content.Store, storePath string) er } func prepareSyncedFiles(def *llb.Definition, localMounts map[string]fsutil.FS) (filesync.StaticDirSource, error) { - resetUIDAndGID := func(p string, st *fstypes.Stat) fsutil.MapResult { + resetUIDAndGID := func(_ string, st *fstypes.Stat) fsutil.MapResult { st.Uid = 0 st.Gid = 0 return fsutil.MapResultKeep diff --git a/cmd/buildctl/build/opt_test.go b/cmd/buildctl/build/opt_test.go index 32082ddeedb4..6d7c43e58a78 100644 --- a/cmd/buildctl/build/opt_test.go +++ b/cmd/buildctl/build/opt_test.go @@ -1,7 +1,6 @@ package build import ( - "os" "testing" "github.com/stretchr/testify/require" @@ -80,25 +79,16 @@ func TestParseOpt(t *testing.T) { } for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { - // SOURCE_DATE_EPOCH is propagated by loadOptEnv, and the cases - // below expect IMAGE to be unset unless the case sets it. Clear - // both so an ambient value cannot leak into the expectations. - for _, k := range []string{"SOURCE_DATE_EPOCH", "IMAGE"} { - if v, ok := os.LookupEnv(k); ok { - require.NoError(t, os.Unsetenv(k)) - t.Cleanup(func() { os.Setenv(k, v) }) - } - } for k, v := range tc.env { t.Setenv(k, v) } opt, err := ParseOpt(tc.opts) if tc.expectedErr != "" { require.EqualError(t, err, tc.expectedErr) - return + } else { + require.NoError(t, err) + require.Equal(t, tc.expected, opt) } - require.NoError(t, err) - require.Equal(t, tc.expected, opt) }) } } diff --git a/cmd/buildctl/build/output.go b/cmd/buildctl/build/output.go index 841cab4dd66b..abab203bcf40 100644 --- a/cmd/buildctl/build/output.go +++ b/cmd/buildctl/build/output.go @@ -68,7 +68,7 @@ func ParseOutput(exports []string) ([]client.ExportEntry, error) { // resolveExporterDest returns at most either one of io.WriteCloser (single file) or a string (directory path). func resolveExporterDest(exporter, dest string, attrs map[string]string) (filesync.FileOutputFunc, string, error) { wrapWriter := func(wc io.WriteCloser) func(map[string]string) (io.WriteCloser, error) { - return func(m map[string]string) (io.WriteCloser, error) { + return func(map[string]string) (io.WriteCloser, error) { return wc, nil } } diff --git a/cmd/buildctl/main.go b/cmd/buildctl/main.go index 8279cd1d3a59..6213704c1c9d 100644 --- a/cmd/buildctl/main.go +++ b/cmd/buildctl/main.go @@ -165,7 +165,7 @@ func handleErr(debug bool, err error) { type skipErrors struct{} -func (skipErrors) Handle(err error) {} +func (skipErrors) Handle(error) {} func commandAction(fn func(*cli.Command) error) cli.ActionFunc { return func(_ context.Context, cmd *cli.Command) error { diff --git a/cmd/buildkitd/debug.go b/cmd/buildkitd/debug.go index bebc0197b62b..da6e4d284c63 100644 --- a/cmd/buildkitd/debug.go +++ b/cmd/buildkitd/debug.go @@ -45,7 +45,7 @@ func setupDebugHandlers(addr string) error { m.Handle("/debug/cache/store", http.HandlerFunc(handleDebugCacheStore)) m.Handle("POST /debug/cache/load", http.HandlerFunc(handleCacheLoad)) - m.Handle("/debug/gc", http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) { + m.Handle("/debug/gc", http.HandlerFunc(func(_ http.ResponseWriter, req *http.Request) { runtime.GC() bklog.G(req.Context()).Debugf("triggered GC from debug endpoint") })) @@ -55,7 +55,7 @@ func setupDebugHandlers(addr string) error { setupDebugFlight(m) // setting debugaddr is opt-in. permission is defined by listener address - trace.AuthRequest = func(_ *http.Request) (bool, bool) { + trace.AuthRequest = func(*http.Request) (bool, bool) { return true, true } diff --git a/cmd/buildkitd/debug_flight.go b/cmd/buildkitd/debug_flight.go index 0b4f5f653266..448f2d665a7f 100644 --- a/cmd/buildkitd/debug_flight.go +++ b/cmd/buildkitd/debug_flight.go @@ -21,7 +21,7 @@ func newFlightRecorder() *flightRecorder { return dbg } -func (r *flightRecorder) StartTrace(w http.ResponseWriter, req *http.Request) { +func (r *flightRecorder) StartTrace(w http.ResponseWriter, _ *http.Request) { r.mu.Lock() defer r.mu.Unlock() if r.recorder.Enabled() { @@ -34,7 +34,7 @@ func (r *flightRecorder) StartTrace(w http.ResponseWriter, req *http.Request) { } } -func (r *flightRecorder) StopTrace(w http.ResponseWriter, req *http.Request) { +func (r *flightRecorder) StopTrace(w http.ResponseWriter, _ *http.Request) { r.mu.Lock() defer r.mu.Unlock() if !r.recorder.Enabled() { @@ -62,7 +62,7 @@ func (r *flightRecorder) SetTracePeriod(w http.ResponseWriter, req *http.Request r.recorder.SetPeriod(period) } -func (r *flightRecorder) Trace(w http.ResponseWriter, req *http.Request) { +func (r *flightRecorder) Trace(w http.ResponseWriter, _ *http.Request) { r.mu.Lock() defer r.mu.Unlock() w.Header().Set("Content-Type", "application/octet-stream") diff --git a/cmd/buildkitd/main.go b/cmd/buildkitd/main.go index 2aff79c53f0f..6ccf81335baa 100644 --- a/cmd/buildkitd/main.go +++ b/cmd/buildkitd/main.go @@ -445,9 +445,7 @@ func main() { } errCh := make(chan error, 1) - if err := serveGRPC(server, listeners, errCh); err != nil { - return err - } + serveGRPC(server, listeners, errCh) select { case serverErr := <-errCh: @@ -467,7 +465,7 @@ func main() { return err } - app.After = func(_ context.Context, _ *cli.Command) (err error) { + app.After = func(context.Context, *cli.Command) (err error) { ctx, cancel := context.WithTimeoutCause(appcontext.Shutdown(), telemetryShutdownTimeout, errors.WithStack(context.DeadlineExceeded)) defer cancel() @@ -523,7 +521,7 @@ func newGRPCListeners(cfg config.GRPCConfig) ([]net.Listener, error) { return listeners, nil } -func serveGRPC(server *grpc.Server, listeners []net.Listener, errCh chan error) error { +func serveGRPC(server *grpc.Server, listeners []net.Listener, errCh chan error) { if os.Getenv("NOTIFY_SOCKET") != "" { notified, notifyErr := sddaemon.SdNotify(false, sddaemon.SdNotifyReady) bklog.L.Debugf("SdNotifyReady notified=%v, err=%v", notified, notifyErr) @@ -541,7 +539,6 @@ func serveGRPC(server *grpc.Server, listeners []net.Listener, errCh chan error) go func() { errCh <- eg.Wait() }() - return nil } func defaultConfigPath() string { diff --git a/cmd/buildkitd/main_oci_worker.go b/cmd/buildkitd/main_oci_worker.go index 499a1bc4e992..1d903d203b5a 100644 --- a/cmd/buildkitd/main_oci_worker.go +++ b/cmd/buildkitd/main_oci_worker.go @@ -363,7 +363,7 @@ func snapshotterFactory(commonRoot string, cfg config.OCIConfig, sm *session.Man if _, err := os.Stat(address); os.IsNotExist(err) { return snFactory, errors.Wrapf(err, "snapshotter doesn't exist on %q (Do not include 'unix://' prefix)", address) } - snFactory.New = func(root string) (ctdsnapshot.Snapshotter, error) { + snFactory.New = func(string) (ctdsnapshot.Snapshotter, error) { backoffConfig := backoff.DefaultConfig backoffConfig.MaxDelay = 3 * time.Second connParams := grpc.ConnectParams{ diff --git a/cmd/buildkitd/main_unix.go b/cmd/buildkitd/main_unix.go index 13fc95a425c6..cdb094f13761 100644 --- a/cmd/buildkitd/main_unix.go +++ b/cmd/buildkitd/main_unix.go @@ -62,6 +62,6 @@ func getLocalListener(listenerPath, _ string) (net.Listener, error) { return l, nil } -func groupToSecurityDescriptor(_ string) (string, error) { +func groupToSecurityDescriptor(string) (string, error) { return "", nil } diff --git a/cmd/buildkitd/main_windows.go b/cmd/buildkitd/main_windows.go index 26cb287e5292..3deae25b009d 100644 --- a/cmd/buildkitd/main_windows.go +++ b/cmd/buildkitd/main_windows.go @@ -15,7 +15,7 @@ import ( const socketScheme = "npipe://" -func listenFD(_ string, _ *tls.Config) (net.Listener, error) { +func listenFD(string, *tls.Config) (net.Listener, error) { return nil, errors.New("listening server on fd not supported on windows") } diff --git a/cmd/buildkitd/service_unix.go b/cmd/buildkitd/service_unix.go index 912c6a64fd94..dac8964216ab 100644 --- a/cmd/buildkitd/service_unix.go +++ b/cmd/buildkitd/service_unix.go @@ -14,15 +14,15 @@ func serviceFlags() []cli.Flag { } // applyPlatformFlags applies platform-specific flags. -func applyPlatformFlags(context *cli.Command) { +func applyPlatformFlags(*cli.Command) { } // registerUnregisterService is only relevant on Windows. -func registerUnregisterService(_ string) (bool, error) { +func registerUnregisterService(string) (bool, error) { return false, nil } // launchService is only relevant on Windows. -func launchService(_ *grpc.Server) error { +func launchService(*grpc.Server) error { return nil } diff --git a/contrib/cdisetup/venus/venus_unix.go b/contrib/cdisetup/venus/venus_unix.go index af26006cb9d9..6c2da0bbc309 100644 --- a/contrib/cdisetup/venus/venus_unix.go +++ b/contrib/cdisetup/venus/venus_unix.go @@ -51,7 +51,7 @@ func (s *setup) Validate() error { return nil } -func (s *setup) Run(ctx context.Context) error { +func (s *setup) Run(context.Context) error { if err := s.Validate(); err != nil { return err } diff --git a/control/control.go b/control/control.go index 78adaadd8fbc..7eca9b58d1d5 100644 --- a/control/control.go +++ b/control/control.go @@ -641,7 +641,7 @@ func (c *Controller) Session(stream controlapi.Control_SessionServer) error { return err } -func (c *Controller) ListWorkers(ctx context.Context, r *controlapi.ListWorkersRequest) (*controlapi.ListWorkersResponse, error) { +func (c *Controller) ListWorkers(_ context.Context, r *controlapi.ListWorkersRequest) (*controlapi.ListWorkersResponse, error) { resp := &controlapi.ListWorkersResponse{} workers, err := c.opt.WorkerController.List(r.Filter...) if err != nil { @@ -660,7 +660,7 @@ func (c *Controller) ListWorkers(ctx context.Context, r *controlapi.ListWorkersR return resp, nil } -func (c *Controller) Info(ctx context.Context, r *controlapi.InfoRequest) (*controlapi.InfoResponse, error) { +func (c *Controller) Info(context.Context, *controlapi.InfoRequest) (*controlapi.InfoResponse, error) { buildkitVersion := toPBBuildkitVersion(client.BuildkitVersion{ Package: version.Package, Version: version.Version, @@ -827,19 +827,19 @@ type roContentStore struct { content.Store } -func (cs *roContentStore) Writer(ctx context.Context, opts ...content.WriterOpt) (content.Writer, error) { +func (cs *roContentStore) Writer(context.Context, ...content.WriterOpt) (content.Writer, error) { return nil, errors.Errorf("read-only content store") } -func (cs *roContentStore) Delete(ctx context.Context, dgst digest.Digest) error { +func (cs *roContentStore) Delete(context.Context, digest.Digest) error { return errors.Errorf("read-only content store") } -func (cs *roContentStore) Update(ctx context.Context, info content.Info, fieldpaths ...string) (content.Info, error) { +func (cs *roContentStore) Update(context.Context, content.Info, ...string) (content.Info, error) { return content.Info{}, errors.Errorf("read-only content store") } -func (cs *roContentStore) Abort(ctx context.Context, ref string) error { +func (cs *roContentStore) Abort(context.Context, string) error { return errors.Errorf("read-only content store") } diff --git a/control/gateway/gateway.go b/control/gateway/gateway.go index 62f3b6719427..3f291c94975d 100644 --- a/control/gateway/gateway.go +++ b/control/gateway/gateway.go @@ -26,11 +26,11 @@ func (gwf *GatewayForwarder) Register(server *grpc.Server) { gwapi.RegisterLLBBridgeServer(server, gwf) } -func (gwf *GatewayForwarder) RegisterBuild(ctx context.Context, id string, bridge gateway.LLBBridgeForwarder) { +func (gwf *GatewayForwarder) RegisterBuild(_ context.Context, id string, bridge gateway.LLBBridgeForwarder) { gwf.registrar.Register(id, bridge) } -func (gwf *GatewayForwarder) UnregisterBuild(ctx context.Context, id string) { +func (gwf *GatewayForwarder) UnregisterBuild(_ context.Context, id string) { gwf.registrar.Discard(id) } diff --git a/examples/build-using-dockerfile/main.go b/examples/build-using-dockerfile/main.go index b1bb12abd452..ca4995050c9e 100644 --- a/examples/build-using-dockerfile/main.go +++ b/examples/build-using-dockerfile/main.go @@ -179,7 +179,7 @@ func newSolveOpt(clicontext *cli.Command, w io.WriteCloser) (*client.SolveOpt, e Attrs: map[string]string{ "name": clicontext.String("tag"), }, - Output: func(_ map[string]string) (io.WriteCloser, error) { + Output: func(map[string]string) (io.WriteCloser, error) { return w, nil }, }, diff --git a/executor/oci/hosts.go b/executor/oci/hosts.go index 40f88904c658..e9845d591e5d 100644 --- a/executor/oci/hosts.go +++ b/executor/oci/hosts.go @@ -19,7 +19,7 @@ func GetHostsFile(ctx context.Context, root *os.Root, extraHosts []executor.Host return makeHostsFile(root, extraHosts, idmap, hostname) } - _, err := g.Do(ctx, root.Name(), func(ctx context.Context) (struct{}, error) { + _, err := g.Do(ctx, root.Name(), func(context.Context) (struct{}, error) { _, _, err := makeHostsFile(root, nil, idmap, hostname) return struct{}{}, err }) diff --git a/executor/oci/resolvconf.go b/executor/oci/resolvconf.go index 313f01909ac8..1a39023e25b8 100644 --- a/executor/oci/resolvconf.go +++ b/executor/oci/resolvconf.go @@ -66,7 +66,7 @@ func GetResolvConf(ctx context.Context, root *os.Root, idmap *user.IdentityMappi name = "resolv-host.conf" } - _, err := g.Do(ctx, root.Name()+"/"+name, func(ctx context.Context) (struct{}, error) { + _, err := g.Do(ctx, root.Name()+"/"+name, func(context.Context) (struct{}, error) { generate := !notFirstRun notFirstRun = true diff --git a/executor/oci/spec_darwin.go b/executor/oci/spec_darwin.go index fda433fd8a3d..17f444d8c281 100644 --- a/executor/oci/spec_darwin.go +++ b/executor/oci/spec_darwin.go @@ -15,7 +15,7 @@ func withProcessArgs(args ...string) oci.SpecOpts { return oci.WithProcessArgs(args...) } -func generateMountOpts(_, _ string) []oci.SpecOpts { +func generateMountOpts(string, string) []oci.SpecOpts { return nil } @@ -45,7 +45,7 @@ func generateRlimitOpts(ulimits []*pb.Ulimit) ([]oci.SpecOpts, error) { } // tracing is not implemented on Darwin -func getTracingSocketMount(_ string) *specs.Mount { +func getTracingSocketMount(string) *specs.Mount { return nil } diff --git a/executor/oci/spec_freebsd.go b/executor/oci/spec_freebsd.go index 2a8952419c2e..919408ca18c5 100644 --- a/executor/oci/spec_freebsd.go +++ b/executor/oci/spec_freebsd.go @@ -15,7 +15,7 @@ func withProcessArgs(args ...string) oci.SpecOpts { return oci.WithProcessArgs(args...) } -func generateMountOpts(_, _ string) []oci.SpecOpts { +func generateMountOpts(string, string) []oci.SpecOpts { return nil } @@ -53,7 +53,7 @@ func generateRlimitOpts(ulimits []*pb.Ulimit) ([]oci.SpecOpts, error) { } // tracing is not implemented on FreeBSD -func getTracingSocketMount(_ string) *specs.Mount { +func getTracingSocketMount(string) *specs.Mount { return nil } diff --git a/executor/oci/spec_linux.go b/executor/oci/spec_linux.go index 2e1430aff7d7..2558693554ef 100644 --- a/executor/oci/spec_linux.go +++ b/executor/oci/spec_linux.go @@ -199,7 +199,7 @@ func generateCDIOpts(manager *cdidevices.Manager, devs []*pb.CDIDevice) ([]oci.S } withCDIDevices := func(devs []*pb.CDIDevice) oci.SpecOpts { - return func(ctx context.Context, _ oci.Client, c *containers.Container, s *specs.Spec) error { + return func(ctx context.Context, _ oci.Client, _ *containers.Container, s *specs.Spec) error { if err := manager.Refresh(); err != nil { bklog.G(ctx).Warnf("CDI registry refresh failed: %v", err) } diff --git a/executor/oci/spec_windows.go b/executor/oci/spec_windows.go index 3eefb124f05e..30c923eb002f 100644 --- a/executor/oci/spec_windows.go +++ b/executor/oci/spec_windows.go @@ -52,7 +52,7 @@ func withGetUserInfoMount() oci.SpecOpts { } } -func generateMountOpts(_, _ string) []oci.SpecOpts { +func generateMountOpts(string, string) []oci.SpecOpts { return []oci.SpecOpts{ withGetUserInfoMount(), } @@ -252,7 +252,7 @@ func generateCDIOpts(_ *cdidevices.Manager, devices []*pb.CDIDevice) ([]oci.Spec return nil, errors.New("no support for CDI on Windows") } -func normalizeMountType(_ string) string { +func normalizeMountType(string) string { // HCS shim doesn't expect a named type // for the mount. return "" diff --git a/executor/proxyca_unsupported.go b/executor/proxyca_unsupported.go index 29871ab52031..a66a4c44298f 100644 --- a/executor/proxyca_unsupported.go +++ b/executor/proxyca_unsupported.go @@ -3,6 +3,6 @@ package executor // InjectProxyCA is only implemented for Linux rootfs layouts. -func InjectProxyCA(rootfsPath string, caPEM []byte) (func() error, error) { +func InjectProxyCA(string, []byte) (func() error, error) { return func() error { return nil }, nil } diff --git a/executor/runcexecutor/executor_linux.go b/executor/runcexecutor/executor_linux.go index f5097e59a5db..b27a6f9d7bc0 100644 --- a/executor/runcexecutor/executor_linux.go +++ b/executor/runcexecutor/executor_linux.go @@ -28,7 +28,7 @@ func updateRuncFieldsForHostOS(runtime *runc.Runc) { func (w *runcExecutor) run(ctx context.Context, id, bundle string, process executor.ProcessInfo, started func(), keep bool) error { killer := newRunProcKiller(w.runc, id) - return w.callWithIO(ctx, process, started, killer, func(ctx context.Context, started chan<- int, io runc.IO, pidfile string) error { + return w.callWithIO(ctx, process, started, killer, func(ctx context.Context, started chan<- int, io runc.IO, _ string) error { extraArgs := []string{} if keep { extraArgs = append(extraArgs, "--keep") diff --git a/exporter/containerimage/opts.go b/exporter/containerimage/opts.go index 19f401a38c8c..6ab8c3aa6dc3 100644 --- a/exporter/containerimage/opts.go +++ b/exporter/containerimage/opts.go @@ -23,7 +23,7 @@ type ImageCommitOpts struct { RewriteTimestamp bool // rewrite timestamps in layers to match the epoch } -func (c *ImageCommitOpts) Load(ctx context.Context, opt map[string]string) (map[string]string, error) { +func (c *ImageCommitOpts) Load(_ context.Context, opt map[string]string) (map[string]string, error) { rest := make(map[string]string) as, optb, err := ParseAnnotations(toBytesMap(opt)) diff --git a/exporter/local/export.go b/exporter/local/export.go index ef1b00ae1645..0a2d29840ca0 100644 --- a/exporter/local/export.go +++ b/exporter/local/export.go @@ -37,7 +37,7 @@ func New(opt Opt) (exporter.Exporter, error) { return le, nil } -func (e *localExporter) Resolve(ctx context.Context, id int, opt map[string]string) (exporter.ExporterInstance, error) { +func (e *localExporter) Resolve(_ context.Context, id int, opt map[string]string) (exporter.ExporterInstance, error) { i := &localExporterInstance{ id: id, attrs: opt, diff --git a/exporter/local/fs.go b/exporter/local/fs.go index 0f5186a299ef..c15baa78942a 100644 --- a/exporter/local/fs.go +++ b/exporter/local/fs.go @@ -119,7 +119,7 @@ func CreateFS(ctx context.Context, sessionID string, k string, ref cache.Immutab filterOpt := &fsutil.FilterOpt{} var idMapFunc func(p string, st *fstypes.Stat) fsutil.MapResult if idmap != nil { - idMapFunc = func(p string, st *fstypes.Stat) fsutil.MapResult { + idMapFunc = func(_ string, st *fstypes.Stat) fsutil.MapResult { uid, gid, err := idmap.ToContainer(int(st.Uid), int(st.Gid)) if err != nil { return fsutil.MapResultExclude diff --git a/exporter/tar/export.go b/exporter/tar/export.go index ef0e41330160..53332a779ece 100644 --- a/exporter/tar/export.go +++ b/exporter/tar/export.go @@ -35,7 +35,7 @@ func New(opt Opt) (exporter.Exporter, error) { return le, nil } -func (e *localExporter) Resolve(ctx context.Context, id int, opt map[string]string) (exporter.ExporterInstance, error) { +func (e *localExporter) Resolve(_ context.Context, id int, opt map[string]string) (exporter.ExporterInstance, error) { li := &localExporterInstance{ localExporter: e, id: id, diff --git a/exporter/verifier/platforms.go b/exporter/verifier/platforms.go index 619e0f2cb864..a70a475a3d86 100644 --- a/exporter/verifier/platforms.go +++ b/exporter/verifier/platforms.go @@ -13,7 +13,7 @@ import ( "github.com/pkg/errors" ) -func CheckInvalidPlatforms[T comparable](ctx context.Context, res *result.Result[T]) ([]client.VertexWarning, error) { +func CheckInvalidPlatforms[T comparable](_ context.Context, res *result.Result[T]) ([]client.VertexWarning, error) { req, err := getRequestOpts(res) if err != nil { return nil, err diff --git a/frontend/attestations/sbom/sbom.go b/frontend/attestations/sbom/sbom.go index dbe2b604453e..809d25f6b0ea 100644 --- a/frontend/attestations/sbom/sbom.go +++ b/frontend/attestations/sbom/sbom.go @@ -57,7 +57,7 @@ func CreateSBOMScanner(ctx context.Context, resolver sourceresolver.MetaResolver return nil, errors.Errorf("scanner %s does not have cmd", scanner) } - return func(ctx context.Context, name string, ref llb.State, extras map[string]llb.State, opts ...llb.ConstraintsOpt) (result.Attestation[*llb.State], error) { + return func(_ context.Context, name string, ref llb.State, extras map[string]llb.State, opts ...llb.ConstraintsOpt) (result.Attestation[*llb.State], error) { var env []string env = append(env, cfg.Config.Env...) env = append(env, "BUILDKIT_SCAN_DESTINATION="+outDir) diff --git a/frontend/attestations/sbom/sbom_test.go b/frontend/attestations/sbom/sbom_test.go index 93b70785182a..9d0b8c1a7c63 100644 --- a/frontend/attestations/sbom/sbom_test.go +++ b/frontend/attestations/sbom/sbom_test.go @@ -76,7 +76,7 @@ type testMetaResolver struct { config []byte } -func (r testMetaResolver) ResolveSourceMetadata(ctx context.Context, op *pb.SourceOp, opt sourceresolver.Opt) (*sourceresolver.MetaResponse, error) { +func (r testMetaResolver) ResolveSourceMetadata(_ context.Context, op *pb.SourceOp, _ sourceresolver.Opt) (*sourceresolver.MetaResponse, error) { return &sourceresolver.MetaResponse{ Op: op, Image: &sourceresolver.ResolveImageResponse{ diff --git a/frontend/dockerfile/builder/build.go b/frontend/dockerfile/builder/build.go index 1804c69abd22..ae2f773c70bc 100644 --- a/frontend/dockerfile/builder/build.go +++ b/frontend/dockerfile/builder/build.go @@ -183,7 +183,7 @@ func Build(ctx context.Context, c client.Client) (_ *client.Result, err error) { } if scanner != nil { - if err := rb.EachPlatform(ctx, func(ctx context.Context, id string, p ocispecs.Platform) error { + if err := rb.EachPlatform(ctx, func(ctx context.Context, id string, _ ocispecs.Platform) error { target, ok := scanTargets.Load(id) if !ok { return errors.Errorf("no scan targets for %s", id) diff --git a/frontend/dockerfile/dockerfile2llb/convert.go b/frontend/dockerfile/dockerfile2llb/convert.go index 4a4aa7eec448..9994ef594204 100644 --- a/frontend/dockerfile/dockerfile2llb/convert.go +++ b/frontend/dockerfile/dockerfile2llb/convert.go @@ -159,7 +159,7 @@ func DockerfileLint(ctx context.Context, dt []byte, opt ConvertOpt) (*lint.LintR return results, nil } -func ListTargets(ctx context.Context, dt []byte) (*targets.List, error) { +func ListTargets(_ context.Context, dt []byte) (*targets.List, error) { dockerfile, err := parser.Parse(bytes.NewReader(dt)) if err != nil { return nil, err @@ -1096,7 +1096,7 @@ func dispatch(d *dispatchState, cmd command, opt dispatchOpt) error { case *instructions.LabelCommand: err = dispatchLabel(d, c, opt.lint) case *instructions.OnbuildCommand: - err = dispatchOnbuild(d, c) + dispatchOnbuild(d, c) case *instructions.CmdCommand: err = dispatchCmd(d, c, opt.lint) case *instructions.EntrypointCommand: @@ -1585,9 +1585,8 @@ func dispatchLabel(d *dispatchState, c *instructions.LabelCommand, lint *linter. return commitToHistory(&d.image, commitMessage.String(), false, nil, d.epoch) } -func dispatchOnbuild(d *dispatchState, c *instructions.OnbuildCommand) error { +func dispatchOnbuild(d *dispatchState, c *instructions.OnbuildCommand) { d.image.Config.OnBuild = append(d.image.Config.OnBuild, c.Expression) - return nil } func dispatchCmd(d *dispatchState, c *instructions.CmdCommand, lint *linter.Linter) error { diff --git a/frontend/dockerfile/dockerfile_source_date_epoch_test.go b/frontend/dockerfile/dockerfile_source_date_epoch_test.go index 1bddb3667f25..e18d1f204ddd 100644 --- a/frontend/dockerfile/dockerfile_source_date_epoch_test.go +++ b/frontend/dockerfile/dockerfile_source_date_epoch_test.go @@ -1063,7 +1063,6 @@ func timeMustParse(t *testing.T, layout, value string) time.Time { return tm } -//nolint:revive // context-as-argument: context.Context should be the first parameter of a function func readImage(t *testing.T, ctx context.Context, ref string) (ocispecs.Descriptor, ocispecs.Manifest, ocispecs.Image) { desc, provider, err := contentutil.ProviderFromRef(ref) require.NoError(t, err) diff --git a/frontend/dockerfile/dockerfile_test.go b/frontend/dockerfile/dockerfile_test.go index 7661c8ea055b..ccf184932581 100644 --- a/frontend/dockerfile/dockerfile_test.go +++ b/frontend/dockerfile/dockerfile_test.go @@ -401,7 +401,7 @@ func (f *builtinFrontend) DFCmdArgs(ctx, dockerfile string) (string, string) { return dfCmdArgs(ctx, dockerfile, "--frontend dockerfile.v0") } -func (f *builtinFrontend) RequiresBuildctl(t *testing.T) {} +func (f *builtinFrontend) RequiresBuildctl(*testing.T) {} type clientFrontend struct{} @@ -418,7 +418,7 @@ func (f *clientFrontend) SolveGateway(ctx context.Context, c gateway.Client, req return c.Solve(ctx, req) } -func (f *clientFrontend) DFCmdArgs(ctx, dockerfile string) (string, string) { +func (f *clientFrontend) DFCmdArgs(string, string) (string, string) { return "", "" } @@ -454,7 +454,7 @@ func (f *gatewayFrontend) DFCmdArgs(ctx, dockerfile string) (string, string) { return dfCmdArgs(ctx, dockerfile, "--frontend gateway.v0 --opt=source="+f.gw) } -func (f *gatewayFrontend) RequiresBuildctl(t *testing.T) {} +func (f *gatewayFrontend) RequiresBuildctl(*testing.T) {} func getFrontend(t *testing.T, sb integration.Sandbox) frontend { v := sb.Value("frontend") diff --git a/frontend/dockerfile/instructions/commands_rundevice.go b/frontend/dockerfile/instructions/commands_rundevice.go index 029f758b5565..34189d654ce4 100644 --- a/frontend/dockerfile/instructions/commands_rundevice.go +++ b/frontend/dockerfile/instructions/commands_rundevice.go @@ -23,7 +23,7 @@ func runDevicePreHook(cmd *RunCommand, req parseRequest) error { return nil } -func runDevicePostHook(cmd *RunCommand, req parseRequest) error { +func runDevicePostHook(cmd *RunCommand, _ parseRequest) error { return setDeviceState(cmd) } diff --git a/frontend/dockerfile/instructions/commands_runmount.go b/frontend/dockerfile/instructions/commands_runmount.go index 73a4c965afa5..38e765b0bebd 100644 --- a/frontend/dockerfile/instructions/commands_runmount.go +++ b/frontend/dockerfile/instructions/commands_runmount.go @@ -74,7 +74,7 @@ func runMountPreHook(cmd *RunCommand, req parseRequest) error { return nil } -func runMountPostHook(cmd *RunCommand, req parseRequest) error { +func runMountPostHook(cmd *RunCommand, _ parseRequest) error { return setMountState(cmd, nil) } diff --git a/frontend/dockerfile/instructions/commands_runnetwork.go b/frontend/dockerfile/instructions/commands_runnetwork.go index 6329c1d9478f..0f08a7c42639 100644 --- a/frontend/dockerfile/instructions/commands_runnetwork.go +++ b/frontend/dockerfile/instructions/commands_runnetwork.go @@ -37,7 +37,7 @@ func runNetworkPreHook(cmd *RunCommand, req parseRequest) error { return nil } -func runNetworkPostHook(cmd *RunCommand, req parseRequest) error { +func runNetworkPostHook(cmd *RunCommand, _ parseRequest) error { st := cmd.getExternalValue(networkKey).(*networkState) if st == nil { return errors.New("no network state") diff --git a/frontend/dockerfile/instructions/commands_runsecurity.go b/frontend/dockerfile/instructions/commands_runsecurity.go index aeeb714caefb..b982555bae88 100644 --- a/frontend/dockerfile/instructions/commands_runsecurity.go +++ b/frontend/dockerfile/instructions/commands_runsecurity.go @@ -33,7 +33,7 @@ func runSecurityPreHook(cmd *RunCommand, req parseRequest) error { return nil } -func runSecurityPostHook(cmd *RunCommand, req parseRequest) error { +func runSecurityPostHook(cmd *RunCommand, _ parseRequest) error { st := cmd.getExternalValue(securityKey).(*securityState) if st == nil { return errors.New("no security state") diff --git a/frontend/dockerfile/instructions/parse.go b/frontend/dockerfile/instructions/parse.go index b5e4a62f5390..76d944d108d3 100644 --- a/frontend/dockerfile/instructions/parse.go +++ b/frontend/dockerfile/instructions/parse.go @@ -482,7 +482,7 @@ func parseWorkdir(req parseRequest) (*WorkdirCommand, error) { }, nil } -func parseShellDependentCommand(req parseRequest, emptyAsNil bool) (ShellDependantCmdLine, error) { +func parseShellDependentCommand(req parseRequest, emptyAsNil bool) ShellDependantCmdLine { var files []ShellInlineFile for _, heredoc := range req.heredocs { file := ShellInlineFile{ @@ -501,7 +501,7 @@ func parseShellDependentCommand(req parseRequest, emptyAsNil bool) (ShellDependa CmdLine: args, Files: files, PrependShell: !req.attributes["json"], - }, nil + } } func parseRun(req parseRequest) (*RunCommand, error) { @@ -518,10 +518,7 @@ func parseRun(req parseRequest) (*RunCommand, error) { } cmd.FlagsUsed = req.flags.Used() - cmdline, err := parseShellDependentCommand(req, false) - if err != nil { - return nil, err - } + cmdline := parseShellDependentCommand(req, false) cmd.ShellDependantCmdLine = cmdline cmd.withNameAndCode = newWithNameAndCode(req) @@ -540,10 +537,7 @@ func parseCmd(req parseRequest) (*CmdCommand, error) { return nil, err } - cmdline, err := parseShellDependentCommand(req, false) - if err != nil { - return nil, err - } + cmdline := parseShellDependentCommand(req, false) return &CmdCommand{ ShellDependantCmdLine: cmdline, @@ -556,10 +550,7 @@ func parseEntrypoint(req parseRequest) (*EntrypointCommand, error) { return nil, err } - cmdline, err := parseShellDependentCommand(req, true) - if err != nil { - return nil, err - } + cmdline := parseShellDependentCommand(req, true) return &EntrypointCommand{ ShellDependantCmdLine: cmdline, diff --git a/frontend/dockerfile/instructions/parse_test.go b/frontend/dockerfile/instructions/parse_test.go index c942415a3065..d67354725680 100644 --- a/frontend/dockerfile/instructions/parse_test.go +++ b/frontend/dockerfile/instructions/parse_test.go @@ -163,7 +163,7 @@ func TestNilLinter(t *testing.T) { cmd + " a b c", cmd + " 0 0", } { - t.Run(tc, func(t *testing.T) { + t.Run(tc, func(*testing.T) { ast, err := parser.Parse(strings.NewReader("FROM busybox\n" + tc)) if err == nil { _, _, _ = Parse(ast.AST, nil) diff --git a/frontend/dockerfile/parser/directives.go b/frontend/dockerfile/parser/directives.go index 6638170cdb1e..9bdca2d056e9 100644 --- a/frontend/dockerfile/parser/directives.go +++ b/frontend/dockerfile/parser/directives.go @@ -133,10 +133,7 @@ func ParseDirective(key string, dt []byte) (string, string, []Range, bool) { func parseDirective(key string, dt []byte, anyFormat bool) (string, string, []Range, bool) { dt = discardBOM(dt) - dt, hadShebang, err := discardShebang(dt) - if err != nil { - return "", "", nil, false - } + dt, hadShebang := discardShebang(dt) line := 0 if hadShebang { line++ @@ -187,12 +184,12 @@ func detectDirectiveFromParser(key string, dt []byte, parser DirectiveParser) (s return "", "", nil, false } -func discardShebang(dt []byte) ([]byte, bool, error) { +func discardShebang(dt []byte) ([]byte, bool) { line, rest, _ := bytes.Cut(dt, []byte("\n")) if bytes.HasPrefix(line, []byte("#!")) { - return rest, true, nil + return rest, true } - return dt, false, nil + return dt, false } func discardBOM(dt []byte) []byte { diff --git a/frontend/dockerfile/parser/line_parsers.go b/frontend/dockerfile/parser/line_parsers.go index eb86e73b48fc..9f4e9818fa85 100644 --- a/frontend/dockerfile/parser/line_parsers.go +++ b/frontend/dockerfile/parser/line_parsers.go @@ -26,7 +26,7 @@ const ( // ignore the current argument. This will still leave a command parsed, but // will not incorporate the arguments into the ast. -func parseIgnore(rest string, d *directives) (*Node, map[string]bool, error) { +func parseIgnore(string, *directives) (*Node, map[string]bool, error) { return &Node{}, nil, nil } @@ -34,6 +34,8 @@ func parseIgnore(rest string, d *directives) (*Node, map[string]bool, error) { // statement with sub-statements. // // ONBUILD RUN foo bar -> (onbuild (run foo bar)) +// +//nolint:unparam func parseSubCommand(rest string, d *directives) (*Node, map[string]bool, error) { if rest == "" { return nil, nil, nil @@ -197,11 +199,13 @@ func appendKeyValueNode(node, rootNode, prevNode *Node) (*Node, *Node) { return rootNode, prevNode } +//nolint:unparam func parseEnv(rest string, d *directives) (*Node, map[string]bool, error) { node, err := parseNameVal(rest, "ENV", d) return node, nil, err } +//nolint:unparam func parseLabel(rest string, d *directives) (*Node, map[string]bool, error) { node, err := parseNameVal(rest, commandLabel, d) return node, nil, err @@ -215,6 +219,8 @@ func parseLabel(rest string, d *directives) (*Node, map[string]bool, error) { // In addition, a keyword definition alone is of the form `keyword` like `name1` // above. And the assignments `name2=` and `name3=""` are equivalent and // assign an empty value to the respective keywords. +// +//nolint:unparam func parseNameOrNameVal(rest string, d *directives) (*Node, map[string]bool, error) { words := parseWords(rest, d) if len(words) == 0 { @@ -241,7 +247,7 @@ func parseNameOrNameVal(rest string, d *directives) (*Node, map[string]bool, err // parses a whitespace-delimited set of arguments. The result is effectively a // linked list of string arguments. -func parseStringsWhitespaceDelimited(rest string, d *directives) (*Node, map[string]bool, error) { +func parseStringsWhitespaceDelimited(rest string, _ *directives) (*Node, map[string]bool, error) { if rest == "" { return nil, nil, nil } @@ -265,7 +271,9 @@ func parseStringsWhitespaceDelimited(rest string, d *directives) (*Node, map[str } // parseString just wraps the string in quotes and returns a working node. -func parseString(rest string, d *directives) (*Node, map[string]bool, error) { +// +//nolint:unparam +func parseString(rest string, _ *directives) (*Node, map[string]bool, error) { if rest == "" { return nil, nil, nil } @@ -308,7 +316,7 @@ func parseJSON(rest string) (*Node, map[string]bool, error) { // parseMaybeJSON determines if the argument appears to be a JSON array. If // so, passes to parseJSON; if not, quotes the result and returns a single // node. -func parseMaybeJSON(rest string, d *directives) (*Node, map[string]bool, error) { +func parseMaybeJSON(rest string, _ *directives) (*Node, map[string]bool, error) { if rest == "" { return nil, nil, nil } diff --git a/frontend/frontend_test.go b/frontend/frontend_test.go index 360d0f643484..91846963e506 100644 --- a/frontend/frontend_test.go +++ b/frontend/frontend_test.go @@ -44,14 +44,14 @@ func testReturnNil(t *testing.T, sb integration.Sandbox) { require.NoError(t, err) defer c.Close() - frontend := func(ctx context.Context, c gateway.Client) (*gateway.Result, error) { + frontend := func(context.Context, gateway.Client) (*gateway.Result, error) { return nil, nil } _, err = c.Build(ctx, client.SolveOpt{}, "", frontend, nil) require.NoError(t, err) - frontend = func(ctx context.Context, c gateway.Client) (*gateway.Result, error) { + frontend = func(context.Context, gateway.Client) (*gateway.Result, error) { return gateway.NewResult(), nil } diff --git a/frontend/gateway/container/container.go b/frontend/gateway/container/container.go index 458e3d445df5..82d4ce5144d8 100644 --- a/frontend/gateway/container/container.go +++ b/frontend/gateway/container/container.go @@ -168,7 +168,7 @@ type MountMutableRef struct { type MakeMutable func(m *opspb.Mount, ref cache.ImmutableRef) (cache.MutableRef, error) -func PrepareMounts(ctx context.Context, mm *mounts.MountManager, cm cache.Manager, g session.Group, cwd string, mnts []*opspb.Mount, refs []*worker.WorkerRef, makeMutable MakeMutable, platform string) (p PreparedMounts, err error) { +func PrepareMounts(ctx context.Context, mm *mounts.MountManager, _ cache.Manager, g session.Group, cwd string, mnts []*opspb.Mount, refs []*worker.WorkerRef, makeMutable MakeMutable, platform string) (p PreparedMounts, err error) { // loop over all mounts, fill in mounts, root and outputs for i, m := range mnts { var ( @@ -428,7 +428,7 @@ func (gwCtr *gatewayContainer) loadSecretEnv(ctx context.Context, secretEnv []*o return out, nil } -func (gwCtr *gatewayContainer) Release(ctx context.Context) error { +func (gwCtr *gatewayContainer) Release(context.Context) error { gwCtr.mu.Lock() defer gwCtr.mu.Unlock() gwCtr.cancel(errors.WithStack(context.Canceled)) diff --git a/frontend/gateway/forwarder/forward.go b/frontend/gateway/forwarder/forward.go index 4b8fa2612744..273c37f7294b 100644 --- a/frontend/gateway/forwarder/forward.go +++ b/frontend/gateway/forwarder/forward.go @@ -28,7 +28,7 @@ import ( "golang.org/x/sync/errgroup" ) -func LLBBridgeToGatewayClient(ctx context.Context, llbBridge frontend.FrontendLLBBridge, exec executor.Executor, opts map[string]string, inputs map[string]*opspb.Definition, w worker.Infos, sid string, sm *session.Manager) (*BridgeClient, error) { +func LLBBridgeToGatewayClient(_ context.Context, llbBridge frontend.FrontendLLBBridge, exec executor.Executor, opts map[string]string, inputs map[string]*opspb.Definition, w worker.Infos, sid string, sm *session.Manager) (*BridgeClient, error) { bc := &BridgeClient{ opts: opts, inputs: inputs, @@ -77,10 +77,7 @@ func (c *BridgeClient) Solve(ctx context.Context, req client.SolveRequest) (*cli c.mu.Lock() cRes, err := result.ConvertResult(res, func(r solver.ResultProxy) (client.Reference, error) { - rr, err := c.newRef(r, session.NewGroup(c.sid)) - if err != nil { - return nil, err - } + rr := c.newRef(r, session.NewGroup(c.sid)) c.refs = append(c.refs, rr) return rr, nil }) @@ -122,7 +119,7 @@ func (c *BridgeClient) BuildOpts() client.BuildOpts { return c.buildOpts } -func (c *BridgeClient) Inputs(ctx context.Context) (map[string]llb.State, error) { +func (c *BridgeClient) Inputs(context.Context) (map[string]llb.State, error) { inputs := make(map[string]llb.State) for key, def := range c.inputs { defop, err := llb.NewDefinitionOp(def) @@ -333,8 +330,8 @@ func (c *BridgeClient) NewContainer(ctx context.Context, req client.NewContainer return ctr, nil } -func (c *BridgeClient) newRef(r solver.ResultProxy, s session.Group) (*ref, error) { - return &ref{resultProxy: r, session: s, c: c}, nil +func (c *BridgeClient) newRef(r solver.ResultProxy, s session.Group) *ref { + return &ref{resultProxy: r, session: s, c: c} } type ref struct { diff --git a/frontend/gateway/gateway.go b/frontend/gateway/gateway.go index d79ee40957c5..0491721df52e 100644 --- a/frontend/gateway/gateway.go +++ b/frontend/gateway/gateway.go @@ -339,7 +339,7 @@ type bind struct { dir string } -func (b *bind) Mount(ctx context.Context, readonly bool) (snapshot.Mountable, error) { +func (b *bind) Mount(_ context.Context, readonly bool) (snapshot.Mountable, error) { return &bindMount{b.dir, readonly}, nil } @@ -510,15 +510,15 @@ func (s *conn) RemoteAddr() net.Addr { return dummyAddr{} } -func (s *conn) SetDeadline(t time.Time) error { +func (s *conn) SetDeadline(time.Time) error { return nil } -func (s *conn) SetReadDeadline(t time.Time) error { +func (s *conn) SetReadDeadline(time.Time) error { return nil } -func (s *conn) SetWriteDeadline(t time.Time) error { +func (s *conn) SetWriteDeadline(time.Time) error { return nil } @@ -1028,7 +1028,7 @@ func (lbf *llbBridgeForwarder) Ping(context.Context, *pb.PingRequest) (*pb.PongR }, nil } -func (lbf *llbBridgeForwarder) Return(ctx context.Context, in *pb.ReturnRequest) (*pb.ReturnResponse, error) { +func (lbf *llbBridgeForwarder) Return(_ context.Context, in *pb.ReturnRequest) (*pb.ReturnResponse, error) { if in.Error != nil { return lbf.setResult(nil, grpcerrors.FromGRPC(status.ErrorProto(&spb.Status{ Code: in.Error.Code, @@ -1093,7 +1093,7 @@ func (lbf *llbBridgeForwarder) Return(ctx context.Context, in *pb.ReturnRequest) return lbf.setResult(r, nil) } -func (lbf *llbBridgeForwarder) Inputs(ctx context.Context, in *pb.InputsRequest) (*pb.InputsResponse, error) { +func (lbf *llbBridgeForwarder) Inputs(context.Context, *pb.InputsRequest) (*pb.InputsResponse, error) { return &pb.InputsResponse{ Definitions: lbf.inputs, }, nil diff --git a/frontend/gateway/grpcclient/client.go b/frontend/gateway/grpcclient/client.go index 34eeb70909dc..745456266ec4 100644 --- a/frontend/gateway/grpcclient/client.go +++ b/frontend/gateway/grpcclient/client.go @@ -1446,7 +1446,7 @@ func (r *reference) StatFile(ctx context.Context, req client.StatRequest) (*fsty func grpcClientConn(ctx context.Context) (context.Context, *grpc.ClientConn, error) { dialOpts := []grpc.DialOption{ - grpc.WithContextDialer(func(ctx context.Context, addr string) (net.Conn, error) { + grpc.WithContextDialer(func(context.Context, string) (net.Conn, error) { return stdioConn(), nil }), grpc.WithTransportCredentials(insecure.NewCredentials()), @@ -1487,15 +1487,15 @@ func (s *conn) RemoteAddr() net.Addr { return dummyAddr{} } -func (s *conn) SetDeadline(t time.Time) error { +func (s *conn) SetDeadline(time.Time) error { return nil } -func (s *conn) SetReadDeadline(t time.Time) error { +func (s *conn) SetReadDeadline(time.Time) error { return nil } -func (s *conn) SetWriteDeadline(t time.Time) error { +func (s *conn) SetWriteDeadline(time.Time) error { return nil } diff --git a/session/auth/auth.go b/session/auth/auth.go index e7413c80611a..27567888ab60 100644 --- a/session/auth/auth.go +++ b/session/auth/auth.go @@ -60,7 +60,7 @@ func CredentialsFunc(ctx context.Context, sm *session.Manager, g session.Group) func FetchToken(ctx context.Context, req *FetchTokenRequest, sm *session.Manager, g session.Group) (resp *FetchTokenResponse, err error) { ctx, cancel := context.WithTimeoutCause(ctx, sessionAuthTimeout, errors.Wrap(context.DeadlineExceeded, "fetching auth token from session")) defer cancel() - err = sm.Any(ctx, g, func(ctx context.Context, id string, c session.Caller) error { + err = sm.Any(ctx, g, func(ctx context.Context, _ string, c session.Caller) error { client := NewAuthClient(c.Conn()) resp, err = client.FetchToken(ctx, req) diff --git a/session/auth/authprovider/authconfigprovider.go b/session/auth/authprovider/authconfigprovider.go index 612eda4260a1..7b100607eb47 100644 --- a/session/auth/authprovider/authconfigprovider.go +++ b/session/auth/authprovider/authconfigprovider.go @@ -23,7 +23,7 @@ type authConfigProvider struct { mu sync.Mutex } -func (ap *authConfigProvider) load(ctx context.Context, host string, scopes []string, cacheExpireCheck ExpireCachedAuthCheck) (types.AuthConfig, error) { +func (ap *authConfigProvider) load(_ context.Context, host string, _ []string, cacheExpireCheck ExpireCachedAuthCheck) (types.AuthConfig, error) { ap.mu.Lock() defer ap.mu.Unlock() diff --git a/session/filesync/diffcopy.go b/session/filesync/diffcopy.go index be6d4dbb9fb6..d1142c17e960 100644 --- a/session/filesync/diffcopy.go +++ b/session/filesync/diffcopy.go @@ -120,7 +120,7 @@ func syncTargetDiffCopy(ds grpc.ServerStream, dest string, deleteMode bool) erro Filter: func() func(string, *fstypes.Stat) bool { uid := os.Getuid() gid := os.Getgid() - return func(p string, st *fstypes.Stat) bool { + return func(_ string, st *fstypes.Stat) bool { st.Uid = uint32(uid) st.Gid = uint32(gid) return true diff --git a/session/grpc.go b/session/grpc.go index e23a406aa899..ae2fe8ff4a80 100644 --- a/session/grpc.go +++ b/session/grpc.go @@ -68,7 +68,7 @@ func serve(ctx context.Context, grpcServer *grpc.Server, conn net.Conn) { func grpcClientConn(ctx context.Context, conn net.Conn, opts map[string][]string) (context.Context, *grpc.ClientConn, error) { var dialCount atomic.Int64 - dialer := grpc.WithContextDialer(func(ctx context.Context, addr string) (net.Conn, error) { + dialer := grpc.WithContextDialer(func(context.Context, string) (net.Conn, error) { if c := dialCount.Add(1); c > 1 { return nil, errors.New("only one connection allowed") } diff --git a/session/grpchijack/dial.go b/session/grpchijack/dial.go index 39d78be0dee7..23af0899df5f 100644 --- a/session/grpchijack/dial.go +++ b/session/grpchijack/dial.go @@ -16,7 +16,7 @@ import ( ) func Dialer(api controlapi.ControlClient) session.Dialer { - return func(ctx context.Context, proto string, meta map[string][]string) (net.Conn, error) { + return func(ctx context.Context, _ string, meta map[string][]string) (net.Conn, error) { meta = lowerHeaders(meta) md := metadata.MD(meta) ctx = metadata.NewOutgoingContext(ctx, md) @@ -134,13 +134,13 @@ func (c *conn) LocalAddr() net.Addr { func (c *conn) RemoteAddr() net.Addr { return dummyAddr{} } -func (c *conn) SetDeadline(t time.Time) error { +func (c *conn) SetDeadline(time.Time) error { return nil } -func (c *conn) SetReadDeadline(t time.Time) error { +func (c *conn) SetReadDeadline(time.Time) error { return nil } -func (c *conn) SetWriteDeadline(t time.Time) error { +func (c *conn) SetWriteDeadline(time.Time) error { return nil } diff --git a/session/secrets/secretsprovider/secretsprovider.go b/session/secrets/secretsprovider/secretsprovider.go index 71b00f893b5e..ec020ac65cdf 100644 --- a/session/secrets/secretsprovider/secretsprovider.go +++ b/session/secrets/secretsprovider/secretsprovider.go @@ -51,7 +51,7 @@ func FromMap(m map[string][]byte) session.Attachable { type mapStore map[string][]byte -func (m mapStore) GetSecret(ctx context.Context, id string) ([]byte, error) { +func (m mapStore) GetSecret(_ context.Context, id string) ([]byte, error) { v, ok := m[id] if !ok { return nil, errors.WithStack(secrets.ErrNotFound) diff --git a/session/secrets/secretsprovider/store.go b/session/secrets/secretsprovider/store.go index 35bb2f9c8575..b070213832a1 100644 --- a/session/secrets/secretsprovider/store.go +++ b/session/secrets/secretsprovider/store.go @@ -48,7 +48,7 @@ type fileStore struct { m map[string]Source } -func (fs *fileStore) GetSecret(ctx context.Context, id string) ([]byte, error) { +func (fs *fileStore) GetSecret(_ context.Context, id string) ([]byte, error) { v, ok := fs.m[id] if !ok { return nil, errors.WithStack(secrets.ErrNotFound) diff --git a/session/sshforward/sshprovider/agentprovider.go b/session/sshforward/sshprovider/agentprovider.go index d9b3ea4bb9f8..0e65f26ca0d7 100644 --- a/session/sshforward/sshprovider/agentprovider.go +++ b/session/sshforward/sshprovider/agentprovider.go @@ -108,7 +108,7 @@ func (s source) agentDialer(ctx context.Context) (net.Conn, error) { return c2, nil } -func (s socketDialer) Dial(ctx context.Context) (net.Conn, error) { +func (s socketDialer) Dial(context.Context) (net.Conn, error) { return s.dialer(s.path) } @@ -202,11 +202,11 @@ type readOnlyAgent struct { agent.ExtendedAgent } -func (a *readOnlyAgent) Add(_ agent.AddedKey) error { +func (a *readOnlyAgent) Add(agent.AddedKey) error { return errors.New("adding new keys not allowed by buildkit") } -func (a *readOnlyAgent) Remove(_ ssh.PublicKey) error { +func (a *readOnlyAgent) Remove(ssh.PublicKey) error { return errors.New("removing keys not allowed by buildkit") } @@ -214,10 +214,10 @@ func (a *readOnlyAgent) RemoveAll() error { return errors.New("removing keys not allowed by buildkit") } -func (a *readOnlyAgent) Lock(_ []byte) error { +func (a *readOnlyAgent) Lock([]byte) error { return errors.New("locking agent not allowed by buildkit") } -func (a *readOnlyAgent) Extension(_ string, _ []byte) ([]byte, error) { +func (a *readOnlyAgent) Extension(string, []byte) ([]byte, error) { return nil, errors.New("extensions not allowed by buildkit") } diff --git a/session/sshforward/sshprovider/agentprovider_unix.go b/session/sshforward/sshprovider/agentprovider_unix.go index 124e2558a8e5..255f1764013b 100644 --- a/session/sshforward/sshprovider/agentprovider_unix.go +++ b/session/sshforward/sshprovider/agentprovider_unix.go @@ -10,6 +10,6 @@ func getFallbackAgentPath() (string, error) { return "", errors.New("make sure SSH_AUTH_SOCK is set") } -func getWindowsPipeDialer(_ string) *socketDialer { +func getWindowsPipeDialer(string) *socketDialer { return nil } diff --git a/session/sshforward/sshprovider/raw_provider.go b/session/sshforward/sshprovider/raw_provider.go index 8fed40b0c6e7..1e848798c0cd 100644 --- a/session/sshforward/sshprovider/raw_provider.go +++ b/session/sshforward/sshprovider/raw_provider.go @@ -16,7 +16,7 @@ type socketProvider struct { m map[string]dialerFn } -func (p *socketProvider) CheckAgent(ctx context.Context, req *sshforward.CheckAgentRequest) (*sshforward.CheckAgentResponse, error) { +func (p *socketProvider) CheckAgent(_ context.Context, req *sshforward.CheckAgentRequest) (*sshforward.CheckAgentResponse, error) { id := sshforward.DefaultID if req.ID != "" { id = req.ID diff --git a/session/sshforward/sshprovider/raw_provider_test.go b/session/sshforward/sshprovider/raw_provider_test.go index e0fde8343db6..185c3fd3c0ee 100644 --- a/session/sshforward/sshprovider/raw_provider_test.go +++ b/session/sshforward/sshprovider/raw_provider_test.go @@ -64,7 +64,7 @@ func (es *echoServer) Serve(l net.Listener) error { } func dialerFnToGRPCDialer(dialer func(ctx context.Context) (net.Conn, error)) grpc.DialOption { - return grpc.WithContextDialer(func(ctx context.Context, addr string) (net.Conn, error) { + return grpc.WithContextDialer(func(ctx context.Context, _ string) (net.Conn, error) { return dialer(ctx) }) } diff --git a/session/testutil/testutil.go b/session/testutil/testutil.go index 755b11b2689c..8e305df77871 100644 --- a/session/testutil/testutil.go +++ b/session/testutil/testutil.go @@ -18,7 +18,7 @@ type Dialer func(ctx context.Context, proto string, meta map[string][]string) (n // TestStream creates an in memory session dialer for a handler function func TestStream(handler Handler) Dialer { s1, s2 := sockPair() - return func(ctx context.Context, proto string, meta map[string][]string) (net.Conn, error) { + return func(ctx context.Context, _ string, meta map[string][]string) (net.Conn, error) { go func() { err := handler(context.WithoutCancel(ctx), s1, meta) if err != nil { @@ -48,13 +48,13 @@ func (s *sock) LocalAddr() net.Addr { func (s *sock) RemoteAddr() net.Addr { return dummyAddr{} } -func (s *sock) SetDeadline(t time.Time) error { +func (s *sock) SetDeadline(time.Time) error { return nil } -func (s *sock) SetReadDeadline(t time.Time) error { +func (s *sock) SetReadDeadline(time.Time) error { return nil } -func (s *sock) SetWriteDeadline(t time.Time) error { +func (s *sock) SetWriteDeadline(time.Time) error { return nil } diff --git a/snapshot/containerd/content.go b/snapshot/containerd/content.go index 2354dd414b11..256ace79275d 100644 --- a/snapshot/containerd/content.go +++ b/snapshot/containerd/content.go @@ -43,7 +43,7 @@ func (c *Store) Walk(ctx context.Context, fn content.WalkFunc, filters ...string return c.Store.Walk(ctx, fn, filters...) } -func (c *Store) Delete(ctx context.Context, dgst digest.Digest) error { +func (c *Store) Delete(context.Context, digest.Digest) error { return errors.New("contentstore.Delete usage is forbidden") } diff --git a/snapshot/containerd/snapshotter.go b/snapshot/containerd/snapshotter.go index a0b28275ff6c..c1b4bc7f10ee 100644 --- a/snapshot/containerd/snapshotter.go +++ b/snapshot/containerd/snapshotter.go @@ -59,7 +59,7 @@ func (s *nsSnapshotter) Commit(ctx context.Context, name, key string, opts ...sn return s.Snapshotter.Commit(ctx, name, key, opts...) } -func (s *nsSnapshotter) Remove(ctx context.Context, key string) error { +func (s *nsSnapshotter) Remove(context.Context, string) error { return errors.New("calling snapshotter.Remove is forbidden") } diff --git a/snapshot/diffapply_linux.go b/snapshot/diffapply_linux.go index ec218783d361..1d7bd15aff60 100644 --- a/snapshot/diffapply_linux.go +++ b/snapshot/diffapply_linux.go @@ -471,7 +471,7 @@ func (a *applier) Usage() (snapshots.Usage, error) { // they don't get double counted. inodes := make(map[inode]struct{}) var usage snapshots.Usage - if err := filepath.WalkDir(a.root, func(path string, dirent gofs.DirEntry, err error) error { + if err := filepath.WalkDir(a.root, func(_ string, dirent gofs.DirEntry, err error) error { if err != nil { return err } diff --git a/snapshot/diffapply_unsupported.go b/snapshot/diffapply_unsupported.go index ddbd61a5c3aa..130d4f2f1850 100644 --- a/snapshot/diffapply_unsupported.go +++ b/snapshot/diffapply_unsupported.go @@ -11,10 +11,10 @@ import ( "github.com/pkg/errors" ) -func (sn *mergeSnapshotter) diffApply(_ context.Context, _ Mountable, _ ...Diff) (_ snapshots.Usage, rerr error) { +func (sn *mergeSnapshotter) diffApply(context.Context, Mountable, ...Diff) (_ snapshots.Usage, rerr error) { return snapshots.Usage{}, errors.New("diffApply not yet supported on " + runtime.GOOS) } -func needsUserXAttr(_ context.Context, _ Snapshotter, _ leases.Manager) (bool, error) { +func needsUserXAttr(context.Context, Snapshotter, leases.Manager) (bool, error) { return false, errors.New("needs userxattr not supported on " + runtime.GOOS) } diff --git a/snapshot/merge.go b/snapshot/merge.go index 7c1e320c073a..1090a145a76d 100644 --- a/snapshot/merge.go +++ b/snapshot/merge.go @@ -100,7 +100,7 @@ func NewMergeSnapshotter(ctx context.Context, sn Snapshotter, lm leases.Manager) } } -func (sn *mergeSnapshotter) Merge(ctx context.Context, key string, diffs []Diff, opts ...snapshots.Opt) error { +func (sn *mergeSnapshotter) Merge(ctx context.Context, key string, diffs []Diff, _ ...snapshots.Opt) error { var baseKey string if sn.skipBaseLayers { // Overlay-based snapshotters can skip the base snapshot of the merge (if one exists) and just use it as the diff --git a/solver/bboltcachestorage/storage.go b/solver/bboltcachestorage/storage.go index 48ac48eb3ee0..ade1f7ed76df 100644 --- a/solver/bboltcachestorage/storage.go +++ b/solver/bboltcachestorage/storage.go @@ -98,7 +98,7 @@ func (s *Store) WalkResults(id string, fn func(solver.CacheResult) error) error return nil } - return b.ForEach(func(k, v []byte) error { + return b.ForEach(func(_, v []byte) error { var res solver.CacheResult if err := json.Unmarshal(v, &res); err != nil { return err @@ -182,7 +182,7 @@ func (s *Store) WalkIDsByResult(resultID string, fn func(string) error) error { if b == nil { return nil } - return b.ForEach(func(k, v []byte) error { + return b.ForEach(func(k, _ []byte) error { ids[string(k)] = struct{}{} return nil }) @@ -207,7 +207,7 @@ func (s *Store) Release(resultID string) error { if b == nil { return errors.WithStack(solver.ErrNotFound) } - if err := b.ForEach(func(k, v []byte) error { + if err := b.ForEach(func(k, _ []byte) error { return s.releaseHelper(tx, string(k), resultID) }); err != nil { return err @@ -263,12 +263,12 @@ func (s *Store) emptyBranchWithParents(tx *bolt.Tx, id []byte) error { } if backlinks := tx.Bucket([]byte(backlinksBucket)).Bucket(id); backlinks != nil { - if err := backlinks.ForEach(func(k, v []byte) error { + if err := backlinks.ForEach(func(k, _ []byte) error { if subLinks := tx.Bucket([]byte(linksBucket)).Bucket(k); subLinks != nil { // Perform deletion outside of the iteration. // https://github.com/etcd-io/bbolt/pull/611 var toDelete []string - if err := subLinks.ForEach(func(k, v []byte) error { + if err := subLinks.ForEach(func(k, _ []byte) error { parts := bytes.Split(k, []byte("@")) if len(parts) != 2 { return errors.Errorf("invalid key %s", k) @@ -355,7 +355,7 @@ func (s *Store) WalkLinksAll(id string, fn func(id string, link solver.CacheInfo if b == nil { return nil } - return b.ForEach(func(k, v []byte) error { + return b.ForEach(func(k, _ []byte) error { parts := bytes.Split(k, []byte("@")) if len(parts) != 2 { return errors.Errorf("invalid key %s", k) @@ -466,12 +466,12 @@ func (s *Store) WalkBacklinks(id string, fn func(id string, link solver.CacheInf return nil } - if err := b.ForEach(func(bid, v []byte) error { + if err := b.ForEach(func(bid, _ []byte) error { b = links.Bucket(bid) if b == nil { return nil } - if err := b.ForEach(func(k, v []byte) error { + if err := b.ForEach(func(k, _ []byte) error { parts := bytes.Split(k, []byte("@")) if len(parts) == 2 { if string(parts[1]) != id { diff --git a/solver/exporter.go b/solver/exporter.go index 6ade2f44ce11..f176a1e37c8c 100644 --- a/solver/exporter.go +++ b/solver/exporter.go @@ -282,7 +282,7 @@ func (e *exporter) ExportTo(ctx context.Context, t CacheExporterTarget, opt Cach return nil } hasBacklinks := false - cm.backend.WalkBacklinks(id, func(id string, link CacheInfoLink) error { + cm.backend.WalkBacklinks(id, func(string, CacheInfoLink) error { hasBacklinks = true return nil }) diff --git a/solver/jobs.go b/solver/jobs.go index 58fefc4500ba..ddbc2ae0c7a3 100644 --- a/solver/jobs.go +++ b/solver/jobs.go @@ -809,18 +809,18 @@ type withProvenance struct { e Edge } -func (wp *withProvenance) WalkProvenance(ctx context.Context, f func(ProvenanceProvider) error) error { +func (wp *withProvenance) WalkProvenance(_ context.Context, f func(ProvenanceProvider) error) error { if wp.j == nil { return nil } wp.j.list.mu.RLock() defer wp.j.list.mu.RUnlock() m := map[digest.Digest]struct{}{} - return wp.j.walkProvenance(ctx, wp.e, f, m) + return wp.j.walkProvenance(wp.e, f, m) } // called with solver lock -func (j *Job) walkProvenance(ctx context.Context, e Edge, f func(ProvenanceProvider) error, visited map[digest.Digest]struct{}) error { +func (j *Job) walkProvenance(e Edge, f func(ProvenanceProvider) error, visited map[digest.Digest]struct{}) error { if _, ok := visited[e.Vertex.Digest()]; ok { return nil } @@ -844,7 +844,7 @@ func (j *Job) walkProvenance(ctx context.Context, e Edge, f func(ProvenanceProvi st.mu.Unlock() } for _, inp := range inputs { - if err := j.walkProvenance(ctx, inp, f, visited); err != nil { + if err := j.walkProvenance(inp, f, visited); err != nil { return err } } @@ -952,7 +952,7 @@ func (j *Job) SetValue(key string, v any) { j.values.Store(key, v) } -func (j *Job) EachValue(ctx context.Context, key string, fn func(any) error) error { +func (j *Job) EachValue(_ context.Context, key string, fn func(any) error) error { v, ok := j.values.Load(key) if ok { return fn(v) diff --git a/solver/llbsolver/export.go b/solver/llbsolver/export.go index 414852eea3af..a13064127c8e 100644 --- a/solver/llbsolver/export.go +++ b/solver/llbsolver/export.go @@ -314,7 +314,7 @@ func inlineCache(ctx context.Context, ie inlineCacheExporter, res solver.CachedR } func withDescHandlerCacheOpts(ctx context.Context, ref cache.ImmutableRef) context.Context { - return solver.WithCacheOptGetter(ctx, func(includeAncestors bool, keys ...any) map[any]any { + return solver.WithCacheOptGetter(ctx, func(_ bool, keys ...any) map[any]any { vals := make(map[any]any) for _, k := range keys { if key, ok := k.(cache.DescHandlerKey); ok { diff --git a/solver/llbsolver/file/backend.go b/solver/llbsolver/file/backend.go index be431a4f7c94..8b822be48182 100644 --- a/solver/llbsolver/file/backend.go +++ b/solver/llbsolver/file/backend.go @@ -198,7 +198,7 @@ func docopy(ctx context.Context, src, dest string, action *pb.FileActionCopy, u } } - xattrErrorHandler := func(dst, src, key string, err error) error { + xattrErrorHandler := func(_, _, _ string, err error) error { log.Println(err) return nil } @@ -286,7 +286,7 @@ type Backend struct { readUser ReadUserCallback } -func (fb *Backend) Mkdir(ctx context.Context, m, user, group fileoptypes.Mount, action *pb.FileActionMkDir) error { +func (fb *Backend) Mkdir(_ context.Context, m, user, group fileoptypes.Mount, action *pb.FileActionMkDir) error { mnt, ok := m.(*Mount) if !ok { return errors.Errorf("invalid mount type %T", m) @@ -307,7 +307,7 @@ func (fb *Backend) Mkdir(ctx context.Context, m, user, group fileoptypes.Mount, return mkdir(dir, action, u, mnt.m.IdentityMapping()) } -func (fb *Backend) Mkfile(ctx context.Context, m, user, group fileoptypes.Mount, action *pb.FileActionMkFile) error { +func (fb *Backend) Mkfile(_ context.Context, m, user, group fileoptypes.Mount, action *pb.FileActionMkFile) error { mnt, ok := m.(*Mount) if !ok { return errors.Errorf("invalid mount type %T", m) @@ -328,7 +328,7 @@ func (fb *Backend) Mkfile(ctx context.Context, m, user, group fileoptypes.Mount, return mkfile(dir, action, u, mnt.m.IdentityMapping()) } -func (fb *Backend) Symlink(ctx context.Context, m, user, group fileoptypes.Mount, action *pb.FileActionSymlink) error { +func (fb *Backend) Symlink(_ context.Context, m, user, group fileoptypes.Mount, action *pb.FileActionSymlink) error { mnt, ok := m.(*Mount) if !ok { return errors.Errorf("invalid mount type %T", m) @@ -349,7 +349,7 @@ func (fb *Backend) Symlink(ctx context.Context, m, user, group fileoptypes.Mount return symlink(dir, action, u, mnt.m.IdentityMapping()) } -func (fb *Backend) Rm(ctx context.Context, m fileoptypes.Mount, action *pb.FileActionRm) error { +func (fb *Backend) Rm(_ context.Context, m fileoptypes.Mount, action *pb.FileActionRm) error { mnt, ok := m.(*Mount) if !ok { return errors.Errorf("invalid mount type %T", m) diff --git a/solver/llbsolver/history/buildhistory.go b/solver/llbsolver/history/buildhistory.go index b693e2330973..6871c79e57c3 100644 --- a/solver/llbsolver/history/buildhistory.go +++ b/solver/llbsolver/history/buildhistory.go @@ -516,7 +516,7 @@ func (h *Queue) AcquireFinalizer(ref string) (<-chan struct{}, func()) { }) } -func (h *Queue) Finalize(ctx context.Context, ref string) error { +func (h *Queue) Finalize(_ context.Context, ref string) error { h.mu.Lock() f, ok := h.finalizers[ref] h.mu.Unlock() diff --git a/solver/llbsolver/history/migrate.go b/solver/llbsolver/history/migrate.go index e16599f19ea0..977b584ce683 100644 --- a/solver/llbsolver/history/migrate.go +++ b/solver/llbsolver/history/migrate.go @@ -31,7 +31,7 @@ func (h *Queue) migrateV2() error { return err } defer release(context.WithoutCancel(ctx)) - return b.ForEach(func(key, dt []byte) error { + return b.ForEach(func(key, _ []byte) error { recs, err := h.opt.LeaseManager.ListResources(ctx, leases.Lease{ID: h.leaseID(string(key))}) if err != nil { if cerrdefs.IsNotFound(err) { diff --git a/solver/llbsolver/history/pubsub_test.go b/solver/llbsolver/history/pubsub_test.go index 444dfdb42517..0cf562cbb78f 100644 --- a/solver/llbsolver/history/pubsub_test.go +++ b/solver/llbsolver/history/pubsub_test.go @@ -52,7 +52,7 @@ func TestPubsubClose(t *testing.T) { } } -func TestPubsubCloseIdempotent(t *testing.T) { +func TestPubsubCloseIdempotent(*testing.T) { ps := &pubsub[int]{m: map[*channel[int]]struct{}{}} sub := ps.Subscribe() diff --git a/solver/llbsolver/mounts/mount.go b/solver/llbsolver/mounts/mount.go index 58a962a8081d..67e299f71879 100644 --- a/solver/llbsolver/mounts/mount.go +++ b/solver/llbsolver/mounts/mount.go @@ -189,7 +189,7 @@ type sshMount struct { idmap *user.IdentityMapping } -func (sm *sshMount) Mount(ctx context.Context, readonly bool, g session.Group) (snapshot.Mountable, error) { +func (sm *sshMount) Mount(context.Context, bool, session.Group) (snapshot.Mountable, error) { return &sshMountInstance{sm: sm, idmap: sm.idmap}, nil } @@ -276,7 +276,7 @@ type secretMount struct { idmap *user.IdentityMapping } -func (sm *secretMount) Mount(ctx context.Context, readonly bool, g session.Group) (snapshot.Mountable, error) { +func (sm *secretMount) Mount(context.Context, bool, session.Group) (snapshot.Mountable, error) { return &secretMountInstance{sm: sm, idmap: sm.idmap}, nil } @@ -395,7 +395,7 @@ type tmpfs struct { opt *pb.TmpfsOpt } -func (f *tmpfs) Mount(ctx context.Context, readonly bool, g session.Group) (snapshot.Mountable, error) { +func (f *tmpfs) Mount(_ context.Context, readonly bool, _ session.Group) (snapshot.Mountable, error) { return &tmpfsMount{readonly: readonly, idmap: f.idmap, opt: f.opt}, nil } diff --git a/solver/llbsolver/ops/build.go b/solver/llbsolver/ops/build.go index 354b91a6dce1..a3765275b205 100644 --- a/solver/llbsolver/ops/build.go +++ b/solver/llbsolver/ops/build.go @@ -39,7 +39,7 @@ func NewBuildOp(v solver.Vertex, op *pb.Op_Build, b frontend.FrontendLLBBridge, }, nil } -func (b *BuildOp) CacheMap(ctx context.Context, job solver.JobContext, index int) (*solver.CacheMap, bool, error) { +func (b *BuildOp) CacheMap(context.Context, solver.JobContext, int) (*solver.CacheMap, bool, error) { dt, err := json.Marshal(struct { Type string Exec *pb.BuildOp @@ -161,7 +161,7 @@ func (b *BuildOp) Exec(ctx context.Context, job solver.JobContext, inputs []solv return []solver.Result{r}, err } -func (b *BuildOp) Acquire(ctx context.Context) (solver.ReleaseFunc, error) { +func (b *BuildOp) Acquire(context.Context) (solver.ReleaseFunc, error) { // buildOp itself does not count towards parallelism budget. return func() {}, nil } diff --git a/solver/llbsolver/ops/diff.go b/solver/llbsolver/ops/diff.go index d4e0fe2e3428..d7081376f011 100644 --- a/solver/llbsolver/ops/diff.go +++ b/solver/llbsolver/ops/diff.go @@ -33,7 +33,7 @@ func NewDiffOp(v solver.Vertex, op *pb.Op_Diff, w worker.Worker) (solver.Op, err }, nil } -func (d *diffOp) CacheMap(ctx context.Context, jobCtx solver.JobContext, index int) (*solver.CacheMap, bool, error) { +func (d *diffOp) CacheMap(context.Context, solver.JobContext, int) (*solver.CacheMap, bool, error) { dt, err := json.Marshal(struct { Type string Diff *pb.DiffOp @@ -65,7 +65,7 @@ func (d *diffOp) CacheMap(ctx context.Context, jobCtx solver.JobContext, index i return cm, true, nil } -func (d *diffOp) Exec(ctx context.Context, jobCtx solver.JobContext, inputs []solver.Result) ([]solver.Result, error) { +func (d *diffOp) Exec(ctx context.Context, _ solver.JobContext, inputs []solver.Result) ([]solver.Result, error) { var curInput int var lowerRef cache.ImmutableRef @@ -123,6 +123,6 @@ func (d *diffOp) Exec(ctx context.Context, jobCtx solver.JobContext, inputs []so return []solver.Result{worker.NewWorkerRefResult(diffRef, d.worker)}, nil } -func (d *diffOp) Acquire(ctx context.Context) (release solver.ReleaseFunc, err error) { +func (d *diffOp) Acquire(context.Context) (release solver.ReleaseFunc, err error) { return func() {}, nil } diff --git a/solver/llbsolver/ops/exec.go b/solver/llbsolver/ops/exec.go index 0ebed560c51c..a6515d78c738 100644 --- a/solver/llbsolver/ops/exec.go +++ b/solver/llbsolver/ops/exec.go @@ -111,7 +111,7 @@ func checkShouldClearCacheOpts(m *pb.Mount) bool { return true } -func (e *ExecOp) CacheMap(ctx context.Context, jobCtx solver.JobContext, index int) (*solver.CacheMap, bool, error) { +func (e *ExecOp) CacheMap(context.Context, solver.JobContext, int) (*solver.CacheMap, bool, error) { op := cloneExecOp(e.op) for i := range op.Meta.ExtraHosts { diff --git a/solver/llbsolver/ops/exec_binfmt.go b/solver/llbsolver/ops/exec_binfmt.go index 460ec4014b54..a92fe9bf6646 100644 --- a/solver/llbsolver/ops/exec_binfmt.go +++ b/solver/llbsolver/ops/exec_binfmt.go @@ -37,7 +37,7 @@ type emulator struct { idmap *user.IdentityMapping } -func (e *emulator) Mount(ctx context.Context, readonly bool) (snapshot.Mountable, error) { +func (e *emulator) Mount(context.Context, bool) (snapshot.Mountable, error) { return &staticEmulatorMount{path: e.path, idmap: e.idmap}, nil } @@ -132,7 +132,7 @@ func getEmulator(ctx context.Context, p *pb.Platform) (*emulator, error) { // qemu emulator setup on SELinux-enabled systems. Since the security.selinux xattr // is not critical for the emulator functionality, we safely ignore these errors // while preserving other xattr error handling. -func ignoreSELinuxXAttrErrorHandler(dst, src, xattrKey string, err error) error { +func ignoreSELinuxXAttrErrorHandler(_, _, xattrKey string, err error) error { // Ignore ENOTSUP errors specifically for security.selinux xattr // This allows qemu emulator setup to succeed on SELinux systems // when copying to filesystems that don't support SELinux xattrs diff --git a/solver/llbsolver/ops/exec_test.go b/solver/llbsolver/ops/exec_test.go index ecf783140831..897e0d40d051 100644 --- a/solver/llbsolver/ops/exec_test.go +++ b/solver/llbsolver/ops/exec_test.go @@ -330,7 +330,7 @@ func (j *jobCtx) Session() session.Group { return j.g } -func (j *jobCtx) Cleanup(f func() error) error { +func (j *jobCtx) Cleanup(func() error) error { return errors.Errorf("cleanup not implemented for %T", j) } diff --git a/solver/llbsolver/ops/file.go b/solver/llbsolver/ops/file.go index 50575805c64d..5321f3bd1d78 100644 --- a/solver/llbsolver/ops/file.go +++ b/solver/llbsolver/ops/file.go @@ -52,7 +52,7 @@ func NewFileOp(v solver.Vertex, op *pb.Op_File, cm cache.Manager, parallelism *s }, nil } -func (f *fileOp) CacheMap(ctx context.Context, jobCtx solver.JobContext, index int) (*solver.CacheMap, bool, error) { +func (f *fileOp) CacheMap(context.Context, solver.JobContext, int) (*solver.CacheMap, bool, error) { selectors := map[int][]opsutils.Selector{} invalidSelectors := map[int]struct{}{} diff --git a/solver/llbsolver/ops/file_test.go b/solver/llbsolver/ops/file_test.go index d972eabfb001..57f8ec2de433 100644 --- a/solver/llbsolver/ops/file_test.go +++ b/solver/llbsolver/ops/file_test.go @@ -645,7 +645,7 @@ func (b *testFileBackend) Mkfile(_ context.Context, m, user, group fileoptypes.M return nil } -func (b *testFileBackend) Symlink(_ context.Context, m, user, group fileoptypes.Mount, a *pb.FileActionSymlink) error { +func (b *testFileBackend) Symlink(_ context.Context, m, _, _ fileoptypes.Mount, a *pb.FileActionSymlink) error { mm := m.(*testMount) mm.id += "-symlink" mm.chain = append(mm.chain, mod{symlink: a}) @@ -680,7 +680,7 @@ func (b *testFileRefBackend) NewRef(id string) *testFileRef { return r } -func (b *testFileRefBackend) Prepare(ctx context.Context, ref fileoptypes.Ref, readonly bool, _ session.Group) (fileoptypes.Mount, error) { +func (b *testFileRefBackend) Prepare(_ context.Context, ref fileoptypes.Ref, readonly bool, _ session.Group) (fileoptypes.Mount, error) { var active *testFileRef if ref == nil { active = b.NewRef("scratch") diff --git a/solver/llbsolver/ops/merge.go b/solver/llbsolver/ops/merge.go index db7f180785ed..3277036b9d6c 100644 --- a/solver/llbsolver/ops/merge.go +++ b/solver/llbsolver/ops/merge.go @@ -34,7 +34,7 @@ func NewMergeOp(v solver.Vertex, op *pb.Op_Merge, w worker.Worker) (solver.Op, e }, nil } -func (m *mergeOp) CacheMap(ctx context.Context, jobCtx solver.JobContext, index int) (*solver.CacheMap, bool, error) { +func (m *mergeOp) CacheMap(context.Context, solver.JobContext, int) (*solver.CacheMap, bool, error) { dt, err := json.Marshal(struct { Type string Merge *pb.MergeOp @@ -62,7 +62,7 @@ func (m *mergeOp) CacheMap(ctx context.Context, jobCtx solver.JobContext, index return cm, true, nil } -func (m *mergeOp) Exec(ctx context.Context, jobCtx solver.JobContext, inputs []solver.Result) ([]solver.Result, error) { +func (m *mergeOp) Exec(ctx context.Context, _ solver.JobContext, inputs []solver.Result) ([]solver.Result, error) { refs := make([]cache.ImmutableRef, len(inputs)) var index int for _, inp := range inputs { @@ -94,6 +94,6 @@ func (m *mergeOp) Exec(ctx context.Context, jobCtx solver.JobContext, inputs []s return []solver.Result{worker.NewWorkerRefResult(mergedRef, m.worker)}, nil } -func (m *mergeOp) Acquire(ctx context.Context) (release solver.ReleaseFunc, err error) { +func (m *mergeOp) Acquire(context.Context) (release solver.ReleaseFunc, err error) { return func() {}, nil } diff --git a/solver/llbsolver/ops/passthrough.go b/solver/llbsolver/ops/passthrough.go index 14561904a8cf..b71cf80ce6f8 100644 --- a/solver/llbsolver/ops/passthrough.go +++ b/solver/llbsolver/ops/passthrough.go @@ -55,7 +55,7 @@ func (p *passthroughOp) CacheMap(context.Context, solver.JobContext, int) (*solv return cm, true, nil } -func (p *passthroughOp) Exec(ctx context.Context, jobCtx solver.JobContext, inputs []solver.Result) ([]solver.Result, error) { +func (p *passthroughOp) Exec(_ context.Context, _ solver.JobContext, inputs []solver.Result) ([]solver.Result, error) { outputs := make([]solver.Result, len(p.op.Outputs)) for i, inputIndex := range p.op.Outputs { if inputIndex < 0 || inputIndex >= int64(len(inputs)) { @@ -69,6 +69,6 @@ func (p *passthroughOp) Exec(ctx context.Context, jobCtx solver.JobContext, inpu return outputs, nil } -func (p *passthroughOp) Acquire(ctx context.Context) (solver.ReleaseFunc, error) { +func (p *passthroughOp) Acquire(context.Context) (solver.ReleaseFunc, error) { return func() {}, nil } diff --git a/solver/llbsolver/ops/user_linux.go b/solver/llbsolver/ops/user_linux.go index 9dfdcb732eb7..736f555e215f 100644 --- a/solver/llbsolver/ops/user_linux.go +++ b/solver/llbsolver/ops/user_linux.go @@ -16,7 +16,7 @@ import ( const maxUserFileBytes = 10 << 20 -func getReadUserFn(_ worker.Worker) func(chopt *pb.ChownOpt, mu, mg snapshot.Mountable) (*copy.User, error) { +func getReadUserFn(worker.Worker) func(chopt *pb.ChownOpt, mu, mg snapshot.Mountable) (*copy.User, error) { return readUser } diff --git a/solver/llbsolver/ops/user_other.go b/solver/llbsolver/ops/user_other.go index a8b01f97686a..031418c07257 100644 --- a/solver/llbsolver/ops/user_other.go +++ b/solver/llbsolver/ops/user_other.go @@ -10,11 +10,11 @@ import ( copy "github.com/tonistiigi/fsutil/copy" ) -func getReadUserFn(_ worker.Worker) func(chopt *pb.ChownOpt, mu, mg snapshot.Mountable) (*copy.User, error) { +func getReadUserFn(worker.Worker) func(chopt *pb.ChownOpt, mu, mg snapshot.Mountable) (*copy.User, error) { return readUser } -func readUser(chopt *pb.ChownOpt, mu, mg snapshot.Mountable) (*copy.User, error) { +func readUser(chopt *pb.ChownOpt, _, _ snapshot.Mountable) (*copy.User, error) { if chopt == nil { return nil, nil } diff --git a/solver/llbsolver/proc/provenance.go b/solver/llbsolver/proc/provenance.go index c2bcb55fc265..5606830a7bd4 100644 --- a/solver/llbsolver/proc/provenance.go +++ b/solver/llbsolver/proc/provenance.go @@ -17,7 +17,7 @@ import ( ) func ProvenanceProcessor(slsaVersion provenancetypes.ProvenanceSLSA, attrs map[string]string, customEnv map[string]any) llbsolver.Processor { - return func(ctx context.Context, res *llbsolver.Result, s *llbsolver.Solver, j *solver.Job, usage *resources.SysSampler) (*llbsolver.Result, error) { + return func(ctx context.Context, res *llbsolver.Result, _ *llbsolver.Solver, j *solver.Job, usage *resources.SysSampler) (*llbsolver.Result, error) { span, ctx := tracing.StartSpan(ctx, "create provenance attestation") defer span.End() diff --git a/solver/llbsolver/proc/sbom.go b/solver/llbsolver/proc/sbom.go index b37255ad1854..cb9fa77a8e2d 100644 --- a/solver/llbsolver/proc/sbom.go +++ b/solver/llbsolver/proc/sbom.go @@ -18,7 +18,7 @@ import ( ) func SBOMProcessor(scannerRef string, scannerPlatform ocispecs.Platform, useCache bool, resolveMode string, params map[string]string) llbsolver.Processor { - return func(ctx context.Context, res *llbsolver.Result, s *llbsolver.Solver, j *solver.Job, usage *resources.SysSampler) (*llbsolver.Result, error) { + return func(ctx context.Context, res *llbsolver.Result, s *llbsolver.Solver, j *solver.Job, _ *resources.SysSampler) (*llbsolver.Result, error) { // skip sbom generation if we already have an sbom if sbom.HasSBOM(res.Result) { return res, nil diff --git a/solver/llbsolver/provenance.go b/solver/llbsolver/provenance.go index d0fd0860fc0f..1d310ebd0eda 100644 --- a/solver/llbsolver/provenance.go +++ b/solver/llbsolver/provenance.go @@ -694,7 +694,7 @@ type cacheExporter struct { m map[any]struct{} } -func (ce *cacheExporter) Add(dgst digest.Digest, deps [][]solver.CacheLink, results []solver.CacheExportResult) (solver.CacheExporterRecord, bool, error) { +func (ce *cacheExporter) Add(_ digest.Digest, _ [][]solver.CacheLink, results []solver.CacheExportResult) (solver.CacheExporterRecord, bool, error) { for _, res := range results { if res.EdgeVertex == "" { continue diff --git a/solver/llbsolver/provenance/buildconfig.go b/solver/llbsolver/provenance/buildconfig.go index 7e92990c88f2..85f04ada98d4 100644 --- a/solver/llbsolver/provenance/buildconfig.go +++ b/solver/llbsolver/provenance/buildconfig.go @@ -13,7 +13,7 @@ import ( // AddBuildConfig populates the build configuration and source info // on a SLSA v1 provenance predicate from the given capture and result. -func AddBuildConfig(ctx context.Context, p *provenancetypes.ProvenancePredicateSLSA1, c *Capture, rp solver.ResultProxy, withUsage bool) (map[digest.Digest]int, error) { +func AddBuildConfig(_ context.Context, p *provenancetypes.ProvenancePredicateSLSA1, c *Capture, rp solver.ResultProxy, withUsage bool) (map[digest.Digest]int, error) { def := rp.Definition() steps, indexes, err := toBuildSteps(def, c, withUsage) if err != nil { diff --git a/solver/llbsolver/provenance_store.go b/solver/llbsolver/provenance_store.go index 950e00c6ff9e..7d7b0ecff51b 100644 --- a/solver/llbsolver/provenance_store.go +++ b/solver/llbsolver/provenance_store.go @@ -32,16 +32,16 @@ func newProvenanceStore() *provenanceStore { } } -func (s *provenanceStore) register(def *pb.Definition, req *provenancetypes.RequestProvenance) (string, digest.Digest, error) { +func (s *provenanceStore) register(def *pb.Definition, req *provenancetypes.RequestProvenance) (string, error) { if s == nil || def == nil || req == nil { - return "", "", nil + return "", nil } dgst, err := definitionHeadDigest(def) if err != nil { - return "", "", err + return "", err } if dgst == "" { - return "", "", nil + return "", nil } recordID := identity.NewID() s.mu.Lock() @@ -54,7 +54,7 @@ func (s *provenanceStore) register(def *pb.Definition, req *provenancetypes.Requ } s.byDigest[dgst][recordID] = struct{}{} s.mu.Unlock() - return recordID, dgst, nil + return recordID, nil } func (s *provenanceStore) unregister(recordIDs []string) { @@ -141,7 +141,7 @@ func (b *provenanceBridge) registerProvenanceRef(def *pb.Definition, ref solver. } } reqProv := req.bridge.requestProvenance(srcs) - recordID, _, err := b.provenanceStore.register(def, reqProv) + recordID, err := b.provenanceStore.register(def, reqProv) if err != nil { return err } diff --git a/solver/llbsolver/provenance_store_test.go b/solver/llbsolver/provenance_store_test.go index 8cbc374e4ecc..b35f76d20f6c 100644 --- a/solver/llbsolver/provenance_store_test.go +++ b/solver/llbsolver/provenance_store_test.go @@ -25,7 +25,7 @@ func TestProvenanceStoreLooksUpByDefinitionDigest(t *testing.T) { }, } - recordID, _, err := store.register(pbDef, req) + recordID, err := store.register(pbDef, req) require.NoError(t, err) require.NotEmpty(t, recordID) require.Equal(t, pbDefBefore, pbDef) @@ -64,7 +64,7 @@ func TestProvenanceStoreOmitsInputRoot(t *testing.T) { }, } - recordID, _, err := store.register(pbDef, req) + recordID, err := store.register(pbDef, req) require.NoError(t, err) require.NotEmpty(t, recordID) @@ -89,7 +89,7 @@ func TestProvenanceStoreLookupAfterDefinitionOpRoundTrip(t *testing.T) { }, } - recordID, _, err := store.register(pbDef, req) + recordID, err := store.register(pbDef, req) require.NoError(t, err) require.NotEmpty(t, recordID) @@ -117,7 +117,7 @@ func TestProvenanceStoreUnregister(t *testing.T) { }, } - recordID, _, err := store.register(pbDef, req) + recordID, err := store.register(pbDef, req) require.NoError(t, err) require.NotEmpty(t, recordID) @@ -136,14 +136,14 @@ func TestProvenanceStoreAmbiguousDigest(t *testing.T) { pbDef := def.ToPB() store := newProvenanceStore() - _, _, err = store.register(pbDef, &provenancetypes.RequestProvenance{ + _, err = store.register(pbDef, &provenancetypes.RequestProvenance{ Request: &provenancetypes.Parameters{ Frontend: "dockerfile.v0", Args: map[string]string{"target": "base"}, }, }) require.NoError(t, err) - _, _, err = store.register(pbDef, &provenancetypes.RequestProvenance{ + _, err = store.register(pbDef, &provenancetypes.RequestProvenance{ Request: &provenancetypes.Parameters{ Frontend: "dockerfile.v0", Args: map[string]string{"target": "other"}, diff --git a/solver/llbsolver/vertex.go b/solver/llbsolver/vertex.go index 61dd3e3c4190..f2c83216c4f3 100644 --- a/solver/llbsolver/vertex.go +++ b/solver/llbsolver/vertex.go @@ -55,7 +55,7 @@ type LoadOpt func(*pb.Op, *pb.OpMetadata, *solver.VertexOptions) error func WithValidateCaps() LoadOpt { cs := pb.Caps.CapSet(pb.Caps.All()) - return func(_ *pb.Op, md *pb.OpMetadata, opt *solver.VertexOptions) error { + return func(_ *pb.Op, md *pb.OpMetadata, _ *solver.VertexOptions) error { if md != nil { for c := range md.Caps { if err := cs.Supports(apicaps.CapID(c)); err != nil { @@ -89,7 +89,7 @@ func WithLinuxResourcesMetadata() LoadOpt { func NormalizeRuntimePlatforms() LoadOpt { var defaultPlatform *pb.Platform - return func(op *pb.Op, _ *pb.OpMetadata, opt *solver.VertexOptions) error { + return func(op *pb.Op, _ *pb.OpMetadata, _ *solver.VertexOptions) error { if op.Platform == nil { if defaultPlatform == nil { p := platforms.DefaultSpec() @@ -127,7 +127,7 @@ func NormalizeRuntimePlatforms() LoadOpt { } func ValidateEntitlements(ent entitlements.Set, cdiManager *cdidevices.Manager) LoadOpt { - return func(op *pb.Op, _ *pb.OpMetadata, opt *solver.VertexOptions) error { + return func(op *pb.Op, _ *pb.OpMetadata, _ *solver.VertexOptions) error { switch op := op.Op.(type) { case *pb.Op_Exec: v := entitlements.Values{ @@ -220,7 +220,7 @@ type detectPrunedCacheID struct { ids map[string]bool } -func (dpc *detectPrunedCacheID) Load(op *pb.Op, md *pb.OpMetadata, opt *solver.VertexOptions) error { +func (dpc *detectPrunedCacheID) Load(op *pb.Op, md *pb.OpMetadata, _ *solver.VertexOptions) error { if md == nil || !md.IgnoreCache { return nil } diff --git a/solver/memorycachestorage.go b/solver/memorycachestorage.go index ef28e44fc644..c56205aacc2f 100644 --- a/solver/memorycachestorage.go +++ b/solver/memorycachestorage.go @@ -292,7 +292,7 @@ func (s *inMemoryResultStore) Save(r Result, createdAt time.Time) (CacheResult, return CacheResult{ID: r.ID(), CreatedAt: createdAt}, nil } -func (s *inMemoryResultStore) Load(ctx context.Context, res CacheResult) (Result, error) { +func (s *inMemoryResultStore) Load(_ context.Context, res CacheResult) (Result, error) { v, ok := s.m.Load(res.ID) if !ok { return nil, errors.WithStack(ErrNotFound) @@ -300,11 +300,11 @@ func (s *inMemoryResultStore) Load(ctx context.Context, res CacheResult) (Result return v, nil } -func (s *inMemoryResultStore) LoadRemotes(_ context.Context, _ CacheResult, _ *compression.Config, _ session.Group) ([]*Remote, error) { +func (s *inMemoryResultStore) LoadRemotes(context.Context, CacheResult, *compression.Config, session.Group) ([]*Remote, error) { return nil, nil } -func (s *inMemoryResultStore) Exists(ctx context.Context, id string) bool { +func (s *inMemoryResultStore) Exists(_ context.Context, id string) bool { _, ok := s.m.Load(id) return ok } diff --git a/solver/resolvercache_test.go b/solver/resolvercache_test.go index d8af7eb48d48..f627266e909e 100644 --- a/solver/resolvercache_test.go +++ b/solver/resolvercache_test.go @@ -147,7 +147,7 @@ func (m *mockResolverCache) Lock(key any) ([]any, func(any) error, error) { func TestCombinedResolverCache_BasicMerge(t *testing.T) { rc1 := &mockResolverCache{ - lockFn: func(key any) ([]any, func(any) error, error) { + lockFn: func(any) ([]any, func(any) error, error) { return []any{"a1", "a2"}, func(v any) error { if v != nil { assert.Equal(t, "merged", v) @@ -157,7 +157,7 @@ func TestCombinedResolverCache_BasicMerge(t *testing.T) { }, } rc2 := &mockResolverCache{ - lockFn: func(key any) ([]any, func(any) error, error) { + lockFn: func(any) ([]any, func(any) error, error) { return []any{"b1"}, func(v any) error { if v != nil { assert.Equal(t, "merged", v) @@ -193,8 +193,8 @@ func TestCombinedResolverCache_ErrorHandlingAndRollback(t *testing.T) { var mu sync.Mutex rc1 := &mockResolverCache{ - lockFn: func(key any) ([]any, func(any) error, error) { - return []any{"x"}, func(v any) error { + lockFn: func(any) ([]any, func(any) error, error) { + return []any{"x"}, func(any) error { mu.Lock() released = append(released, "rc1") mu.Unlock() @@ -204,7 +204,7 @@ func TestCombinedResolverCache_ErrorHandlingAndRollback(t *testing.T) { } rc2 := &mockResolverCache{ - lockFn: func(key any) ([]any, func(any) error, error) { + lockFn: func(any) ([]any, func(any) error, error) { return nil, nil, errors.New("rc2 failed") }, } @@ -224,16 +224,16 @@ func TestCombinedResolverCache_ErrorHandlingAndRollback(t *testing.T) { func TestCombinedResolverCache_ParallelReleaseErrorPropagation(t *testing.T) { var count int rc1 := &mockResolverCache{ - lockFn: func(key any) ([]any, func(any) error, error) { - return []any{"v1"}, func(v any) error { + lockFn: func(any) ([]any, func(any) error, error) { + return []any{"v1"}, func(any) error { count++ return errors.New("rc1 release failed") }, nil }, } rc2 := &mockResolverCache{ - lockFn: func(key any) ([]any, func(any) error, error) { - return []any{"v2"}, func(v any) error { + lockFn: func(any) ([]any, func(any) error, error) { + return []any{"v2"}, func(any) error { count++ return nil }, nil diff --git a/solver/scheduler.go b/solver/scheduler.go index 825542647b9c..2a7da09e3896 100644 --- a/solver/scheduler.go +++ b/solver/scheduler.go @@ -344,7 +344,7 @@ func (pf *pipeFactory) NewInputRequest(ee Edge, req *edgeRequest) pipeReceiver { target := pf.s.ef.getEdge(ee) if target == nil { debugSchedulerInconsistentGraphState(ee) - return pf.NewFuncRequest(func(_ context.Context) (any, error) { + return pf.NewFuncRequest(func(context.Context) (any, error) { return nil, errdefs.Internal(errors.Errorf("failed to get edge: inconsistent graph state in edge %s %s %d", ee.Vertex.Name(), ee.Vertex.Digest(), ee.Index)) }) } diff --git a/solver/scheduler_test.go b/solver/scheduler_test.go index a27be45e3b79..d9eeb5106fb1 100644 --- a/solver/scheduler_test.go +++ b/solver/scheduler_test.go @@ -586,7 +586,7 @@ func TestSingleCancelParallel(t *testing.T) { Vertex: vtx(vtxOpt{ name: "v2", value: "result2", - cachePreFunc: func(ctx context.Context) error { + cachePreFunc: func(context.Context) error { close(firstReady) time.Sleep(200 * time.Millisecond) cancel(errors.WithStack(context.Canceled)) @@ -1258,7 +1258,7 @@ func TestErrorReturns(t *testing.T) { name: "v1", cacheKeySeed: "seed1", value: "result1", - cachePreFunc: func(ctx context.Context) error { + cachePreFunc: func(context.Context) error { return errors.New("error-from-test") }, })}, @@ -1299,7 +1299,7 @@ func TestErrorReturns(t *testing.T) { name: "v1", cacheKeySeed: "seed1", value: "result1", - cachePreFunc: func(ctx context.Context) error { + cachePreFunc: func(context.Context) error { return context.Canceled }, })}, @@ -1345,7 +1345,7 @@ func TestErrorReturns(t *testing.T) { name: "v2", cacheKeySeed: "seed3", value: "result2", - execPreFunc: func(ctx context.Context) error { + execPreFunc: func(context.Context) error { return errors.New("exec-error-from-test") }, })}, @@ -3820,7 +3820,7 @@ func (v *vertex) cacheMap(ctx context.Context) error { return nil } -func (v *vertex) CacheMap(ctx context.Context, jobCtx JobContext, index int) (*CacheMap, bool, error) { +func (v *vertex) CacheMap(ctx context.Context, _ JobContext, index int) (*CacheMap, bool, error) { if index == 0 { if err := v.cacheMap(ctx); err != nil { return nil, false, err @@ -3857,7 +3857,7 @@ func (v *vertex) exec(ctx context.Context, inputs []Result) error { return nil } -func (v *vertex) Exec(ctx context.Context, job JobContext, inputs []Result) (outputs []Result, err error) { +func (v *vertex) Exec(ctx context.Context, _ JobContext, inputs []Result) (outputs []Result, err error) { if err := v.exec(ctx, inputs); err != nil { return nil, err } @@ -3867,7 +3867,7 @@ func (v *vertex) Exec(ctx context.Context, job JobContext, inputs []Result) (out return []Result{&dummyResult{id: identity.NewID(), value: v.opt.value}}, nil } -func (v *vertex) Acquire(ctx context.Context) (ReleaseFunc, error) { +func (v *vertex) Acquire(context.Context) (ReleaseFunc, error) { return func() {}, nil } @@ -3911,14 +3911,14 @@ func (v *vertexConst) Sys() any { return v } -func (v *vertexConst) Exec(ctx context.Context, jobCtx JobContext, inputs []Result) (outputs []Result, err error) { +func (v *vertexConst) Exec(ctx context.Context, _ JobContext, inputs []Result) (outputs []Result, err error) { if err := v.exec(ctx, inputs); err != nil { return nil, err } return []Result{&dummyResult{id: identity.NewID(), intValue: v.value}}, nil } -func (v *vertexConst) Acquire(ctx context.Context) (ReleaseFunc, error) { +func (v *vertexConst) Acquire(context.Context) (ReleaseFunc, error) { return func() {}, nil } @@ -3944,7 +3944,7 @@ func (v *vertexSum) Sys() any { return v } -func (v *vertexSum) Exec(ctx context.Context, jobCtx JobContext, inputs []Result) (outputs []Result, err error) { +func (v *vertexSum) Exec(ctx context.Context, _ JobContext, inputs []Result) (outputs []Result, err error) { if err := v.exec(ctx, inputs); err != nil { return nil, err } @@ -3959,11 +3959,13 @@ func (v *vertexSum) Exec(ctx context.Context, jobCtx JobContext, inputs []Result return []Result{&dummyResult{id: identity.NewID(), intValue: s}}, nil } -func (v *vertexSum) Acquire(ctx context.Context) (ReleaseFunc, error) { +func (v *vertexSum) Acquire(context.Context) (ReleaseFunc, error) { return func() {}, nil } // vtxAdd returns a vertex that outputs each input plus a constant +// +//nolint:unparam func vtxAdd(v int, opt vtxOpt) *vertexAdd { if opt.cacheKeySeed == "" { opt.cacheKeySeed = fmt.Sprintf("add-%d-%d", v, len(opt.inputs)) @@ -3985,7 +3987,7 @@ func (v *vertexAdd) Sys() any { return v } -func (v *vertexAdd) Exec(ctx context.Context, jobCtx JobContext, inputs []Result) (outputs []Result, err error) { +func (v *vertexAdd) Exec(ctx context.Context, _ JobContext, inputs []Result) (outputs []Result, err error) { if err := v.exec(ctx, inputs); err != nil { return nil, err } @@ -3999,7 +4001,7 @@ func (v *vertexAdd) Exec(ctx context.Context, jobCtx JobContext, inputs []Result return outputs, nil } -func (v *vertexAdd) Acquire(ctx context.Context) (ReleaseFunc, error) { +func (v *vertexAdd) Acquire(context.Context) (ReleaseFunc, error) { return func() {}, nil } @@ -4025,7 +4027,7 @@ func (v *vertexSubBuild) Sys() any { return v } -func (v *vertexSubBuild) Exec(ctx context.Context, jobCtx JobContext, inputs []Result) (outputs []Result, err error) { +func (v *vertexSubBuild) Exec(ctx context.Context, _ JobContext, inputs []Result) (outputs []Result, err error) { if err := v.exec(ctx, inputs); err != nil { return nil, err } @@ -4036,7 +4038,7 @@ func (v *vertexSubBuild) Exec(ctx context.Context, jobCtx JobContext, inputs []R return []Result{res}, nil } -func (v *vertexSubBuild) Acquire(ctx context.Context) (ReleaseFunc, error) { +func (v *vertexSubBuild) Acquire(context.Context) (ReleaseFunc, error) { return func() {}, nil } @@ -4108,6 +4110,7 @@ func unwrapInt(res Result) int { return r.intValue } +//nolint:unparam func blockingFuncion(i int) func(context.Context) error { limit := int64(i) block := make(chan struct{}) @@ -4138,7 +4141,7 @@ func (cm *trackingCacheManager) Load(ctx context.Context, rec *CacheRecord) (Res return cm.CacheManager.Load(ctx, rec) } -func digestFromResult(ctx context.Context, res Result, _ session.Group) (digest.Digest, error) { +func digestFromResult(_ context.Context, res Result, _ session.Group) (digest.Digest, error) { return digest.FromBytes([]byte(unwrap(res))), nil } @@ -4148,7 +4151,7 @@ func testExporterOpts(all bool) CacheExportOpt { mode = CacheExportModeMax } return CacheExportOpt{ - ResolveRemotes: func(ctx context.Context, res Result) ([]*Remote, error) { + ResolveRemotes: func(_ context.Context, res Result) ([]*Remote, error) { if dr, ok := res.Sys().(*dummyResult); ok { return []*Remote{{Descriptors: []ocispecs.Descriptor{{ Annotations: map[string]string{"value": fmt.Sprintf("%d", dr.intValue)}, diff --git a/solver/testutil/cachestorage_testsuite.go b/solver/testutil/cachestorage_testsuite.go index eef838ef5fdf..4d9185d59a6c 100644 --- a/solver/testutil/cachestorage_testsuite.go +++ b/solver/testutil/cachestorage_testsuite.go @@ -87,7 +87,7 @@ func testResults(t *testing.T, st solver.CacheKeyStorage) { require.True(t, ok) // empty result - err = st.WalkResults("baz", func(r solver.CacheResult) error { + err = st.WalkResults("baz", func(solver.CacheResult) error { require.Fail(t, "unreachable") return nil }) diff --git a/source/containerblob/pull.go b/source/containerblob/pull.go index bd0867d437d5..5b3387891745 100644 --- a/source/containerblob/pull.go +++ b/source/containerblob/pull.go @@ -81,7 +81,7 @@ func (p *puller) ensureResolver(ctx context.Context, g session.Group) error { return nil } -func (p *puller) CacheKey(ctx context.Context, jobCtx solver.JobContext, index int) (cacheKey string, imgDigest string, cacheOpts solver.CacheOpts, cacheDone bool, err error) { +func (p *puller) CacheKey(ctx context.Context, _ solver.JobContext, _ int) (cacheKey string, imgDigest string, cacheOpts solver.CacheOpts, cacheDone bool, err error) { dgst := p.id.Reference.Digest() if err := dgst.Validate(); err != nil { return "", "", nil, false, errors.Wrap(err, "invalid reference digest") diff --git a/source/containerblob/source.go b/source/containerblob/source.go index a82f9d4719aa..194a2012acfa 100644 --- a/source/containerblob/source.go +++ b/source/containerblob/source.go @@ -48,7 +48,7 @@ func (is *Source) Identifier(scheme, ref string, attrs map[string]string, platfo } } -func (is *Source) Resolve(ctx context.Context, id source.Identifier, sm *session.Manager, vtx solver.Vertex) (source.SourceInstance, error) { +func (is *Source) Resolve(_ context.Context, id source.Identifier, sm *session.Manager, _ solver.Vertex) (source.SourceInstance, error) { imageIdentifier, ok := id.(*ImageBlobIdentifier) if !ok { return nil, errors.Errorf("invalid image blob identifier %v", id) diff --git a/source/containerimage/ocilayout.go b/source/containerimage/ocilayout.go index c5e9ef0abde1..47e84093a87b 100644 --- a/source/containerimage/ocilayout.go +++ b/source/containerimage/ocilayout.go @@ -39,7 +39,7 @@ type ociLayoutResolver struct { } // Fetcher returns a new fetcher for the provided reference. -func (r *ociLayoutResolver) Fetcher(ctx context.Context, ref string) (remotes.Fetcher, error) { +func (r *ociLayoutResolver) Fetcher(context.Context, string) (remotes.Fetcher, error) { return r, nil } diff --git a/source/containerimage/pull.go b/source/containerimage/pull.go index 3bb13582f56c..ed911f6931db 100644 --- a/source/containerimage/pull.go +++ b/source/containerimage/pull.go @@ -101,7 +101,7 @@ func (p *puller) CacheKey(ctx context.Context, jobCtx solver.JobContext, index i resolver := getOCILayoutResolver(p.store, p.SessionManager, g) p.Resolver = resolver // OCILayout has no need for session - getResolver = func(g session.Group) remotes.Resolver { return resolver } + getResolver = func(session.Group) remotes.Resolver { return resolver } default: } @@ -225,7 +225,7 @@ func (p *puller) Snapshot(ctx context.Context, jobCtx solver.JobContext) (ir cac resolver := getOCILayoutResolver(p.store, p.SessionManager, g) p.Resolver = resolver // OCILayout has no need for session - getResolver = func(g session.Group) remotes.Resolver { return resolver } + getResolver = func(session.Group) remotes.Resolver { return resolver } default: } diff --git a/source/containerimage/source.go b/source/containerimage/source.go index ae3138643288..ffa333aab33d 100644 --- a/source/containerimage/source.go +++ b/source/containerimage/source.go @@ -80,7 +80,7 @@ func (is *Source) Schemes() []string { return []string{srctypes.DockerImageScheme} } -func (is *Source) Identifier(scheme, ref string, attrs map[string]string, platform *pb.Platform) (source.Identifier, error) { +func (is *Source) Identifier(_, ref string, attrs map[string]string, platform *pb.Platform) (source.Identifier, error) { if is.ResolverType == ResolverTypeOCILayout { return is.ociIdentifier(ref, attrs, platform) } @@ -88,7 +88,7 @@ func (is *Source) Identifier(scheme, ref string, attrs map[string]string, platfo return is.registryIdentifier(ref, attrs, platform) } -func (is *Source) Resolve(ctx context.Context, id source.Identifier, sm *session.Manager, vtx solver.Vertex) (source.SourceInstance, error) { +func (is *Source) Resolve(_ context.Context, id source.Identifier, sm *session.Manager, vtx solver.Vertex) (source.SourceInstance, error) { var ( p *puller platform = platforms.DefaultSpec() diff --git a/source/git/mtime_windows.go b/source/git/mtime_windows.go index 7b17bb7e3902..2f19116d5824 100644 --- a/source/git/mtime_windows.go +++ b/source/git/mtime_windows.go @@ -4,6 +4,6 @@ package git import "time" -func lchtimes(_ string, _ time.Time) error { +func lchtimes(string, time.Time) error { return nil } diff --git a/source/git/source.go b/source/git/source.go index 4a658535d056..fd782bd3299f 100644 --- a/source/git/source.go +++ b/source/git/source.go @@ -94,7 +94,7 @@ func (gs *Source) Schemes() []string { return []string{srctypes.GitScheme} } -func (gs *Source) Identifier(scheme, ref string, attrs map[string]string, platform *pb.Platform) (source.Identifier, error) { +func (gs *Source) Identifier(_, ref string, attrs map[string]string, _ *pb.Platform) (source.Identifier, error) { id, err := NewGitIdentifier(ref) if err != nil { return nil, err @@ -390,7 +390,7 @@ func verifyGitSignature(md *Metadata, opts *GitSignatureVerifyOptions) error { }) } -func (gs *Source) Resolve(ctx context.Context, id source.Identifier, sm *session.Manager, _ solver.Vertex) (source.SourceInstance, error) { +func (gs *Source) Resolve(_ context.Context, id source.Identifier, sm *session.Manager, _ solver.Vertex) (source.SourceInstance, error) { gitIdentifier, ok := id.(*GitIdentifier) if !ok { return nil, errors.Errorf("invalid git identifier %v", id) @@ -755,7 +755,7 @@ func (gs *gitSourceHandler) addGitObjectsToMetadata(ctx context.Context, jobCtx return nil } -func (gs *gitSourceHandler) CacheKey(ctx context.Context, jobCtx solver.JobContext, index int) (string, string, solver.CacheOpts, bool, error) { +func (gs *gitSourceHandler) CacheKey(ctx context.Context, jobCtx solver.JobContext, _ int) (string, string, solver.CacheOpts, bool, error) { md, err := gs.resolveMetadata(ctx, jobCtx) if err != nil { return "", "", nil, false, err diff --git a/source/http/source.go b/source/http/source.go index df9f62fda36e..95fdd2525667 100644 --- a/source/http/source.go +++ b/source/http/source.go @@ -77,7 +77,7 @@ func (hs *Source) Schemes() []string { return []string{srctypes.HTTPScheme, srctypes.HTTPSScheme} } -func (hs *Source) Identifier(scheme, ref string, attrs map[string]string, platform *pb.Platform) (source.Identifier, error) { +func (hs *Source) Identifier(scheme, ref string, attrs map[string]string, _ *pb.Platform) (source.Identifier, error) { id, err := NewHTTPIdentifier(ref, scheme == "https") if err != nil { return nil, err @@ -197,7 +197,7 @@ func (hs *Source) ResolveMetadata(ctx context.Context, id *HTTPIdentifier, sm *s return hsh.resolveMetadata(ctx, jobCtx, opt) } -func (hs *Source) Resolve(ctx context.Context, id source.Identifier, sm *session.Manager, _ solver.Vertex) (source.SourceInstance, error) { +func (hs *Source) Resolve(_ context.Context, id source.Identifier, sm *session.Manager, _ solver.Vertex) (source.SourceInstance, error) { httpIdentifier, ok := id.(*HTTPIdentifier) if !ok { return nil, errors.Errorf("invalid http identifier %v", id) @@ -538,7 +538,7 @@ func (hs *httpSourceHandler) resolveMetadataRef(ctx context.Context, jobCtx solv return out, nil } -func (hs *httpSourceHandler) CacheKey(ctx context.Context, jobCtx solver.JobContext, index int) (string, string, solver.CacheOpts, bool, error) { +func (hs *httpSourceHandler) CacheKey(ctx context.Context, jobCtx solver.JobContext, _ int) (string, string, solver.CacheOpts, bool, error) { md, err := hs.resolveMetadata(ctx, jobCtx, MetadataOpts{}) if err != nil { return "", "", nil, false, err diff --git a/source/http/transport.go b/source/http/transport.go index 84e6d511e326..cd64e3841878 100644 --- a/source/http/transport.go +++ b/source/http/transport.go @@ -30,7 +30,7 @@ func (h *sessionHandler) RoundTrip(req *http.Request) (*http.Response, error) { } var resp *http.Response - err := h.sm.Any(context.TODO(), h.g, func(ctx context.Context, _ string, caller session.Caller) error { + err := h.sm.Any(context.TODO(), h.g, func(_ context.Context, _ string, caller session.Caller) error { up, err := upload.New(context.TODO(), caller, req.URL) if err != nil { return err diff --git a/source/local/identifier.go b/source/local/identifier.go index 0222a654e579..c11e542398eb 100644 --- a/source/local/identifier.go +++ b/source/local/identifier.go @@ -34,7 +34,7 @@ func (*LocalIdentifier) Scheme() string { var _ source.Identifier = (*LocalIdentifier)(nil) -func (id *LocalIdentifier) Capture(c *provenance.Capture, pin string) error { +func (id *LocalIdentifier) Capture(c *provenance.Capture, _ string) error { c.AddLocal(provenancetypes.LocalSource{ Name: id.Name, }) diff --git a/source/local/source.go b/source/local/source.go index 71af585a9ca8..1915a19aebda 100644 --- a/source/local/source.go +++ b/source/local/source.go @@ -48,7 +48,7 @@ func (ls *localSource) Schemes() []string { return []string{srctypes.LocalScheme} } -func (ls *localSource) Identifier(scheme, ref string, attrs map[string]string, platform *pb.Platform) (source.Identifier, error) { +func (ls *localSource) Identifier(_, ref string, attrs map[string]string, _ *pb.Platform) (source.Identifier, error) { id, err := NewLocalIdentifier(ref) if err != nil { return nil, err @@ -107,7 +107,7 @@ func (ls *localSource) Identifier(scheme, ref string, attrs map[string]string, p return id, nil } -func (ls *localSource) Resolve(ctx context.Context, id source.Identifier, sm *session.Manager, _ solver.Vertex) (source.SourceInstance, error) { +func (ls *localSource) Resolve(_ context.Context, id source.Identifier, sm *session.Manager, _ solver.Vertex) (source.SourceInstance, error) { localIdentifier, ok := id.(*LocalIdentifier) if !ok { return nil, errors.Errorf("invalid local identifier %v", id) @@ -126,7 +126,7 @@ type localSourceHandler struct { *localSource } -func (ls *localSourceHandler) CacheKey(ctx context.Context, jobCtx solver.JobContext, index int) (string, string, solver.CacheOpts, bool, error) { +func (ls *localSourceHandler) CacheKey(_ context.Context, jobCtx solver.JobContext, _ int) (string, string, solver.CacheOpts, bool, error) { sessionID := ls.src.SessionID if sessionID == "" { @@ -290,7 +290,7 @@ func (ls *localSourceHandler) snapshot(ctx context.Context, caller session.Calle } if idmap := mount.IdentityMapping(); idmap != nil { - opt.Filter = func(p string, stat *fstypes.Stat) bool { + opt.Filter = func(_ string, stat *fstypes.Stat) bool { uid, gid, err := idmap.ToHost(int(stat.Uid), int(stat.Gid)) if err != nil { return false diff --git a/util/appdefaults/appdefaults_windows.go b/util/appdefaults/appdefaults_windows.go index 3fb69f26d97e..7bfd92446902 100644 --- a/util/appdefaults/appdefaults_windows.go +++ b/util/appdefaults/appdefaults_windows.go @@ -38,6 +38,6 @@ func UserConfigDir() string { return ConfigDir } -func TraceSocketPath(inUserNS bool) string { +func TraceSocketPath(bool) string { return `\\.\pipe\buildkit-otel-grpc` } diff --git a/util/archutil/check_windows.go b/util/archutil/check_windows.go index ad634e42d757..86fcdb8b93fb 100644 --- a/util/archutil/check_windows.go +++ b/util/archutil/check_windows.go @@ -6,6 +6,6 @@ import ( "errors" ) -func check(_, _ string) (string, error) { +func check(string, string) (string, error) { return "", errors.New("binfmt is not supported on Windows") } diff --git a/util/cachedigest/db.go b/util/cachedigest/db.go index 8cdad560e6b6..82048616db72 100644 --- a/util/cachedigest/db.go +++ b/util/cachedigest/db.go @@ -71,11 +71,7 @@ func (d *DB) saveFrames(key string, frames []Frame) { } d.wg.Go(func() { - val, err := encodeFrames(frames) - if err != nil { - // Optionally log error - return - } + val := encodeFrames(frames) _ = d.db.Update(func(tx *bolt.Tx) error { b, err := tx.CreateBucketIfNotExists([]byte(bucketName)) if err != nil { @@ -86,7 +82,7 @@ func (d *DB) saveFrames(key string, frames []Frame) { }) } -func (d *DB) Get(ctx context.Context, dgst string) (Type, []Frame, error) { +func (d *DB) Get(_ context.Context, dgst string) (Type, []Frame, error) { if d.db == nil { return "", nil, errors.WithStack(ErrNotFound) } diff --git a/util/cachedigest/db_test.go b/util/cachedigest/db_test.go index 8eef38619bd0..f0f4cbb32505 100644 --- a/util/cachedigest/db_test.go +++ b/util/cachedigest/db_test.go @@ -109,8 +109,7 @@ func TestEncodeDecodeFrames(t *testing.T) { {FrameIDType, []byte(TypeJSON)}, {FrameIDData, []byte("hello world")}, } - encoded, err := encodeFrames(framesIn) - require.NoError(t, err, "encodeFrames should not error") + encoded := encodeFrames(framesIn) decoded, err := decodeFrames(encoded) require.NoError(t, err, "decodeFrames should not error") diff --git a/util/cachedigest/frame.go b/util/cachedigest/frame.go index bc764e13e946..ef85428939da 100644 --- a/util/cachedigest/frame.go +++ b/util/cachedigest/frame.go @@ -33,7 +33,7 @@ type Frame struct { } // encodeFrames encodes a series of frames: [frameID:uint32][len:uint32][data:len] -func encodeFrames(frames []Frame) ([]byte, error) { +func encodeFrames(frames []Frame) []byte { var out []byte for _, f := range frames { buf := make([]byte, 8+len(f.Data)) @@ -42,7 +42,7 @@ func encodeFrames(frames []Frame) ([]byte, error) { copy(buf[8:], f.Data) out = append(out, buf...) } - return out, nil + return out } // decodeFrames decodes a series of frames from data. diff --git a/util/compression/estargz.go b/util/compression/estargz.go index de4bbec3f867..fce098eeb75f 100644 --- a/util/compression/estargz.go +++ b/util/compression/estargz.go @@ -24,7 +24,7 @@ var EStargzAnnotations = []string{estargz.TOCJSONDigestAnnotation, estargz.Store const estargzLabel = "buildkit.io/compression/estargz" -func (c estargzType) Compress(ctx context.Context, comp Config) (compressorFunc Compressor, finalize Finalizer) { +func (c estargzType) Compress(_ context.Context, comp Config) (compressorFunc Compressor, finalize Finalizer) { var cInfo *compressionInfo var writeErr error var mu sync.Mutex @@ -134,7 +134,7 @@ func (c estargzType) NeedsConversion(ctx context.Context, cs content.Store, desc return true, nil } -func (c estargzType) NeedsComputeDiffBySelf(comp Config) bool { +func (c estargzType) NeedsComputeDiffBySelf(Config) bool { return true } diff --git a/util/compression/gzip.go b/util/compression/gzip.go index b6135e782cd4..86d8849d3355 100644 --- a/util/compression/gzip.go +++ b/util/compression/gzip.go @@ -10,7 +10,7 @@ import ( ocispecs "github.com/opencontainers/image-spec/specs-go/v1" ) -func (c gzipType) Compress(ctx context.Context, comp Config) (compressorFunc Compressor, finalize Finalizer) { +func (c gzipType) Compress(_ context.Context, comp Config) (compressorFunc Compressor, finalize Finalizer) { return func(dest io.Writer, _ string) (io.WriteCloser, error) { return gzipWriter(comp)(dest) }, nil diff --git a/util/compression/nydus.go b/util/compression/nydus.go index b3c85d44a783..d4340a19e2ab 100644 --- a/util/compression/nydus.go +++ b/util/compression/nydus.go @@ -41,9 +41,9 @@ func FromMediaType(mediaType string) (Type, error) { return ct, err } -func (c nydusType) Compress(ctx context.Context, comp Config) (compressorFunc Compressor, finalize Finalizer) { +func (c nydusType) Compress(ctx context.Context, _ Config) (compressorFunc Compressor, finalize Finalizer) { digester := digest.Canonical.Digester() - return func(dest io.Writer, requiredMediaType string) (io.WriteCloser, error) { + return func(dest io.Writer, _ string) (io.WriteCloser, error) { writer := io.MultiWriter(dest, digester.Hash()) return nydusify.Pack(ctx, writer, nydusify.PackOption{}) }, func(ctx context.Context, cs content.Store) (map[string]string, error) { @@ -103,7 +103,7 @@ func (c nydusType) NeedsConversion(ctx context.Context, cs content.Store, desc o return true, nil } -func (c nydusType) NeedsComputeDiffBySelf(comp Config) bool { +func (c nydusType) NeedsComputeDiffBySelf(Config) bool { return true } diff --git a/util/compression/uncompressed.go b/util/compression/uncompressed.go index 1967f5bb4bfd..21a9ca96cf27 100644 --- a/util/compression/uncompressed.go +++ b/util/compression/uncompressed.go @@ -10,8 +10,8 @@ import ( ocispecs "github.com/opencontainers/image-spec/specs-go/v1" ) -func (c uncompressedType) Compress(ctx context.Context, comp Config) (compressorFunc Compressor, finalize Finalizer) { - return func(dest io.Writer, mediaType string) (io.WriteCloser, error) { +func (c uncompressedType) Compress(context.Context, Config) (compressorFunc Compressor, finalize Finalizer) { + return func(dest io.Writer, _ string) (io.WriteCloser, error) { return &iohelper.NopWriteCloser{Writer: dest}, nil }, nil } @@ -24,7 +24,7 @@ func (c uncompressedType) Decompress(ctx context.Context, cs content.Store, desc return iohelper.ReadCloser(ra), nil } -func (c uncompressedType) NeedsConversion(ctx context.Context, cs content.Store, desc ocispecs.Descriptor) (bool, error) { +func (c uncompressedType) NeedsConversion(_ context.Context, _ content.Store, desc ocispecs.Descriptor) (bool, error) { if !images.IsLayerType(desc.MediaType) { return false, nil } @@ -38,7 +38,7 @@ func (c uncompressedType) NeedsConversion(ctx context.Context, cs content.Store, return true, nil } -func (c uncompressedType) NeedsComputeDiffBySelf(comp Config) bool { +func (c uncompressedType) NeedsComputeDiffBySelf(Config) bool { return false } diff --git a/util/compression/zstd.go b/util/compression/zstd.go index 9237811e09d1..1ca266777b49 100644 --- a/util/compression/zstd.go +++ b/util/compression/zstd.go @@ -10,7 +10,7 @@ import ( ocispecs "github.com/opencontainers/image-spec/specs-go/v1" ) -func (c zstdType) Compress(ctx context.Context, comp Config) (compressorFunc Compressor, finalize Finalizer) { +func (c zstdType) Compress(_ context.Context, comp Config) (compressorFunc Compressor, finalize Finalizer) { return func(dest io.Writer, _ string) (io.WriteCloser, error) { var opts []zstd.EOption if comp.Level != nil { @@ -24,7 +24,7 @@ func (c zstdType) Decompress(ctx context.Context, cs content.Store, desc ocispec return decompress(ctx, cs, desc) } -func (c zstdType) NeedsConversion(ctx context.Context, cs content.Store, desc ocispecs.Descriptor) (bool, error) { +func (c zstdType) NeedsConversion(_ context.Context, _ content.Store, desc ocispecs.Descriptor) (bool, error) { if !images.IsLayerType(desc.MediaType) { return false, nil } @@ -38,7 +38,7 @@ func (c zstdType) NeedsConversion(ctx context.Context, cs content.Store, desc oc return true, nil } -func (c zstdType) NeedsComputeDiffBySelf(comp Config) bool { +func (c zstdType) NeedsComputeDiffBySelf(Config) bool { return true } diff --git a/util/contentutil/buffer.go b/util/contentutil/buffer.go index 0673a147089e..56eb29ae6bb5 100644 --- a/util/contentutil/buffer.go +++ b/util/contentutil/buffer.go @@ -39,7 +39,7 @@ type buffer struct { refs map[string]struct{} } -func (b *buffer) Info(ctx context.Context, dgst digest.Digest) (content.Info, error) { +func (b *buffer) Info(_ context.Context, dgst digest.Digest) (content.Info, error) { b.mu.Lock() v, ok := b.infos[dgst] b.mu.Unlock() @@ -49,7 +49,7 @@ func (b *buffer) Info(ctx context.Context, dgst digest.Digest) (content.Info, er return v, nil } -func (b *buffer) Update(ctx context.Context, new content.Info, fieldpaths ...string) (content.Info, error) { +func (b *buffer) Update(_ context.Context, new content.Info, fieldpaths ...string) (content.Info, error) { b.mu.Lock() defer b.mu.Unlock() @@ -80,15 +80,15 @@ func (b *buffer) Update(ctx context.Context, new content.Info, fieldpaths ...str return updated, nil } -func (b *buffer) Walk(ctx context.Context, fn content.WalkFunc, filters ...string) error { +func (b *buffer) Walk(context.Context, content.WalkFunc, ...string) error { return nil // not implemented } -func (b *buffer) Delete(ctx context.Context, dgst digest.Digest) error { +func (b *buffer) Delete(context.Context, digest.Digest) error { return nil // not implemented } -func (b *buffer) Writer(ctx context.Context, opts ...content.WriterOpt) (content.Writer, error) { +func (b *buffer) Writer(_ context.Context, opts ...content.WriterOpt) (content.Writer, error) { var wOpts content.WriterOpts for _, opt := range opts { if err := opt(&wOpts); err != nil { @@ -120,22 +120,22 @@ func (b *buffer) Writer(ctx context.Context, opts ...content.WriterOpt) (content }, nil } -func (b *buffer) Status(ctx context.Context, ref string) (content.Status, error) { +func (b *buffer) Status(context.Context, string) (content.Status, error) { return content.Status{}, cerrdefs.ErrNotFound } -func (b *buffer) ListStatuses(ctx context.Context, filters ...string) ([]content.Status, error) { +func (b *buffer) ListStatuses(context.Context, ...string) ([]content.Status, error) { return nil, nil } -func (b *buffer) Abort(ctx context.Context, ref string) error { +func (b *buffer) Abort(_ context.Context, ref string) error { b.mu.Lock() delete(b.refs, ref) b.mu.Unlock() return nil } -func (b *buffer) ReaderAt(ctx context.Context, desc ocispecs.Descriptor) (content.ReaderAt, error) { +func (b *buffer) ReaderAt(_ context.Context, desc ocispecs.Descriptor) (content.ReaderAt, error) { r, err := b.getBytesReader(desc.Digest) if err != nil { return nil, err @@ -204,7 +204,7 @@ func (w *bufferedWriter) Digest() digest.Digest { return w.digester.Digest() } -func (w *bufferedWriter) Commit(ctx context.Context, size int64, expected digest.Digest, opt ...content.Opt) error { +func (w *bufferedWriter) Commit(_ context.Context, size int64, expected digest.Digest, _ ...content.Opt) error { if w.buffer == nil { return errors.New("can't commit already committed or closed") } diff --git a/util/contentutil/cache_test.go b/util/contentutil/cache_test.go index 68551f672dd8..dc1bd5a72e2e 100644 --- a/util/contentutil/cache_test.go +++ b/util/contentutil/cache_test.go @@ -28,7 +28,7 @@ func newStubProvider() *stubProvider { return &stubProvider{} } -func (p *stubProvider) ReaderAt(ctx context.Context, desc ocispecs.Descriptor) (content.ReaderAt, error) { +func (p *stubProvider) ReaderAt(_ context.Context, desc ocispecs.Descriptor) (content.ReaderAt, error) { p.calls++ b, ok := p.data[desc.Digest] if !ok { @@ -37,7 +37,7 @@ func (p *stubProvider) ReaderAt(ctx context.Context, desc ocispecs.Descriptor) ( return newBuf(b), nil } -func (p *stubProvider) FetchReferrers(ctx context.Context, dgst digest.Digest, opts ...remotes.FetchReferrersOpt) ([]ocispecs.Descriptor, error) { +func (p *stubProvider) FetchReferrers(_ context.Context, dgst digest.Digest, _ ...remotes.FetchReferrersOpt) ([]ocispecs.Descriptor, error) { p.refsCalls++ refs, ok := p.refs[dgst] if !ok { @@ -378,7 +378,7 @@ type cancelOnceProvider struct { closeCalls int } -func (p *cancelOnceProvider) ReaderAt(ctx context.Context, desc ocispecs.Descriptor) (content.ReaderAt, error) { +func (p *cancelOnceProvider) ReaderAt(_ context.Context, desc ocispecs.Descriptor) (content.ReaderAt, error) { p.calls++ if desc.Digest != digest.FromBytes(p.data) { return nil, errors.Errorf("unexpected digest: %s", desc.Digest) @@ -397,7 +397,7 @@ func (p *cancelOnceProvider) ReaderAt(ctx context.Context, desc ocispecs.Descrip }, nil } -func (p *cancelOnceProvider) FetchReferrers(ctx context.Context, dgst digest.Digest, opts ...remotes.FetchReferrersOpt) ([]ocispecs.Descriptor, error) { +func (p *cancelOnceProvider) FetchReferrers(context.Context, digest.Digest, ...remotes.FetchReferrersOpt) ([]ocispecs.Descriptor, error) { return nil, nil } diff --git a/util/contentutil/copy.go b/util/contentutil/copy.go index 5ec7b21bc54f..f092fe63c9e3 100644 --- a/util/contentutil/copy.go +++ b/util/contentutil/copy.go @@ -92,7 +92,7 @@ func copyChain(ctx context.Context, ingester content.Ingester, provider content. var m sync.Mutex manifestStack := []ocispecs.Descriptor{} - filterHandler := images.HandlerFunc(func(ctx context.Context, desc ocispecs.Descriptor) ([]ocispecs.Descriptor, error) { + filterHandler := images.HandlerFunc(func(_ context.Context, desc ocispecs.Descriptor) ([]ocispecs.Descriptor, error) { if _, ok := visited.Load(desc.Digest); ok { return nil, images.ErrStopHandler } @@ -111,7 +111,7 @@ func copyChain(ctx context.Context, ingester content.Ingester, provider content. handlers := []images.Handler{ annotateDistributionSourceHandler(images.ChildrenHandler(provider), desc.Annotations), filterHandler, - retryhandler.New(limited.FetchHandler(ingester, &localFetcher{provider}, ""), func(_ []byte) {}), + retryhandler.New(limited.FetchHandler(ingester, &localFetcher{provider}, ""), func([]byte) {}), } if err := images.Dispatch(ctx, images.Handlers(handlers...), nil, desc); err != nil { diff --git a/util/contentutil/fetcher_test.go b/util/contentutil/fetcher_test.go index b53f4e3fd00b..8776245af285 100644 --- a/util/contentutil/fetcher_test.go +++ b/util/contentutil/fetcher_test.go @@ -72,7 +72,7 @@ func TestSlowFetch(t *testing.T) { type dummySlowFetcher struct{} -func (f *dummySlowFetcher) Fetch(ctx context.Context, desc ocispecs.Descriptor) (io.ReadCloser, error) { +func (f *dummySlowFetcher) Fetch(context.Context, ocispecs.Descriptor) (io.ReadCloser, error) { return newSlowBuffer([]byte("foobar")), nil } diff --git a/util/contentutil/pusher.go b/util/contentutil/pusher.go index 423b7f2481da..b43b262ac65c 100644 --- a/util/contentutil/pusher.go +++ b/util/contentutil/pusher.go @@ -78,7 +78,7 @@ func (i *pushingIngester) Writer(ctx context.Context, opts ...content.WriterOpt) release() return nil, err } - runtime.SetFinalizer(contentWriter, func(_ content.Writer) { + runtime.SetFinalizer(contentWriter, func(content.Writer) { release() }) return &writer{ diff --git a/util/flightcontrol/cached_test.go b/util/flightcontrol/cached_test.go index 1cd5e24e65e7..d5b0b0226ad4 100644 --- a/util/flightcontrol/cached_test.go +++ b/util/flightcontrol/cached_test.go @@ -14,20 +14,20 @@ func TestCached(t *testing.T) { ctx := t.Context() - v, err := g.Do(ctx, "11", func(ctx context.Context) (int, error) { + v, err := g.Do(ctx, "11", func(context.Context) (int, error) { return 1, nil }) require.NoError(t, err) require.Equal(t, 1, v) - v, err = g.Do(ctx, "22", func(ctx context.Context) (int, error) { + v, err = g.Do(ctx, "22", func(context.Context) (int, error) { return 2, nil }) require.NoError(t, err) require.Equal(t, 2, v) didCall := false - v, err = g.Do(ctx, "11", func(ctx context.Context) (int, error) { + v, err = g.Do(ctx, "11", func(context.Context) (int, error) { didCall = true return 3, nil }) @@ -36,14 +36,14 @@ func TestCached(t *testing.T) { require.Equal(t, false, didCall) // by default, errors are not cached - _, err = g.Do(ctx, "33", func(ctx context.Context) (int, error) { + _, err = g.Do(ctx, "33", func(context.Context) (int, error) { return 0, errors.New("some error") }) require.Error(t, err) require.ErrorContains(t, err, "some error") - v, err = g.Do(ctx, "33", func(ctx context.Context) (int, error) { + v, err = g.Do(ctx, "33", func(context.Context) (int, error) { return 3, nil }) @@ -57,13 +57,13 @@ func TestCachedError(t *testing.T) { ctx := t.Context() - _, err := g.Do(ctx, "11", func(ctx context.Context) (string, error) { + _, err := g.Do(ctx, "11", func(context.Context) (string, error) { return "", errors.New("first error") }) require.Error(t, err) require.ErrorContains(t, err, "first error") - _, err = g.Do(ctx, "11", func(ctx context.Context) (string, error) { + _, err = g.Do(ctx, "11", func(context.Context) (string, error) { return "never-ran", nil }) require.Error(t, err) @@ -89,7 +89,7 @@ func TestCachedError(t *testing.T) { require.Fail(t, "expected context to be done") } - v, err := g.Do(ctx, "22", func(ctx context.Context) (string, error) { + v, err := g.Do(ctx, "22", func(context.Context) (string, error) { return "did-run", nil }) require.NoError(t, err) diff --git a/util/flightcontrol/flightcontrol_test.go b/util/flightcontrol/flightcontrol_test.go index 52ccec7698ee..010e9dc401c6 100644 --- a/util/flightcontrol/flightcontrol_test.go +++ b/util/flightcontrol/flightcontrol_test.go @@ -211,7 +211,7 @@ func TestContention(t *testing.T) { for range threads { for range perthread { - _, err := g.Do(t.Context(), "foo", func(ctx context.Context) (int, error) { + _, err := g.Do(t.Context(), "foo", func(context.Context) (int, error) { time.Sleep(time.Microsecond) return 0, nil }) @@ -229,7 +229,7 @@ func TestMassiveParallel(t *testing.T) { eg, ctx := errgroup.WithContext(t.Context()) for range 1000 { eg.Go(func() error { - _, err := g.Do(ctx, "key", func(ctx context.Context) (string, error) { + _, err := g.Do(ctx, "key", func(context.Context) (string, error) { return "", errors.New("always fail") }) if errors.Is(err, errRetryTimeout) { diff --git a/util/gitutil/git_cli_test.go b/util/gitutil/git_cli_test.go index 4808d149ef5c..c8b29e83f0e5 100644 --- a/util/gitutil/git_cli_test.go +++ b/util/gitutil/git_cli_test.go @@ -29,7 +29,7 @@ func TestGitCLIConfigEnv(t *testing.T) { t.Run("isolated by default", func(t *testing.T) { var got []string - cli := NewGitCLI(WithExec(func(ctx context.Context, cmd *exec.Cmd) error { + cli := NewGitCLI(WithExec(func(_ context.Context, cmd *exec.Cmd) error { got = append([]string(nil), cmd.Env...) return nil })) @@ -49,7 +49,7 @@ func TestGitCLIConfigEnv(t *testing.T) { var got []string cli := NewGitCLI( WithHostGitConfig(), - WithExec(func(ctx context.Context, cmd *exec.Cmd) error { + WithExec(func(_ context.Context, cmd *exec.Cmd) error { got = append([]string(nil), cmd.Env...) return nil }), diff --git a/util/grpcerrors/intercept.go b/util/grpcerrors/intercept.go index a4c774953ffa..4189ea54ae9b 100644 --- a/util/grpcerrors/intercept.go +++ b/util/grpcerrors/intercept.go @@ -10,7 +10,7 @@ import ( "google.golang.org/grpc" ) -func UnaryServerInterceptor(ctx context.Context, req any, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp any, err error) { +func UnaryServerInterceptor(ctx context.Context, req any, _ *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp any, err error) { resp, err = handler(ctx, req) oldErr := err if err != nil { @@ -29,7 +29,7 @@ func UnaryServerInterceptor(ctx context.Context, req any, info *grpc.UnaryServer return resp, err } -func StreamServerInterceptor(srv any, ss grpc.ServerStream, info *grpc.StreamServerInfo, handler grpc.StreamHandler) error { +func StreamServerInterceptor(srv any, ss grpc.ServerStream, _ *grpc.StreamServerInfo, handler grpc.StreamHandler) error { err := ToGRPC(ss.Context(), handler(srv, ss)) if err != nil { stack.Helper() diff --git a/util/imageutil/config.go b/util/imageutil/config.go index db543eafc321..d070c5a22bd9 100644 --- a/util/imageutil/config.go +++ b/util/imageutil/config.go @@ -130,7 +130,7 @@ func Config(ctx context.Context, str string, resolver remotes.Resolver, cache Co } handlers := []images.Handler{ - retryhandler.New(limited.FetchHandler(cache, fetcher, str), func(_ []byte) {}), + retryhandler.New(limited.FetchHandler(cache, fetcher, str), func([]byte) {}), dslHandler, children, } diff --git a/util/imageutil/config_test.go b/util/imageutil/config_test.go index 89561c65493b..a31ff17606b1 100644 --- a/util/imageutil/config_test.go +++ b/util/imageutil/config_test.go @@ -50,7 +50,7 @@ func TestConfigMultiplatform(t *testing.T) { t.Helper() idxDesc := cc.Add(t, idx, idx.MediaType, nil) - r := &testResolver{cc: cc, resolve: func(ctx context.Context, ref string) (string, ocispecs.Descriptor, error) { + r := &testResolver{cc: cc, resolve: func(_ context.Context, ref string) (string, ocispecs.Descriptor, error) { return ref, idxDesc, nil }} @@ -85,7 +85,7 @@ type testCache struct { content map[digest.Digest]content.ReaderAt } -func (testCache) Info(ctx context.Context, dgst digest.Digest) (content.Info, error) { +func (testCache) Info(context.Context, digest.Digest) (content.Info, error) { return content.Info{}, nil } @@ -93,7 +93,7 @@ func (testCache) Update(context.Context, content.Info, ...string) (content.Info, return content.Info{}, nil } -func (*testCache) Writer(ctx context.Context, opts ...content.WriterOpt) (content.Writer, error) { +func (*testCache) Writer(context.Context, ...content.WriterOpt) (content.Writer, error) { // This needs to be implemented because the content helpers will open a writer to use as a lock return nopWriter{}, nil } @@ -108,7 +108,7 @@ func (nopWriter) Close() error { return nil } -func (nopWriter) Commit(ctx context.Context, size int64, expected digest.Digest, opts ...content.Opt) error { +func (nopWriter) Commit(context.Context, int64, digest.Digest, ...content.Opt) error { return nil } @@ -116,7 +116,7 @@ func (nopWriter) Status() (content.Status, error) { return content.Status{}, nil } -func (nopWriter) Truncate(size int64) error { +func (nopWriter) Truncate(int64) error { return nil } @@ -156,7 +156,7 @@ func (*sectionNopCloser) Close() error { return nil } -func (c *testCache) ReaderAt(ctx context.Context, desc ocispecs.Descriptor) (content.ReaderAt, error) { +func (c *testCache) ReaderAt(_ context.Context, desc ocispecs.Descriptor) (content.ReaderAt, error) { ra, ok := c.content[desc.Digest] if !ok { return nil, cerrdefs.ErrNotFound @@ -175,7 +175,7 @@ func (f fetcherFunc) Fetch(ctx context.Context, desc ocispecs.Descriptor) (io.Re return f(ctx, desc) } -func (r *testResolver) Fetcher(ctx context.Context, ref string) (remotes.Fetcher, error) { +func (r *testResolver) Fetcher(context.Context, string) (remotes.Fetcher, error) { return fetcherFunc(func(ctx context.Context, desc ocispecs.Descriptor) (io.ReadCloser, error) { ra, err := r.cc.ReaderAt(ctx, desc) if err != nil { diff --git a/util/network/cniprovider/bridge.go b/util/network/cniprovider/bridge.go index 47607a8f33be..a286206e6ec8 100644 --- a/util/network/cniprovider/bridge.go +++ b/util/network/cniprovider/bridge.go @@ -123,7 +123,7 @@ func NewBridge(opt Opt) (network.Provider, error) { createBridge := true if err := withDetachedNetNSIfAny(context.TODO(), - func(_ context.Context) error { + func(context.Context) error { _, err2 := bridgeByName(opt.BridgeName) return err2 }); err == nil { @@ -141,7 +141,7 @@ func NewBridge(opt Opt) (network.Provider, error) { if createBridge { cp.release = func() error { - if err := withDetachedNetNSIfAny(context.TODO(), func(_ context.Context) error { + if err := withDetachedNetNSIfAny(context.TODO(), func(context.Context) error { return removeBridge(opt.BridgeName) }); err != nil { bklog.L.Errorf("failed to remove bridge %q: %v", opt.BridgeName, err) diff --git a/util/network/cniprovider/cni.go b/util/network/cniprovider/cni.go index 375ff6c39a58..5b77ed9fb097 100644 --- a/util/network/cniprovider/cni.go +++ b/util/network/cniprovider/cni.go @@ -50,7 +50,7 @@ func New(opt Opt) (network.Provider, error) { } var cniHandle cni.CNI - fn := func(_ context.Context) error { + fn := func(context.Context) error { var err error cniHandle, err = cni.New(cniOptions...) return err @@ -263,7 +263,7 @@ func (ns *cniNS) Sample() (*resourcestypes.NetworkSample, error) { return nil, nil } var s *resourcestypes.NetworkSample - fn := func(_ context.Context) error { + fn := func(context.Context) error { var err error s, err = ns.sample() return err diff --git a/util/network/cniprovider/cni_linux.go b/util/network/cniprovider/cni_linux.go index ea617c2fb8b8..2cd594ba933c 100644 --- a/util/network/cniprovider/cni_linux.go +++ b/util/network/cniprovider/cni_linux.go @@ -91,7 +91,7 @@ func withDetachedNetNSIfAny(ctx context.Context, fn func(context.Context) error) defer root.Close() if _, err := root.Lstat("netns"); err == nil { detachedNetNS := filepath.Join(stateDir, "netns") - return netns.WithNetNSPath(detachedNetNS, func(_ netns.NetNS) error { + return netns.WithNetNSPath(detachedNetNS, func(netns.NetNS) error { ctx := context.WithValue(ctx, contextKeyDetachedNetNS, detachedNetNS) bklog.G(ctx).Debugf("Entering RootlessKit's detached netns %q", detachedNetNS) err2 := fn(ctx) @@ -159,7 +159,7 @@ func (ns *cniNS) dialInNS(ctx context.Context, networkName, address string, dial func dialInNetNS(ctx context.Context, targetNS netns.NetNS, networkName, address string, dialer *net.Dialer) (net.Conn, error) { var conn net.Conn - err := targetNS.Do(func(_ netns.NetNS) error { + err := targetNS.Do(func(netns.NetNS) error { var err error conn, err = dialer.DialContext(ctx, networkName, address) return err diff --git a/util/network/cniprovider/cni_linux_test.go b/util/network/cniprovider/cni_linux_test.go index 027bfc4e04fb..89929fe077c7 100644 --- a/util/network/cniprovider/cni_linux_test.go +++ b/util/network/cniprovider/cni_linux_test.go @@ -82,7 +82,7 @@ func TestDialContextDialsInsideNetNS(t *testing.T) { nsPath := createTestNetNS(t) var ln net.Listener - require.NoError(t, netns.WithNetNSPath(nsPath, func(_ netns.NetNS) error { + require.NoError(t, netns.WithNetNSPath(nsPath, func(netns.NetNS) error { lo, err := netlink.LinkByName("lo") if err != nil { return err @@ -126,7 +126,7 @@ func TestLoopbackDNSUsesCallerNetNS(t *testing.T) { require.NotNil(t, dialer.Resolver.Dial) var conn net.Conn - require.NoError(t, netns.WithNetNSPath(nsPath, func(_ netns.NetNS) error { + require.NoError(t, netns.WithNetNSPath(nsPath, func(netns.NetNS) error { ctx, cancel := context.WithTimeoutCause(t.Context(), 3*time.Second, nil) defer cancel() var err error diff --git a/util/network/cniprovider/createns_unix.go b/util/network/cniprovider/createns_unix.go index a185a5481e9a..f67a18d8ef78 100644 --- a/util/network/cniprovider/createns_unix.go +++ b/util/network/cniprovider/createns_unix.go @@ -7,21 +7,21 @@ import ( "github.com/pkg/errors" ) -func createNetNS(_ *cniProvider, _ string) (string, error) { +func createNetNS(*cniProvider, string) (string, error) { return "", errors.New("creating netns for cni not supported") } -func setNetNS(_ *specs.Spec, _ string) error { +func setNetNS(*specs.Spec, string) error { return errors.New("enabling netns for cni not supported") } -func unmountNetNS(_ string) error { +func unmountNetNS(string) error { return errors.New("unmounting netns for cni not supported") } -func deleteNetNS(_ string) error { +func deleteNetNS(string) error { return errors.New("deleting netns for cni not supported") } -func cleanOldNamespaces(_ *cniProvider) { +func cleanOldNamespaces(*cniProvider) { } diff --git a/util/network/cniprovider/createns_windows.go b/util/network/cniprovider/createns_windows.go index ea233d619d6f..ceeea1ecd2b7 100644 --- a/util/network/cniprovider/createns_windows.go +++ b/util/network/cniprovider/createns_windows.go @@ -8,7 +8,7 @@ import ( "github.com/pkg/errors" ) -func createNetNS(_ *cniProvider, _ string) (string, error) { +func createNetNS(*cniProvider, string) (string, error) { nsTemplate := hcn.NewNamespace(hcn.NamespaceTypeGuest) ns, err := nsTemplate.Create() if err != nil { @@ -33,7 +33,7 @@ func setNetNS(s *specs.Spec, nativeID string) error { return nil } -func unmountNetNS(_ string) error { +func unmountNetNS(string) error { // We don't need to unmount the NS. return nil } @@ -47,6 +47,6 @@ func deleteNetNS(nativeID string) error { return ns.Delete() } -func cleanOldNamespaces(_ *cniProvider) { +func cleanOldNamespaces(*cniProvider) { // not implemented on Windows } diff --git a/util/network/host.go b/util/network/host.go index 3e44baeb9f3b..f2a6f3f2154b 100644 --- a/util/network/host.go +++ b/util/network/host.go @@ -18,7 +18,7 @@ func NewHostProvider() Provider { type host struct { } -func (h *host) New(_ context.Context, hostname string, _ NamespaceOptions) (Namespace, error) { +func (h *host) New(context.Context, string, NamespaceOptions) (Namespace, error) { return &hostNS{}, nil } diff --git a/util/network/netproviders/network_nobridge.go b/util/network/netproviders/network_nobridge.go index 9bce41c31751..58408b287a56 100644 --- a/util/network/netproviders/network_nobridge.go +++ b/util/network/netproviders/network_nobridge.go @@ -10,6 +10,6 @@ import ( "github.com/pkg/errors" ) -func getBridgeProvider(_ cniprovider.Opt) (network.Provider, error) { +func getBridgeProvider(cniprovider.Opt) (network.Provider, error) { return nil, errors.Errorf("bridge network is not supported on %s yet", runtime.GOOS) } diff --git a/util/network/none.go b/util/network/none.go index b65c3268c8e9..413e42c33d34 100644 --- a/util/network/none.go +++ b/util/network/none.go @@ -14,7 +14,7 @@ func NewNoneProvider() Provider { type none struct { } -func (h *none) New(_ context.Context, hostname string, _ NamespaceOptions) (Namespace, error) { +func (h *none) New(context.Context, string, NamespaceOptions) (Namespace, error) { return &noneNS{}, nil } @@ -25,7 +25,7 @@ func (h *none) Close() error { type noneNS struct { } -func (h *noneNS) Set(s *specs.Spec) error { +func (h *noneNS) Set(*specs.Spec) error { return nil } diff --git a/util/network/proxyprovider/provider_linux.go b/util/network/proxyprovider/provider_linux.go index 0d64382fcdbe..94c9d9ecc03c 100644 --- a/util/network/proxyprovider/provider_linux.go +++ b/util/network/proxyprovider/provider_linux.go @@ -155,7 +155,7 @@ func (p *provider) NewProxy(ctx context.Context, proxy *network.ProxyConfig) (_ return ns, nil } -func (p *provider) newNS(ctx context.Context) (_ *proxyNS, retErr error) { +func (p *provider) newNS(context.Context) (_ *proxyNS, retErr error) { n := p.next.Add(1) id := identity.NewID() nsPath, err := createNetNS(p.root, id+"-exec") diff --git a/util/network/proxyprovider/provider_linux_test.go b/util/network/proxyprovider/provider_linux_test.go index 0fe8e0d7eb4c..0eda04792088 100644 --- a/util/network/proxyprovider/provider_linux_test.go +++ b/util/network/proxyprovider/provider_linux_test.go @@ -233,7 +233,7 @@ func TestProxyHandlerCapturesRedirectMaterialAlias(t *testing.T) { } func TestProxyHandlerRedactsCapturedCredentials(t *testing.T) { - upstream := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + upstream := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { _, _ = w.Write([]byte("secret ok")) })) t.Cleanup(upstream.Close) @@ -287,7 +287,7 @@ func TestCaptureURLNormalizesDefaultPort(t *testing.T) { } func TestProxyHandlerAppliesPolicyConvert(t *testing.T) { - original := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + original := httptest.NewServer(http.HandlerFunc(func(http.ResponseWriter, *http.Request) { t.Error("original upstream should not receive converted request") })) t.Cleanup(original.Close) diff --git a/util/network/proxyprovider/provider_unsupported.go b/util/network/proxyprovider/provider_unsupported.go index 297f93336741..dc6fb724dac2 100644 --- a/util/network/proxyprovider/provider_unsupported.go +++ b/util/network/proxyprovider/provider_unsupported.go @@ -19,6 +19,6 @@ func Supported() bool { return false } -func New(opt Opt) (network.ProxyProvider, error) { +func New(Opt) (network.ProxyProvider, error) { return nil, errors.New("proxy network provider is only supported on linux") } diff --git a/util/overlay/overlay_linux.go b/util/overlay/overlay_linux.go index 3f10c72ae6bd..55bc4032d2d6 100644 --- a/util/overlay/overlay_linux.go +++ b/util/overlay/overlay_linux.go @@ -320,9 +320,9 @@ func sameDirent(f1, f2 os.FileInfo, f1fullPath, f2fullPath string) (bool, error) return true, nil } - equalStat, err := compareSysStat(f1.Sys(), f2.Sys()) - if err != nil || !equalStat { - return equalStat, err + equalStat := compareSysStat(f1.Sys(), f2.Sys()) + if !equalStat { + return equalStat, nil } if eq, err := compareCapabilities(f1fullPath, f2fullPath); err != nil || !eq { @@ -361,17 +361,17 @@ func sameDirent(f1, f2 os.FileInfo, f1fullPath, f2fullPath string) (bool, error) // Ported from continuity project // https://github.com/containerd/continuity/blob/v0.1.0/fs/diff_unix.go#L43-L54 // Copyright The containerd Authors. -func compareSysStat(s1, s2 any) (bool, error) { +func compareSysStat(s1, s2 any) bool { ls1, ok := s1.(*syscall.Stat_t) if !ok { - return false, nil + return false } ls2, ok := s2.(*syscall.Stat_t) if !ok { - return false, nil + return false } - return ls1.Mode == ls2.Mode && ls1.Uid == ls2.Uid && ls1.Gid == ls2.Gid && ls1.Rdev == ls2.Rdev, nil + return ls1.Mode == ls2.Mode && ls1.Uid == ls2.Uid && ls1.Gid == ls2.Gid && ls1.Rdev == ls2.Rdev } // Ported from continuity project diff --git a/util/progress/logs/logs.go b/util/progress/logs/logs.go index 36bf32bf96dd..4c450dbdd8f1 100644 --- a/util/progress/logs/logs.go +++ b/util/progress/logs/logs.go @@ -134,6 +134,7 @@ func (sw *streamWriter) Write(dt []byte) (int, error) { return oldSize, nil } +//nolint:unparam func (sw *streamWriter) write(dt []byte) (int, error) { if len(dt) == 0 { return 0, nil diff --git a/util/progress/progress.go b/util/progress/progress.go index 2c2d517dba0a..7b926287a0c2 100644 --- a/util/progress/progress.go +++ b/util/progress/progress.go @@ -277,7 +277,7 @@ func (p *Progress) Decorate(meta map[string]any) *Progress { type noOpWriter struct{} -func (pw *noOpWriter) Write(_ string, _ any) error { +func (pw *noOpWriter) Write(string, any) error { return nil } diff --git a/util/progress/progressui/display.go b/util/progress/progressui/display.go index 41d108586e80..c9690ca1b63d 100644 --- a/util/progress/progressui/display.go +++ b/util/progress/progressui/display.go @@ -179,10 +179,10 @@ func newDiscardDisplay() Display { return Display{disp: &discardDisplay{}} } -func (d *discardDisplay) init(displayLimiter *rate.Limiter) {} -func (d *discardDisplay) update(ss *client.SolveStatus) {} -func (d *discardDisplay) refresh() {} -func (d *discardDisplay) done() {} +func (d *discardDisplay) init(*rate.Limiter) {} +func (d *discardDisplay) update(*client.SolveStatus) {} +func (d *discardDisplay) refresh() {} +func (d *discardDisplay) done() {} type consoleDisplay struct { t *trace @@ -294,7 +294,7 @@ func newRawJSONDisplay(w io.Writer) Display { } } -func (d *rawJSONDisplay) init(displayLimiter *rate.Limiter) { +func (d *rawJSONDisplay) init(*rate.Limiter) { // Initialization parameters are ignored for this display. } @@ -380,6 +380,7 @@ type vertex struct { hidden bool } +//nolint:unparam func (v *vertex) update(c int) { if v.count == 0 { now := time.Now() diff --git a/util/pull/pull.go b/util/pull/pull.go index 1f5926c8a494..ebdf2b1aea13 100644 --- a/util/pull/pull.go +++ b/util/pull/pull.go @@ -207,7 +207,7 @@ func (p *provider) ReaderAt(ctx context.Context, desc ocispecs.Descriptor) (cont // filterLayerBlobs causes layer blobs to be skipped for fetch, which is required to support lazy blobs. // It also stores the non-layer blobs (metadata) it encounters in the provided map. func filterLayerBlobs(metadata map[digest.Digest]ocispecs.Descriptor, mu sync.Locker) images.HandlerFunc { - return func(ctx context.Context, desc ocispecs.Descriptor) ([]ocispecs.Descriptor, error) { + return func(_ context.Context, desc ocispecs.Descriptor) ([]ocispecs.Descriptor, error) { switch desc.MediaType { case ocispecs.MediaTypeImageLayer, diff --git a/util/push/push.go b/util/push/push.go index 0ffe86757e9a..5715eabc2bdb 100644 --- a/util/push/push.go +++ b/util/push/push.go @@ -93,7 +93,7 @@ func Push(ctx context.Context, sm *session.Manager, sid string, provider content var m sync.Mutex manifestStack := []ocispecs.Descriptor{} - filterHandler := images.HandlerFunc(func(ctx context.Context, desc ocispecs.Descriptor) ([]ocispecs.Descriptor, error) { + filterHandler := images.HandlerFunc(func(_ context.Context, desc ocispecs.Descriptor) ([]ocispecs.Descriptor, error) { switch desc.MediaType { case images.MediaTypeDockerSchema2Manifest, ocispecs.MediaTypeImageManifest, images.MediaTypeDockerSchema2ManifestList, ocispecs.MediaTypeImageIndex: diff --git a/util/resolver/pool.go b/util/resolver/pool.go index 4cfbd0cf165b..e566462e19b8 100644 --- a/util/resolver/pool.go +++ b/util/resolver/pool.go @@ -175,7 +175,7 @@ type Resolver struct { // HostsFunc implements registry configuration of this Resolver func (r *Resolver) HostsFunc(host string) ([]docker.RegistryHost, error) { return func(domain string) ([]docker.RegistryHost, error) { - v, err := r.handler.g.Do(context.TODO(), domain, func(ctx context.Context) ([]docker.RegistryHost, error) { + v, err := r.handler.g.Do(context.TODO(), domain, func(context.Context) ([]docker.RegistryHost, error) { // long lock not needed because flightcontrol.Do r.handler.muHosts.Lock() v, ok := r.handler.hosts[domain] diff --git a/util/rootless/mountopts/mountopts_others.go b/util/rootless/mountopts/mountopts_others.go index 0ca8b8dee6a7..ed60aff7792b 100644 --- a/util/rootless/mountopts/mountopts_others.go +++ b/util/rootless/mountopts/mountopts_others.go @@ -7,7 +7,7 @@ import ( specs "github.com/opencontainers/runtime-spec/specs-go" ) -func UnprivilegedMountFlags(path string) ([]string, error) { +func UnprivilegedMountFlags(string) ([]string, error) { return []string{}, nil } diff --git a/util/rootless/specconv/specconv_nonlinux.go b/util/rootless/specconv/specconv_nonlinux.go index c200057e319e..c3bc2a79386a 100644 --- a/util/rootless/specconv/specconv_nonlinux.go +++ b/util/rootless/specconv/specconv_nonlinux.go @@ -14,6 +14,6 @@ import ( // * Remove cgroups // // See docs/rootless.md for the supported runc revision. -func ToRootless(spec *specs.Spec) error { +func ToRootless(*specs.Spec) error { return errors.Errorf("not implemented on on %s", runtime.GOOS) } diff --git a/util/sshutil/keyscan.go b/util/sshutil/keyscan.go index 3e1a4415fcad..f1cf4b64fc09 100644 --- a/util/sshutil/keyscan.go +++ b/util/sshutil/keyscan.go @@ -38,7 +38,7 @@ func addDefaultPort(hostport string, defaultPort int) string { // SSHKeyScan scans a ssh server for the hostkey; server should be in the form hostname, or hostname:port func SSHKeyScan(server string) (string, error) { var key string - KeyScanCallback := func(hostport string, remote net.Addr, pubKey ssh.PublicKey) error { + KeyScanCallback := func(hostport string, _ net.Addr, pubKey ssh.PublicKey) error { hostname, port, err := net.SplitHostPort(hostport) if err != nil { return err diff --git a/util/staticfs/merge_test.go b/util/staticfs/merge_test.go index c46e35335ba9..e1a9e725332d 100644 --- a/util/staticfs/merge_test.go +++ b/util/staticfs/merge_test.go @@ -88,7 +88,7 @@ func TestMerge(t *testing.T) { require.True(t, os.IsNotExist(err)) files = nil - err = fs.Walk(t.Context(), "", func(path string, entry iofs.DirEntry, err error) error { + err = fs.Walk(t.Context(), "", func(path string, _ iofs.DirEntry, err error) error { require.NoError(t, err) files = append(files, path) return nil diff --git a/util/staticfs/static.go b/util/staticfs/static.go index 76bb9ad3e73f..83da08836cba 100644 --- a/util/staticfs/static.go +++ b/util/staticfs/static.go @@ -43,7 +43,7 @@ func (fs *FS) Add(p string, stat *types.Stat, data []byte) { } } -func (fs *FS) Walk(ctx context.Context, target string, fn fs.WalkDirFunc) error { +func (fs *FS) Walk(_ context.Context, target string, fn fs.WalkDirFunc) error { target = strings.TrimPrefix(target, "/") keys := make([]string, 0, len(fs.files)) for k := range fs.files { diff --git a/util/testutil/dockerd/client/hijack.go b/util/testutil/dockerd/client/hijack.go index 36e5e47321cf..636d524667fb 100644 --- a/util/testutil/dockerd/client/hijack.go +++ b/util/testutil/dockerd/client/hijack.go @@ -11,7 +11,7 @@ import ( ) // DialHijack returns a hijacked connection with negotiated protocol proto. -func (cli *Client) DialHijack(ctx context.Context, url, proto string, meta map[string][]string) (net.Conn, error) { +func (cli *Client) DialHijack(ctx context.Context, url, proto string, _ map[string][]string) (net.Conn, error) { req, err := http.NewRequestWithContext(ctx, http.MethodPost, url, nil) if err != nil { return nil, err diff --git a/util/testutil/dockerd/client/sockets_unix.go b/util/testutil/dockerd/client/sockets_unix.go index 04cd0022eb4e..0f59e4b8e594 100644 --- a/util/testutil/dockerd/client/sockets_unix.go +++ b/util/testutil/dockerd/client/sockets_unix.go @@ -29,12 +29,12 @@ func configureUnixTransport(tr *http.Transport, proto, addr string) error { return nil } -func configureNpipeTransport(_ *http.Transport, _, _ string) error { +func configureNpipeTransport(*http.Transport, string, string) error { return errors.New("protocol not available") } // DialPipe connects to a Windows named pipe. // This is not supported on other OSes. -func DialPipe(_ string, _ time.Duration) (net.Conn, error) { +func DialPipe(string, time.Duration) (net.Conn, error) { return nil, syscall.EAFNOSUPPORT } diff --git a/util/testutil/dockerd/client/sockets_windows.go b/util/testutil/dockerd/client/sockets_windows.go index 111e3e23faae..e8f69ebb3e1d 100644 --- a/util/testutil/dockerd/client/sockets_windows.go +++ b/util/testutil/dockerd/client/sockets_windows.go @@ -10,7 +10,7 @@ import ( "github.com/pkg/errors" ) -func configureUnixTransport(_ *http.Transport, _, _ string) error { +func configureUnixTransport(*http.Transport, string, string) error { return errors.New("protocol not available") } diff --git a/util/testutil/integration/sandbox.go b/util/testutil/integration/sandbox.go index 6d0a7adf4e9c..70ad650cc5a5 100644 --- a/util/testutil/integration/sandbox.go +++ b/util/testutil/integration/sandbox.go @@ -169,7 +169,7 @@ func printBuildkitdDebugLogs(t *testing.T, addr string) { return } - client := &http.Client{Transport: &http.Transport{DialContext: func(_ context.Context, _, _ string) (net.Conn, error) { + client := &http.Client{Transport: &http.Transport{DialContext: func(context.Context, string, string) (net.Conn, error) { return dialPipe(strings.TrimPrefix(addr, socketScheme)) }}} diff --git a/util/testutil/workers/containerd.go b/util/testutil/workers/containerd.go index e3db34f4082f..b85f2b41da5c 100644 --- a/util/testutil/workers/containerd.go +++ b/util/testutil/workers/containerd.go @@ -91,7 +91,7 @@ func (c *Containerd) NetNSDetached() bool { return false } -func (c *Containerd) New(ctx context.Context, cfg *integration.BackendConfig) (b integration.Backend, cl func() error, err error) { +func (c *Containerd) New(_ context.Context, cfg *integration.BackendConfig) (b integration.Backend, cl func() error, err error) { if err := integration.LookupBinary(c.Containerd); err != nil { return nil, nil, err } diff --git a/util/testutil/workers/oci.go b/util/testutil/workers/oci.go index 9530bffde0f0..01457d407d19 100644 --- a/util/testutil/workers/oci.go +++ b/util/testutil/workers/oci.go @@ -39,7 +39,7 @@ func (s *OCI) NetNSDetached() bool { return s.Rootless() && s.RootlessKitDetachNetNS } -func (s *OCI) New(ctx context.Context, cfg *integration.BackendConfig) (integration.Backend, func() error, error) { +func (s *OCI) New(_ context.Context, cfg *integration.BackendConfig) (integration.Backend, func() error, error) { if err := integration.LookupBinary("buildkitd"); err != nil { return nil, nil, err } diff --git a/util/testutil/workers/util_windows.go b/util/testutil/workers/util_windows.go index f6ccbf486490..3058c93a2aa8 100644 --- a/util/testutil/workers/util_windows.go +++ b/util/testutil/workers/util_windows.go @@ -43,11 +43,11 @@ func getContainerdDebugSock(tmpdir string) string { } // no-op for parity with unix -func mountInfo(_ string) error { +func mountInfo(string) error { return nil } -func chown(_ string, _, _ int) error { +func chown(string, int, int) error { // Chown not supported on Windows return nil } @@ -67,7 +67,7 @@ func applyDockerdPlatformFlags(flags []string, workerID string) []string { return flags } -func getBuildkitdNetworkAddr(_ string) string { +func getBuildkitdNetworkAddr(string) string { // Using TCP on Windows, instead of Unix sockets. return "localhost:0" } diff --git a/util/tracing/detect/detect.go b/util/tracing/detect/detect.go index 3dbbeb6f4c0a..f60a73efd553 100644 --- a/util/tracing/detect/detect.go +++ b/util/tracing/detect/detect.go @@ -84,14 +84,14 @@ func detectExporter[T any](envVar string, fn func(d ExporterDetector) (T, bool, return exp, nil } -func NewSpanExporter(_ context.Context) (sdktrace.SpanExporter, error) { +func NewSpanExporter(context.Context) (sdktrace.SpanExporter, error) { return detectExporter("OTEL_TRACES_EXPORTER", func(d ExporterDetector) (sdktrace.SpanExporter, bool, error) { exp, err := d.DetectTraceExporter() return exp, exp != nil, err }) } -func NewMetricExporter(_ context.Context) (sdkmetric.Exporter, error) { +func NewMetricExporter(context.Context) (sdkmetric.Exporter, error) { return detectExporter("OTEL_METRICS_EXPORTER", func(d ExporterDetector) (sdkmetric.Exporter, bool, error) { exp, err := d.DetectMetricExporter() return exp, exp != nil, err @@ -110,11 +110,11 @@ func (n noneDetector) DetectMetricExporter() (sdkmetric.Exporter, error) { type noneSpanExporter struct{} -func (n noneSpanExporter) ExportSpans(_ context.Context, _ []sdktrace.ReadOnlySpan) error { +func (n noneSpanExporter) ExportSpans(context.Context, []sdktrace.ReadOnlySpan) error { return nil } -func (n noneSpanExporter) Shutdown(_ context.Context) error { +func (n noneSpanExporter) Shutdown(context.Context) error { return nil } @@ -133,15 +133,15 @@ func (n noneMetricExporter) Aggregation(kind sdkmetric.InstrumentKind) sdkmetric return sdkmetric.DefaultAggregationSelector(kind) } -func (n noneMetricExporter) Export(_ context.Context, _ *metricdata.ResourceMetrics) error { +func (n noneMetricExporter) Export(context.Context, *metricdata.ResourceMetrics) error { return nil } -func (n noneMetricExporter) ForceFlush(_ context.Context) error { +func (n noneMetricExporter) ForceFlush(context.Context) error { return nil } -func (n noneMetricExporter) Shutdown(_ context.Context) error { +func (n noneMetricExporter) Shutdown(context.Context) error { return nil } diff --git a/util/tracing/detect/otlp.go b/util/tracing/detect/otlp.go index 417a70ab7e8b..e0b80c36b1b8 100644 --- a/util/tracing/detect/otlp.go +++ b/util/tracing/detect/otlp.go @@ -81,6 +81,6 @@ func (otlpExporterDetector) DetectMetricExporter() (sdkmetric.Exporter, error) { } } -func deltaTemporality(_ sdkmetric.InstrumentKind) metricdata.Temporality { +func deltaTemporality(sdkmetric.InstrumentKind) metricdata.Temporality { return metricdata.DeltaTemporality } diff --git a/util/tracing/forwarder/forwarder.go b/util/tracing/forwarder/forwarder.go index d828f35fe2c5..d3894e1db817 100644 --- a/util/tracing/forwarder/forwarder.go +++ b/util/tracing/forwarder/forwarder.go @@ -56,7 +56,7 @@ func NewUnstarted(exp sdktrace.SpanExporter) *Exporter { } // Start marks the Exporter as started. -func (e *Exporter) Start(ctx context.Context) error { +func (e *Exporter) Start(context.Context) error { err := errAlreadyStarted e.startOnce.Do(func() { e.mu.Lock() diff --git a/util/tracing/otlptracegrpc/connection.go b/util/tracing/otlptracegrpc/connection.go index 25078c133d3b..3be36dfd6fa4 100644 --- a/util/tracing/otlptracegrpc/connection.go +++ b/util/tracing/otlptracegrpc/connection.go @@ -61,16 +61,14 @@ func NewConnection(cc *grpc.ClientConn, handler func(cc *grpc.ClientConn)) *Conn return c } -func (c *Connection) StartConnection(ctx context.Context) error { +func (c *Connection) StartConnection(context.Context) error { c.stopCh = make(chan struct{}) c.disconnectedCh = make(chan bool, 1) c.backgroundConnectionDoneCh = make(chan struct{}) - if err := c.connect(); err == nil { - c.setStateConnected() - } else { - c.SetStateDisconnected(err) - } + c.connect() + c.setStateConnected() + go c.indefiniteBackgroundConnection() // TODO: proper error handling when initializing connections. @@ -148,13 +146,8 @@ func (c *Connection) indefiniteBackgroundConnection() { // Normal scenario that we'll wait for } - if err := c.connect(); err == nil { - c.setStateConnected() - } else { - // this code is unreachable in most cases - // c.connect does not establish Connection - c.SetStateDisconnected(err) - } + c.connect() + c.setStateConnected() // Apply some jitter to avoid lockstep retrials of other // collector-exporters. Lockstep retrials could result in an @@ -168,9 +161,8 @@ func (c *Connection) indefiniteBackgroundConnection() { } } -func (c *Connection) connect() error { +func (c *Connection) connect() { c.newConnectionHandler(c.cc) - return nil } func (c *Connection) ContextWithMetadata(ctx context.Context) context.Context { diff --git a/util/windows/util_windows.go b/util/windows/util_windows.go index f5f6fefa5ef8..1fb1e2302f1d 100644 --- a/util/windows/util_windows.go +++ b/util/windows/util_windows.go @@ -157,7 +157,7 @@ type executorMountable struct { m snapshot.Mountable } -func (m *executorMountable) Mount(ctx context.Context, readonly bool) (snapshot.Mountable, error) { +func (m *executorMountable) Mount(context.Context, bool) (snapshot.Mountable, error) { return m.m, nil } diff --git a/util/winlayers/apply_nydus.go b/util/winlayers/apply_nydus.go index 0cbef79ec4c2..66b0595588e9 100644 --- a/util/winlayers/apply_nydus.go +++ b/util/winlayers/apply_nydus.go @@ -16,7 +16,7 @@ import ( nydusify "github.com/containerd/nydus-snapshotter/pkg/converter" ) -func isNydusBlob(ctx context.Context, desc ocispecs.Descriptor) bool { +func isNydusBlob(_ context.Context, desc ocispecs.Descriptor) bool { if desc.Annotations == nil { return false } diff --git a/worker/containerd/containerd_test_windows.go b/worker/containerd/containerd_test_windows.go index b3b412684e71..6dfdcb2bbb95 100644 --- a/worker/containerd/containerd_test_windows.go +++ b/worker/containerd/containerd_test_windows.go @@ -3,6 +3,6 @@ package containerd import "testing" //lint:ignore U1000 for parity with unix -func checkRequirement(t *testing.T) { +func checkRequirement(*testing.T) { // no special requirements needed for Windows }