mirror of
https://github.com/hercules-ci/flake-parts.git
synced 2024-12-14 11:47:31 +00:00
Merge pull request #144 from hercules-ci/contributing
Create CONTRIBUTING.md
This commit is contained in:
commit
f3e943c249
1 changed files with 58 additions and 0 deletions
58
CONTRIBUTING.md
Normal file
58
CONTRIBUTING.md
Normal file
|
@ -0,0 +1,58 @@
|
|||
|
||||
# How do I contribute?
|
||||
|
||||
Flake-parts is designed to be extremely modular, so often, you don't have to.
|
||||
|
||||
Nonetheless, some changes can only be made here.
|
||||
|
||||
Step 1. Look for an open or closed issue. This may be the quickest path to a solution to your problem.
|
||||
|
||||
Step 2. If needed, open an issue. This way we can discuss the problem, and if necessary discuss changes, if any need to be made.
|
||||
|
||||
Step 3. If needed, create a PR. Make sure to run `nix-shell` before comitting. It installs a pre-commit hook with `nixpkgs-fmt`.
|
||||
|
||||
|
||||
# Style
|
||||
|
||||
This repository is written in a style similar to that of Nixpkgs, with some exceptions.
|
||||
The following sections describe such additions, exceptions, and it probably confirms some rules.
|
||||
|
||||
## Rule #1. Go with the flow
|
||||
|
||||
Write code that fits in. Don't reformat existing code. Don't obsess over fitting in. Write good docs and tests instead.
|
||||
|
||||
## Camel case
|
||||
|
||||
|
||||
- File names may be in camelCase. This reduces the number of unique names in the project.
|
||||
|
||||
Except for file names, the Nixpkgs casing rule is maintained here as well:
|
||||
|
||||
- Package names are verbatim or in snake-case. Example:
|
||||
- `flake-parts-lib`
|
||||
|
||||
- Functionality provided by flake-parts is in camelCase. Examples:
|
||||
- `getSystem`
|
||||
- `mkFlake`
|
||||
|
||||
## Operators and such
|
||||
|
||||
- The "contains attribute" operator is spelled without spaces, just like the "select attribute" operator. I believe Nixpkgs is undecided on this.
|
||||
|
||||
```nix
|
||||
if x?a then x.a else "does not have a"
|
||||
# ^^^
|
||||
```
|
||||
|
||||
- `@` pattern goes before and uses no extra spaces.
|
||||
|
||||
```nix
|
||||
# immediately before parameter list when single line
|
||||
pair@{ name, value }:
|
||||
|
||||
# newline after @ when multi-line
|
||||
pair@
|
||||
{ name
|
||||
, value
|
||||
}
|
||||
```
|
Loading…
Reference in a new issue