The goal of this project is to simplify per-project developer environments.
Imagine, a new employee joins the company, or somebody transfers teams, or somebody wants to contribute to one of your Open Source projects. It should take them 10 minutes to clone the repo and get all of the development dependencies.
See docs (docs source)
Keep it compatible with:
- nix-shell
- direnv
- nix flakes
pkgs.stdenv.mkDerivation
and pkgs.mkShell
build on top of the
pkgs.stdenv
which introduces all sort of dependencies. Each added package,
like the pkgs.go
in the "Story time!" section has the potential of adding
new environment variables, which then need to be unset. The stdenv
itself
contains either GCC or Clang which makes it hard to select a specific C
compiler.
This is why mkShell
builds its environment from a builtins.derivation
.
direnv loads will change from: