0.4.0: Devbox Global, Unified Env, and more
This release adds a few major new features to Devbox:
- Devbox Global lets you add packages to include across all your Devbox Shells
- Improved Shell Env ensures better consistency in your Devbox environment across shells and commands
Devbox Global Packages
Devbox Global allows you to add packages to a global devbox.json.
This is useful for installing a standard set of tools you want to use across multiple Devbox Projects. You can also use Devbox Global to install and manage packages on your Host OS, as a substitute for tools like brew
or apt-get
For example — if you use ripgrep as your preferred search tool, you can add it to your global Devbox profile with devbox global add ripgrep
. Now whenever you start a Devbox shell, you will have ripgrep available, even if it's not in the project's devbox.json.
Learn more about Devbox Global
Improved Shell Env
All shells and commands now use a unified environment to determine the correct environment variables and hooks to run, ensuring that you get a consistent environment wherever you run Devbox. The environment can also be printed via devbox shellenv
Note, if you used an earlier version of Devbox to generate a .envrc
for direnv, you will need to regenerate it using devbox generate .envrc --force
. See our Direnv docs for more details.
Other changes in 0.4.0
- Fixed an issue with Fish shell where
init_hooks
failed to run when starting Devbox Shell - Dockerfiles created with
devbox generate
now have the correct permissions devbox run
can now be used to run arbitrary commands. For example:devbox run date
will rundate
in your Devbox shell, even if you have not created a script with that name.
Special thanks to:
@hezhizhen for contributing a PR to this release
@gfriloux, @worldofgeese, @mindreframer for reporting issues addressed in this release
What's Changed
- Add some basic devbox run testscript tests by @ipince in #632
- Set PATH prepend after user init file runs by @ipince in #634
- tmpl: run nixpkgs-fmt on nix files by @gcurtis in #636
- Add tests for PATH setting in run by @ipince in #633
- [dependabot] Fix vulnerability in example by @mikeland86 in #638
- [direnv] Added support for config envs in direnv by @mohsenari in #626
- [global] Implement simple global pull by @mikeland86 in #630
- [global] Move global to XDG_DATA_HOME by @mikeland86 in #637
- Include some more shell-specific vars, remove nix shell hook by @ipince in #635
- Prevent shell inception when using print-dev-env by @ipince in #640
- [refactor]: make getGithubUsername clearer by @hezhizhen in #641
- boxcli: add
devbox global shellenv
command by @gcurtis in #644 - Add testscript tests for config env vars by @ipince in #643
- Deprecate shell -- in favor of run by @ipince in #642
- Add tests for env var application order by @ipince in #645
- Add tests for passing args to run scripts by @ipince in #647
- [flake] php extensions example project by @savil in #631
- Update devbox run help text by @ipince in #517
- Remove dot from flag help text by @ipince in #649
- Fix cli-release badge by @ipince in #653
- Add testscript tests for PATH setting by @ipince in #646
- Bump golang.org/x/net from 0.2.0 to 0.7.0 by @dependabot in #654
- [generate] Fixed permission issue for generated dockerfile by @mohsenari in #657
- Add shellrc tests for unified env by @ipince in #660
- Write shellrc file on fish (unified env) by @ipince in #661
- [flakes] generate flake.nix file for php-related packages by @savil in #639
- [services] MVP process manager by @mikeland86 in #659
- [service-manager] Add more process compose yamls by @mikeland86 in #663
- Enable unified env by default by @ipince in #650
- [shellenv] Remove nix profile from path, add shellenv command by @mikeland86 in #667
- [easy][global] Fix duplicate packages DEV-1281 by @mikeland86 in #672
- [flakes] remove shell hook by @savil in #671
- [easy][global] Fix tests when global pkgs exist DEV-1280 by @mikeland86 in #673
- [flakes] enable unfree packages by @savil in #670
- Add support for fish by @ipince in #669
- [stderr] Fix a few prints that were going to out instead of err DEV-1282 by @mikeland86 in #674
- [nix] create common ExperimentalFlags function by @savil in #678
- Add Pip Docs by @Lagoja in #664
- Add Django Example Docs by @Lagoja in #676
- Unhide Global by @Lagoja in #683
- Fix whitespace in fish shellrc template by @ipince in #686
Full Changelog: 0.3.4...0.4.0