Skip to content

Latest commit

 

History

History

nix

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Nix development environment

The *.nix files at the project root and under dist/nix implement a Nix-based development environment for Scylla.

Note that there is presently no support for building installable artifacts with nix build, or anything suitable for incorporation into the Nixpkgs collection (that's "just" a matter of implementing installPhase in default.nix). This is just a development environment that is predictable, is independent from the state of the host distribution, and does not require entering a container.

gdb with green thread debugging support is included, plus other assorted debugging tools.

Compilers are transparently wrapped to use ccache and distcc, if you have those configured.

Basic usage

If you have Nix flake support enabled (recommended!), enter the environment using nix develop .. Otherwise, use nix-shell ..

$configPhase will configure Scylla for building (it just invokes ./configure.py --disable-dpdk). Then use ninja to build, test.py to run unit tests, etc., as usual.

Direnv (optional)

Using direnv is recommended to make life more convenient. Create .envrc at the project root with the contents:

nix_direnv_watch_file default.nix
nix_direnv_watch_file shell.nix
for f in $(find dist/nix/ -type f); do
    nix_direnv_watch_file $f
done
use flake

For non-flake usage, replace the last line with use nix.