Devbox 0.0.4 is released!
Tags: devbox, shell, container
Published: 2022-09-08 16:12:36

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](https://github.com/jetpack-io/devbox/pulls). Want to request a new feature or report a bug? [Submit an issue](https://github.com/jetpack-io/devbox/issues) 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](https://github.com/jetpack-io/devbox/commits/main) 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](https://github.com/methyl), [@TheGlenn88](https://github.com/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](https://www.jetpack.io/devbox/docs/configuration/#stages) 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](https://res-1.cloudinary.com/jetpack-io/image/upload/q_auto/v1/blog/devbox-indicator.png)

### 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](https://jetpack.io/devbox/).  For example, to learn more about the [CLI options](https://www.jetpack.io/devbox/docs/cli_reference/) 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](https://github.com/GoogleContainerTools/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](https://jetpack.io/devbox/docs/telemetry/) 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](https://discord.gg/agbskCJXk2) and on [Twitter](https://twitter.com/jetpack_io).  See an issue that didn’t make it into this release?  Let us know in [Github Issues](https://github.com/jetpack-io/devbox/issues) or better yet, add the feature and create a [Pull Request](https://github.com/jetpack-io/devbox/pulls).