Skip to content

Tags: jetify-com/devbox

Tags

0.12.0

Toggle 0.12.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
[lock-tidy] Put warning behind feature flag (#2171)

## Summary

`--tidy-lockfile` is not reliable, so put this warning behind a feature
flag until it is fixed.

## How was it tested?

Ran `devbox install` with missing outputs in lockfile, did not see
error.

0.12.0-devb

Toggle 0.12.0-devb's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
[lock-tidy] Put warning behind feature flag (#2171)

## Summary

`--tidy-lockfile` is not reliable, so put this warning behind a feature
flag until it is fixed.

## How was it tested?

Ran `devbox install` with missing outputs in lockfile, did not see
error.

0.12.0-deva

Toggle 0.12.0-deva's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
[Devbox] introduce devopt.EnvOptions (#2159)

## Summary

From the EnvOptions docblock:
```
// EnvOptions configure the Devbox Environment in the `computeEnv` function.
// - These options are commonly set by flags in some Devbox commands
// like `shellenv`, `shell` and `run`.
// - The struct is designed for the "common case" to be zero-initialized as `EnvOptions{}`.
```

This gets rid of the pseudo-global state in the `Devbox` struct where we
were setting `pure`, `preservePathStack` and `omitNixEnv` values.

## How was it tested?

TODO:
- [x] CICD should pass
- [x] Ensure `devbox global` and `devbox` omitNixEnv works as expected
- [x] Ensure `pure` works as expected for `devbox shell --pure`.

0.12.0-dev

Toggle 0.12.0-dev's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
[devbox] run: skip re-computing Devbox State if in devbox shell (#2144)

## Summary

This PR implements a change to the semantics of `devbox run`.
BEFORE:
`devbox run` would always ensure that the Devbox State and Environment
is up-to-date.
AFTER:
`devbox run` will only do so when _outside_ a Devbox Environment (i.e.
`devbox shell` or equivalent like direnv-enabled shell).

The motivation is two fold:
1. Speed. Users often want to just run a quick script, this slows them
down.
2. Users often have init-hooks which are more appropriate for one-time
setup, rather than when running a utility script inside a `devbox shell`
that has already been set up appropriately.

This was shared in the Discord channel for feedback:
https://discord.com/channels/903306922852245526/1009933892385517619/1248724103750483978

Notably, the focus there was on skipping the init-hooks, but in this PR,
we are going one-step beyond that to ensure the Devbox State itself is
not re-computed. The reason is that rather than _partially_ updating the
Devbox State and Environment (partially, because init-hooks are part of
setting up the environment) we'd rather eschew the step entirely. This
feels more straightforward for users to reason about.

## How was it tested?

Did a basic sanity test in two scenarios:

1. Running the script in a `devbox shell` or direnv-enabled environment
does NOT recompute the Devbox state.
2. Repeated the sanity test when outside of the Devbox environment, and
confirmed it does recompute the Devbox state.

0.11.1

Toggle 0.11.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
[CI] Update go-releaser action (#2143)

`--rm-dist` flag is deprecated in newer versions of Goreleaser in favor
of `clean`: https://goreleaser.com/deprecations/#-rm-dist

Release action was failing due to the deprecated flag. This PR replaces
it with the new clean flag

## Summary

## How was it tested?

Signed-off-by: John Lago <[email protected]>

0.11.1-dev

Toggle 0.11.1-dev's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
[CI] Update go-releaser action (#2143)

`--rm-dist` flag is deprecated in newer versions of Goreleaser in favor
of `clean`: https://goreleaser.com/deprecations/#-rm-dist

Release action was failing due to the deprecated flag. This PR replaces
it with the new clean flag

## Summary

## How was it tested?

Signed-off-by: John Lago <[email protected]>

0.11.0

Toggle 0.11.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
nixcache: improve sudo prompt and help docs (#2107)

0.11.0-dev.2

Toggle 0.11.0-dev.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Refactor the list command (#2101)

## Summary
Refactor the list command into its own file. Also update the description
to be more accurate.

## How was it tested?
1. Verified the `list` command is updated with the new message in the
`--help` command output
2. Verified the `list` command outputs the same list of packages before
and after this change (compared my local `devbox` install output to the
output in my `devbox shell` with these changes).

0.11.0-dev

Toggle 0.11.0-dev's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
nix: allow unfree and insecure in cache upload (#2078)

Add the `NIXPKGS_ALLOW_UNFREE` and `NIXPKGS_ALLOW_INSECURE` environment
variables to `nix copy` commands so that those packages can be uploaded
by default. This also requires the `--impure` flag so that Nix respects
the environment variables.

0.10.7

Toggle 0.10.7's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Revert "[perf] Skip cache check if store path exists locally" (#2054)

Reverts #2042

#2042 introduced a bug where adding non-cached packages
would fail to add them to the flake on the first attempt. (it would
succeed on subsequent attempts after the package is already in the
store).

The root cause is that `fetchNarInfoStatus` gets called twice per
package (even though we cache it and we're not supposed to call it
twice). The first call returns `false` because the package is not
cached. The second call returns `true` because the package is already in
store. This discrepancy essentially causes the package not to appear on
the flake at all. When updating state again, the package is already in
the nix store so both `fetchNarInfoStatus` calls return true.

I think reverting this is best immediate course of action. In follow up
we should fix `fetchNarInfoStatus` so it only gets called once (it will
improve performance and is more correct).

Later on we can think of better way to do #2042. The
current implementation is a bit fragile and not 100% consistent with the
initial intention of the function, so I'm concerned it can lead to more
bugs in the future.