Releases: jetify-com/devbox
0.10.0-dev
This is a pre-release of our upcoming 0.10.0 Devbox Release.
To test the latest version of the 0.10.0 prerelease, export the DEVBOX_USE_VERSION environment variable in your shell. We recommend adding this line to your shell's rc file
export DEVBOX_USE_VERSION=0.10.0-dev
To revert back to the previous release, unset this variable.
What's New in this Prerelease
In addition to all the features in our last prerelease, this prerelease adds the following:
Plugins v2
This release includes an update to our Devbox Plugins to make them more flexible and powerful. These changes are backwards compatible, so your current plugins should work as expected.
- Plugins now support all the fields from
devbox.json
, includingscripts
andpackages
:- Specifying
scripts
in your plugin.json will make those scripts available in any project that imports your plugin - Specifying
packages
in your plugin.json will install those packages in any project that imports your plugin
- Specifying
- Plugins can now include/import other plugins in the
include
field
This version also implements a merge algorithm that makes it possible to import multiple plugins, or even nest plugin imports. For more technical details, see the [#1850]
Corepack For NodeJS
Devbox now has a builtin plugin that configures Node.js packages to use Corepack. Corepack is a script bundled with Node.js that manages yarn, npm, and pnpm for your project without having to install them with Nix/Devbox. Huge thanks to @jasononeil and @jay-aye-see-kay for contributing the plugin.
We recommend using Corepack to install npm and other package managers instead of installing them directly with Devbox. Docs and examples will be updated to use Corepack for our full release.
Other Fixes:
- Fixed a backwards compatibility issue with the last Devbox pre-release
- Fixed a permissions issue on the
/code
directory when generating a Dockerfile. Thanks @agate for contributing this fix! devbox update
will now refresh git flakes to ensure that they are up to date. Thanks @kadaan for contributing this fix!- Fixed Github flake reference parsing to handle commit references +
?dir
query parameters. - Fixed a bug where Devbox symlinks are not properly recognized on some systems.
Full Changelog
- [update] Ignore update flake error by @mikeland73 in #1840
- [examples] Update all examples by @mikeland73 in #1841
- [cicd] split out project and non-projec tests by @mikeland73 in #1839
- [CICD] Unbreak by @mikeland73 in #1843
- [cicd] Run mac tests on cron only by @mikeland73 in #1844
- [Outputs] Update generated flake to handle store paths for each output by @savil in #1837
- [Outputs] make pkg.Installable and pkg.InputAddressedPaths return array by @savil in #1842
- Bump rails from 7.0.8 to 7.0.8.1 in /examples/stacks/rails/blog by @dependabot in #1859
- [plugins] Unify plugin config and devbox config by @mikeland73 in #1831
- [cleanup] remove unnecessary code when installing packages in store by @savil in #1847
- internal/shellgen: add trace messages to flake by @gcurtis in #1862
- nix/flake: handle github refs with / and subdirs by @gcurtis in #1863
- [nix-outputs] Fix flake installable with custom outouts by @mikeland73 in #1864
- [error message UX] Bring back nicer error messages for insecure and platform-incompatible packages by @savil in #1853
- [flakes] Ensure flake outputs are always used by @mikeland73 in #1865
- Fixes a bug where devbox symlink isn't recognized in some systems by @mohsenari in #1861
- [plugins] Use reflikes for plugins by @mikeland73 in #1845
- Add builtin plugin for nodejs + Corepack support by @Lagoja in #1860
- [outputs lockfile] make backwards compatible by @savil in #1866
- [Examples] Update devbox.lock to have Store Paths (for backwards compat) by @savil in #1873
- [versioning] Add tag version to json schema and templates by @mikeland73 in #1875
- [plugins] Implement plugins v2 by @mikeland73 in #1850
- [cleanup] Remove reflike and tyson by @mikeland73 in #1867
- internal/devconfig/configfile: remove NewPackage func by @gcurtis in #1880
- set the ownership of /code to devbox user by @agate in #1717
- Fix #1783: Support non-root install in pure mode by @kadaan in #1869
- Fix #1868: Fix flake handling by @kadaan in #1870
- [easy][UX] use ux.Finfo for printing ensuring packages are installed by @savil in #1888
- [Devbox] update dependencies by @savil in #1889
- all: go get -u ./... by @gcurtis in #1887
- [plugins] Fix relative plugins, add cycle detection by @mikeland73 in #1877
- [cleanup] Remove init rec feature by @mikeland73 in #1890
New Contributors
Full Changelog: 0.9.2-dev...0.10.0-dev
0.9.2-dev
This is a pre-release of our upcoming 0.9.2 Devbox Release.
To test the 0.9.2 prerelease, export the DEVBOX_USE_VERSION environment variable in your shell. We recommend adding this line to your shell's rc file
export DEVBOX_USE_VERSION=0.9.2-dev
To revert back to the previous release, unset this variable. Please see the note below on changes to our lockfile before reverting to a previous release.
What's new in this pre-release
Alternate Outputs Support
You can now install alternate outputs for a package with devbox add
using the --outputs
flag, no flake references required.
For example, if you need to install the promtool cli along with the prometheus package, you can now run devbox add prometheus@latest --outputs=out,cli
.
GLIBC Library Patching
This release updates Devbox's ability patch a package to use the latest available version of glibc
. This fix should help address version 'GLIBC_x.xx' not found
errors that may occur when installing or running a mix of older and newer packages with Devbox, especially when using older versions of interpreted languages like Python or Ruby.
If you encounter this error in your project, you should run devbox add <package-name> --patch-glibc
on the language interpreter or runtime. For example, if you encounter this with a Python 3.8 project, you should run devbox add [email protected] --patch-glibc
.
This release also unsets the LD_LIBRARY_PATH
and LIBRARY_PATH
variables in Devbox Shell, which could cause compatibility or missing library issues.
Process-compose Updates
The version of process-compose used by Devbox has been updated to 0.85.0. Additionally, we've updated Devbox to assign a random port to process-compose instead of using a pre-selected block, which should reduce the risk of port contention.
Other Improvements and Bug Fixes:
- Fixes a bug with parsing Flake URL references
- Devbox environments will now update faster if you are adding a package that is already in your Nix store
devbox.json
files created by the CLI now include our JSON schema- Fixes to various examples and templates
- Other small UX improvements and fixes
Note on devbox.lock
Changes
This pre-release includes some lockfile formatting changes to support alternate outputs. Using the pre-release may modify your devbox.lock
file, but should not change your locked packages. These changes are incompatible with earlier versions of Devbox, so we recommend backing up your devbox.lock
file while testing the pre-release
Thanks to:
@evsl for contributing for the first time, fixing a critical bug in how we parsed Flake URLS #1819
@t-monaghan for contributing for the first time, adding the devbox.json schema to generated projects: #1760
@literatesnow for adding documentation on DEVBOX_NO_PROMPT to our Devbox docs: #1792
Full Changelog
- internal/devpkg: move flake code into new nix/flake package by @gcurtis in #1789
- internal/searcher,lock: use /v2/resolve endpoint by @gcurtis in #1790
- [telemetry] Fix release in telemetry by @mikeland73 in #1775
- examples/development/zig: update to 0.11.0 and fix for macOS by @gcurtis in #1795
- examples/development/elixir: update elixir to fix for macOS Sonoma by @gcurtis in #1796
- ci: run example tests on macOS for releases by @gcurtis in #1797
- Bump puma from 5.6.7 to 5.6.8 in /examples/stacks/rails/blog by @dependabot in #1706
- plugins/redis: log to stdout by default by @gcurtis in #1793
- [secrets] Fix working dir for secrets upload/download by @mikeland73 in #1800
- internal/devbox: stop setting LD_LIBRARY_PATH and LIBRARY_PATH by @gcurtis in #1799
- examples/stacks/rails: update deps for dependabot by @gcurtis in #1802
- Add documentation for DEVBOX_NO_PROMPT to the FAQ. by @literatesnow in #1792
- examples/insecure: modernize devbox.json by @gcurtis in #1804
- examples/stacks/drupal: fix for local by @gcurtis in #1801
- all: upgrade to Go 1.22 by @gcurtis in #1805
- docs: update dependencies by @gcurtis in #1803
- [search api] enable /v2/resolve api by @savil in #1807
- Bump grpcio from 1.53.0 to 1.53.2 in /examples/development/python/pipenv by @dependabot in #1808
- Json schema included in initial devbox.json file by @t-monaghan in #1760
- ci: increase mac test timeout to 1 hour by @gcurtis in #1809
- [gen-readme] Allow custom templates by @mikeland73 in #1794
- [CICD] Add slack message when cli release is complete by @mikeland73 in #1806
- [secrets] Update envsec by @mikeland73 in #1812
- [docker] fix for devbox docker image root-user build by @mohsenari in #1811
- nix/flake: installables exclude attribute path from URL by @evsl in #1819
- [config] Refactor config to prepare for imports by @mikeland73 in #1817
- internal/shellgen: stop adding flake to git by @gcurtis in #1822
- shellgen: update store paths when patching glibc by @gcurtis in #1818
- [Outputs] Add store-paths of package outputs to devbox.lock by @savil in #1814
- [UX] Show add (nix build) stdout by @mikeland73 in #1826
- Update Process Compose to 0.85.0 by @Lagoja in #1820
- [UX] Better dedup packages we nix build, and improve UX printouts by @savil in #1827
- [process-compose] Improve port selection by @mikeland73 in #1835
- [cicd] Update versions, fix cache error by @mikeland73 in #1836
- [easy][cicd] Disable insecure pacakge example test by @mikeland73 in #1838
New Contributors
- @t-monaghan made their first contribution in #1760
- @evsl made their first contribution in #1819
Full Changelog: 0.9.1...0.9.2-dev
0.0.0-edge.2024-02-15
0.0.0-edge.2024-02-15 edge release
0.0.0-edge.2024-02-08
0.0.0-edge.2024-02-08 edge release
0.9.1
Fixes in this release:
- Adds compatibility with Nix 2.20
- Fixes a syntax error when running
init_hooks
in Fish shell.
Changelog
- f48959d internal/nix: fix unredacted error message (#1782)
- 2018568 [github actions] changed root-reserve size (#1786)
- b390352 [eval symlinks] eval symlinks in print-dev-env (#1777)
- 6d9ea74 [update] change Error: to Warning: for failed attempt to upgrade flake (#1773)
- 12f2daf nix: improve redacted nix error (#1776)
- f050ab8 [state] Ignore shell mismatch for run (#1774)
- 799368c [fish] make init hook recursion fish compatible (#1771)
- 67f4f9f [nix profile] Changes to support format changes from nix 2.20 (#1770)
0.0.0-edge.2024-02-01
0.0.0-edge.2024-02-01 edge release
0.9.0
Improved Nix Profile Generation
We've improved how Devbox creates Nix Profiles for your development shells to make it more reliable and deterministic. In addition to simplifying our profile generation code, this should ensure that changes to your installed packages are more reliably reflected in your Nix Shell.
--allow-insecure
Improvements
You can now pass a list of packages to the --allow-insecure
flag. This is useful when you need to allow a list of insecure dependencies for a package
For example: installing sublime4
will fail because openssl-1.1.1w
is marked insecure in Nixpkgs. To override the warning and install openssl, you can run devbox add sublime4 --allow-insecure=openssl-1.1.1w
:

Fish init_hook
Improvements
Init Hooks are now sourced correctly when run in Fish shell, which should avoid script parsing errors on starting the shell.
Changelog
- 7796d01 [fish] use fish hooks file for devbox.EnvExports (used in shellenv) (#1756)
- 5585d21 [vscode-exntension] extension version 0.1.4 changes (#1757)
- 414c517 [add] migrate allow_insecure from lockfile to config (#1754)
- 3697cb9 [devbox add] --allow-insecure should handle multiple, user-specified packages (#1749)
- 3ac7be0 [fish] use exit instead of return in init-hook recursion guard (#1755)
- f4a8c74 Update Docs: direnv, gen readme, FAQs (#1751)
- 2fee55b [vscode-extension] Logging events in logfile (#1745)
- 1732602 [easy] remove extraneous debugging Printf from devbox.installNixPackagesToStore (#1750)
0.9.0-pre
Pre-release of our upcoming 0.9.0 release, including improvements to Devbox profile generation, better support for overriding insecure packages, and more
Features
Improved Nix Profile Generation
We've improved how Devbox creates Nix Profiles for your development shells to make it more reliable and deterministic. In addition to simplifying our profile generation code, this should ensure that changes to your installed packages are more reliably reflected in your Nix Shell.
--allow-insecure
Improvements
You can now pass a list of packages to the --allow-insecure
flag. This is useful when you need to allow a list of insecure dependencies for a package
For example: installing sublime4
will fail because openssl-1.1.1w
is marked insecure in Nixpkgs. To override the warning and install openssl, you can run devbox add sublime4 --allow-insecure=openssl-1.1.1w
:

Fish init_hook
Improvements
Init Hooks are now sourced correctly when run in Fish shell, which should avoid script parsing errors on starting the shell.
How to Install
To opt in to the pre-release, export DEVBOX_USE_VERSION=0.9.0-pre
in your shell. We recommend adding this to your shellrc file if you plan to test the pre-release long term.
To revert to the last released version, unset the DEVBOX_USE_VERSION
environment variable
Changelog
- 7796d01 [fish] use fish hooks file for devbox.EnvExports (used in shellenv) (#1756)
- 5585d21 [vscode-exntension] extension version 0.1.4 changes (#1757)
- 414c517 [add] migrate allow_insecure from lockfile to config (#1754)
- 3697cb9 [devbox add] --allow-insecure should handle multiple, user-specified packages (#1749)
- 3ac7be0 [fish] use exit instead of return in init-hook recursion guard (#1755)
- f4a8c74 Update Docs: direnv, gen readme, FAQs (#1751)
- 2fee55b [vscode-extension] Logging events in logfile (#1745)
- 1732602 [easy] remove extraneous debugging Printf from devbox.installNixPackagesToStore (#1750)
0.0.0-edge.2024-01-25
0.0.0-edge.2024-01-25 edge release
0.8.7
Fixed in this release
- Fixed an issue that would throw syntax errors when running init_hooks in Fish shell
- Added a command (
devbox gen readme
) to generate a Markdown Readme from a devbox.json