Contributions are more than welcome!
Please ensure your pull request title conforms to Conventional Commits.
Our CI checks are run using nix
.
To be able to reproduce CI, we recommend using nix
.
We use the following tools:
- Requires flakes to be enabled.
We provide a flake.nix
that can bootstrap all of the above development tools.
To enter a development shell:
nix develop
To apply formatting, while in a devShell, run
pre-commit run --all
You can use direnv
to auto-load the development shell.
Just run direnv allow
.
The easiest way to run tests is with Nix (see below).
If you do not use Nix, you can also run the test suite locally.
If you just want to run all checks that are available, run:
nix flake check -Lv
To run individual checks, using Nix:
nix build .#checks.<your-system>.<check> -Lv
For example:
nix build .#checks.x86_64-linux.tests -Lv
For formatting and linting:
nix build .#checks.<your-system>.git-hooks-check -Lv
For reproducibility, we only run tests that can be sandboxed with nix,
skipping integration tests.
Running cargo test
locally will run all tests, including integration tests.
Or, if you are using cargo-nextest, we provide an alias:
cargo tt