Skip to content

Releases: jetify-com/devbox

0.0.0-edge.2023-11-23

23 Nov 09:03
e083b88
Compare
Choose a tag to compare
0.0.0-edge.2023-11-23 Pre-release
Pre-release

0.0.0-edge.2023-11-23 edge release

0.8.2

16 Nov 23:32
33ea788
Compare
Choose a tag to compare

Fixes in this release

  • Fixes an issue that would cause MySQL and other packages that use flakes + plugins to fail when starting your shell
  • Fixes a performance regression in devbox shell and .envrc files caused by recomputing the environment on every shell start

Full Changelog

0.0.0-edge.2023-11-16

16 Nov 09:04
076da53
Compare
Choose a tag to compare
0.0.0-edge.2023-11-16 Pre-release
Pre-release

0.0.0-edge.2023-11-16 edge release

0.8.1

07 Nov 22:12
a0bdff9
Compare
Choose a tag to compare

Fixes in this Release

This release fixes a potential --update-devbox-symlink issue that can trigger when upgrading from 0.7.1

Changelog

  • a0bdff9 vercheck: remove --update-devbox-symlink flag (#1610)

0.8.0 - Remove binwrappers, devbox.json with comments, and more

07 Nov 20:33
4a0ad52
Compare
Choose a tag to compare

What's New in Devbox 0.8

Removing Binwrappers

The most significant change in this release is the removal of binwrappers. Previous versions of Devbox wrapped the binaries in a shim that recalculated the Devbox environment every time they ran. These binwrappers made it possible to instantly use new packages without restarting your shell. However, it also introduced a lot of bugs and complexity to the Devbox environment. More importantly, it had adverse effects on performance and startup times.

This release removes the binwrappers and links directly to the Nix package binaries in your shell environment. This change should make the Devbox environment significantly faster and much more reliable, especially for scripts or environments that invoke Devbox binaries several times.

Comment and trailing commas support in devbox.json

A long requested feature -- you can now annotate your devbox.json with comments to explain portions of your configuration! For example, you can use comments to annotate and explain your scripts for new users:

{
    "packages": [
          "go@latest"         
     ],
     "scripts": {
         // Build for your current architecture
         "build":  "go build -o dist/devbox ./cmd/devbox",
         // Build for all architectures, used mostly in CI/CD
         "build-all": [
            "GOOS=darwin GOARCH=amd64 go build -o dist/devbox-darwin-amd64 ./cmd/devbox",
            "GOOS=darwin GOARCH=arm64 go build -o dist/devbox-darwin-arm64 ./cmd/devbox",
            "GOOS=linux GOARCH=amd64 go build -o dist/devbox-linux-amd64 ./cmd/devbox",
            "GOOS=linux GOARCH=arm64 go build -o dist/devbox-linux-arm64 ./cmd/devbox",
         ],     
    }
}

Devbox will also correctly parse your config if you leave a trailing comma, which makes it easier to edit or modify your config directly without triggering syntax errors.

Patch Devbox ELF binaries to use the newest version of glibc

Packages can now take an optional patch_glibc boolean field. When set to true, this field will patch the package's ELF binaries to use the latest version of glibc available in Nixpkgs:

"packages": {
        "python": {
          "version": "3.7",
          "patch_glibc": true
        }
 }

This flag is useful for fixing dynamic linking issues, or GLIBC incompatibility issues between your Devbox packages and packages installed via Pip or other package managers. This field should generally be omitted or set to false unless you encounter one of these issues.

Faster installs by caching search results

Devbox will now cache search results when adding a package, which should significantly speed up installation and package additions for configs with a large number of packages.

Better ZSH compatibility

Devbox now respects ZDOTDIR for ZSH startup files, and will copy files instead of linking. This should improve customizability and reliability when using Devbox with ZSH.

Bug Fixes

  • Fixed a bug that was forcing users to login to use devbox global pull/push. You can now pull or push your global config to your own Git repo without needing to authenticate

Special thanks to:

@az-pz and @dallasgoldswain for making their first contributions to Devbox!

What's Changed

  • devconfig: allow comments and trailing commas by @gcurtis in #1539
  • impl: remove profileDir from shell by @gcurtis in #1583
  • devconfig: use two spaces instead of tab by @gcurtis in #1589
  • remove match from docs by @Lagoja in #1591
  • [shell] respect ZDOTDIR for zsh startup files, and copy startup files instead of linking by @savil in #1587
  • [perf] cache nix.searchSystem by @savil in #1546
  • [docs] upgrade docusarus by @LucilleH in #1592
  • devpkg: better flake references and installable parsing by @gcurtis in #1581
  • [shell] Remove bin wrappers 🎉 by @mikeland73 in #1584
  • devconfig,shellgen: option to patch ELF binaries with newer glibc by @gcurtis in #1574
  • Fix minor spelling mistake in plugins.md doc. by @az-pz in #1601
  • devpkg: use struct field values in FlakeRef.String by @gcurtis in #1597
  • devpkg: better handling of escapes in flakeref paths by @gcurtis in #1598
  • devpkg: make FlakeInstallable.Outputs a string by @gcurtis in #1599
  • added arm64 support for multi user nix in docker by @mohsenari in #1605
  • Update process-compose.yml in rails stack by @dallasgoldswain in #1573
  • [easy][global] global push/pull should not require login for github by @mikeland73 in #1609
  • impl: PATH fix for multiple glibc-patched packages by @gcurtis in #1608
  • devpkg: use struct field values in FlakeInstallable.String by @gcurtis in #1600

New Contributors

Full Changelog: 0.7.1...0.8.0

0.0.0-edge.2023-11-09

09 Nov 09:08
a0bdff9
Compare
Choose a tag to compare
0.0.0-edge.2023-11-09 Pre-release
Pre-release

0.0.0-edge.2023-11-09 edge release

0.0.0-edge.2023-11-02

02 Nov 09:13
a4d901c
Compare
Choose a tag to compare
0.0.0-edge.2023-11-02 Pre-release
Pre-release

0.0.0-edge.2023-11-02 edge release

0.8.0-dev

31 Oct 22:52
df1982d
Compare
Choose a tag to compare
0.8.0-dev Pre-release
Pre-release

What's New in Devbox 0.8

The most significant change in this release is the removal of binwrappers. Previous versions of Devbox wrapped the binaries in a shim that recalculated the Devbox environment every time they ran. These binwrappers made it possible to instantly use new packages without restarting your shell. However, it also introduced a lot of bugs and complexity to the Devbox environment. More importantly, it had adverse effects on performance and startup times.

This release removes the binwrappers and links directly to the Nix package binaries in your shell environment. This change should make the Devbox environment significantly faster and much more reliable.

  • Disable binwrappers
    • Devbox will automatically install unwrapped binaries the next time you start a shell
    • If you install packages while running a devbox shell, you may may be prompted to run refresh to refresh your environment* * devbox.json now supports comments and trailing commas
  • Option to patch ELF binaries with a newer version of glibc
    • See #1574 for more details
  • Faster install + remove for large projects by caching search results
  • Devbox now respects ZDOTDIR for ZSH startup files, and will copy files instead of linking. This should improve customizability and reliability when using Devbox with ZSH.

How to Install 0.8.0-dev

To test the 0.8 prerelease, export the DEVBOX_USE_VERSION environment variable in your shell

export DEVBOX_USE_VERSION=0.8.0-dev

To revert back to the last release, unset this variable.

Full Changelog

  • devconfig: allow comments and trailing commas by @gcurtis in #1539
  • impl: remove profileDir from shell by @gcurtis in #1583
  • devconfig: use two spaces instead of tab by @gcurtis in #1589
  • remove match from docs by @Lagoja in #1591
  • [shell] respect ZDOTDIR for zsh startup files, and copy startup files instead of linking by @savil in #1587
  • [perf] cache nix.searchSystem by @savil in #1546
  • [docs] upgrade docusarus by @LucilleH in #1592
  • devpkg: better flake references and installable parsing by @gcurtis in #1581
  • [shell] Remove bin wrappers 🎉 by @mikeland73 in #1584
  • devconfig,shellgen: option to patch ELF binaries with newer glibc by @gcurtis in #1574

Full Changelog: 0.7.1...0.8.0-dev

0.0.0-edge.2023-10-26

26 Oct 09:12
66ae207
Compare
Choose a tag to compare
0.0.0-edge.2023-10-26 Pre-release
Pre-release

0.0.0-edge.2023-10-26 edge release

0.7.1

20 Oct 18:04
9444bae
Compare
Choose a tag to compare

What's new in this release

This release includes a number of bug fixes and improvements based on community feedback:

  • Added a down alias to devbox services stop. You can now stop your running services using devbox services down
  • Fixed an issue in our poetry plugin that caused issues when a poetry project was in a subdirectory of the devbox project. You can now tell Devbox where to find your poetry project using the DEVBOX_PYPROJECT_DIR environment variable
  • Fixed a binwrapper issue that could cause an infinite bash loop when using sed in devbox
  • Fixed an issue where variables passed with --env or --env-file were ignored by services. See important notes below:
    • In order to provide a more consistent environment when running services, we now calculate the Devbox environment prior to running services. This means that variables exported in your shell before running devbox services may be overridden by Devbox.
    • To ensure custom variables are applied for services, we recommend using the env field of devbox.json, or using the --env or --env-file flags.

Thanks to everyone who reported an issue on Github, or shared feedback in our Discord channel!

What's Changed

  • [services] make down an alias of stop by @savil in #1560
  • [sed] Fix bin wrappers when sed is installed with devbox by @mikeland73 in #1566
  • [poetry plugin] enable pyproject-dir to be configurable by @savil in #1567
  • [telemetry] fix segfault by @savil in #1569
  • [wrappers] Always use system bash and sed in bin wrappers by @mikeland73 in #1571
  • [services] Fix issue where env var is ignored by @mikeland73 in #1570

Full Changelog: 0.7.0...0.7.1