about summary refs log tree commit diff stats
path: root/docs/developing.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/developing.md')
-rw-r--r--docs/developing.md33
1 files changed, 33 insertions, 0 deletions
diff --git a/docs/developing.md b/docs/developing.md
new file mode 100644
index 0000000..e1d66a5
--- /dev/null
+++ b/docs/developing.md
@@ -0,0 +1,33 @@
+# Development
+
+### Pre-requisites
+
+-   [Nix (the package manager)](https://nixos.org/download/) with [flakes enabled](https://nixos.wiki/wiki/flakes#Enable_flakes_temporarily)
+-   Optional:
+    -   [cachix](https://docs.cachix.org/installation#installation)
+    -   [lorri](https://github.com/nix-community/lorri)
+    -   [direnv](https://direnv.net/)
+
+### Setup
+
+1. Optional: use cachix to avoid building some tools
+
+    ```shell-session
+    cachix use pre-commit-hooks
+    ```
+
+2. Start a nix shell (this will take some time)
+
+    ```shell-session
+    nix develop
+    ```
+
+3. Optional: install and set up lorri and use `lorri shell` instead of `nix develop`
+
+4. Optional: install direnv, integrate it with your shell and then run
+
+    ```shell-session
+    ln -s .envrc.sample .envrc
+    ```
+
+    Now `nix develop` or `lorri shell` will be run for you automatically when you `cd` into this directory.