Releases: jetify-com/devbox
0.13.0-devrc
What's new in this Release
Process Compose Updates
Process compose is now updated to v1.24.2, which should provide more stability and includes several new features. The release also adds the devbox services attach
command, which lets you re-attach to process compose while it is running in the background
Other fixes
- Improvements to Python plugin
- Bug fixes for Python auto-patching
Changelog
- b9c5173 devpkg: fix empty patch mode (#2278)
- 9da62f6 patchpkg: patch libstdc++ (#2271)
- 1b918e7 [pc-version] Bump process compose to 1.24.2 (#2276)
- 3ac5262 [Services] Keep Process Compose alive in background, add
attach
command (#2269) - df187b9 Chore/switch pip plugin reference to python (#2265)
- d1ab641 [Python] Venv tweaks based on testing in Sandboxes (#2264)
0.13.0-deva
What's new in This Pre-release
[Python] Plugin will now create .venv
in your project root by default
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.
You can manage where Devbox sets up your .venv
directory by setting the $VENV_DIR
environment variable in your devbox.json
Other Fixes
- Devbox now automatically installs common native libraries used by Python on Darwin.
Changelog
0.13.0-dev
New in this Pre-release
Autopatching Python w/ 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 is currently enabled for Linux only, and 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
.
Other new 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
from_env
in yourdevbox.json
- Added a builtin plugins for Valkey, a drop-in Redis Replacement
- 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
Bug Fixes
- Devbox's direnv integration now watched
devbox.lock
for changes, and updates your environment - Added missing/required properties to the
devbox-plugin-schema.json
- Various fixes to docs and examples
Changelog
- afa6187 testscripts: skip (known) failing tests on darwin (#2256)
- 74f4a2a devpkg: auto-patch python (#2250)
- 6881453 Fix plugin placeholder docs (#2254)
- 226349a patchpkg: restore removed refs to build deps (#2249)
- e308235 patchpkg: port ELF patching to Go and use RPATH (#2248)
- 4677feb add information on disabling plugins (#2232)
- 59a067c Nixhub Links (#2218)
- 295b26b patchpkg: add packageFS to handle store paths (#2246)
- 38b8144 patchpkg:
lookPath
helper to find nix binaries (#2247) - 0fdfc67 testscripts: better caching with Docker (#2245)
- 8c30551 patchpkg: start moving glibc-patch.bash to Go (#2237)
- 8d48e38 fix: make direnv watch devbox.lock (#2233)
- 33b9553 all: upgrade to Go 1.23.0 (#2229)
- 495cb07 git: add .gitattributes and remove trace.out (#2228)
- d94c3da testscripts: python tests for numpy and psycopg2 (#2214)
- 245b33a [pkg] Update pkg deps (#2225)
- 07b1a06 fix: devbox-plugin.schema.json required properties (#2221)
- f8149e7 [envars] Add DEVBOX_WD env var (#2220)
- 0623b13 Bump semver and postman-code-generators in /docs/app (#2208)
- ede7606 fix permissions and build issues (#2219)
- fd82154 Add Valkey Plugin (#2154)
- 31361ee Initial Nixhub docs (#2186)
- 48884c0 Change the caddy example port to 8080 (#2206)
- 7aea78a searcher: set custom user agent in search client (#2203)
- a966ac0 Add build and start command to nginx server example (#2199)
- 5822fa5 Update apache example with proper start command for jetify cloud (#2198)
- ce17002 [lockfile] Fix built-in plugin issues (#2189)
- 7855f96 internal/devconfig: move project directory search into
devbox.Find
(#2172) - 56ba0c1 [example] add R example (#2183)
- 94de0d6 Used go-envparse to parse .env files (#2177)
- 1252033 [devbox.json] support env_from dotenv files (#2174)
- 7d7741b [ux] Improve refresh messaging (#2173)
- 328d0b8 (Examples - Databases - PostgreSQL) Add more info about configuring the database (#2156)
- 5fe9e30 [i18n/zh-cn]: Update README-zh-CN.md (#2151)
- 2b06703 [i18n/kr]: Update README-ko-KR.md (#2152)
- 43354db [docs] json format fix of configuration.md (#2168)
0.12.0
What's new in this Release
Devbox Run Improvements
devbox run
will no longer re-run init_hooks
or attempt to recreate the shell environment if it is already running in a devbox shell environment. Implications of this change are:
- If you start a shell, and then run a script with
devbox run
, the script will not re-run the init_hook or recreate the environment - If you run a devbox script inside another devbox script, the
init_hook
and shell setup will only happen once.
Devbox Global Improvements
Devbox Global has been updated to no longer set Nix environment variables or stdenv packages in your global path. This provides a cleaner environment for your Devbox packages, without interfering with the tooling installed on your host
- Previous versions of Devbox Global would set it's own versions of packages like
gcc
,ld
, andclang
at the top of your global path, which could break system build tools. This version will no longer set those packages in your path - Previous versions of Devbox Global would set variables like PYTHONPATH, which could override and cause issues with your host Python interpreter or other Python based binaries. This version will no longer set those variables
- Note: This change may cause certain libraries or packages to stop working with Devbox Global. If you need these packages to continue working, you can add
--omit-nix-env=false
to the invocation in your shellrc:eval "$(devbox global shellenv --init_hooks --omit-nix-env=false)"
devbox cache enable
You can now enable the Jetify Prebuilt Cache right from command line by running devbox cache enable
. Running this command will let you login or create a free Jetify Cloud account from your browser, and then configure Nix on your system to use the cache.
What's Changed
- [docker] fix docker release image by @mohsenari in #2136
- [Remove Nixpkgs] remove feature flag by @savil in #2142
- [RFC][Devbox] computeEnv: remove __ETC_PROFILE_NIX_SOURCED=1 by @savil in #2147
- [docker] Added steps for latest tag for devbox & devbox-root by @mohsenari in #2146
- [devbox] run: skip re-computing Devbox State if in devbox shell by @savil in #2144
- Update README.md by @Lagoja in #2158
- Bump braces from 3.0.2 to 3.0.3 in /vscode-extension by @dependabot in #2145
- [easy][lock-tidy] Don't tidy flakes by @mikeland73 in #2162
- Bump braces from 3.0.2 to 3.0.3 in /docs/app by @dependabot in #2163
- [devbox global] add
--omit-nix-env
flag for shellenv/shell/run commands by @savil in #2150 - [Devbox] introduce devopt.EnvOptions by @savil in #2159
- [Devbox services] move functions to services.go, and improve runDevboxServicesScript by @savil in #2164
- boxcli: devbox cache enable by @gcurtis in #2157
- [lock-tidy] Put warning behind feature flag by @mikeland73 in #2171
Full Changelog: 0.11.1...0.12.0
0.12.0-devb
What's new in this release
- Fix excessive
tidy lockfile
warnings - Add
devbox cache enable
command
Changelog
0.12.0-deva
What's new in this prerelease
Init Hook Improvements
devbox run will no longer re-run init_hooks or attempt to recreate the shell environment if it is already running in a devbox shell environment. Implications of this change are:
- If you start a shell, and then run a script with devbox run, the script will not re-run the init_hook or recreate the environment
- If you run a devbox script inside another devbox script, the init_hook and shell setup will only happen once.
Devbox Global improvements
Devbox Global has been updated to no longer set Nix environment variables or stdenv packages in your global path. This should allow package and tools to work well with Devbox Global, without interfering with the tooling installed on your host
-
Previous versions of Devbox Global would set it's own versions of packages like
gcc
,ld
, andclang
at the top of your global path, which could break system build tools. This version will no longer set those packages in your path -
Previous versions of Devbox Global would set variables like PYTHONPATH, which could override and cause issues with your host Python interpreter or other Python based binaries. This version will no longer set those variables
-
Note: This change may cause certain libraries or packages to stop working with Devbox Global. If you need these packages to continue working, you can add
--omit-nix-env=false
to the invocation in your shellrc:eval "$(devbox global shellenv --init_hooks --omit-nix-env=false)"
Bug Fixes
Fixed a bug where Devbox was improperly trying to tidy the lockfile for flakes.
Changelog
- 1573ae8 [Devbox] introduce devopt.EnvOptions (#2159)
- f0a562e [devbox global] add
--omit-nix-env
flag for shellenv/shell/run commands (#2150) - f44b799 Bump braces from 3.0.2 to 3.0.3 in /docs/app (#2163)
- b98a852 [easy][lock-tidy] Don't tidy flakes (#2162)
- 65d27cf Bump braces from 3.0.2 to 3.0.3 in /vscode-extension (#2145)
- 1b5eafa Update README.md (#2158)
0.12.0-dev
What's new in this pre-release
devbox run
will no longer re-run init_hooks
or attempt to recreate the shell environment if it is already running in a devbox shell environment. Implications of this change are:
- If you start a shell, and then run a script with
devbox run
, the script will not re-run the init_hook or recreate the environment - If you run a devbox script inside another devbox script, the
init_hook
and shell setup will only happen once.
Changelog
- 2b0decf [devbox] run: skip re-computing Devbox State if in devbox shell (#2144)
- b9cf6c4 [docker] Added steps for latest tag for devbox & devbox-root (#2146)
- d9c9f17 [RFC][Devbox] computeEnv: remove __ETC_PROFILE_NIX_SOURCED=1 (#2147)
- 3aac497 [Remove Nixpkgs] remove feature flag (#2142)
- 6549b43 [docker] fix docker release image (#2136)
0.11.1
What's new in this pre-release
devbox cache
support in the CLI
Version 0.11 of devbox and newer can now use Devbox Cache when logged in with a Jetify Cloud account. Jetify Cache includes a private cache for your own custom packages and flakes, as well as a Prebuilt Cache that expands on the public Nix Cache.
Visit our docs to learn more about how to setup a cache with Jetify Cloud. You can also view the CLI cache commands using devbox cache --help
Startup Performance:
- Devbox can now detect if your project is missing store paths, and then prompt you to backfill them. This speeds up package installation by letting us pull packages directly from the cache.
- To update your storepaths, run
devbox install --tidy-lockfile
- To update your storepaths, run
- All packages are installed in a single Nix command, rather than sequentially in individual Nix commands
Process Compose
- Added a new
--pcflags
option so you can pass flags directly to Process Compose when starting your services. For example:- You can run a namespace using `devbox services up --pcflags "-n=my-namespace"
- You can change the process-compose servers port using `devbox services up --pcflags "-p=3003"
- Process compose is now installed via Nixpkgs, meaning we can take advantage of caching
Other fixes
- Added an optional name + description field to the
devbox.json
schema - Updates to docs and error commands
Special thanks to:
- @iamdejan, @savtrip, @unscrew, @vhsantos
- Extra special thanks to @unscrew for translating our README.md to Korean!
Full Changelog
- Add new --pcflags option to devbox services up by @josh-d2 in #2111
- [docs] update the quickstart guide by @iamdejan in #2004
- [docker] Added fix to run image release on tags creation + backfill action by @mohsenari in #2118
- all: update dependencies by @gcurtis in #2126
- examples/stacks/rails/blog: update dependencies by @gcurtis in #2127
- [perf] Add flag to fix missing store paths by @mikeland73 in #2102
- Moved process-compose into a generic utilities Devbox project by @josh-d2 in #2122
- internal/nix: improve command error handling by @gcurtis in #2125
- Update direnv.md by @savtrip in #2110
- internal/nix: fix version comparison for prerelease versions by @gcurtis in #2131
- all: use log/slog for debug logs by @gcurtis in #2132
- [easy] devbox docs: direnv, remove warning about 0.5.0 breaking change by @savil in #2134
- [perf] Install all packages to profile in a single nix command by @mikeland73 in #2130
- [Docs] Move cloud docs to main docs by @Lagoja in #2049
- Update Images by @Lagoja in #2140
- docs: add translation of README - Korean version by @unscrew in #2139
- Add name/description to devbox json schema. by @vhsantos in #2092
- internal/nix: log all command starts and exits by @gcurtis in #2135
- [CI] Update go-releaser action by @Lagoja in #2143
New Contributors
- @iamdejan made their first contribution in #2004
- @savtrip made their first contribution in #2110
- @unscrew made their first contribution in #2139
- @vhsantos made their first contribution in #2092
Full Changelog: 0.11.0...0.11.1
0.11.1-dev
What's new in this pre-release
devbox cache
support in the CLI
Version 0.11 of devbox and newer can now use Devbox Cache when logged in with a Jetify Cloud account. Jetify Cache includes a private cache for your own custom packages and flakes, as well as a Prebuilt Cache that expands on the public Nix Cache. Visit our docs to learn more about how to setup a cache with Jetify Cloud
Startup Performance:
- Devbox can now detect if your project is missing store paths, and then prompt you to backfill them. This speeds up package installation by letting us pull packages directly from the cache.
- All packges are installed in a single Nix command, rather than sequentially in individual Nix commands
Process Compose
- Added a new
--pcflags
option so you can pass flags directly to Process Compose when starting your services - Process compose is now installed via Nixpkgs, meaning we can take advantage of caching
Other fixes
- Added an optional name + description field to the
devbox.json
schema - Updates to docs and error commands
Changelog
- 6aebe96 [CI] Update go-releaser action (#2143)
- 1bc2a30 internal/nix: log all command starts and exits (#2135)
- 10b7bcc Add name/description to devbox json schema. (#2092)
- ef1e4c9 docs: add translation of README - Korean version (#2139)
- 2daf33d Update Images (#2140)
- 815ff11 [Docs] Move cloud docs to main docs (#2049)
- 5326d5b [perf] Install all packages to profile in a single nix command (#2130)
- b62b346 [easy] devbox docs: direnv, remove warning about 0.5.0 breaking change (#2134)
- 70aa55e all: use log/slog for debug logs (#2132)
- 64d3fd5 internal/nix: fix version comparison for prerelease versions (#2131)
- 8382061 Update direnv.md (#2110)
- f4a7589 internal/nix: improve command error handling (#2125)
- b8ef803 Moved process-compose into a generic utilities Devbox project (#2122)
- 3bb13c1 [perf] Add flag to fix missing store paths (#2102)
- a1f4f40 examples/stacks/rails/blog: update dependencies (#2127)
- f54bb09 all: update dependencies (#2126)
- c74320c [docker] Added fix to run image release on tags creation + backfill action (#2118)
- f52d2b8 [docs] update the quickstart guide (#2004)
- 8e53b0c Add new --pcflags option to devbox services up (#2111)
0.11.0
What's new in this release
- Perf improvements: Ensure and Install steps when starting your shell have been optimized to run faster, and avoid repetitive checks for packages that have already been installed. We also fixed a few regressions that were slowing down install times.
- Python Plugin Improvements: We removed a repetitive message about how to set up virtual environments for Python that showed on every shell creation. This message will now only show once on installation.
- PostgreSQL Plugin Improvments: Added a Readiness Probe for Postgresql in our default plugin. You can now have other services in your
process-compose.yml
wait for Postgres to be ready before starting. Thanks @mikenikles for contributing this feature - Lix and other Nix Forks: Devbox can now detect and use Nix forks (like Lix) if they are installed. Note that compatibility with Nix forks should be considered experimental. Thanks @SapphicCode for contributing this feature.
- Versioned Devbox Docker Images: Official Devbox Docker images are now tagged by version, so you can pin the image that you want to use to a specific version of Devbox
Bug Fixes
- Fixed store path parsing bugs that could affect package installation
- Fixed some incorrect documentation and help outputs.
Special Thanks to:
@silvestre, @vallops99, @josh-d2, @mootoday, and @SapphicCode for their first contributions to this release!
What's Changed
- [cicd] Update actions by @mikeland73 in #2058
- [nix-cache] Prevent checking cache twice per package by @mikeland73 in #2055
- Bump rexml from 3.2.5 to 3.2.8 in /examples/stacks/jekyll/myblog by @dependabot in #2060
- [nix-cache] Allow use of multiple caches. Split read vs write by @mikeland73 in #2059
- Bump rexml from 3.2.6 to 3.2.8 in /examples/stacks/rails/blog by @dependabot in #2061
- [debug] Add cache credentials flag and more perf profiling by @mikeland73 in #2065
- [easy] rename jetpack-cloud to jetify-cloud by @savil in #2068
- [credentials] Add version to cache key by @mikeland73 in #2066
- [cache] Use jetify caches by @mikeland73 in #2072
- chore(dev.Dockerfile.tmpl): Remove superfluous step number by @silvestre in #2073
- [perf] Fix regression by @mikeland73 in #2079
- nix: allow unfree and insecure in cache upload by @gcurtis in #2078
- [perf] Improve install and ensure perf by @mikeland73 in #2076
- [easy][bug] Fix install if package has no storepaths in lockfile by @mikeland73 in #2081
- [cache] Fallback for failed build with cache by @mikeland73 in #2082
- [container] Added metadata to tag docker image with devbox version by @mohsenari in #2080
- [cache] Show better error for no write cache by @mikeland73 in #2084
- [cache] Optimize cache upload by @mikeland73 in #2083
- Updated devbox shell documentation by @vallops99 in #2074
- nixcache: default to "yes" for setup prompt by @gcurtis in #2097
- internal/devbox: fix warning when user refuses cache setup by @gcurtis in #2095
- nixcache: don't check Jetify caches if they're not configured by @gcurtis in #2096
- [bug] Fix parseStorePathFromInstallableOutput by @mikeland73 in #2098
- [perf] memoize cache setup status by @mikeland73 in #2100
- Add a readiness_probe for postgresql by @mootoday in #2094
- Refactor the list command by @josh-d2 in #2101
- [nix] Fix StorePathsAreInStore by @mikeland73 in #2104
- fix(nix): add support for Nix forks by @SapphicCode in #2091
- Only notify users about Venv Activation on setup by @Lagoja in #2109
- nixcache: improve sudo prompt and help docs by @gcurtis in #2107
New Contributors
- @silvestre made their first contribution in #2073
- @vallops99 made their first contribution in #2074
- @mootoday made their first contribution in #2094
- @josh-d2 made their first contribution in #2101
- @SapphicCode made their first contribution in #2091
Full Changelog: 0.10.7...0.11.0