What's New
Devbox is now powered by Nix Flakes
- Flakes are a new feature in the Nix Language that allows us to package software and create dev shells in a fully reproducible way. This has significant benefits for our ability to upgrade and cache evaluation results.
- Immediate benefit to users should be faster warm start times for Devbox Shell. We’ve seen some data that Devbox can start up a shell 70% faster after the first installation.
- Learn more by reading our blog: Devbox 0.4.3: Powered by Flakes
Declare environment variables in devbox.json.
- Developers can now declare environment variables in their
devbox.json
under theenv
object. For example, you can set variable$FOO
tobar
as follows:{ "packages": [ "python310" ], "env": { "FOO": "bar" }, "shell": { "init_hook": null, "nixpkgs": { "commit": "..." } }
- This lets developers better organize their devbox.json, and avoid lengthy
export
statements in their init_hook - For more details, check out our Docs
Bug Fixes in this Release
- Fixes a bug where Fish shell would fail to inherit host environment variables
- Fixed a bug where
devbox shellenv
was prepending an incorrect path. - Fixed a bug that could mangle a user’s PS1 when evaluating
devbox shellenv
- Fixed bugs in generated
devcontainer.json
, which would include some extensions multiple times
Special thanks to:
- @hezhizhen for contributing 4 PRs to this release
- @worldofgeese for reporting issues with devcontainer generation
- @PandaRyshan for reporting issues with Fish Shell
What's Changed
- Add revive linter and enable indent-error-flow rule by @hezhizhen in #651
- [flakes] enable featureflag by @savil in #716
- [Devcontainer] Fixed path for python interpreter in devcontainer.json by @mohsenari in #715
- [vscode extension] Fixed autorun shell on new terminal open bug by @mohsenari in #717
- [devcontainer] Fixed bug on multiple python extensions listed in devcontainer by @mohsenari in #718
- Fix fish shell after #706 by @ipince in #721
- Replace os.Setenv with t.Setenv in tests by @hezhizhen in #720
- Enable the Env in Config Feature by @Lagoja in #722
- [easy][code cleanup] move packages specific functions to impl/packages.go by @savil in #723
- [easy][cleanup] move nix.DevboxShell to impl.DevboxShell by @savil in #724
- [CICD] auto-nix-install: export env-var and add DEVBOX_DEBUG=1 by @savil in #727
- Clean up error handling and docs by @hezhizhen in #726
- [cicd] auto-nix-install: set github access token by @savil in #728
- Remove obsolete code after unified env by @ipince in #729
- Remove dead code by @ipince in #732
- Shellenv prepends to original path, not current path by @ipince in #730
- plansdk: get cloud cache from environment by @gcurtis in #734
- Escape env vars in shellenv the same way as in shellrc by @ipince in #731
- Plugin Contributing Guide by @Lagoja in #611
- Remove more dead code by @ipince in #735
- [xdg]: unexport xxxDir() and use xxxSubpath() only by @hezhizhen in #733
- Fix build: only go:embed .json files in plugins dir by @ipince in #743
- Fix quickstart button to link to tutorial by @Lagoja in #737
- Include plugin subdirs by @ipince in #746
- [config] early return if cannot find GlobalDataPath by @savil in #739
- [flakes] Assign higher priority to later packages to resolve conflicting packages error by @savil in #738
- Update and activate stale-issue-cleanup by @Lagoja in #665
- nix,impl: avoid modifying flake.nix; don't use --impure by @gcurtis in #749
- ci: enable DEVBOX_DEBUG for all test jobs by @gcurtis in #751
- testscripts: enable DEVBOX_DEBUG by @gcurtis in #752
- [allow unfree] add --impure and env-var to nix profile commands by @savil in #753
- all: add tracing by @gcurtis in #750
Full Changelog: 0.4.2...0.4.3