2022-08-11 23:07:20 -04:00
# Contributing
2022-08-11 23:41:33 -04:00
Thanks for your interest in contributing!
We welcome ideas, code, docs, etc -- just open an issue or MR.
## Setup
This project uses [flakes ](https://nixos.wiki/wiki/Flakes ) so a development environment can be created with
nix develop
2022-08-13 21:39:56 -04:00
> **NOTE**: there's also support for [direnv](https://direnv.net/) to automate the dev shell process
2022-08-11 23:41:33 -04:00
## Commits
There's no formal commit process at this time.
2022-08-12 09:44:26 -04:00
Do try to format the repo with [treefmt ](https://github.com/numtide/treefmt ) before submission, however.
2022-08-11 23:41:33 -04:00
2022-08-13 00:09:36 -04:00
nix fmt
2022-08-11 23:41:33 -04:00
2022-08-11 23:07:20 -04:00
## Kubernetes versions
2022-08-11 23:41:33 -04:00
To support a new Kubernetes version:
2022-08-13 21:39:56 -04:00
- Edit [`./versions.nix` ](./versions.nix ) and add a new attribute for the version; for example:
2022-08-11 23:07:20 -04:00
2022-08-11 23:41:33 -04:00
```nix
{
2022-08-13 21:39:56 -04:00
"1.23.0" = "sha256:0jivg8nlxka1y7gzqpcxkmbvhcbxynyrxmjn0blky30q5064wx2a";
2022-08-11 23:41:33 -04:00
}
```
2022-08-11 23:07:20 -04:00
2022-08-28 02:20:49 -04:00
- Build and copy the updated specs to [`modules/generated/` ](./modules/generated/ ) with
2022-08-11 23:07:20 -04:00
2022-08-28 02:20:49 -04:00
nix run '.#generate '
2022-08-11 23:07:20 -04:00
## Tests
Tests are executed through GitHub actions; see the [workflow definition ](../kubenix/.github/workflows/ci.yml ) for commands.
2022-08-28 15:22:43 -04:00
## Docs
Build and serve the static site
nix run '.#docs ' serve
which will be available at < http: / / localhost:1313 > .
2022-08-29 02:04:47 -04:00
### Examples
Examples are written at [./docs/content/examples ](./docs/content/examples ) and are (or will, really) also used as tests which can be executed with
nix flake check
In general, that just means: don't directly put nix snippets into a markdown doc; instead use the shortcode provided to pull them in so they don't have to be parsed out for testing.