Skip to content

Commit ca237b0

Browse files
committed
README.md: Nix is required for developers
1 parent 99f9604 commit ca237b0

File tree

1 file changed

+31
-11
lines changed

1 file changed

+31
-11
lines changed

README.md

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,26 @@ If using `cabal`, version 3.0 or later is recommended.
4444

4545
## Developing
4646

47-
Developers will require all the dependencies listed above.
48-
We also recommend (but not require!) the following dependencies.
47+
Developers will require all the dependencies listed above,
48+
in addition to the requirements and recommendations below.
49+
50+
### Required dependencies
51+
52+
For packaging, we require:
53+
54+
- [Nix], a tool for reproducible builds and deployments.
55+
56+
Refer to instructions at [kore.cachix.org] to set up the binary cache.
57+
Refer to the section [below](#developing-with-nix) for more instructions,
58+
and to learn why this is required.
59+
60+
For integration testing, we require:
61+
62+
- GNU [make]
63+
- The [K Framework] frontend, or [curl] to fetch an appropriate version.
64+
The frontend has other dependencies, most notably a Java runtime.
65+
66+
### Recommended dependencies
4967

5068
For setting up a development environment, we recommend:
5169

@@ -55,12 +73,6 @@ For setting up a development environment, we recommend:
5573
[below](#running-a-language-server) to run a language server.
5674
- [hlint] and [stylish-haskell] for compliance with project guidelines.
5775

58-
For integration testing, we also recommend:
59-
60-
- GNU [make]
61-
- The [K Framework] frontend, or [curl] to fetch an appropriate version.
62-
The frontend has other dependencies, most notably a Java runtime.
63-
6476
### Running a language server
6577

6678
To run a language server, developers will need to activate the appropriate
@@ -85,9 +97,16 @@ cabal build --enable-tests --enable-benchmarks --only-dependencies kore
8597

8698
### Developing with Nix
8799

88-
For developers so inclined, we provide a `shell.nix` expression with a suitable
89-
development environment and a binary cache at [kore.cachix.org]. The development
90-
environment is intended to be used with `nix-shell` and `cabal`.
100+
We provide a `shell.nix` expression with a suitable development environment and
101+
a binary cache at [kore.cachix.org]. The development environment is intended to
102+
be used with `nix-shell` and `cabal`.
103+
104+
When the `.cabal` package description file changes, run:
105+
106+
```.sh
107+
# Requires Nix to be installed.
108+
./nix/rematerialize.sh
109+
```
91110

92111

93112
[git]: https://git-scm.com/
@@ -103,3 +122,4 @@ environment is intended to be used with `nix-shell` and `cabal`.
103122
[hlint]: https://github.com/ndmitchell/hlint
104123
[stylish-haskell]: https://github.com/jaspervdj/stylish-haskell
105124
[kore.cachix.org]: https://kore.cachix.org/
125+
[Nix]: https://nixos.org

0 commit comments

Comments
 (0)