Building Cardano-SL and Daedalus is quite difficult


#1

Please forgive me if this sounds harsh but I have to say that compiling Cardano-sl and Daedalus was a really frustrating task: I’ve been programming for almost two decades now, had to build any kind of stuff during that period including broken projects from the early 80s, and I’m proficient both in Haskell (at home) and JS/Node (professionally), but wow… I don’t remember ever having to spend days figuring out how to build a relatively small modern project like this before. And I believe I’m not alone in this sentiment since this forum, the chat, and GitHub is full of messages from people having similar experiences.

The initial problem is the documentation, which is not updated. When one downloads a tar.gz or performs a git clone one would expect to find a README file or an INSTALL file with a step by step guide explaining how to compile and setup the project.

Another problem is that the current master branch for Daedalus seems not to be a production version but a release candidate one, and the problem with this is that right now master doesn’t work properly [1] [2].

There is also the problem with deprecated or legacy dependencies, so one may be forced to either use some form of container/VM or install stuff like nvm and some old versions of some libraries that may have conflicts with other installed packages in the system.

Nix is an interesting project, but I don’t think it’s ready for prime time just yet. For instance, most distributions don’t have a package for Nix available in their repositories, and manually building and installing it it’s not trivial. Reproducibility would be pretty cool though… but in any case, Stack works pretty well nowadays, and with some additional shell scripts one should be able to accomplish the creation of directories, configuration files, and whatever else is needed. In my case I had to read the default.nix file to learn what was the missing stuff that was required to start the node.

I just wanted to share this experience here because I believe it can be easily improved by IOHK and Serokell.

Thanks.


#2

I share your experience. In addition everybody seems to build latest version instead of latest release. I got it compiling with Arch Linux but cannot find any documentation about the configuration part.


#3

This was also my experience. I ended up using Ubuntu 17.10 instead of 16.04 LTS because I heard that it was easier (and it was somewhat). I’ve tabled some experimentation under the hope that they’re planning a big documentation overhaul and dependency cleanup when they release Shelley.