Skip to content

Releases: jetify-com/devbox

0.4.1

25 Feb 21:47
c4de4dc
Compare
Choose a tag to compare

What's new

This release fixes a perimssions error in devbox shell on hosts where the TMPDIR environment variable is unset.

See PR #691 for more details

Changelog

0.4.0: Devbox Global, Unified Env, and more

24 Feb 21:30
315f964
Compare
Choose a tag to compare

This release adds a few major new features to Devbox:

  • Devbox Global lets you add packages to include across all your Devbox Shells
  • Improved Shell Env ensures better consistency in your Devbox environment across shells and commands

Devbox Global Packages

Devbox Global allows you to add packages to a global devbox.json. This is useful for installing a standard set of tools you want to use across multiple Devbox Projects. You can also use Devbox Global to install and manage packages on your Host OS, as a substitute for tools like brew or apt-get

devbox_global

For example — if you use ripgrep as your preferred search tool, you can add it to your global Devbox profile with devbox global add ripgrep. Now whenever you start a Devbox shell, you will have ripgrep available, even if it's not in the project's devbox.json.

Learn more about Devbox Global

Improved Shell Env

All shells and commands now use a unified environment to determine the correct environment variables and hooks to run, ensuring that you get a consistent environment wherever you run Devbox. The environment can also be printed via devbox shellenv

Note, if you used an earlier version of Devbox to generate a .envrc for direnv, you will need to regenerate it using devbox generate .envrc --force. See our Direnv docs for more details.

Other changes in 0.4.0

  • Fixed an issue with Fish shell where init_hooks failed to run when starting Devbox Shell
  • Dockerfiles created with devbox generate now have the correct permissions
  • devbox run can now be used to run arbitrary commands. For example: devbox run date will run date in your Devbox shell, even if you have not created a script with that name.

Special thanks to:
@hezhizhen for contributing a PR to this release
@gfriloux, @worldofgeese, @mindreframer for reporting issues addressed in this release

What's Changed

  • Add some basic devbox run testscript tests by @ipince in #632
  • Set PATH prepend after user init file runs by @ipince in #634
  • tmpl: run nixpkgs-fmt on nix files by @gcurtis in #636
  • Add tests for PATH setting in run by @ipince in #633
  • [dependabot] Fix vulnerability in example by @mikeland86 in #638
  • [direnv] Added support for config envs in direnv by @mohsenari in #626
  • [global] Implement simple global pull by @mikeland86 in #630
  • [global] Move global to XDG_DATA_HOME by @mikeland86 in #637
  • Include some more shell-specific vars, remove nix shell hook by @ipince in #635
  • Prevent shell inception when using print-dev-env by @ipince in #640
  • [refactor]: make getGithubUsername clearer by @hezhizhen in #641
  • boxcli: add devbox global shellenv command by @gcurtis in #644
  • Add testscript tests for config env vars by @ipince in #643
  • Deprecate shell -- in favor of run by @ipince in #642
  • Add tests for env var application order by @ipince in #645
  • Add tests for passing args to run scripts by @ipince in #647
  • [flake] php extensions example project by @savil in #631
  • Update devbox run help text by @ipince in #517
  • Remove dot from flag help text by @ipince in #649
  • Fix cli-release badge by @ipince in #653
  • Add testscript tests for PATH setting by @ipince in #646
  • Bump golang.org/x/net from 0.2.0 to 0.7.0 by @dependabot in #654
  • [generate] Fixed permission issue for generated dockerfile by @mohsenari in #657
  • Add shellrc tests for unified env by @ipince in #660
  • Write shellrc file on fish (unified env) by @ipince in #661
  • [flakes] generate flake.nix file for php-related packages by @savil in #639
  • [services] MVP process manager by @mikeland86 in #659
  • [service-manager] Add more process compose yamls by @mikeland86 in #663
  • Enable unified env by default by @ipince in #650
  • [shellenv] Remove nix profile from path, add shellenv command by @mikeland86 in #667
  • [easy][global] Fix duplicate packages DEV-1281 by @mikeland86 in #672
  • [flakes] remove shell hook by @savil in #671
  • [easy][global] Fix tests when global pkgs exist DEV-1280 by @mikeland86 in #673
  • [flakes] enable unfree packages by @savil in #670
  • Add support for fish by @ipince in #669
  • [stderr] Fix a few prints that were going to out instead of err DEV-1282 by @mikeland86 in #674
  • [nix] create common ExperimentalFlags function by @savil in #678
  • Add Pip Docs by @Lagoja in #664
  • Add Django Example Docs by @Lagoja in #676
  • Unhide Global by @Lagoja in #683
  • Fix whitespace in fish shellrc template by @ipince in #686

Full Changelog: 0.3.4...0.4.0

0.4.0-dev

23 Feb 03:30
0eda044
Compare
Choose a tag to compare
0.4.0-dev Pre-release
Pre-release

What's New in this Pre-release

  • Initial improvements to devbox services, using process-compose
  • Global Package Installation via devbox global add
  • Devbox Unified Env -- Devbox now runs more consistently across shell, run, and services
  • Fixed a Permissions issue with generated Dockerfiles (Issue #627 )
  • Deprecate shell -- in favor of run

To try this pre-release, export DEVBOX_USE_VERSION=0.4.0-dev in your shell. If you installed a previous pre-release, you may need to run rm ~/.cache/devbox/bin to clear your prior versions.

Changelog

  • 0eda044 [shellenv] Remove nix profile from path, add shellenv command (#667)
  • 0fdee09 Enable unified env by default (#650)
  • bd92912 [service-manager] Add more process compose yamls (#663)
  • f77daf6 [services] MVP process manager (#659)
  • 94aa7d4 [flakes] generate flake.nix file for php-related packages (#639)
  • a9ee3cd Write shellrc file on fish (unified env) (#661)
  • 7fb3374 Add shellrc tests for unified env (#660)
  • 4928aea [generate] Fixed permission issue for generated dockerfile (#657)
  • 8669472 Bump golang.org/x/net from 0.2.0 to 0.7.0 (#654)
  • 37cde08 Add testscript tests for PATH setting (#646)
  • 446280a Fix cli-release badge (#653)
  • a3806cc Remove dot from flag help text (#649)
  • 30eda19 Update devbox run help text (#517)
  • 22b5b48 [flake] php extensions example project (#631)
  • 115a215 Add tests for passing args to run scripts (#647)
  • da82540 Add tests for env var application order (#645)
  • 1a9d0e8 Deprecate shell -- in favor of run (#642)
  • 39e13f6 Add testscript tests for config env vars (#643)
  • 35752b3 boxcli: add devbox global shellenv command (#644)
  • 5cc31e8 [refactor]: make getGithubUsername clearer (#641)
  • abb0d74 Prevent shell inception when using print-dev-env (#640)
  • 5c593ec Include some more shell-specific vars, remove nix shell hook (#635)
  • 1aa41bc [global] Move global to XDG_DATA_HOME (#637)
  • 2f532b6 [global] Implement simple global pull (#630)
  • 6ba4091 [direnv] Added support for config envs in direnv (#626)
  • 4d7a69f [dependabot] Fix vulnerability in example (#638)
  • 33e20c5 Add tests for PATH setting in run (#633)
  • 296dfde tmpl: run nixpkgs-fmt on nix files (#636)
  • 73a28cb Set PATH prepend after user init file runs (#634)
  • 171acdf Add some basic devbox run testscript tests (#632)

0.3.4

17 Feb 20:25
3112b8e
Compare
Choose a tag to compare

What's New

Version 0.3.4 has a number of bug fixes and workflow improvements, including:

  1. Better UX and reliability for installing packages and starting a Devbox Shell
  2. A pip plugin that automatically activates a virtual environment for installing packages
  3. Automatic port-forwarding when services are started in Devbox Cloud Shell from the CLI

Changelog

  • 3112b8e [flakes] explain better nixpkgs prefetch during devbox add (#624)
  • a474c16 [devbox.json] Added env in config (#609)
  • 5a97bb9 [bug fix] update Env caller to use map instead of key=val array (#625)
  • f5821a8 [flakes] enable native nixpkgs download progress output (#623)
  • 0892e0e Refactor env vars as map[string]string instead of []string (#621)
  • b4014e8 [global] Turn on feature, keep command hidden (#622)
  • d92cbb7 Clean PATH of nix profile paths in print-dev-env shell/run (#618)
  • 3bf9582 Add Docsearch (#619)
  • 5e2d408 [home] Merge global packages when doing shell/run (#604)
  • 3ca7a41 Remove obsolete var and simplify cleanEnvPath() (#617)
  • 0caff40 Unify print-dev-env feature flags (#620)
  • f1b0c6f [global] Use non default profile and improve error handling when adding/removing global packages (#603)
  • d47bbb8 Add virtenv path and nix profile path to computed nix path (#616)
  • 396ce62 [flake] remove buildEnv from flake.nix (#615)
  • 93a8688 [flakes] reset nix profile directory when Flakes feature is toggled (#612)
  • 60a4f60 [cloud] Auto-port forward during cloud shell (#586)
  • 29829dc [flakes] remove special-case env-var TERM (#614)
  • 3ab8448 Add a default stale issue workflow (#613)
  • 0d67823 remove devbox-linux-amd64 (#610)
  • 517938f [flakes] add and remove packages, individually (#597)
  • d644ea8 Add Devbox Instructions to CONTRIBUTING.md (#607)
  • b4d60c4 [github merge queue] enable Github Workflows for merge-queue (#606)
  • 03e9474 devbox shell uses computeNixEnv (#605)
  • cf32331 Create unified function for nix env computation (#591)
  • 67b33c2 [global] MVP of devbox global/home (#599)
  • daf0596 Refactor testscript framework (#601)
  • c173233 remove unused pkgs.go from internal/impl (#600)
  • 0d393ee [flakes | print-dev-env] enable flakes to work with print-dev-env (#584)
  • c05d145 [cleanup] remove old package install for flakes (#598)
  • dc701d5 [docusaurus] Bump docusaurus version to remove vulnerable dependencies (#595)
  • 5dc5326 [easy][plugins] User init hooks should run after plugins (#594)
  • f67454d Bump http-cache-semantics from 4.1.0 to 4.1.1 in /docs/app (#582)
  • dee5576 [Plugin] Add a plugin for python3xxPackage.pip (#592)
  • 9e37940 [bugfix] Arbitrary commands should also run init and plugin hooks (#550)
  • de39956 Add more metadata to error reports (#576)
  • c753514 [polish] add newline to end of multi-add/rm packages (#589)
  • e5f4256 [telemetry] do not log hidden commands to segment Command Events (#588)
  • 7f087d4 [RFC] make Telemetry UserID be a uuid string (#574)
  • 134b654 [telemetry] fix missing UserID for command events (#583)
  • 68f6d2b [cloud] Auto-forward ports when services start (#490)

0.3.4-dev

14 Feb 00:57
3112b8e
Compare
Choose a tag to compare
0.3.4-dev Pre-release
Pre-release

What's New

  • env field in devbox.json, which makes it easier to define env variables in Devbox
  • Initial implementation of devbox global, which lets developers install packages that can be used across all their Devbox Projects
  • Devbox Cloud can now automatically forward ports for services
  • New plugin for pip, which automatically configures a virtual environment
  • Improvements to plugin execution and Devbox Run

Changelog

  • 3112b8e [flakes] explain better nixpkgs prefetch during devbox add (#624)
  • a474c16 [devbox.json] Added env in config (#609)
  • 5a97bb9 [bug fix] update Env caller to use map instead of key=val array (#625)
  • f5821a8 [flakes] enable native nixpkgs download progress output (#623)
  • 0892e0e Refactor env vars as map[string]string instead of []string (#621)
  • b4014e8 [global] Turn on feature, keep command hidden (#622)
  • d92cbb7 Clean PATH of nix profile paths in print-dev-env shell/run (#618)
  • 3bf9582 Add Docsearch (#619)
  • 5e2d408 [home] Merge global packages when doing shell/run (#604)
  • 3ca7a41 Remove obsolete var and simplify cleanEnvPath() (#617)
  • 0caff40 Unify print-dev-env feature flags (#620)
  • f1b0c6f [global] Use non default profile and improve error handling when adding/removing global packages (#603)
  • d47bbb8 Add virtenv path and nix profile path to computed nix path (#616)
  • 396ce62 [flake] remove buildEnv from flake.nix (#615)
  • 93a8688 [flakes] reset nix profile directory when Flakes feature is toggled (#612)
  • 60a4f60 [cloud] Auto-port forward during cloud shell (#586)
  • 29829dc [flakes] remove special-case env-var TERM (#614)
  • 3ab8448 Add a default stale issue workflow (#613)
  • 0d67823 remove devbox-linux-amd64 (#610)
  • 517938f [flakes] add and remove packages, individually (#597)
  • d644ea8 Add Devbox Instructions to CONTRIBUTING.md (#607)
  • b4d60c4 [github merge queue] enable Github Workflows for merge-queue (#606)
  • 03e9474 devbox shell uses computeNixEnv (#605)
  • cf32331 Create unified function for nix env computation (#591)
  • 67b33c2 [global] MVP of devbox global/home (#599)
  • daf0596 Refactor testscript framework (#601)
  • c173233 remove unused pkgs.go from internal/impl (#600)
  • 0d393ee [flakes | print-dev-env] enable flakes to work with print-dev-env (#584)
  • c05d145 [cleanup] remove old package install for flakes (#598)
  • dc701d5 [docusaurus] Bump docusaurus version to remove vulnerable dependencies (#595)
  • 5dc5326 [easy][plugins] User init hooks should run after plugins (#594)
  • f67454d Bump http-cache-semantics from 4.1.0 to 4.1.1 in /docs/app (#582)
  • dee5576 [Plugin] Add a plugin for python3xxPackage.pip (#592)
  • 9e37940 [bugfix] Arbitrary commands should also run init and plugin hooks (#550)
  • de39956 Add more metadata to error reports (#576)
  • c753514 [polish] add newline to end of multi-add/rm packages (#589)
  • e5f4256 [telemetry] do not log hidden commands to segment Command Events (#588)
  • 7f087d4 [RFC] make Telemetry UserID be a uuid string (#574)
  • 134b654 [telemetry] fix missing UserID for command events (#583)
  • 68f6d2b [cloud] Auto-forward ports when services start (#490)

0.3.3

03 Feb 19:07
98bd57a
Compare
Choose a tag to compare

This release fixes an issue that could cause Devbox Cloud connections from the CLI to fail sporadically.

Changelog

  • 98bd57a [cloud] Add retry when trying to connect to cloud vm for first time (#581)
  • 9761a9a Mark some more errors as user errors (#578)
  • 989335f fix golang testdata (#577)
  • 4b85f85 Change README badge to use the Quickstart Example (#575)
  • bc6cbd9 fix typo on Nim docs (#567)
  • 9664991 Add Tabs and SVG (#573)
  • e1c1281 [telemetry] update event name and change is_cloud to shell_access kind (#562)

0.3.3-dev

02 Feb 08:56
2fe719c
Compare
Choose a tag to compare
0.3.3-dev Pre-release
Pre-release
[CICD] Install smaller package in tests (#571)

## Summary

Experimenting to see if this speeds up tests, especially on macos

## How was it tested?

CICD

0.3.2: Introducing Devbox Cloud

01 Feb 19:23
Compare
Choose a tag to compare

This release adds support for the Devbox Cloud Open Beta.

Announcing Devbox Cloud

Devbox Cloud is a new way to create and run your Devbox Project in an isolated cloud environment. Devbox Cloud let's you quickly spin up an on-demand Linux Edge VM with your Devbox dependencies and shell, using either a local project or your browser.

Learn more about Devbox Cloud

Launch a Devbox Cloud Shell from the CLI

You can now run Devbox projects in a Cloud VM by running devbox cloud shell in the same directory as your devbox.json file. This will launch a Cloud VM, sync your local files, and create a devbox shell session on the remote machine. Your local files are kept in sync with the cloud shell, meaning you can use your own tools to edit and develop your project.

Learn more about Devbox Cloud in your Terminal

Launch a Devbox Cloud Shell in your Browser with Devbox.sh

You can also open any Github project in Devbox Cloud via Devbox.sh. Simply prefix any Github repo with https://devbox.sh to open it in a Cloud Shell. If the project has a devbox.json in the root directory, Devbox will also install your packages and initialize your devbox shell.

Learn more about Devbox Cloud in your Brower

Devbox Cloud is Available as a Free Open Beta

Devbox Cloud is currently in Open Beta, and is free to use for anyone with a Github Account. To learn more about the Devbox Open Beta, visit the FAQ in our docs.

Fixes since 0.3.0

Fixes a possible UX issue in devbox cloud when ssh keys are password protected and password is not cached or stored in local keychain

0.3.0: Introducing Devbox Cloud

01 Feb 16:52
bb24b16
Compare
Choose a tag to compare

This release adds support for the Devbox Cloud Open Beta.

Announcing Devbox Cloud

Devbox Cloud is a new way to create and run your Devbox Project in an isolated cloud environment. Devbox Cloud let's you quickly spin up an on-demand Linux Edge VM with your Devbox dependencies and shell, using either a local project or your browser.

Learn more about Devbox Cloud

Launch a Devbox Cloud Shell from the CLI

You can now run Devbox projects in a Cloud VM by running devbox cloud shell in the same directory as your devbox.json file. This will launch a Cloud VM, sync your local files, and create a devbox shell session on the remote machine. Your local files are kept in sync with the cloud shell, meaning you can use your own tools to edit and develop your project.

Learn more about Devbox Cloud in your Terminal

Launch a Devbox Cloud Shell in your Browser with Devbox.sh

You can also open any Github project in Devbox Cloud via Devbox.sh. Simply prefix any Github repo with https://devbox.sh to open it in a Cloud Shell. If the project has a devbox.json in the root directory, Devbox will also install your packages and initialize your devbox shell.

Learn more about Devbox Cloud in your Brower

Devbox Cloud is Available as a Free Open Beta

Devbox Cloud is currently in Open Beta, and is free to use for anyone with a Github Account. To learn more about the Devbox Open Beta, visit the FAQ in our docs.

0.2.4

31 Jan 23:25
11da438
Compare
Choose a tag to compare

This release contains the following bug fixes and improvements:

  • More reliable sourcing for Nix binaries, which should reduce some issues where Devbox can't find Nix in your Path
  • Improved Install and Error UI + Logging
  • Improved performance when running devbox info

What's Changed

  • First pass at testing using testscripts by @loreto in #526
  • [tiny] Improve format of generated nix files by @ipince in #528
  • Hook up devbox to testscripts by @loreto in #531
  • [cloud shell] prevent cloud-shell-inception by @savil in #532
  • Do not shell quote environment variables by @ipince in #529
  • [minor polish] add space before y/n in question by @savil in #534
  • [flakes] respect nixpkgs commit hash by @savil in #535
  • [cloud] Add preview wording by @mikeland86 in #537
  • delete unused runtime.nix template by @savil in #536
  • Update docs to load new devbox landing page by @LucilleH in #530
  • [cleanup] remove overlays code from generated nix files by @savil in #538
  • Remove unused profile bin dir in shellrc template by @ipince in #541
  • Move xdg functions into its own package by @loreto in #542
  • plansdk: default nixpkgs -> f80ac84 by @gcurtis in #544
  • [flakes] add flakes.nix to git only if we are in a git repo by @savil in #539
  • Bump ua-parser-js from 0.7.32 to 0.7.33 in /docs/app by @dependabot in #527
  • [tests] relocated test files from examples/testdata to internal/boxcli by @mohsenari in #540
  • [nix] Don't indent output in ensure mode by @mikeland86 in #546
  • Improve Nix Sourcing by @loreto in #543
  • [polish] capitalize the default answer in direnv integration question by @savil in #545
  • [easy][nix] Add ensure message by @mikeland86 in #552
  • [cloud] Improve cloud shell error messages by @mikeland86 in #548
  • [perf] Make PkgInfo faster by using non-flakes lookup by @mikeland86 in #553
  • [sshshim] re-try 3 times for finding activeVM by @savil in #554
  • [sshshim] persist debug file output with size limit by @savil in #549
  • small grammar fix in testscript README by @savil in #533
  • [GHA] Bump versions, create daily golangci-lint cache by @mikeland86 in #556
  • [gha] Run tests on main by @mikeland86 in #558
  • Add testscripts that tests installing 'hello' by @loreto in #547
  • Fix URLs for badges in Quickstart by @Lagoja in #560

Full Changelog: 0.2.3...0.2.4