Nix
Nix patterns
Getting a recent version of a package from nixpkgs-unstable
By default, new devenv projects are configured to use a fork of nixpkgs
called devenv-nixpkgs/rolling
.
devenv-nixpkgs/rolling
is tested against devenv's test suite and receives monthly updates, as well as interim stability patches that affect devenv's most popular services and integrations.
For some packages that are updated frequently, you may want to use a more recent version from nixpkgs-unstable
.
- Add
nixpkgs-unstable
input todevenv.yaml
:
devenv.yaml
inputs:
nixpkgs:
url: github:cachix/devenv-nixpkgs/rolling
nixpkgs-unstable:
url: github:NixOS/nixpkgs/nixpkgs-unstable
- Use the package in your
devenv.nix
:
devenv.nix
{ pkgs, inputs, ... }:
let
pkgs-unstable = import inputs.nixpkgs-unstable { system = pkgs.stdenv.system; };
in
{
packages = [
pkgs-unstable.elmPackages.elm-test-rs
];
}
How do I contribute a package or a fix to nixpkgs
?
For temporary fixes, we recommend using either overlays or a different nixpkgs input.
You can also consider contributing your changes back to nixpkgs
.
Follow the nixpkgs contributing guide to get started.
Once you've forked and cloned nixpkgs
, test your changes with devenv:
inputs:
nixpkgs:
url: github:username/nixpkgs/branch
# Or a local path to nixpkgs
# url: path:/path/to/local/nixpkgs/clone
Add a directory to $PATH
This example adds Elixir install scripts to ~/.mix/escripts
:
devenv.nix
{ ... }:
{
languages.elixir.enable = true;
enterShell = ''
export PATH="$HOME/.mix/escripts:$PATH"
'';
}