dependabot / dependabot/dependabot-core

Add support for Devbox ecosystem

Open
#9,065 2 comments 25 reactions 0 assignees View on GitHub
T: feature-request
Dominant language
Ruby
Stars
5.8k
Forks
1.5k
Avg merge
2d 18h
Merged PRs (30d)
149

Description

### Is there an existing issue for this?

- [X] I have searched the existing issues

### Feature description

[Devbox](https://www.jetpack.io/devbox) creates isolated, reproducible development environments. Software packages are sourced from the [Nix](https://nixos.org/nix/) package manager, which contains over 400,000 versions across 80,000 packages. [GitHub statistics](https://innovationgraph.github.com/global-metrics/programming-languages) show that Nix has seen a huge increase in popularity since 2002. The closest competing equivalent would be DockerHub. Devbox is unique in that you can run your environment anywhere without Docker or virtual machines.

Devbox configuration is in a single, self-contained file that is always named `devbox.json`:

```json
{
"packages": [
"ripgrep@latest",
"python@3.10"
]
}
```

The format is [JSON With Commas and Comments](https://nigeltao.github.io/blog/2021/json-with-commas-comments.html). The [json-next](https://github.com/json-next/json-next) library could potentially be used to parse this file. There is no concept of production and development dependencies. All dependencies are treated the same.

Each package has its own versioning scheme. You can pin a specific version with `@` followed by the version number, or just specify `@latest`. For packages that follow semver, you can also pin to the major or minor version, e.g. `python@3`.

Versions can be searched at [Nixhub.io](https://www.nixhub.io/), which was created by the Devbox team to allow granular version searches of Nix packages. They also have an API to [search](https://search.devbox.sh/v1/search) and [resolve](https://search.devbox.sh/v2/resolve) versions. These search tools operate only on the [standard Nix package registry](https://github.com/NixOS/nixpkgs), so Devbox does not support custom registries (although Nix does).

Devbox uses a mandatory lock file named `devbox.lock`. The `devbox update` command can be used to update package versions in the lock file according to the version constraints in `devbox.json`. This command can also be used to recreate a deleted lock file from scratch.

Contributor guide

Open the contributing guide

Research direction

Start by reading the issue's Devbox configuration and lock-file examples, then review the linked Devbox and Nix package-manager documentation. Done means Dependabot recognizes devbox.json and devbox.lock and can handle the package versions and update behavior described in the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
json
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.