Files
scylladb/dist/nix/README.md
Michael Livshin d178ac17dc nix: add README.md
Signed-off-by: Michael Livshin <repo@cmm.kakpryg.net>
2022-10-02 12:26:02 +03:00

1.5 KiB

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.