Devbox 0.0.4 is released!

Devbox 0.0.4 is released!

We’re excited to showcase the next release of Devbox with important fixes and new features. We’re overwhelmed by the community support and interest in this project, so this release also includes important fixes contributed by you. If you'd like to add new features to Devbox, we welcome Pull Requests. Want to request a new feature or report a bug? Submit an issue to the Devbox team.

Update to the Latest Version

Devbox automatically updates to the latest version each time you run a command.

You can confirm you’re running 0.0.4 by running:

devbox version

New in 0.0.4

This quick summary isn’t an exhaustive list of new content in this release, but highlights the major user-facing features in this release. For a full list of features, see the new commits since 0.0.3 was released just a week ago.

Path fix

Packages installed by Devbox now take priority over your local PATH

If your ~/.bashrc, ~/.zshrc or other shell startup script prefixed the path, this would overwrite the modifications Devbox made to the PATH. We now correctly add Nix packages at the beginning of the PATH after running your shell’s startup script. Thank you to @methyl, @TheGlenn88 and others for reporting this issue.

Stages

Stages are used to configure and run commands at different points of container creation. Devbox will automatically detect and configure the correct stage commands for your project based on your source code, but you can override any of these stages by configuring them in your devbox.json:

  • The install stage will run after your base container has been initialized and your Nix packages are installed. This stage should be used to download and build your application's dependencies

  • The build stage runs after the install stage, and should be used to build or bundle your application.

  • The start stage will run when your container is started. This stage should include any commands needed to start and run your application.

For example, if you were running a Node.js project, you might configure the stages in your devbox.json like this:

{
    "packages": [
        "nodejs"
    ],
    "install_stage": {
        "command": "npm install"
    },
    "build_stage":{
        "command":"npm run build"
    },
    "start_stage": {
        "command": "node ./dist/index.js"
    }
}

See the Devbox Docs to learn more.

Devbox shell indicator

Once you launch devbox shell, a new indicator notes that you’re inside a Devbox shell. This will make it easier to quickly identify if you’re in a shell.

Devbox indicator

Devbox website

We’re excited to debut a brand-new website and docs pages for Devbox. If you’d like to dig deeper into Devbox than the ReadMe, you now have a great place to learn about Devbox. For example, to learn more about the CLI options on the docs pages.

Python + Poetry support

In addition to Go language detection, we now also auto-detect Poetry applications written in Python, and install the proper tools. The container image is based on a distroless image, making the resulting image small.

To get started with Python & Poetry:

  1. Open a terminal in the source directory with your poetry.lock file

  2. Initialize Devbox:

    devbox init
    
  3. Start the shell:

    devbox shell
    

This also works with devbox build to build the container.

Anonymous Telemetry

The Devbox CLI now reports anonymous telemetry. This helps us better understand which features are used and lets us lean into the features you deem important. Users who prefer not to send telemetry can opt out by setting the DO_NOT_TRACK=1 environment variable. See this page for how we use this information.

Update today

We’re really excited about this new release of Devbox. Devbox automatically updates every time you run a command, so you may already have this version.

Need to install Devbox on a new machine? Install today:

curl -fsSL https://get.jetpack.io/devbox | bash

And let us know what you think on Discord and on Twitter. See an issue that didn’t make it into this release? Let us know in Github Issues or better yet, add the feature and create a Pull Request.