@@ -25,7 +25,6 @@ import (
25
25
"go.jetpack.io/devbox/internal/devpkg"
26
26
"go.jetpack.io/devbox/internal/devpkg/pkgtype"
27
27
"go.jetpack.io/devbox/internal/lock"
28
- "go.jetpack.io/devbox/internal/searcher"
29
28
"go.jetpack.io/devbox/internal/setup"
30
29
"go.jetpack.io/devbox/internal/shellgen"
31
30
"go.jetpack.io/devbox/internal/telemetry"
@@ -54,33 +53,25 @@ func (d *Devbox) Outdated(ctx context.Context) (map[string]UpdateVersion, error)
54
53
ctx , task := trace .NewTask (ctx , "devboxOutdated" )
55
54
defer task .End ()
56
55
56
+ lockfile := d .Lockfile ()
57
57
outdatedPackages := map [string ]UpdateVersion {}
58
58
59
59
for _ , pkg := range d .AllPackages () {
60
- if strings .HasSuffix (pkg .Versioned (), "latest" ) {
60
+ // For non-devbox packages, like flakes or runx, we can skip for now
61
+ if ! pkg .IsDevboxPackage {
61
62
continue
62
63
}
63
64
64
- result , err := searcher . Client (). Search ( ctx , pkg .CanonicalName ())
65
+ lockPackage , err := lockfile . FetchResolvedPackage ( pkg .Versioned ())
65
66
if err != nil {
66
- return nil , err
67
+ return nil , errors . Wrap ( err , "failed to fetch resolved package" )
67
68
}
68
-
69
- for _ , p := range result .Packages {
70
- if p .Name == pkg .CanonicalName () {
71
- for _ , v := range p .Versions {
72
- vv , err := pkg .ResolvedVersion ()
73
- if err != nil {
74
- return nil , err
75
- }
76
-
77
- if v .Version > vv {
78
- outdatedPackages [p .Name ] = UpdateVersion {Current : vv , Latest : v .Version }
79
- break
80
- }
81
- }
82
- }
69
+ existingLockPackage := lockfile .Packages [pkg .Raw ]
70
+ if lockPackage .Version == existingLockPackage .Version {
71
+ continue
83
72
}
73
+
74
+ outdatedPackages [pkg .Versioned ()] = UpdateVersion {Current : existingLockPackage .Version , Latest : lockPackage .Version }
84
75
}
85
76
86
77
return outdatedPackages , nil
0 commit comments