Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add nix instructions for developers #58

Merged
merged 5 commits into from
Jun 17, 2024
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,29 @@ Once we have the first stable version, this notice will be removed.

The current code is compatible with the [`standard` branch of the official MLKEM repository](https://github.com/pq-crystals/kyber/tree/standard).


## Development

### Environment Setup

All the development and build dependencies are specified in [flake.nix](flake.nix). We recommend installing them using [nix](https://nixos.org/download/).

- **Setup with nix**
- Running `nix develop` will execute a bash shell with the development environment specified in [flake.nix](flake.nix).
- Alternatively, you can enable `direnv` by using `direnv allow`, allowing it to handle the environment setup for you.
hanno-becker marked this conversation as resolved.
Show resolved Hide resolved

- As flake is still an experimental feature of nix, --experimental-features 'nix-command flakes' is needed when running the nix command. Alternatively, add the following to your `~/.config/nix/nix.conf` or `/etc/nix/nix.conf`:
hanno-becker marked this conversation as resolved.
Show resolved Hide resolved
```
experimental-features = nix-command flakes
```

- If you are not using nix, please ensure you have installed the same version as specified in [flake.nix](flake.nix).
hanno-becker marked this conversation as resolved.
Show resolved Hide resolved

### Development scripts
After running `nix develop` you should automatically have a number of support scripts in your PATH:

- [`format`](scripts/format) formats all files. The format is enforced by our CI, so you should run this script prior to committing.

## Call for contributors

We are actively seeking contributors who can help us build **mlkem-c-aarch64**.
Expand Down