What's new in this release
0.13.0 is a major release, with several enhancements to improve the Python development experience with Devbox.
[Python] Autopatching Native Libraries
This release includes an experimental feature that automatically patches Python interpreters to load native libraries installed in your Devbox Shell, without needing to set LD_LIBRARY_PATH
. This makes it easier to create Devbox shells for projects with Python Packages that use native extensions. Additionally, Devbox will automatically install native libraries that are commonly used by Python packages, such as zlib
and openssl
. This feature can be disabled with devbox add <python-package> --patch never
This release automatically enables patching for Python interepreters, but it can be enabled for any package (such as Ruby) using devbox add <pkg> --patch always
.
[Python] Plugin + Virtual Environment improvements
When you launch Python, our plugin now defaults to putting your virtual environment in $DEVBOX_PROJECT_ROOT/.venv. This provides better compatibility with IDEs and Language Extensions that expect Python to be in your project root. The plugin also sets a UV_PYTHON
environment variable to improve compatibility with the uv
package manager.
You can manage where Devbox sets up your .venv directory by setting the $VENV_DIR environment variable in your devbox.json.
Special thanks to @djgoku for contributing fixes to this feature!
[Services] devbox services attach
and better backgrounding
Starting Devbox services in the background with devbox services up -b
now runs process-compose as a detached process in the background, meaning it will stay alive even if your terminal exits or crashes. You can attach the process-compose TUI to the backgrounded process with devbox services attach
, and exiting the TUI will leave process-compose running in the background.
To stop the backgrounded process, you can use devbox services stop
.
This release also upgrades the default process-compose to 1.24.2, which has several reliability and performance improvements.
Other Features
- Devbox can now automatically parse and add secrets from your dotenv files. To have Devbox load your dotenv files automatically, add the dotenv file to
env_from
in your devbox.json - Devbox now includes a builtin plugins for Valkey, a drop-in Redis Replacement. Special thanks to @captainseeker for contributing!
- Added a
DEVBOX_WD
environment variable that maps to the working directory where you ran a script. This variable is useful if you want to run scripts that act on your current working directory, instead of the Devbox project's root directory - Devbox's direnv integration now watched devbox.lock for changes, and updates your environment. Thanks to @mjgallag for contributing!
- Added missing/required properties to the devbox-plugin-schema.json. Thanks to @svallory for contributing!
Full Changelog
- [docs] json format fix of configuration.md by @yocoldle in #2168
- [i18n/kr]: Update README-ko-KR.md by @tianyeeT in #2152
- [i18n/zh-cn]: Update README-zh-CN.md by @tianyeeT in #2151
- (Examples - Databases - PostgreSQL) Add more info about configuring the database by @rafaelfess in #2156
- [ux] Improve refresh messaging by @mikeland73 in #2173
- [devbox.json] support env_from dotenv files by @mohsenari in #2174
- Used go-envparse to parse .env files by @mohsenari in #2177
- [example] add R example by @ignatiusm in #2183
- internal/devconfig: move project directory search into
devbox.Find
by @gcurtis in #2172 - [lockfile] Fix built-in plugin issues by @mikeland73 in #2189
- Update apache example with proper start command for jetify cloud by @LucilleH in #2198
- Add build and start command to nginx server example by @LucilleH in #2199
- searcher: set custom user agent in search client by @gcurtis in #2203
- Change the caddy example port to 8080 by @LucilleH in #2206
- Initial Nixhub docs by @Lagoja in #2186
- Add Valkey Plugin by @captainseeker in #2154
- fix permissions and build issues by @Lagoja in #2219
- Bump semver and postman-code-generators in /docs/app by @dependabot in #2208
- [envars] Add DEVBOX_WD env var by @mikeland73 in #2220
- fix: devbox-plugin.schema.json required properties by @svallory in #2221
- [pkg] Update pkg deps by @mikeland73 in #2225
- testscripts: python tests for numpy and psycopg2 by @gcurtis in #2214
- git: add .gitattributes and remove trace.out by @gcurtis in #2228
- all: upgrade to Go 1.23.0 by @gcurtis in #2229
- fix: make direnv watch devbox.lock by @mjgallag in #2233
- patchpkg: start moving glibc-patch.bash to Go by @gcurtis in #2237
- testscripts: better caching with Docker by @gcurtis in #2245
- patchpkg:
lookPath
helper to find nix binaries by @gcurtis in #2247 - patchpkg: add packageFS to handle store paths by @gcurtis in #2246
- Nixhub Links by @Lagoja in #2218
- add information on disabling plugins by @Lagoja in #2232
- patchpkg: port ELF patching to Go and use RPATH by @gcurtis in #2248
- patchpkg: restore removed refs to build deps by @gcurtis in #2249
- Fix plugin placeholder docs by @Lagoja in #2254
- devpkg: auto-patch python by @gcurtis in #2250
- testscripts: skip (known) failing tests on darwin by @gcurtis in #2256
- patchpkg: patch missing Python refs on darwin by @gcurtis in #2258
- [Python] Change
.venv
script to be more compatible with IDEs by @Lagoja in #2259 - [Python] Venv tweaks based on testing in Sandboxes by @Lagoja in #2264
- Chore/switch pip plugin reference to python by @djgoku in #2265
- [Services] Keep Process Compose alive in background, add
attach
command by @Lagoja in #2269 - [pc-version] Bump process compose to 1.24.2 by @mikeland73 in #2276
- patchpkg: patch libstdc++ by @gcurtis in #2271
- devpkg: fix empty patch mode by @gcurtis in #2278
New Contributors
- @yocoldle made their first contribution in #2168
- @tianyeeT made their first contribution in #2152
- @rafaelfess made their first contribution in #2156
- @ignatiusm made their first contribution in #2183
- @captainseeker made their first contribution in #2154
- @svallory made their first contribution in #2221
- @mjgallag made their first contribution in #2233
- @djgoku made their first contribution in #2265
Full Changelog: 0.12.0...0.13.0