Skip to content

Releases: jetify-com/devbox

0.4.6-dev

30 Mar 09:15
f8d286d
Compare
Choose a tag to compare
0.4.6-dev Pre-release
Pre-release
Update Docs with 0.4.5 CLI (#843)

## Summary

Update Docs for 0.4.5 CLI based on #839 from @hezhizhen 

## How was it tested?

Localhost, using `yarn start`

0.4.5

28 Mar 20:19
64d31f5
Compare
Choose a tag to compare

What's New

This pre-release contains several fixes and improvements based on user feedback.

  • Devbox shell startup time is now much faster on slow networks. Users on poor networks should see improvements of several seconds. This fix addresses issue #602.
    • For existing customers -- you may need to update to the latest version of our Devbox Launcher by re-running curl -fsSL https://get.jetpack.io/devbox | bash
  • Fixed a bug that breaks users' .envrc on version updates (PR #830, #832)
    • devbox shell --print-dev-env will now regenerate the underlying nix configs after a version update to ensure they are compatible with the Devbox CLI.
  • Preinstall packages with devbox install This installs project packages without starting a shell or running a script. (PR #780)
  • Packages installed while running devbox shell are now instantly available. You no longer have to restart your shell or run a special command to refresh your packages(PR #803)
  • Devbox now adds your project's libraries to LD_LIBRARY_PATH and LIBRARY_PATH. This fix resolves issues with projects that cannot locate libraries installed via devbox (PR #792)

Other fixes include:

  • Devbox now shows better progress indicators when adding packages. (PR #772)
  • Improvements to automatic port forwarding and remote services (PR #785)
  • Improved support for installing Haskell Packages and Compilers (PR #773)

Special thanks to:

@hezhizhen for contributing #782, #787

@altano, @tclain-pillar, @ParetoOptimalDev, @StephenStrickland, and others on our Discord Channel for reporting issues that were resolved in this release.

What's Changed

  • [nix] Simplify profile priority, make it match flake file by @mikeland86 in #770
  • [docs] Update dependencies by @mikeland86 in #771
  • [nix] Show nix profile install progress by @mikeland86 in #772
  • [flakes] Remove non-flakes code by @mikeland86 in #777
  • impl: fix shellrc tests by @gcurtis in #784
  • Fix building target path by @hezhizhen in #782
  • [ux] Add new refresh alias by @mikeland86 in #778
  • [Cloud] Added cloud init command for open in vscode by @mohsenari in #758
  • [services] Improve auto-port forward and proxy by @mikeland86 in #785
  • [config] Set PATH as ENV instead of hook by @mikeland86 in #786
  • [CLI] Added install command by @mohsenari in #780
  • Move Devbox Examples to Devbox Repo by @Lagoja in #793
  • [lib-path] Add a few common env variables by @mikeland86 in #792
  • [services] Allow custom process compose by @mikeland86 in #791
  • migrate links: devbox-examples -> devbox/examples by @Lagoja in #797
  • Bump rack from 2.2.6.2 to 2.2.6.4 in /examples/stacks/rails/blog by @dependabot in #796
  • Bump django from 4.1.6 to 4.1.7 in /examples/stacks/django by @dependabot in #795
  • [testscripts] run in parallel by @savil in #802
  • First Pass at a Haskell Package Planner by @Lagoja in #773
  • [Lagobot 2.0] part 1: generate testscript for a single devbox example project by @savil in #799
  • [Lagobot 2.0] part 2: run Examples whose run_test script passes by @savil in #801
  • [Lagobot 2.0] part 3: set HOME to temp-dir to enable a few example projects by @savil in #806
  • [vscode-extension] open vscode browser by @mohsenari in #804
  • Improve installation instructions by @Lagoja in #805
  • [Lagobot 2.0] disable haskell by @savil in #808
  • [global] Allow and use multiple nixpkgs commit hashes if needed by @mikeland86 in #800
  • Fix typo in pip plugin by @savil in #810
  • typo: s/Poetry/Pip in Pip example by @savil in #811
  • typo: s/Poetry/Pipenv in Pipenv example by @savil in #812
  • [hooks] Fix hook order by @mikeland86 in #813
  • [Lagobot] enable haskell by @savil in #809
  • [vscode extension] Added getting working directory from getvminfo() by @mohsenari in #807
  • Jl/lagobot fix rails by @Lagoja in #815
  • Fix Elixir Example by @Lagoja in #816
  • Adjust paths order by @hezhizhen in #787
  • [lagobot] enable pip and django by @savil in #817
  • [lagobot] add integration tag to separate the tests by @savil in #822
  • [lagobot] run tests on DEVBOX_EXAMPLE_TESTS env-var, instead of build tag by @savil in #823
  • [testscripts] respect DEVBOX_DEBUG flag instead of always setting it on by @savil in #824
  • [lagobot] enable jekyll by @savil in #819
  • [lagobot] enable pipenv by @savil in #820
  • [CLI] Made generate ssh-config work without config file by @mohsenari in #826
  • [lagobot] run cli-tests with DEVBOX_EXAMPLE_TESTS on main or input.run-example-tests by @savil in #827
  • [nix] Create bin wrappers. Eliminate need to refresh by @mikeland86 in #803
  • [lagobot] extend macos test timeout to 15 mins by @savil in #828
  • [shellenv] PrintEnv should generate just in case by @mikeland86 in #830
  • [direnv] Fix version path, run example tests on PRs by @mikeland86 in #832
  • [lagobot] clear .devbox dirs by @savil in #833
  • [UnifiedEnv] remove env-var from shell_test by @savil in #825

Full Changelog: 0.4.4...0.4.5

0.4.5-dev

28 Mar 02:30
64d31f5
Compare
Choose a tag to compare
0.4.5-dev Pre-release
Pre-release

What's New

This pre-release contains a preview numerous fixes and improvements based on user feedback. You can try out this pre-release of 0.4.5 by exporting DEVBOX_USE_VERSION=0.4.5-dev

  • (#830, #832) Fixed a bug that broke direnv integrations after a version update. devbox shell --print-dev-env will now regenerate the underlying nix configs after a version update to ensure they are compatible with the Devbox CLI.
  • (#780) Added a devbox install command. This command can be used to install your devbox projects packages without starting a shell or running a script.
  • (#803) Installing packages while in devbox shell no longer requires a user to restart their shell or run a special command to update their path. This means you can now use packages as soon as you add them.
  • (#792) Devbox now automatically sets LD_LIBRARY_PATH and LIBRARY_PATH to point to your project's lib directory.
  • (#772) Devbox now shows better progress (including download + installation progress) when adding packages
  • (#785) Improvements to automatic port forwarding and remote services

What's Changed

  • [nix] Simplify profile priority, make it match flake file by @mikeland86 in #770
  • [docs] Update dependencies by @mikeland86 in #771
  • [nix] Show nix profile install progress by @mikeland86 in #772
  • [flakes] Remove non-flakes code by @mikeland86 in #777
  • impl: fix shellrc tests by @gcurtis in #784
  • Fix building target path by @hezhizhen in #782
  • [ux] Add new refresh alias by @mikeland86 in #778
  • [Cloud] Added cloud init command for open in vscode by @mohsenari in #758
  • [services] Improve auto-port forward and proxy by @mikeland86 in #785
  • [config] Set PATH as ENV instead of hook by @mikeland86 in #786
  • [CLI] Added install command by @mohsenari in #780
  • Move Devbox Examples to Devbox Repo by @Lagoja in #793
  • [lib-path] Add a few common env variables by @mikeland86 in #792
  • [services] Allow custom process compose by @mikeland86 in #791
  • migrate links: devbox-examples -> devbox/examples by @Lagoja in #797
  • Bump rack from 2.2.6.2 to 2.2.6.4 in /examples/stacks/rails/blog by @dependabot in #796
  • Bump django from 4.1.6 to 4.1.7 in /examples/stacks/django by @dependabot in #795
  • [testscripts] run in parallel by @savil in #802
  • First Pass at a Haskell Package Planner by @Lagoja in #773
  • [Lagobot 2.0] part 1: generate testscript for a single devbox example project by @savil in #799
  • [Lagobot 2.0] part 2: run Examples whose run_test script passes by @savil in #801
  • [Lagobot 2.0] part 3: set HOME to temp-dir to enable a few example projects by @savil in #806
  • [vscode-extension] open vscode browser by @mohsenari in #804
  • Improve installation instructions by @Lagoja in #805
  • [Lagobot 2.0] disable haskell by @savil in #808
  • [global] Allow and use multiple nixpkgs commit hashes if needed by @mikeland86 in #800
  • Fix typo in pip plugin by @savil in #810
  • typo: s/Poetry/Pip in Pip example by @savil in #811
  • typo: s/Poetry/Pipenv in Pipenv example by @savil in #812
  • [hooks] Fix hook order by @mikeland86 in #813
  • [Lagobot] enable haskell by @savil in #809
  • [vscode extension] Added getting working directory from getvminfo() by @mohsenari in #807
  • Jl/lagobot fix rails by @Lagoja in #815
  • Fix Elixir Example by @Lagoja in #816
  • Adjust paths order by @hezhizhen in #787
  • [lagobot] enable pip and django by @savil in #817
  • [lagobot] add integration tag to separate the tests by @savil in #822
  • [lagobot] run tests on DEVBOX_EXAMPLE_TESTS env-var, instead of build tag by @savil in #823
  • [testscripts] respect DEVBOX_DEBUG flag instead of always setting it on by @savil in #824
  • [lagobot] enable jekyll by @savil in #819
  • [lagobot] enable pipenv by @savil in #820
  • [CLI] Made generate ssh-config work without config file by @mohsenari in #826
  • [lagobot] run cli-tests with DEVBOX_EXAMPLE_TESTS on main or input.run-example-tests by @savil in #827
  • [nix] Create bin wrappers. Eliminate need to refresh by @mikeland86 in #803
  • [lagobot] extend macos test timeout to 15 mins by @savil in #828
  • [shellenv] PrintEnv should generate just in case by @mikeland86 in #830
  • [direnv] Fix version path, run example tests on PRs by @mikeland86 in #832
  • [lagobot] clear .devbox dirs by @savil in #833
  • [UnifiedEnv] remove env-var from shell_test by @savil in #825

Full Changelog: 0.4.4...0.4.5-dev

0.4.4

16 Mar 20:39
469cd55
Compare
Choose a tag to compare

What's new

  • Devbox can now autocomplete with the scripts in your devbox.json. Type devbox run followed by TAB to view a list of available scripts.
    • You can install shell completions by copying the output of devbox completion <shell-name> to the appropriate place for your shell
    • Huge thanks to @hezhizhen for contributing this feature!
  • Services running in Devbox Cloud can now be accessed remotely via <hostname>-<port>.svc.devbox.sh. You will need to be logged in to access your services.
    • For example -- if you start an NGINX server on port 8081, you can access it by visiting <hostname>-8081.svc.devbox.sh
  • Fixed an entrypoint bug in generated devcontainers and Dockerfiles

Thanks to:

@hezhizhen for contributing #775, and for contributing multiple edits to our documentation

Changelog

Full Changelog: 0.4.3...0.4.4

0.4.4-dev

16 Mar 18:18
469cd55
Compare
Choose a tag to compare
0.4.4-dev Pre-release
Pre-release

What's New

  • devbox run script autocompletion (contributed by @hezhizhen)
  • Fixed entrypoint for devcontainers
  • Access services running in Devbox Cloud from your local machine

What's Changed

Full Changelog: 0.4.3...0.4.4-dev

0.4.3

13 Mar 20:17
a619f01
Compare
Choose a tag to compare

What's New

Devbox is now powered by Nix Flakes

  • Flakes are a new feature in the Nix Language that allows us to package software and create dev shells in a fully reproducible way. This has significant benefits for our ability to upgrade and cache evaluation results.
  • Immediate benefit to users should be faster warm start times for Devbox Shell. We’ve seen some data that Devbox can start up a shell 70% faster after the first installation.
  • Learn more by reading our blog: Devbox 0.4.3: Powered by Flakes

Declare environment variables in devbox.json.

  • Developers can now declare environment variables in their devbox.json under the env object. For example, you can set variable $FOO to bar as follows:
    {
        "packages": [
            "python310"
        ],
        "env": {
            "FOO": "bar"
        },
        "shell": {
            "init_hook": null,
        "nixpkgs": {
            "commit": "..."
        }
    }
  • This lets developers better organize their devbox.json, and avoid lengthy export statements in their init_hook
  • For more details, check out our Docs

Bug Fixes in this Release

  • Fixes a bug where Fish shell would fail to inherit host environment variables
  • Fixed a bug where devbox shellenv was prepending an incorrect path.
  • Fixed a bug that could mangle a user’s PS1 when evaluating devbox shellenv
  • Fixed bugs in generated devcontainer.json, which would include some extensions multiple times

Special thanks to:

What's Changed

  • Add revive linter and enable indent-error-flow rule by @hezhizhen in #651
  • [flakes] enable featureflag by @savil in #716
  • [Devcontainer] Fixed path for python interpreter in devcontainer.json by @mohsenari in #715
  • [vscode extension] Fixed autorun shell on new terminal open bug by @mohsenari in #717
  • [devcontainer] Fixed bug on multiple python extensions listed in devcontainer by @mohsenari in #718
  • Fix fish shell after #706 by @ipince in #721
  • Replace os.Setenv with t.Setenv in tests by @hezhizhen in #720
  • Enable the Env in Config Feature by @Lagoja in #722
  • [easy][code cleanup] move packages specific functions to impl/packages.go by @savil in #723
  • [easy][cleanup] move nix.DevboxShell to impl.DevboxShell by @savil in #724
  • [CICD] auto-nix-install: export env-var and add DEVBOX_DEBUG=1 by @savil in #727
  • Clean up error handling and docs by @hezhizhen in #726
  • [cicd] auto-nix-install: set github access token by @savil in #728
  • Remove obsolete code after unified env by @ipince in #729
  • Remove dead code by @ipince in #732
  • Shellenv prepends to original path, not current path by @ipince in #730
  • plansdk: get cloud cache from environment by @gcurtis in #734
  • Escape env vars in shellenv the same way as in shellrc by @ipince in #731
  • Plugin Contributing Guide by @Lagoja in #611
  • Remove more dead code by @ipince in #735
  • [xdg]: unexport xxxDir() and use xxxSubpath() only by @hezhizhen in #733
  • Fix build: only go:embed .json files in plugins dir by @ipince in #743
  • Fix quickstart button to link to tutorial by @Lagoja in #737
  • Include plugin subdirs by @ipince in #746
  • [config] early return if cannot find GlobalDataPath by @savil in #739
  • [flakes] Assign higher priority to later packages to resolve conflicting packages error by @savil in #738
  • Update and activate stale-issue-cleanup by @Lagoja in #665
  • nix,impl: avoid modifying flake.nix; don't use --impure by @gcurtis in #749
  • ci: enable DEVBOX_DEBUG for all test jobs by @gcurtis in #751
  • testscripts: enable DEVBOX_DEBUG by @gcurtis in #752
  • [allow unfree] add --impure and env-var to nix profile commands by @savil in #753
  • all: add tracing by @gcurtis in #750

Full Changelog: 0.4.2...0.4.3

0.4.2

02 Mar 23:29
c249fa1
Compare
Choose a tag to compare

What's New

  • Use local environment variables in Devbox Shell: Environment variables that you set in your Host shell will now be available in your Devbox Shell. This improves compatibility with tools on your host machine, and is useful for passing secrets or other configuration into your Devbox shell without having to set them in your devbox.json.
  • More reliable Nix Setup: Improvements to devbox setup nix help users avoid some common pitfalls or errors that can happen during Nix Installation

Special thanks to @gfriloux, @worldofgeese, @StephenStrickland and others who reported issues and gave feedback that informed this release.

Changelog

  • c249fa1 [spell check cicd] do not run on main branch, and ignore .svg files (#714)
  • 0d0374e nix: inherit all environment variables in shell (#706)
  • 706ac42 [CICD]: add spell chcker to GitHub action (#658)
  • a1d3832 Improve handling when no SHELL env-var is defined (#700)
  • e12d3b6 [CICD] Fix mac tests (#712)
  • 30e191f [nix] Add additional source path (#711)
  • 2b4482e [easy] Fix vulnerabilities in example (#713)
  • 09006bc [cicd] add NIX_PATH to tests (#708)
  • 5158452 [WSL] Don't allow root nix instalation on WSL (#709)
  • cf22dcc [flakes] add php extensions testscript (#701)
  • e6fcf5d ci: set NIX_PATH after installing Nix (#707)
  • d01209d [nix] Always do multi-user install if root (#703)
  • 94b34ef [nix] Check other locations for nix startup and better error (#702)
  • ef3e4a2 [deps] Update go dependencies (#704)
  • abc008c [global] Unify nix profile install (#695)
  • b74e651 [easy][global] Set lower priority for global (#698)
  • f2ad449 [easy][errors] Fix double error (#699)
  • e5aaf97 [flakes] ensure all golang tests pass when flakes flag is enabled (#697)
  • 999dcf6 [flakes] save commit-hash to file, and inspect prior to prefetching nixpkgs (#681)

0.4.2-dev

02 Mar 22:49
c249fa1
Compare
Choose a tag to compare
0.4.2-dev Pre-release
Pre-release

What's New

  • Keep your local environment variables in Devbox Shell: Environment variables that you set in your Host shell will now be available in your Devbox Shell. This is useful for passing secrets or other configuration into your devbox shell without having to set them in your devbox.json.
  • Improves Nix setup to reduce some common issues with the Nixos installer

Changelog

  • c249fa1 [spell check cicd] do not run on main branch, and ignore .svg files (#714)
  • 0d0374e nix: inherit all environment variables in shell (#706)
  • 706ac42 [CICD]: add spell chcker to GitHub action (#658)
  • a1d3832 Improve handling when no SHELL env-var is defined (#700)
  • e12d3b6 [CICD] Fix mac tests (#712)
  • 30e191f [nix] Add additional source path (#711)
  • 2b4482e [easy] Fix vulnerabilities in example (#713)
  • 09006bc [cicd] add NIX_PATH to tests (#708)
  • 5158452 [WSL] Don't allow root nix instalation on WSL (#709)
  • cf22dcc [flakes] add php extensions testscript (#701)
  • e6fcf5d ci: set NIX_PATH after installing Nix (#707)
  • d01209d [nix] Always do multi-user install if root (#703)
  • 94b34ef [nix] Check other locations for nix startup and better error (#702)
  • ef3e4a2 [deps] Update go dependencies (#704)
  • abc008c [global] Unify nix profile install (#695)
  • b74e651 [easy][global] Set lower priority for global (#698)
  • f2ad449 [easy][errors] Fix double error (#699)
  • e5aaf97 [flakes] ensure all golang tests pass when flakes flag is enabled (#697)
  • 999dcf6 [flakes] save commit-hash to file, and inspect prior to prefetching nixpkgs (#681)

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