numtide / devshell

Per project developer environments
https://numtide.github.io/devshell/
MIT License
1.22k stars 87 forks source link

Add comparison chart to documentation covering similar projects #242

Open alerque opened 1 year ago

alerque commented 1 year ago

I don't know if I've only started noticing or if the tooling in this space has started to proliferate, but it isn't clear to me which tool to reach for an which project. Recently I've run across nixpacks, riff, devbox, and devshell — all of which seem to try and simplify building and-or using projects by abstracting some combination of nix and docker features. There are likely others I'm unaware of too. Of course this is in addition to lower level tooling like docker and nix shell and nix develop which can be used directly as well.

I think it would be useful for at least one of these projects to maintain a comparison chart that helps flesh out which projects cover which ground and what the respective pros and cons of each approach is to help people make informed choices about tooling.

c.f. same issue on nixpacks, devbox, and riff.

zimbatm commented 1 year ago

There is also devenv.sh, flox, and the venerable nixpkgs mkShell.

In terms of history, I believe devshell appeared second. To goal of devshell is to create a clean developer environment, typically aimed at larger repos where a lot of developer tooling is needed. It's the first one that introduced the Nix module system to configure the project.

I can't speak to the motivation and goal of the other project, but happy to host a comparison. I'm not a big believer of comparison matrices. Each project has a slight different angle and appear to various groups of users I believe.

hugosenari commented 1 year ago

same issue on devenv

johnae commented 1 year ago

The issue in the devenv repo states that devshell is in the process of being deprecated, i.e this issue from above: https://github.com/cachix/devenv/issues/140 - is that correct @zimbatm ?

zimbatm commented 1 year ago

It would be nice to join forces. It's a bit too soon to deprecate it, but I would like to merge both eventually. When that happens I would also provide some sort of migration path.