Skip to content

Commit b2f8b22

Browse files
committed
[print-dev-env] Skip cache if lockfile has changed
1 parent 1444a58 commit b2f8b22

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

internal/impl/devbox.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -957,6 +957,13 @@ func (d *Devbox) ensurePackagesAreInstalledAndComputeEnv(
957957
) (map[string]string, error) {
958958
defer debug.FunctionTimer().End()
959959

960+
// We need to check the lockfile status prior to ensurePackagesAreInstalled
961+
// since it will update the lockfile to be up-to-date.
962+
upToDate, err := d.lockfile.IsUpToDateAndInstalled()
963+
if err != nil {
964+
return nil, err
965+
}
966+
960967
// When ensurePackagesAreInstalled is called with ensure=true, it always
961968
// returns early if the lockfile is up to date. So we don't need to check here
962969
if err := d.ensurePackagesAreInstalled(ctx, ensure); err != nil && !strings.Contains(err.Error(), "no such host") {
@@ -965,11 +972,7 @@ func (d *Devbox) ensurePackagesAreInstalledAndComputeEnv(
965972
ux.Fwarning(d.stderr, "Error connecting to the internet. Will attempt to use cached environment.\n")
966973
}
967974

968-
// Since ensurePackagesAreInstalled calls computeNixEnv when not up do date,
969-
// it's ok to use usePrintDevEnvCache=true here always. This does end up
970-
// doing some non-nix work twice if lockfile is not up to date.
971-
// TODO: Improve this to avoid extra work.
972-
return d.computeNixEnv(ctx, true)
975+
return d.computeNixEnv(ctx, upToDate /*usePrintDevEnvCache*/)
973976
}
974977

975978
func (d *Devbox) nixPrintDevEnvCachePath() string {

0 commit comments

Comments
 (0)