Releases: jetify-com/devbox
0.4.6
What's New
This release fixes a few bugs that were affecting Fish shells and services like MariaDB + Redis:
- Fixed a bug that caused errors when starting MariaDB, Redis, and some other services
- Improved support for older versions of Fish shell
- Added a
version updatecommand for users to manually update Devbox - Added a warning to alert users when their launcher is out of date
What's Changed
- [lagobot] ensure default nixpkgs commit by deleting the commits from devbox.json by @savil in #834
- [lagobot] properly extend timeout for macos tests by @savil in #831
- [launcher] Add version update command and show launcher version warning by @mikeland86 in #798
- Fix incorrect docs on
shell -- cmdby @Lagoja in #837 - [update] Remove devbox update by @mikeland86 in #842
- [vscode-extension] Handling for window os and devbox not installed by @mohsenari in #835
- Update Docs with 0.4.5 CLI by @Lagoja in #843
- .goreleaser.yaml: add -trimpath; fix ldflags by @gcurtis in #840
- redact: package for redacting error messages by @gcurtis in #841
- [virtenv] Create symlinks for support dirs, move wrappers to a subdir. by @mikeland86 in #852
- telemetry: improve stack traces, error names, contexts by @gcurtis in #844
- chore: remove build command by @hezhizhen in #846
- [linting] enable more rules for revive and address issues by @hezhizhen in #849
- [fish] fix command substitution to support older fish shells by @savil in #854
- [plugins] Always create plugin dir by @mikeland86 in #858
- bump the timeouts for example tests by @savil in #860
- telemetry: report errors in separate process by @gcurtis in #859
Full Changelog: 0.4.5...0.4.6
0.4.6-dev
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
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
- For existing customers -- you may need to update to the latest version of our Devbox Launcher by re-running
- Fixed a bug that breaks users'
.envrcon version updates (PR #830, #832)devbox shell --print-dev-envwill now regenerate the underlying nix configs after a version update to ensure they are compatible with the Devbox CLI.
- Preinstall packages with
devbox installThis installs project packages without starting a shell or running a script. (PR #780) - Packages installed while running
devbox shellare 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
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-envwill now regenerate the underlying nix configs after a version update to ensure they are compatible with the Devbox CLI. - (#780) Added a
devbox installcommand. 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 shellno 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
What's new
- Devbox can now autocomplete with the scripts in your
devbox.json. Typedevbox runfollowed 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!
- You can install shell completions by copying the output of
- 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
- For example -- if you start an NGINX server on port 8081, you can access it by visiting
- Fixed an entrypoint bug in generated devcontainers and Dockerfiles
Thanks to:
@hezhizhen for contributing #775, and for contributing multiple edits to our documentation
Changelog
- [Docs] Updated docs for java to include fix for gradle by @mohsenari in #747
- add env to configuration by @Lagoja in #679
- ci: use DeterminateSystems Nix installer by @gcurtis in #755
- impl: don't error in resetProfileDir if profile doesn't exist by @gcurtis in #754
- testscripts: convert boxcli tests to testscripts by @gcurtis in #756
- ci: remove go test -race and -cover by @gcurtis in #757
- Simplify error handling by @hezhizhen in #741
- impl: remove mod time check from template tests by @gcurtis in #759
- [cloud] Print message telling users how they can access their services by @mikeland86 in #761
- Link
services.mdby @hezhizhen in #767 - Remove unnecessary verbs by @hezhizhen in #766
- Update global data path by @hezhizhen in #763
- Lowercase for commit by @hezhizhen in #764
- Wrap filename with quotes by @hezhizhen in #762
- [plugin] Added gradle plugin and fixed typo in docs by @mohsenari in #769
- feat: add scripts as valid args for shell completion by @hezhizhen in #775
- [devcontainer] Updated dockerfile to use devbox run dash dash by @mohsenari in #776
Full Changelog: 0.4.3...0.4.4
0.4.4-dev
What's New
devbox runscript autocompletion (contributed by @hezhizhen)- Fixed entrypoint for devcontainers
- Access services running in Devbox Cloud from your local machine
What's Changed
- [Docs] Updated docs for java to include fix for gradle by @mohsenari in #747
- add env to configuration by @Lagoja in #679
- ci: use DeterminateSystems Nix installer by @gcurtis in #755
- impl: don't error in resetProfileDir if profile doesn't exist by @gcurtis in #754
- testscripts: convert boxcli tests to testscripts by @gcurtis in #756
- ci: remove go test -race and -cover by @gcurtis in #757
- Simplify error handling by @hezhizhen in #741
- impl: remove mod time check from template tests by @gcurtis in #759
- [cloud] Print message telling users how they can access their services by @mikeland86 in #761
- Link
services.mdby @hezhizhen in #767 - Remove unnecessary verbs by @hezhizhen in #766
- Update global data path by @hezhizhen in #763
- Lowercase for commit by @hezhizhen in #764
- Wrap filename with quotes by @hezhizhen in #762
- [plugin] Added gradle plugin and fixed typo in docs by @mohsenari in #769
- feat: add scripts as valid args for shell completion by @hezhizhen in #775
- [devcontainer] Updated dockerfile to use devbox run dash dash by @mohsenari in #776
Full Changelog: 0.4.3...0.4.4-dev
0.4.3
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.jsonunder theenvobject. For example, you can set variable$FOOtobaras follows:{ "packages": [ "python310" ], "env": { "FOO": "bar" }, "shell": { "init_hook": null, "nixpkgs": { "commit": "..." } } - This lets developers better organize their devbox.json, and avoid lengthy
exportstatements 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 shellenvwas 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:
- @hezhizhen for contributing 4 PRs to this release
- @worldofgeese for reporting issues with devcontainer generation
- @PandaRyshan for reporting issues with Fish Shell
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
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 nixhelp 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
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
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