-
The sections should be organized in terms of getting the server running instead of as technical steps. i.e. "How to Run the Server". The steps for that should go at the top, because that's what most devs will want to do.
-
Currently the commands for actually running the server are under "Get a GHC Based Development Shell", right?
-
I don't think we need the instructions on how to do each thing manually in each section. If someone wants to know how it's done, they can look at the Makefile. Or if the steps aren't the same as what the makefile does, maybe we could put these in another file to keep the README simpler.
-
Why do we need two different dev shells? Is that because we can't have the dependencies for both the client and the server at the same time. What is actually made available in each? Just the compilers? This could be explained more.
-
We should rename the make commands in terms of what we're building instead of the compiler used.
build-client
andbuild-server
were better thanbuild-ghcjs
andbuild-ghc
. -
Can we put those
nix-build
commands under aliases in the Makefile, so devs don't have to pass the args each time? -
You mentioned you could have
make run
check if it's in nix-shell and go in if not. I think it would be great if we could do something like that wherever a command needs to be run in the nix-shell. If we could do that, we might not need the developer to runnix-shell
directly at all. -
What is the difference between running the
nix-build
commands at the beginning vs. running themake
commands inside thenix-shell
? What is the recommended way to build the server and the front-end?
Carnap has a GHCJS (client side) and a GHC (server side) part.
-
I think this could be made clearer. We don't actually refer to the Carnap code as a "client" here, but we do elsewhere. I think referring to them by the compilers muddies the waters. Talking about 's a bit misleading, because the javascript code isn't really a client. It's more of a library.
-
Come to think of it, I'm a bit confused about what the relationship between the Carnap-Client and Carnap-GHCJS folders are.
-
Maybe its clearer to talk the client-side library as the Javascript part, instead of mentioning GHCJS.
To perform the process manually, first make sure to copy
Carnap-Server/config/settings-example.yml
toCarnap-Server/config/settings.yml
, and to create a data directory (in the below, calleddataroot
). Then run:
-
This should give the actual commands in the snippet so devs can copy-paste, if we keep the manual steps.
-
I'm getting this error after running the nix-build command to build the client, when the
client-out
directory already exists. I assume this could be avoided with a flag.
error: cannot create symlink '/home/tano/code/Carnap/client-out'; already exists
EDIT: Now I'm not getting it. Maybe it's been fixed on another branch already.