Contributing to Haumea

Unless explicitly stated, all contributions are licensed under MPL-2.0, the license used by haumea.

Making Changes to the API

This doesn't apply to bug fixes.

  • Discuss before opening a pull request, so your work doesn't go to waste. Anything from GitHub issues to Matrix discussions is fine.
  • Update documentation accordingly. Everything in haumea.lib should be documented.
  • Add tests when necessary. Test your changes with nix flake check. Make sure new files are added to git.

Documentation

Documentation sits in the docs directory. You can get started with nix develop ./docs, which will start up mdbook and serve the documentation on localhost.

Scope

Haumea only depends on nixpkgs.lib. Features that depend on the rest of nixpkgs should not be added. However, changes that are specific to, but don't depend on nixpkgs are allowed.

Style

  • Format all Nix files with nixpkgs-fmt.
  • with should be avoided unless absolutely necessary, let inherit is preferred at almost all times.
  • rec attribute sets should be avoided at most times, use self or let-in instead.