@@ -44,8 +44,26 @@ If using `cabal`, version 3.0 or later is recommended.
44
44
45
45
## Developing
46
46
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
49
67
50
68
For setting up a development environment, we recommend:
51
69
@@ -55,12 +73,6 @@ For setting up a development environment, we recommend:
55
73
[ below] ( #running-a-language-server ) to run a language server.
56
74
- [ hlint] and [ stylish-haskell] for compliance with project guidelines.
57
75
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
-
64
76
### Running a language server
65
77
66
78
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
85
97
86
98
### Developing with Nix
87
99
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
+ ```
91
110
92
111
93
112
[ git ] : https://git-scm.com/
@@ -103,3 +122,4 @@ environment is intended to be used with `nix-shell` and `cabal`.
103
122
[ hlint ] : https://github.com/ndmitchell/hlint
104
123
[ stylish-haskell ] : https://github.com/jaspervdj/stylish-haskell
105
124
[ kore.cachix.org ] : https://kore.cachix.org/
125
+ [ Nix ] : https://nixos.org
0 commit comments