Skip to content

Commit 6e98e92

Browse files
committed
fix: use %w instead of %s for error wrapping in fmt.Errorf calls across the codebase
Changes %s to %w in 11 fmt.Errorf calls where the argument is an error type, enabling proper error chain unwrapping via errors.Is()/errors.As(). This is a Go best practice that ensures callers can inspect the wrapped error rather than receiving a stringified version. Includes cleanup of a stray trailing \n in one error format string. Affected packages: pkg/lib/filesystem/unpack/ (4 occurrences in core.go, skill.go, util.go) pkg/lib/repo/local/ (2 occurrences in migration.go) pkg/cmd/remove/ (2 occurrences in remove.go) pkg/cmd/tag/ (1 occurrence in tag.go) pkg/cmd/kitimport/ (1 occurrence in util.go) pkg/cmd/dev/ (1 occurrence in opts.go) Signed-off-by: Adesh Deshmukh <adeshkd123@gmail.com>
1 parent bf4b9bc commit 6e98e92

8 files changed

Lines changed: 11 additions & 11 deletions

File tree

pkg/cmd/dev/opts.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ func (opts *DevStartOptions) complete(ctx context.Context, args []string) error
106106
if opts.port == 0 {
107107
availPort, err := findAvailablePort()
108108
if err != nil {
109-
return fmt.Errorf("invalid arguments: %s", err)
109+
return fmt.Errorf("invalid arguments: %w", err)
110110
}
111111
opts.port = availPort
112112
}

pkg/cmd/kitimport/util.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ func generateKitfile(dirContents *kfgen.DirectoryListing, repo string, outDir st
6363
}
6464
kitfilePath := filepath.Join(outDir, constants.DefaultKitfileName)
6565
if err := os.WriteFile(kitfilePath, kitfileBytes, 0644); err != nil {
66-
return nil, fmt.Errorf("failed to write Kitfile: %s", err)
66+
return nil, fmt.Errorf("failed to write Kitfile: %w", err)
6767
}
6868
output.Infof("Generated Kitfile:\n\n%s\n", string(kitfileBytes))
6969
return kitfile, nil

pkg/cmd/remove/remove.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ func removeModel(ctx context.Context, opts *removeOptions) error {
107107
}
108108
desc, err := removeModelRef(ctx, localRepo, opts.modelRef, opts.forceDelete)
109109
if err != nil {
110-
return fmt.Errorf("failed to remove: %s", err)
110+
return fmt.Errorf("failed to remove: %w", err)
111111
}
112112
displayRef := artifact.FormatRepositoryForDisplay(opts.modelRef.String())
113113
output.Infof("Removed %s (digest %s)", displayRef, desc.Digest)
@@ -132,7 +132,7 @@ func removeModelRef(ctx context.Context, localRepo local.LocalRepo, ref *registr
132132
if err == errdef.ErrNotFound {
133133
return ocispec.DescriptorEmptyJSON, fmt.Errorf("model %s not found", artifact.FormatRepositoryForDisplay(ref.String()))
134134
}
135-
return ocispec.DescriptorEmptyJSON, fmt.Errorf("error resolving model: %s", err)
135+
return ocispec.DescriptorEmptyJSON, fmt.Errorf("error resolving model: %w", err)
136136
}
137137

138138
// If reference passed in is a digest, remove the manifest ignoring any tags the manifest might have

pkg/cmd/tag/tag.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ func RunTag(ctx context.Context, options *tagOptions) error {
3838
if err == errdef.ErrNotFound {
3939
return fmt.Errorf("model %s not found", options.sourceRef.String())
4040
}
41-
return fmt.Errorf("error resolving model: %s", err)
41+
return fmt.Errorf("error resolving model: %w", err)
4242
}
4343
if options.sourceRef.Registry == options.targetRef.Registry && options.sourceRef.Repository == options.targetRef.Repository {
4444
err = sourceRepo.Tag(ctx, descriptor, options.targetRef.Reference)

pkg/lib/filesystem/unpack/core.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ func unpackRecursive(ctx context.Context, opts *UnpackOptions, visitedRefs []str
8787
store, err := getStoreForRef(ctx, opts)
8888
if err != nil {
8989
ref := artifact.FormatRepositoryForDisplay(opts.ModelRef.String())
90-
return fmt.Errorf("failed to find reference %s: %s", ref, err)
90+
return fmt.Errorf("failed to find reference %s: %w", ref, err)
9191
}
9292

9393
_, manifest, kitfile, err := util.ResolveManifestAndConfig(ctx, store, ref.Reference)

pkg/lib/filesystem/unpack/skill.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,15 @@ func unpackSkill(ctx context.Context, opts *UnpackOptions) error {
4545
store, err := getStoreForRef(ctx, opts)
4646
if err != nil {
4747
ref := artifact.FormatRepositoryForDisplay(opts.ModelRef.String())
48-
return fmt.Errorf("failed to find reference %s: %s", ref, err)
48+
return fmt.Errorf("failed to find reference %s: %w", ref, err)
4949
}
5050
manifestDesc, err := store.Resolve(ctx, ref.Reference)
5151
if err != nil {
5252
return fmt.Errorf("failed to resolve reference: %w", err)
5353
}
5454
manifest, err := util.GetManifest(ctx, store, manifestDesc)
5555
if err != nil {
56-
return fmt.Errorf("failed to read manifest: %s", err)
56+
return fmt.Errorf("failed to read manifest: %w", err)
5757
}
5858
config, err := util.GetKitfileForManifest(ctx, store, manifest)
5959
if err != nil {

pkg/lib/filesystem/unpack/util.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ func getStoreForRef(ctx context.Context, opts *UnpackOptions) (oras.Target, erro
131131
storageHome := constants.StoragePath(opts.ConfigHome)
132132
localRepo, err := local.NewLocalRepo(storageHome, opts.ModelRef)
133133
if err != nil {
134-
return nil, fmt.Errorf("failed to read local storage: %s\n", err)
134+
return nil, fmt.Errorf("failed to read local storage: %w", err)
135135
}
136136

137137
if _, err := localRepo.Resolve(ctx, opts.ModelRef.Reference); err == nil {

pkg/lib/repo/local/migration.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ func MigrateStorage(ctx context.Context, baseStoragePath string) error {
7777
// Clean up this repos blobs; we'll clean up the directories later
7878
repoDir := localStore.getStorePath()
7979
if err := os.RemoveAll(repoDir); err != nil && !errors.Is(err, fs.ErrNotExist) {
80-
return fmt.Errorf("failed to clean up directory %s after migration: %s", repoDir, err)
80+
return fmt.Errorf("failed to clean up directory %s after migration: %w", repoDir, err)
8181
}
8282
pb.Increment()
8383
}
@@ -90,7 +90,7 @@ func MigrateStorage(ctx context.Context, baseStoragePath string) error {
9090
rmDir := filepath.Join(baseStoragePath, baseSubDir)
9191
output.Debugf("Removing storage directory %s", rmDir)
9292
if err := os.RemoveAll(rmDir); err != nil && !errors.Is(err, fs.ErrNotExist) {
93-
return fmt.Errorf("failed to clean up directory %s after migration: %s", rmDir, err)
93+
return fmt.Errorf("failed to clean up directory %s after migration: %w", rmDir, err)
9494
}
9595
}
9696
output.Debugf("Migration done!")

0 commit comments

Comments
 (0)