From 18b54986b12d702efa74059b48840fcdd8801e85 Mon Sep 17 00:00:00 2001 From: Anton-Latukha Date: Mon, 28 Sep 2020 21:20:40 +0300 Subject: [PATCH 01/19] README: unify shell entries: rm $ from shell entries --- README.md | 55 +++++++++++++++++++++++++++---------------------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 9dfdee2..9b2d384 100644 --- a/README.md +++ b/README.md @@ -18,18 +18,17 @@ for interacting with store paths, until `hnix-store` is ready. ## Getting Started ``` -$ git clone --recursive https://github.com/haskell-nix/hnix.git -... -$ cd hnix -$ nix-shell -$ cabal v2-configure --enable-tests -$ cabal v2-build -$ cabal v2-test +git clone --recursive https://github.com/haskell-nix/hnix.git +cd hnix +nix-shell +cabal v2-configure --enable-tests +cabal v2-build +cabal v2-test # To run all of the tests, which takes up to a minute: -$ env ALL_TESTS=yes cabal v2-test +env ALL_TESTS=yes cabal v2-test # To run only specific tests (see `tests/Main.hs` for a list) -$ env NIXPKGS_TESTS=yes PRETTY_TESTS=1 cabal v2-test -$ ./dist/build/hnix/hnix --help +env NIXPKGS_TESTS=yes PRETTY_TESTS=1 cabal v2-test +./dist/build/hnix/hnix --help ``` ## Using the REPL @@ -55,10 +54,10 @@ To build `hnix` for debugging, and with full tracing output and stack traces, use: ``` -$ nix-shell -$ cabal v2-configure --enable-tests --enable-profiling --flags=profiling --flags=tracing -$ cabal v2-build -$ ./dist/build/hnix/hnix -v5 --trace +RTS -xc +nix-shell +cabal v2-configure --enable-tests --enable-profiling --flags=profiling --flags=tracing +cabal v2-build +./dist/build/hnix/hnix -v5 --trace +RTS -xc ``` Note that this will run quite slowly, but will give the most information as to @@ -69,10 +68,10 @@ what might potentially be going wrong during parsing or evaluation. To build `hnix` with benchmarks enabled: ``` -$ nix-shell --arg doBenchmarks true -$ cabal v2-configure --enable-tests --enable-benchmarks -$ cabal v2-build -$ cabal v2-bench +nix-shell +cabal v2-configure --enable-tests --enable-benchmarks +cabal v2-build +cabal v2-bench ``` ## Building with profiling enabled @@ -80,10 +79,10 @@ $ cabal v2-bench To build `hnix` with profiling enabled: ``` -$ nix-shell -$ cabal v2-configure --enable-tests --enable-profiling --flags=profiling -$ cabal v2-build -$ ./dist/build/hnix/hnix +RTS -p +nix-shell +cabal v2-configure --enable-tests --enable-profiling --flags=profiling +cabal v2-build +./dist/build/hnix/hnix +RTS -p ``` ## Building with GHCJS @@ -91,7 +90,7 @@ $ ./dist/build/hnix/hnix +RTS -p From the project root directory, run: ``` -$ NIX_CONF_DIR=$PWD/ghcjs nix-build ghcjs +NIX_CONF_DIR=$PWD/ghcjs nix-build ghcjs ``` This will build an `hnix` library that can be linked to your GHCJS @@ -103,8 +102,8 @@ If you're on macOS, you can use the binary cache at Cachix to avoid building the specific dependencies used by hnix. Just use these commands: ``` -$ nix-env -iA cachix -f https://github.com/NixOS/nixpkgs/tarball/db557aab7b690f5e0e3348459f2e4dc8fd0d9298 -$ cachix use hnix +nix-env -iA cachix -f https://github.com/NixOS/nixpkgs/tarball/db557aab7b690f5e0e3348459f2e4dc8fd0d9298 +cachix use hnix ``` ## How you can help @@ -121,8 +120,8 @@ same. You can talk with everyone live on When you're ready to submit a pull request, test it with: ``` -$ git submodule update --init --recursive -$ nix-shell --run "LANGUAGE_TESTS=yes cabal v2-test" +git submodule update --init --recursive +nix-shell --run "LANGUAGE_TESTS=yes cabal v2-test" ``` Make sure that all the tests that were passing prior to your PR are still @@ -135,5 +134,5 @@ run this yourself, first build hnix with `nix-build`, then run the following command: ``` -$ ./result/bin/hnix --eval -E "import {}" --find +./result/bin/hnix --eval -E "import {}" --find ``` From 377902664bce113852c15591ac5b8723af10b1d6 Mon Sep 17 00:00:00 2001 From: Anton-Latukha Date: Mon, 28 Sep 2020 21:30:30 +0300 Subject: [PATCH 02/19] README: Prequisites: m upd: rephrase --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 9b2d384..fb9d133 100644 --- a/README.md +++ b/README.md @@ -11,9 +11,7 @@ Haskell parser, evaluator and type checker for the Nix language. ## Prerequisites - -Nix is installed and in your `$PATH`. This is so that `nix-store` can be used -for interacting with store paths, until `hnix-store` is ready. +Until `hnix-store` is ready, `nix-store` is still used for interacting with store paths, so HNix still requires Nix to be installed and available through `$PATH`. ## Getting Started From ea770eab961c44277f1f94c672d9a1c7012d36a2 Mon Sep 17 00:00:00 2001 From: Anton-Latukha Date: Mon, 28 Sep 2020 21:31:22 +0300 Subject: [PATCH 03/19] README: Getting started: split `test` examples into separate examples --- README.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fb9d133..05ee688 100644 --- a/README.md +++ b/README.md @@ -21,10 +21,20 @@ cd hnix nix-shell cabal v2-configure --enable-tests cabal v2-build +``` + +Default test pack: +``` cabal v2-test -# To run all of the tests, which takes up to a minute: +``` + +To run all of the tests, which takes up to a minute: +``` env ALL_TESTS=yes cabal v2-test -# To run only specific tests (see `tests/Main.hs` for a list) +``` + +To run only specific tests (see `tests/Main.hs` for a list) +``` env NIXPKGS_TESTS=yes PRETTY_TESTS=1 cabal v2-test ./dist/build/hnix/hnix --help ``` From 556835a5b637c93ad87685fdcbbf50e2389a41fc Mon Sep 17 00:00:00 2001 From: Anton-Latukha Date: Mon, 28 Sep 2020 21:36:12 +0300 Subject: [PATCH 04/19] README: Getting started: put separate test examples into a list --- README.md | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 05ee688..4a57985 100644 --- a/README.md +++ b/README.md @@ -23,21 +23,22 @@ cabal v2-configure --enable-tests cabal v2-build ``` -Default test pack: -``` -cabal v2-test -``` +Run testing: + * Default: + ``` + cabal v2-test + ``` -To run all of the tests, which takes up to a minute: -``` -env ALL_TESTS=yes cabal v2-test -``` + * All: + ``` + env ALL_TESTS=yes cabal v2-test + ``` -To run only specific tests (see `tests/Main.hs` for a list) -``` -env NIXPKGS_TESTS=yes PRETTY_TESTS=1 cabal v2-test -./dist/build/hnix/hnix --help -``` + * Selected (list of tests is in `tests/Main.hs`): + ``` + env NIXPKGS_TESTS=yes PRETTY_TESTS=1 cabal v2-test + ./dist/build/hnix/hnix --help + ``` ## Using the REPL From 50f167c64049de63420090952ddf424e242f51d8 Mon Sep 17 00:00:00 2001 From: Anton-Latukha Date: Mon, 28 Sep 2020 21:37:49 +0300 Subject: [PATCH 05/19] README: Using the REPL: simplify wording --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 4a57985..349be37 100644 --- a/README.md +++ b/README.md @@ -42,8 +42,7 @@ Run testing: ## Using the REPL -To enter the `hnix` REPL use - +Enter REPL: ``` hnix --repl ``` From b9575207a4d447078a39b90f60d1f67b5cc8d885 Mon Sep 17 00:00:00 2001 From: Anton-Latukha Date: Mon, 28 Sep 2020 21:40:17 +0300 Subject: [PATCH 06/19] README: rm Building with GHCJS, there is none currently --- README.md | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/README.md b/README.md index 349be37..5f4d66a 100644 --- a/README.md +++ b/README.md @@ -93,17 +93,6 @@ cabal v2-build ./dist/build/hnix/hnix +RTS -p ``` -## Building with GHCJS - -From the project root directory, run: - -``` -NIX_CONF_DIR=$PWD/ghcjs nix-build ghcjs -``` - -This will build an `hnix` library that can be linked to your GHCJS -application. - ## Using the Cachix binary cache If you're on macOS, you can use the binary cache at Cachix to avoid building From 60544cb8a63766b764ac1f331f2a91c6589ae5a0 Mon Sep 17 00:00:00 2001 From: Anton-Latukha Date: Mon, 28 Sep 2020 21:42:14 +0300 Subject: [PATCH 07/19] README: Prerequisites: m upd --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5f4d66a..114f4f3 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Haskell parser, evaluator and type checker for the Nix language. ## Prerequisites -Until `hnix-store` is ready, `nix-store` is still used for interacting with store paths, so HNix still requires Nix to be installed and available through `$PATH`. +Until `hnix-store` is ready, `nix-store` is still used for interacting with the store paths, so Nix is still required installed and available through `$PATH`. ## Getting Started From 6eb309e817dc855554ba13ced44d3b7710f1bdba Mon Sep 17 00:00:00 2001 From: Anton-Latukha Date: Tue, 29 Sep 2020 01:49:12 +0300 Subject: [PATCH 08/19] README: Getting started: upd nstructions for running the binary --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 114f4f3..a7d3cdc 100644 --- a/README.md +++ b/README.md @@ -37,9 +37,13 @@ Run testing: * Selected (list of tests is in `tests/Main.hs`): ``` env NIXPKGS_TESTS=yes PRETTY_TESTS=1 cabal v2-test - ./dist/build/hnix/hnix --help ``` +Run built binary with Cabal (`--` is for separation between `cabal` & `hnix` args): +``` +cabal v2-run hnix -- --help +``` + ## Using the REPL Enter REPL: From 6955a55a36a3e2f9bf7319b14b0496bb221930c8 Mon Sep 17 00:00:00 2001 From: Anton-Latukha Date: Tue, 29 Sep 2020 01:49:55 +0300 Subject: [PATCH 09/19] README: use cabal v2-run for locating and executing binary Old path is not existent, since `dist-newstyle` is used, path is ugly to construct, so far settling for `cabal v2-run` autolocating `hnix`, thou the problem is that Nix-env has GHC 8.8.3, and HNix binary builds only under GHC >= 8.10. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a7d3cdc..9fbed0e 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ use: nix-shell cabal v2-configure --enable-tests --enable-profiling --flags=profiling --flags=tracing cabal v2-build -./dist/build/hnix/hnix -v5 --trace +RTS -xc +cabal v2-run hnix -- -v5 --trace +RTS -xc ``` Note that this will run quite slowly, but will give the most information as to @@ -94,7 +94,7 @@ To build `hnix` with profiling enabled: nix-shell cabal v2-configure --enable-tests --enable-profiling --flags=profiling cabal v2-build -./dist/build/hnix/hnix +RTS -p +cabal v2-run hnix -- +RTS -p ``` ## Using the Cachix binary cache From 3efb4d157b1a47a0f5418a9a10a83d535a5fd18b Mon Sep 17 00:00:00 2001 From: Anton-Latukha Date: Tue, 29 Sep 2020 01:53:52 +0300 Subject: [PATCH 10/19] README: Issue Tracked Backlog: rephrasing it more directly --- README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 9fbed0e..08d7f32 100644 --- a/README.md +++ b/README.md @@ -111,11 +111,10 @@ cachix use hnix ### Issue Tracker Backlog -If you're looking for a way to help out, try taking a look -[here](https://github.com/haskell-nix/hnix/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22+no%3Aassignee). -When you find an issue that looks interesting to you, comment on the ticket to -let others know you're working on it; look for others who might have done the -same. You can talk with everyone live on +To participate out, take a look +[in here](https://github.com/haskell-nix/hnix/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22+no%3Aassignee). +When issue looks interesting, look through the thread and comment on the ticket to +let others know you're working on it. You can chat with everyone participating in the project on [Gitter](https://gitter.im/haskell-nix/Lobby). When you're ready to submit a pull request, test it with: From 6ac08a10074fc0822d538486b6923c7a3061156e Mon Sep 17 00:00:00 2001 From: Anton-Latukha Date: Tue, 29 Sep 2020 01:55:19 +0300 Subject: [PATCH 11/19] README: Issue Tracked Backlog: upd PR test phrasing, ecouraging --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 08d7f32..02c07e0 100644 --- a/README.md +++ b/README.md @@ -117,15 +117,14 @@ When issue looks interesting, look through the thread and comment on the ticket let others know you're working on it. You can chat with everyone participating in the project on [Gitter](https://gitter.im/haskell-nix/Lobby). -When you're ready to submit a pull request, test it with: +When pull request is ready to be submitted, to save time - please, test it with: ``` git submodule update --init --recursive nix-shell --run "LANGUAGE_TESTS=yes cabal v2-test" ``` -Make sure that all the tests that were passing prior to your PR are still -passing afterwards; it's OK if no new tests are passing. +Please, check that all the tests that were passing prior are still passing for the PR; it's OK if no new tests are passing. ### Evaluating Nixpkgs with HNix From 20f93d33d2d8b6972daf301df485d23776a23f84 Mon Sep 17 00:00:00 2001 From: Anton-Latukha Date: Tue, 29 Sep 2020 01:56:39 +0300 Subject: [PATCH 12/19] README: Evaluating Nixpkgs with HNix: m upd --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 02c07e0..d739d13 100644 --- a/README.md +++ b/README.md @@ -128,8 +128,8 @@ Please, check that all the tests that were passing prior are still passing for t ### Evaluating Nixpkgs with HNix -Currently the main high-level goal is to be able to evaluate all of nixpkgs. To -run this yourself, first build hnix with `nix-build`, then run the following +Currently the main high-level goal is to be able to evaluate all of Nixpkgs. To +run this yourself, first build `hnix` with `nix-build`, then run the following command: ``` From ee8552a4f60765f2b5eee756cd06e6102e3e6424 Mon Sep 17 00:00:00 2001 From: Anton-Latukha Date: Tue, 29 Sep 2020 01:59:11 +0300 Subject: [PATCH 13/19] README: Issue Tracker Backlog: upd --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d739d13..c7d01cc 100644 --- a/README.md +++ b/README.md @@ -124,7 +124,7 @@ git submodule update --init --recursive nix-shell --run "LANGUAGE_TESTS=yes cabal v2-test" ``` -Please, check that all the tests that were passing prior are still passing for the PR; it's OK if no new tests are passing. +Please, check that all tests that were passing prior (most probably all tests mentioned in the command) are still passing for the PR, it is faster to chech that locally then through CI. It's OK if no new tests are passing. ### Evaluating Nixpkgs with HNix From 3b530d27cb3c5b4a4562cb2241593b54eca012f0 Mon Sep 17 00:00:00 2001 From: Anton-Latukha Date: Tue, 29 Sep 2020 03:07:07 +0300 Subject: [PATCH 14/19] README: "How you can help" -> "Contributing" --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c7d01cc..ddf41ca 100644 --- a/README.md +++ b/README.md @@ -107,7 +107,7 @@ nix-env -iA cachix -f https://github.com/NixOS/nixpkgs/tarball/db557aab7b690f5e0 cachix use hnix ``` -## How you can help +## Contributing ### Issue Tracker Backlog From 4d70cc57fc46236151f5944945a08797ae32eee7 Mon Sep 17 00:00:00 2001 From: Anton-Latukha Date: Tue, 29 Sep 2020 03:11:37 +0300 Subject: [PATCH 15/19] README: upd Contributing --- README.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index ddf41ca..614751b 100644 --- a/README.md +++ b/README.md @@ -109,12 +109,9 @@ cachix use hnix ## Contributing -### Issue Tracker Backlog - -To participate out, take a look -[in here](https://github.com/haskell-nix/hnix/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22+no%3Aassignee). -When issue looks interesting, look through the thread and comment on the ticket to -let others know you're working on it. You can chat with everyone participating in the project on +[Requests and reports](https://github.com/haskell-nix/hnix/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22+no%3Aassignee). +When something looks interesting, look through the thread and comment on the ticket to +let others know you're working on it. You are free to chat with everyone in the project on [Gitter](https://gitter.im/haskell-nix/Lobby). When pull request is ready to be submitted, to save time - please, test it with: From 7da15c3f8d0f7e683887b106d8c6c43cc43a7466 Mon Sep 17 00:00:00 2001 From: Anton-Latukha Date: Tue, 29 Sep 2020 03:17:20 +0300 Subject: [PATCH 16/19] README: upd Contributing --- README.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 614751b..2b8d524 100644 --- a/README.md +++ b/README.md @@ -109,10 +109,9 @@ cachix use hnix ## Contributing -[Requests and reports](https://github.com/haskell-nix/hnix/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22+no%3Aassignee). -When something looks interesting, look through the thread and comment on the ticket to -let others know you're working on it. You are free to chat with everyone in the project on -[Gitter](https://gitter.im/haskell-nix/Lobby). +If something in the [quests](https://github.com/haskell-nix/hnix/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22+no%3Aassignee) looks interesting, look through the thread and leave a comment taking it, to let others know you're working on it. + +You are free to chat with everyone on [Gitter](https://gitter.im/haskell-nix/Lobby). When pull request is ready to be submitted, to save time - please, test it with: From 4e35c082dd60882af507c26d02053805fb4bbf27 Mon Sep 17 00:00:00 2001 From: Anton-Latukha Date: Tue, 29 Sep 2020 03:19:10 +0300 Subject: [PATCH 17/19] README: Contributing: enum steps to draw attention and memoization --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2b8d524..c807411 100644 --- a/README.md +++ b/README.md @@ -109,11 +109,11 @@ cachix use hnix ## Contributing -If something in the [quests](https://github.com/haskell-nix/hnix/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22+no%3Aassignee) looks interesting, look through the thread and leave a comment taking it, to let others know you're working on it. +1. If something in the [quests](https://github.com/haskell-nix/hnix/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22+no%3Aassignee) looks interesting, look through the thread and leave a comment taking it, to let others know you're working on it. -You are free to chat with everyone on [Gitter](https://gitter.im/haskell-nix/Lobby). +2. You are free to chat with everyone on [Gitter](https://gitter.im/haskell-nix/Lobby). -When pull request is ready to be submitted, to save time - please, test it with: +3. When pull request is ready to be submitted, to save time - please, test it with: ``` git submodule update --init --recursive From e8e326bc11232afd54c4c955157072596fcd31ab Mon Sep 17 00:00:00 2001 From: Anton-Latukha Date: Tue, 29 Sep 2020 03:47:46 +0300 Subject: [PATCH 18/19] README: rm hardwraps, let editors wrap lines automatically Manual hardwrap of human text considered harmful, especially in the document files. --- README.md | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index c807411..b10d174 100644 --- a/README.md +++ b/README.md @@ -51,9 +51,7 @@ Enter REPL: hnix --repl ``` -To evaluate an expression and make it available in the REPL -as the `input` variable use - +To evaluate an expression and make it available in the REPL as the `input` variable use: ``` hnix --eval -E '(import {}).pkgs.hello' --repl ``` @@ -62,8 +60,7 @@ Use the `:help` command for a list of all available REPL commands. ## Building with full debug info -To build `hnix` for debugging, and with full tracing output and stack traces, -use: +To build `hnix` for debugging, and with full tracing output and stack traces, use: ``` nix-shell @@ -72,8 +69,7 @@ cabal v2-build cabal v2-run hnix -- -v5 --trace +RTS -xc ``` -Note that this will run quite slowly, but will give the most information as to -what might potentially be going wrong during parsing or evaluation. +Note that this will run quite slowly, but will give the most information as to what might potentially be going wrong during parsing or evaluation. ## Building with benchmarks enabled @@ -99,8 +95,7 @@ cabal v2-run hnix -- +RTS -p ## Using the Cachix binary cache -If you're on macOS, you can use the binary cache at Cachix to avoid building -the specific dependencies used by hnix. Just use these commands: +If you're on macOS, you can use the binary cache at Cachix to avoid building the specific dependencies used by hnix. Just use these commands: ``` nix-env -iA cachix -f https://github.com/NixOS/nixpkgs/tarball/db557aab7b690f5e0e3348459f2e4dc8fd0d9298 @@ -124,9 +119,7 @@ Please, check that all tests that were passing prior (most probably all tests me ### Evaluating Nixpkgs with HNix -Currently the main high-level goal is to be able to evaluate all of Nixpkgs. To -run this yourself, first build `hnix` with `nix-build`, then run the following -command: +Currently the main high-level goal is to be able to evaluate all of Nixpkgs. To run this yourself, first build `hnix` with `nix-build`, then run the following command: ``` ./result/bin/hnix --eval -E "import {}" --find From 0697836b08636fcad3a18cceceb68e760a640b70 Mon Sep 17 00:00:00 2001 From: Anton-Latukha Date: Tue, 29 Sep 2020 04:21:17 +0300 Subject: [PATCH 19/19] README: add Contents TOC --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index b10d174..4a1b07c 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,20 @@ Haskell parser, evaluator and type checker for the Nix language. +## Contents + + +- [Prerequisites](#prerequisites) +- [Getting Started](#getting-started) +- [Using the REPL](#using-the-repl) +- [Building with full debug info](#building-with-full-debug-info) +- [Building with benchmarks enabled](#building-with-benchmarks-enabled) +- [Building with profiling enabled](#building-with-profiling-enabled) +- [Using the Cachix binary cache](#using-the-cachix-binary-cache) +- [Contributing](#contributing) + - [Evaluating Nixpkgs with HNix](#evaluating-nixpkgs-with-hnix) + + ## Prerequisites Until `hnix-store` is ready, `nix-store` is still used for interacting with the store paths, so Nix is still required installed and available through `$PATH`.