64 lines
1.2 KiB
Markdown
64 lines
1.2 KiB
Markdown
# Contributing
|
|
|
|
## Development setup
|
|
|
|
Prerequisites:
|
|
[uv](https://docs.astral.sh/uv/#installation),
|
|
[just](https://just.systems/man/en/installation.html)
|
|
|
|
```shell
|
|
# Arch Linux
|
|
pacman -S uv just
|
|
# optinal
|
|
pacman -S just-lsp yamlfmt shellcheck
|
|
```
|
|
|
|
The development environment and testing requires multiple specific Python versions; they can be installed with (inside the pulled git project directory):
|
|
|
|
```shell
|
|
uv sync
|
|
```
|
|
|
|
The storage directory of Python versions can be configured with `UV_PYTHON_INSTALL_DIR`. (It must be an absolute path.)
|
|
|
|
## Testing
|
|
|
|
A script is available to run the test suit.
|
|
|
|
```shell
|
|
just test
|
|
```
|
|
|
|
## Formatting
|
|
|
|
Formatting of YAML files requires [yamlfmt](https://github.com/google/yamlfmt) to be installed seperately.
|
|
|
|
A script is available to run the format check.
|
|
|
|
```shell
|
|
just format-check
|
|
just schema-scheck
|
|
```
|
|
|
|
## Linting
|
|
|
|
Linting requires [shellcheck](https://github.com/koalaman/shellcheck) to be installed separately.
|
|
Validating `pyproject.toml` against the checked-in uv schema also requires
|
|
[jq](https://jqlang.org/).
|
|
|
|
A script is available to run the lint check.
|
|
|
|
```shell
|
|
just lint-check
|
|
just type-check
|
|
```
|
|
|
|
## Documentation
|
|
|
|
A script is available to run the documentaion generation.
|
|
|
|
```shell
|
|
just docs
|
|
just man
|
|
```
|