Releases: jetify-com/devbox
0.10.3
What's Changed
This changes the oauth2 issuer domain from accounts.jetpack.io to accounts.jetify.com (For logged in use only. This has no effect on logged out use).
Full Changelog: 0.10.2...0.10.3
0.10.2
This dot release includes the following fixes/features:
- Fix bug where
php
and other packages with built in plugins could not be removed withdevbox rm
- Fix bug where some plugins were re-writing user files in
devbox.d
- Allow comments in plugin.json files. (similar to devbox.json). These comments are ignored when parsing.
What's Changed
- 0.10.0 Docs by @Lagoja in #1900
- [Plugins] Do not overwrite existing user-config files of plugins by @savil in #1917
- Support Project Directory having spaces by @savil in #1920
- remove extraneous print by @savil in #1922
- [plugins] support reading (and discarding) comments plugin.json files by @savil in #1923
- [path with spaces] run scripts for projects with paths in spaces by @savil in #1924
- Update nodejs README.md to include corepack by @LucilleH in #1928
- [plugins] remove extraneous code change from #1917 by @savil in #1937
- Revert "[path with spaces] run scripts for projects with paths in spaces (#1924)" by @savil in #1935
- [docs] FAQ: add --experimental to nix store gc by @savil in #1941
- [plugins] Fix rm for packages with __remove_trigger_package by @mikeland73 in #1940
- [plugins] change pip venv shell hook recommendation to be posix-compatible by @savil in #1939
Full Changelog: 0.10.1...0.10.2
0.10.1
This release includes the following fixes for Devbox 0.10.0:
- Fixes a bug that kept process-compose from updating on systems using Nix >2.20.
- Corepack for Node.js is now an opt-in feature. Devs can enable corepack by setting
DEVBOX_COREPACK_ENABLED
in the env section of theirdevbox.json
. For starting new projects, we recommend using Corepack to manage npm, yarn, or pnpm.
Changelog
0.10.0 - Plugins v2, Non-default Outputs, Corepack support, and more
What's new in this Release
This new release includes a new, more powerful plugin system, support for installing non-default outputs in devbox.json without a Flake reference, and lots of other features.
You can update to the latest release by running devbox version update
from your CLI. If you were testing a pre-release version of Devbox, you will need to unset DEVBOX_USE_VERSION
before upgrading.
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 - Plugins installed from a Github repo will now get their own directories in
devbox.d
and.devbox/virtenv
, instead of being combined in a single folder. This makes it easier to host multiple plugins from a single repo.
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]
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
.
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 recommend Corepack
GLIBC Library Patching
This release updates Devbox's ability patch a package to use a newer 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 python@3.8 --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.
This is an early, in development feature. Please let us know on Discord and Github if you run into any issues when patching glibc.
Process-compose 0.85.0
- The version of process-compose used by Devbox has been updated to 0.85.0. We also refactored some code so that we can keep process-compose more up to date in the future
- 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 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.
- 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- Removed recommendations when running
devbox init
, since these were not very relevant to users - Fixes to various examples and templates
- Other small UX improvements and fixes
What's Changed
- 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
- [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
- [err...
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 python@3.8 --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