Merge pull request #77 from Mic92/imp/contributing-suggestions

[rebased from #67] Suggestions for CONTRIBUTING
This commit is contained in:
Jörg Thalheim 2018-08-31 20:17:25 +01:00 committed by GitHub
commit 8fa41aff5b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,6 +1,31 @@
Profiles should favor usability and stability, so performance hacks should be # Writing profiles
activated by an additional NixOS option or conservative and performance configs
can be declared in separate profiles.
Because profiles can only be tested with the appropriate hardware, quality When setting an option, use `lib.mkDefault` unless:
assurance is up to *you*. - The option *must* be set and the user should get an error if they try to override it.
- The setting should merge with the user's settings (typical for list or set options).
For example:
```nix
{ lib }: {
# Using mkDefault, because the user might want to disable tlp
services.tlp.enable = lib.mkDefault true;
# No need to use mkDefault, because the setting will merge with the user's setting
boot.kernelModules = [ "tmp_smapi" ];
}
```
Try to avoid "opinionated" settings relating to optional features like sound, bluetooth, choice of bootloader etc.
Where possible, use module imports to share code between similar hardware variants.
# Performance
Profiles should favor usability and stability, so performance improvements should either be conservative or
be guarded behind additional NixOS module options.
If it makes sense to have a performance-focussed config, it can be declared in a separate profile.
# Testing
Because profiles can only be tested with the appropriate hardware, quality assurance is up to *you*.