mirror of
https://github.com/kubevirt/kubevirt.core.git
synced 2026-07-25 08:54:43 +00:00
2.1 KiB
2.1 KiB
Contributor's Guidelines
- All YAML files named with
.ymlextension - Use spaces around jinja variables.
{{ var }}over{{var}} - Variables that are internal to the role should be lowercase and start with the role name
- Keep roles self contained - Roles should avoid including tasks from other roles when possible
- Plays should do nothing more than include a list of roles except where
pre_tasksandpost_tasksare required when possible - Separators - Use valid name, ie. underscores (e.g.
my_rolemy_playbook) not dashes (my-role) - Paths - When defining paths, do not include trailing slashes (e.g.
my_path: /foonotmy_path: /foo/). When concatenating paths, follow the same convention (e.g.{{ my_path }}/barnot{{ my_path }}bar) - Indentation - Use 2 spaces for each indent
vars/vsdefaults/- internal or interpolated variables that don't need to change or be overridden by user go invars/, those that a user would likely override, go underdefaults/directory- All arguments have a specification in
meta/argument_specs.yml - All playbooks/roles should be focused on compatibility with Ansible Automation Platform
Before pushing
- Run
make formatbefore committing to auto-format the code. CI rejects unformatted PRs. - CI runs
yamllint,ansible-lint(production profile) andshellcheck. Fix any violations before pushing
Development environment
Install tox (version 4 or newer) and tox-ansible:
pip install --user 'tox>=4' tox-ansible
With --user, tox is in ~/.local/bin. Put it first on PATH before
make targets that use tox (build-venv, test-unit, test-sanity):
export PATH="$HOME/.local/bin:$PATH" # whole shell session
or
PATH="$HOME/.local/bin:$PATH" make <target> # command only
Virtualenv for development
To build a virtualenv for development purposes run the following command:
make build-venv
The resulting virtualenv will be symlinked to .venv, which for example can
be selected as virtualenv in VSCode (Shift+Ctrl+P and then
Python: Select Interpreter).