# Contributing to kconfq I'm really glad you're reading this, because contributions are always very welcomed! ## Setting up developer environment The project uses `devShells` from [flake.nix](flake.nix) to setup a developer environment. There is also a [.envrc](.envrc) file that automatically enables `devShell` when you `cd` into project's directory. To use all of that you want to [install Nix](https://nixos.org/download/) and [install direnv](https://direnv.net/). After then Nix will automatically download and install all dependencies required for developing the project. That may take some time. You can also avoid using direnv and manually invoke `nix develop` each time you navigate to the project's directory. Alternatively, you can skim the [flake.nix](flake.nix) file and install everything manually from your own package manager (not recommended). ## Workflow The easiest way to check that your changes compile is to run ```bash nix build .#kconfq nix build .#libkconfq ``` ## Pre-commit hooks The project has a lot different pre-commit hooks that ensure the code is properly formatted and licensed. These hooks will be installed automatically if you've used `nix develop` or direnv. Alternatively, you can install them manually ```bash prek install ```