It's a very ambitious project, so a lot of issues are related to either Nix or general support for each language/service.
863 karma · joined July 17, 2019
It's a very ambitious project, so a lot of issues are related to either Nix or general support for each language/service.
difftastic.enable = true;We've shipped a pretty big update this time, incorporating a lot of feedback and issues from the last year.
Here's a 5min demo: https://twitter.com/domenkozar/status/1770444437505929637
Domen
No need to use containers too, which bring cognitive/workflow overhead.
$ cat devenv.nix
{ pkgs, ... }: {
languages.c.enable = true;
packages = [ pkgs.ceedling pkgs.cmake ];
enterShell = ''
cmake --version
'';
pre-commit.hooks = {
clang-format.enable = true;
clang-tidy.enable = true;
};
}$ devenv shell
(Note that pkgs.ceedling has been recently added and will only hit the cache in 6-12h).
These are rare anomalies and there's dry-cooling of nuclear power plants (although it's less efficient and costs more).
It's primary targeted to improve DX and on-board users quickly.
Cachix founder here. Here are a few links for getting started:
- https://nix.dev Nix tutorials
- https://devenv.sh Fast, Declarative, Reproducible, and Composable Developer Environments
Let me know if you have any questions. Domen
$ cat devenv.nix
{ config, ...}:
let
ocamlPackages = config.languages.ocaml.packages;
in {
languages.ocaml.enable = true;
packages = [ ocamlPackages.janeStreet.async ];
}
$ devenv shell
...
Recently also shipped 0.6 with container generation support: https://devenv.sh/containers/Let me know if you give it a try :)
Versions are locked using devenv.lock and everyone gets the same version.
There are kind of three levels of language support in devenv:
1) Basic tooling + system dependencies, this allows you to use native language package manager and provide system deps to make sure they build.
2) Compiler/interpreter versioning: pick any version of the tooling as you need
3) Full automatic translation of the language tooling into a Nix expressions for the project. This allows you to get all the benefits of what Nix has to offer. This is the most work for each language but the benefits are enormous.
devenv.sh plans to achieve that step by step :)
This shouldn't be more than a day of work.
The main benefit is abstraction using modules: this allows you to extend, compose and abstract your environment. Processes and pre-commit hooks are only the beginning of what's possible.
There's also higher-level CLI interface for building images, sharing environments, etc.
Note that this is only scratching the design surface of what's possible.
I've been part of the Nix community for more than 10 years and in the last 4 years focused on making it documented, simple and accessible for any developer.
After building Cachix (where you can store any software binaries with a few steps) we realized that there needs to be an intuitive interface for crafting developer environments.
I'm really looking forward what you build on top of devenv. We're only beginning to explore the area of what's possible, so please give as much feedback as you have.
I've been part of the Nix community for years and in the last 4 years focused on making it documented, simple and accessible for any developer.
After building Cachix (where you can store any software binaries with a few steps) we realized that there needs to be an intuitive interface for crafting developer environments.
I'm really looking forward what you build on top of devenv. We're only beginning to explore the area of what's possible, so please give as much feedback as you have.
Domen
I'm the author of https://devenv.sh, https://cachix.org and https://nix.dev.
I've been part of the Nix community for years and in the last 4 years focused on making it documented, simple and accessible for any developer.
After building Cachix (where you can store any software binaries with a few steps) we realized that there needs to be an intuitive interface for crafting developer environments.
I'm really looking forward what you build on top of devenv. We're only beginning to explore the area of what's possible, so please give as much feedback as you have.
Domen
I really want to know how the universe works before we go back to sticks and stones.