@@ -25,7 +25,6 @@ import (
2525 "go.jetpack.io/devbox/internal/devpkg"
2626 "go.jetpack.io/devbox/internal/devpkg/pkgtype"
2727 "go.jetpack.io/devbox/internal/lock"
28- "go.jetpack.io/devbox/internal/searcher"
2928 "go.jetpack.io/devbox/internal/setup"
3029 "go.jetpack.io/devbox/internal/shellgen"
3130 "go.jetpack.io/devbox/internal/telemetry"
@@ -54,33 +53,25 @@ func (d *Devbox) Outdated(ctx context.Context) (map[string]UpdateVersion, error)
5453 ctx , task := trace .NewTask (ctx , "devboxOutdated" )
5554 defer task .End ()
5655
56+ lockfile := d .Lockfile ()
5757 outdatedPackages := map [string ]UpdateVersion {}
5858
5959 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 {
6162 continue
6263 }
6364
64- result , err := searcher . Client (). Search ( ctx , pkg .CanonicalName ())
65+ lockPackage , err := lockfile . FetchResolvedPackage ( pkg .Versioned ())
6566 if err != nil {
66- return nil , err
67+ return nil , errors . Wrap ( err , "failed to fetch resolved package" )
6768 }
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
8372 }
73+
74+ outdatedPackages [pkg .Versioned ()] = UpdateVersion {Current : existingLockPackage .Version , Latest : lockPackage .Version }
8475 }
8576
8677 return outdatedPackages , nil
0 commit comments