From 3083dde52b0c71e511fbc00a0b509c92a98615fd Mon Sep 17 00:00:00 2001 From: Erlend Hamberg Date: Mon, 3 Jan 2022 23:10:25 +0100 Subject: [PATCH] Beam/Elixir: Add section on using an overlay (#153348) * Beam/Elixir: Add section on using an overlay --- doc/languages-frameworks/beam.section.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/doc/languages-frameworks/beam.section.md b/doc/languages-frameworks/beam.section.md index 9b09d0329c5f..6552f6cce5e5 100644 --- a/doc/languages-frameworks/beam.section.md +++ b/doc/languages-frameworks/beam.section.md @@ -280,6 +280,30 @@ mkShell { } ``` +### Using an overlay + +If you need to use an overlay to change some attributes of a derivation, e.g. if you need a bugfix from a version that is not yet available in nixpkgs, you can override attributes such as `version` (and the corresponding `sha256`) and then use this overlay in your development environment: + +#### `shell.nix` + +```nix +let + elixir_1_13_1_overlay = (self: super: { + elixir_1_13 = super.elixir_1_13.override { + version = "1.13.1"; + sha256 = "0z0b1w2vvw4vsnb99779c2jgn9bgslg7b1pmd9vlbv02nza9qj5p"; + }; + }); + pkgs = import { overlays = [ elixir_1_13_1_overlay ]; }; +in +with pkgs; +mkShell { + buildInputs = [ + elixir_1_13 + ]; +} +``` + #### Elixir - Phoenix project {#elixir---phoenix-project} Here is an example `shell.nix`.