Releases: jetify-com/devbox
0.0.0-edge.2023-06-08
0.0.0-edge.2023-06-08 edge release
0.5.4
New in this release
devbox global push/pull
Sync your global config to a git repo using devbox global push <git repo>
, and then clone it on any machine using devbox global pull <git repo>
.
Bug Fixes
- Fixes a bug that prevented
path:
flakes from installing if they did not output adefault
package. - Fixes an bug where certain wrapped binaries caused an infinite loop
- Fixes a race condition in
devbox global
- Improves reliability of wrappers in a multi-project env
Changelog
- 92bb293 [shellenv] Fix infinite loop (#1083)
- e2c134d [readme][easy] Update readme example (#1076)
- 2f1d769 [wrappers] shellenv should not create bin wrappers (#1082)
- be311bd fix: don't error when existing symlink points at correct path (#1081)
- 6d7eb36 [wrappers] Improve wrappers in multi-project env (#1067)
- 20e598b [push] Add devbox global push (#1064)
- 7925856 [path] Add global path command (#1077)
0.0.0-edge.2023-06-01
0.0.0-edge.2023-06-01 edge release
0.5.3
What's new in this release
Automatic @latest
- Adding a package without a version number will now automatically install the latest version of the package from our Index. This is equivalent to running
devbox add pkg@latest
from the CLI - Pinning a specific Nixpkg commit for the entire project in your
devbox.json
is now deprecated. This release still maintains backwards compatibility, but the nixpkg commit will be removed from the config in an upcoming release. - See our guide on pinning packages for more information
Devbox Global Improvements
devbox global pull
can now pull and activate a global profile from a tarball.- You can now use
update
,services
, andrun
withdevbox global
. - Running
devbox run
without an argument will list the available global scripts
devbox create
- Our new
create
subcommand makes it easy to create a new devbox project from a template. - Our current templates are based on the projects in our examples repo
MariaDB Plugin
- Devbox can now automatically configure MariaDB packages using our Plugin.
- Click here to see the example project, or read the MariaDB docs for more detail
PHP Plugin improvement
- PHP plugin now lets you edit the php.ini file for your project.
Performance Improvements
- Projects with a large number of packages are now significantly faster when running
devbox add
Bug Fixes
- Devbox no longer overwrites XDG_DATA_DIRS, instead it will prepend to the path
- Fixed a bug that caused plugins to function incorrectly with certain Nix pnames
- Fixed
pip
plugin autodetection - Fixed a bug that prevented Devbox from installing
path:
flakes without adefault
package - Changes to local flakes should now update when the user runs
devbox install
Special thanks to
- @bketelsen, @mauricioabreu, and @chancecarey for their first time contributions to Devbox!
- @hezhizhen for their continuing contributions!
- @mdwn, @rbelem, @jrseliga, @ereduled, and @mauricioabreu for reporting issues that were addressed in this release
What's Changed
- [haskell] Move planner to plugin by @mikeland86 in #1009
- [devbox.json] Don't create nixpkgs commit hash by @mikeland86 in #1013
- [examples] Added llama example by @mohsenari in #1008
- [versions] Enable auto-latest by @mikeland86 in #1011
- [easy][pip] Fix pip plugin by @mikeland86 in #1005
- [planners] Remove unused planner code by @mikeland86 in #1012
- [testscripts] augment php testscrpt to remove and re-add a php-extension by @savil in #1021
- [devbox.json] Turn shell into pointer by @mikeland86 in #1014
- [cicd] Simplify go CICD cache by @mikeland86 in #1019
- chore: update dependencies by @hezhizhen in #1030
- [direnv] Added warning for old envrc content by @mohsenari in #1018
- [global] Remove global only functions, make global reuse local code by @mikeland86 in #1027
- [bug fix] write devbox.lock file first, and then write local.lock by @savil in #1032
- [devcontainer] Added shellenv to dockerfile template by @mohsenari in #1036
- [UX] Improve ux when nixpkgs has not been downloaded by @mikeland86 in #1040
- [plugin] Add
php.ini
in the PHP plugin by @Lagoja in #1039 - [templates] Add ability to start project from a template by @mikeland86 in #1016
- [docs] Correct direnv.md reference to
devbox generate direnv
by @chancecarey in #1042 - [easy][bug] Fix legacy resolving when nixpkgs hash is not set by @mikeland86 in #1047
- [pull] Implement pull tar by @mikeland86 in #1043
- [refactor] Move config to own package. Don't warn if overwriting defa… by @mikeland86 in #1045
- [global] Add update/services/run commands to global by @mikeland86 in #1046
- [shellenv] prepend to XDG_DATA_DIRS, instead of overwriting by @savil in #1041
- MariaDB Plugin by @Lagoja in #1048
- [perf] Improve how we determine attribute path by @mikeland86 in #1050
- feat: add list to devbox run if no args are given by @bketelsen in #1054
- [docs] Mention bundler flags/configs for ruby projects by @mauricioabreu in #1031
- [Flakes] Changes to local flakes should reflect in shell after devbox install by @savil in #1063
- [plugins] Improve how we determine package name in plugins by @mikeland86 in #1062
- [docs][easy] Fix missing code block type in ruby.md by @mikeland86 in #1065
- [packages] fix error check in pendingPackagesForInstallation by @savil in #1052
- [flakes] Fix flakes with fragments by @mikeland86 in #1069
New Contributors
- @chancecarey made their first contribution in #1042
- @bketelsen made their first contribution in #1054
- @mauricioabreu made their first contribution in #1031
Full Changelog: 0.5.2...0.5.3
0.5.2
0.5.1
What's new in this release
This release fixes the following issues:
devbox search
is now visible in the Devbox CLI Help- Fixed a shell.nix bug that would break some
direnv
use cases - Updates the PHP planner to a Flake-backed Plugin
- Fixes a bug that would print update notices multiple times.
Changelog
- 8661579 [search] unhide command (#1020)
- 2818b54 Go Mod Example + Doc Links (#1017)
- 684a933 [version check] Avoid re-printing update notice in child devbox commands (#1007)
- 0ac0b2d [planner->plugin] Turn php planner into a plugin (#1000)
- 2563283 [bugs] Fix shell.nix bug and ensure current symlink (#1015)
- 12e46f4 Jl/docs 0.5.0 (#1006)
- 4950eaf 0.5.0 Docs (#999)
0.5.0: Find and Install Nix Packages by Version
What's New in This Release
This release includes one of our most requested features: installing a specific package version with Devbox. A complete list of features and commits is available below.
To install 0.5.0, run devbox version update
from the command line, or follow the installation steps on our docs page. You can also check out our blog post for more details
Install Packages by Version Number
Previously, developers could only install the latest version of a Nix package available in Nixpkgs, or they had to look up and pin an alternative commit in their devbox.json
. With 0.5.0, we maintain an index that maps version strings to Nixpkg commits, so users can install their packages by providing a name and version.
This change is backwards compatible, meaning you do not have to update your existing devbox.json immediately when you move to 0.5.0. More details are available in our Docs
Search for Packages
You can see what versions of a package are available to install by running devbox search <package>
$ devbox search nodejs
Found 168+ results for "nodejs":
* nodejs (19.8.1, 19.7.0, 19.5.0, 19.2.0, 18.16.0, 18.15.0, 18.14.2, 18.13.0, 18.12.1, 18.10.0,
18.8.0, 18.4.0, 18.0.0, 17.9.0, 17.5.0, 17.3.0, 17.0.1, 16.19.1, 16.19.0, 16.18.1, 16.17.1, 16.17.0,
16.15.0, 16.14.0, 16.13.1, 16.13.0, 16.8.0, 16.4.0, 16.0.0, 15.14.0, 15.10.0, 15.5.0, 15.0.1,
14.18.1, 14.18.0, 14.17.5, 14.17.1, 14.16.1, 14.16.0, 14.15.3, 14.15.0, 14.9.0, 14.4.0, 13.14.0,
12.22.12, 12.22.10, 12.22.8, 12.22.7, 12.22.5, 12.22.1, 12.21.0, 12.20.0, 12.19.0, 12.18.3,
12.18.1, 10.24.1, 10.24.0, 10.23.0, 10.22.0, 10.21.0)
* nodejs_16 (16.20.0)
* nodejs_18 (18.16.0)
* nodejs_19 (19.9.0)
* nodejs_20 (20.0.0)
...
Adding a Package to Your Project
You can add a specific version of a package to your project by running devbox add <package>@<version>
. For example, to add NodeJS 16.15.0 to your project you can run:
devbox add [email protected]
For packages that follow semver, you can also specify a minor or major version that you want to pin. For example, to install the latest version of NodeJS 16, you can run:
devbox add nodejs@16
To install the latest available version of NodeJS, you can run
devbox add nodejs@latest
or add nodejs@latest
to the packages in your devbox.json
.
If you do not include a version, Devbox will install the latest version of the package available in the nixpkgs.commit
set in your devbox.json file.
Installing and Locking your Packages
Devbox will install your packages and generate a devbox.lock
file whenever you run devbox add
, devbox install
, or whenever activate your shell.
{
"[email protected]": {
"last_modified": "2022-06-30T00:42:12Z",
"resolved": "github:NixOS/nixpkgs/d3248619647234b5dc74a6921bcdf6dd8323eb22#nodejs-16_x",
"version": "16.15.0"
}
}
You can check this lockfile in to ensure that every developer who uses your project gets the same packages
Updating your Packages
You can update your devbox.lock
and packages by running devbox update
. This will fetch the latest versions of your packages that are compatible with your devbox.json
Other features and fixes
- You can now explicitly activate plugins by adding the to the
include
section of yourdevbox.json
. This is helpful for when you are installing a package from a flake, but also want to activate a devbox plugin. See more in our documentation - We’ve simplified our
direnv
function to a minimal 2 line script. - The Dockerfile generated by
devbox generate dockerfile|devcontainer
is now based on Debian instead of Alpine. - Fixed a bug where
$SHELL
was not being passed to binaries in yourdevbox shell
(contributed by @ragingpastry) - Improved process spawning for devbox wrapper scripts (contributed by @literatesnow)
- Added an install command and optional
--init-hooks
flag fordevbox global
Special Thanks to:
- @hezhizhen, @ragingpastry, @literatesnow, @saimen for their contributions to this release!
- @marcelocbf, @JoyceBabu for reporting issues that led to PR #986
Full Changelist
- Devbox Services 2.0 docs by @Lagoja in #886
- Flake Docs by @Lagoja in #909
- [direnv] update envrcs in projects by @savil in #915
- Update Flakes.md Typos by @Lagoja in #918
- Reduce cognitive complexity by @hezhizhen in #911
- Example for linking a custom extension to PHP by @Lagoja in #919
- [direnv] change default hooks for shell --print-env by @mohsenari in #928
- bring back shell.nix by @savil in #927
- [search] Add search command by @mikeland86 in #916
- [cleanup] Simplify code by removing printDevEnv cache and version file by @mikeland86 in #921
- [add] Implemented devbox add granular package selection by @mikeland86 in #923
- impl: semicolon at the end of env string commands by @gcurtis in #929
- chore: move ssh-config generation out of general generating process and wrap its error by @hezhizhen in #922
- Update add method of devbox interface by @hezhizhen in #924
- [devbox global] Added init hook flag to global shellenv by @mohsenari in #920
- [cleanup] add VirtenvBinPath variable by @hezhizhen in #932
- chore: correct package comment and tweak OSExpandEnvMap by @hezhizhen in #937
- [devbox global] Added devbox global install command by @mohsenari in #935
- [cleanup] replace checks for file existing with fileutil.Exists by @hezhizhen in #944
- [cleanup] replace literal http methods with constants by @hezhizhen in #942
- Replace current process instead of spawning a new one. by @literatesnow in #934
- chore: move all env to one package by @hezhizhen in #941
- [vscode extension] ensure directory exists for ssh keys by @savil in #945
- [cleanup] update checks for exist errors and not exist errors by @hezhizhen in #943
- chore: move all env utils to env package by @hezhizhen in #946
- [vscode extension] bump version and add to CHANGELOG by @savil in #951
- update README for publishing vscode-extension by @savil in #953
- [cleanup] replace pkgslice with lo by @hezhizhen in #948
- [tests] global-add should not fail if global-bins-not-in-path and add testscript unit tests for add and global-add by @savil in #958
- [cleanup] remove unused functions by @hezhizhen in #947
- [global] Don't add global packages to local by @mikeland86 in #952
- fix: inherit SHELL env variables in wrappers by @ragingpastry in #950
- [lockfile] Add lockfile and use search endpoint to resolve versions by @mikeland86 in #936
- [easy][wrappers] Ensure wrappers use correct project dir by @mikeland86 in #960
- [easy][global] Don't show eval message if already shellenved by @mikeland86 in #961
- Update CONTRIBUTING.md with fixes and style guide by @gcurtis in #963
- chore: update or add copyright text by @hezhizhen in #968
- [release] also release to stable-channel's S3 bucket by @savil in #969
- chore: update env constants and functions by @hezhizhen in #954
- chore: rename package env as envir by @hezhizhen in #962
- [version] part 1: update command for devbox and launcher updates by @savil in #965
- [version update] use LAUNCHER_PATH in triggerUpdate function by @savil in #975
- [lockfile] Use lockfile for legacy packages by @mikeland86 in #964
- feat: add cmdutil package to provide utils for commands by @hezhizhen in #970
- doc: Fix typo in zig.md by @saimen in #977
- Bump sqlparse from 0.4.3 to 0.4.4 in /examples/stacks/django by @dependabot in #940
- [update] Implement devbox update by @mikeland86 in #978
- chore: use constants defined in envir in version check by @hezhizhen in #976
- chore: add GetValueOrDefault f...
0.0.0-edge.2023-05-11
Bump django from 4.1.7 to 4.1.9 in /examples/stacks/django (#992) Bumps [django](https://github.com/django/django) from 4.1.7 to 4.1.9. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/django/django/commit/dceb634ba42d3a182ea653dce31a529017f75a95"><code>dceb634</code></a> [4.1.x] Bumped version for 4.1.9 release.</li> <li><a href="https://github.com/django/django/commit/e7c3a2ccc3a562328600be05068ed9149e12ce64"><code>e7c3a2c</code></a> [4.1.x] Fixed CVE-2023-31047, Fixed <a href="https://redirect.github.com/django/django/issues/31710">#31710</a> -- Prevented potential bypass of v...</li> <li><a href="https://github.com/django/django/commit/491dccec1aa10e829539e4e4fcd8cca606a57ebc"><code>491dcce</code></a> [4.1.x] Added missing backticks in docs/releases/1.7.txt.</li> <li><a href="https://github.com/django/django/commit/6d334a0ca54f2f8b3cce28070367110497d8d82c"><code>6d334a0</code></a> [4.1.x] Added stub release notes for 4.1.9 and 3.2.19.</li> <li><a href="https://github.com/django/django/commit/f55bcff9dcac1d0cb1f927f9fd543cfd567400c4"><code>f55bcff</code></a> [4.1.x] Refs <a href="https://redirect.github.com/django/django/issues/34118">#34118</a> -- Fixed CustomChoicesTests.test_uuid_unsupported on Pyth...</li> <li><a href="https://github.com/django/django/commit/685721b4c5551c3ef755421c2f64c164e809c3b7"><code>685721b</code></a> [4.1.x] Post-release version bump.</li> <li><a href="https://github.com/django/django/commit/bbce0153919c6e9ec7886f5ef3ce76463fae57c6"><code>bbce015</code></a> [4.1.x] Bumped version for 4.1.8 release.</li> <li><a href="https://github.com/django/django/commit/67a79dcf5b245f6cb0a77e232243c6b4033dea5c"><code>67a79dc</code></a> [4.1.x] Added release date for 4.1.8.</li> <li><a href="https://github.com/django/django/commit/ba1654cb54eccef3ba29e455cd5065aed84e1f90"><code>ba1654c</code></a> [4.1.x] Fixed <a href="https://redirect.github.com/django/django/issues/34384">#34384</a> -- Fixed session validation when rotation secret keys.</li> <li><a href="https://github.com/django/django/commit/ff3e3eb2bd6c259807e5409a8e7299d00a42687e"><code>ff3e3eb</code></a> [4.1.x] Added stub release notes for 4.1.8.</li> <li>Additional commits viewable in <a href="https://github.com/django/django/compare/4.1.7...4.1.9">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/jetpack-io/devbox/network/alerts). </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
0.0.0-edge.2023-05-10
Disable tests
0.4.9
What's new in this release
Devbox will no longer automatically update whenever a new version is available. Instead, users will be notified when a new version of the CLI or Launcher (which manages the Devbox Updates) is available, and prompted to update using devbox version update
.
If you would like to pin a specific version of Devbox (for example, when using Devbox in CI), or rollback to an older version of Devbox after updating, you can set the DEVBOX_USE_VERSION
environment variable to the version number you'd like to use. For example, to reliably install Devbox 0.4.9 in a CI/CD environment, you can run:
export DEVBOX_USE_VERSION=0.4.9
curl -fsSL https://get.jetpack.io/devbox | bash