@@ -4,7 +4,7 @@ To run all tests and all supported static analysis tools, Python 3.11 is needed,
44which matches the current Python version of XenServer 9.
55
66Python 3.10 might work as well (when replacing the references in the config files with 3.10).
7- Python 3.12 and 3.13 can be used too, but not for running [ pytype] ( https://github.com/google/pytype )
7+ Python 3.12 and 3.13 can be used too, but not for running [ ` pytype ` ] ( https://github.com/google/pytype )
88([ it does not support 3.12 yet] ( https://google.github.io/pytype/support.html ) ).
99
1010On Ubuntu, you can install 3.11 (and also 3.12 and 3.13) from the widely-used Python support PPA:
@@ -14,19 +14,19 @@ sudo add-apt-repository ppa:deadsnakes/ppa && sudo apt update
1414sudo apt install -y python3.11 python3.12 python3.13
1515```
1616
17- If 3.12 or 3.13 are found by [ tox] ( https://tox.wiki ) , it will run the unit tests with them as well.
17+ If 3.12 or 3.13 are found by [ ` tox ` ] ( https://tox.wiki ) , it will run the unit tests with them as well.
1818
19- You can also use [ uv to install Python versions] ( https://docs.astral.sh/uv/concepts/python-versions ) ,
20- see below on a link and an example how to install uv .
19+ You can also use [ ` uv ` to install Python versions] ( https://docs.astral.sh/uv/concepts/python-versions ) ,
20+ see below on a link and an example how to install ` uv ` .
2121
22- ## Do not use distro-privided Python CI tools
22+ ## Do not use distro-provided Python CI tools
2323
24- Python tools (other than the Python interpreters themself ) provided by Linux distributions
24+ Python tools (other than the Python interpreters themselves ) provided by Linux distributions
2525are "always" out of date and do not work as required. If possible, uninstall/remove those,
2626even if your environment is based on Ubuntu 24.04. In addition, most problematically, the
27- distribution-provided Python tools are running using the default Pyton version of the
27+ distribution-provided Python tools are running using the default Python version of the
2828host system, which may not be compatible and can cause subtle errors. (e.g. Python 3.12
29- or newer triggers unclear dependency errors in pytype because it is not supported yet)
29+ or newer triggers unclear dependency errors in ` pytype ` because it is not supported yet)
3030
3131## Create a virtual environment with the test dependencies
3232
@@ -55,21 +55,21 @@ pip-compile --extra=test,mypy,pyright,pytype,tox -o - pyproject.toml | pip insta
5555
5656These commands assume you installed the tools using the commands above in a Python 3.11 environment.
5757
58- ### Run pyright, watching for changes and automatically checking the change
58+ ### Run ` pyright ` , watching for changes and automatically checking the change
5959
6060``` sh
6161pyright -w
6262```
6363
64- ### Run pytest with coverage (fine-grained, e.g. during test development)
64+ ### Run ` pytest ` with coverage (fine-grained, e.g. during test development)
6565
6666``` sh
6767pytest --cov -v --new-first -x --show-capture=all -rA [optional: files / select which tests to run]
6868` ` `
6969
7070# ## Watching and running tests on changes automatically using `pytest-watch` (`ptw`)
7171
72- Install ptw in the Python environment using:
72+ Install ` ptw` in the Python environment using:
7373
7474` ` ` sh
7575pip install pytest-watch
@@ -82,25 +82,25 @@ Run `ptw`, and pass the files to watch, e.g.:
8282ptw tests/test_*
8383` ` `
8484
85- # ## Run mypy (fine-grained, e.g. during development)
85+ # ## Run ` mypy` (fine-grained, e.g. during development)
8686
8787` ` ` sh
8888mypy [optionally pass the flags or files to select which tests to run]
8989` ` `
9090
91- # ## Run pylint (fine-grained, e.g. during development)
91+ # ## Run ` pylint` (fine-grained, e.g. during development)
9292
9393` ` ` sh
9494pylint xcp tests [optionally pass the flags or files to select which tests to run]
9595` ` `
9696
97- # ## Run all of the above on one go in defined virtual environments
97+ # ## Run all the above on one go in defined virtual environments
9898
9999` ` ` sh
100100tox -e py311-cov-check-lint-mdreport
101101` ` `
102102
103- This also checks code coverage and ends with a test report from the pytest run.
103+ This also checks code coverage and ends with a test report from the ` pytest` run.
104104If you just run ` tox` without arguments, in addition, the unit tests are run with
105105all installed Python versions (out of the list of 3.11, 3.12 and 3.13)
106106
@@ -112,7 +112,7 @@ To run all tests, including trailing whitespace checks, run
112112pre-commit run -av
113113` ` `
114114
115- # # Alternative: installing pytest packages using `pipx`
115+ # # Alternative: Install ` pytest` packages using `pipx`
116116
117117` pipx` installs tools in ` ~/.local/share/pipx/venvs` which can be an alternate
118118way to install up-to-date python tools
@@ -128,7 +128,7 @@ pipx inject pylint pyfakefs six mock pytest{,_forked,-localftpserver}
128128
129129For consistently well-spaced documentation, all Markdown files are checked
130130in CI using Markdownlint, which ensures that e.g. code blocks are separated
131- by space from the preceeding and following paragraphs and so on. This helps
131+ by space from the preceding and following paragraphs and so on. This helps
132132to keep the Markdown source as well-readable as the rendered Markdown.
133133
134134To check and fix Markdown files quickly, use:
@@ -137,7 +137,7 @@ To check and fix Markdown files quickly, use:
137137pre-commit run -av markdownlint
138138` ` `
139139
140- # ## Removing trailing whitepace and fixing files to have only one trailing newline
140+ # ## Removing trailing whitespace and fixing files to have only one trailing newline
141141
142142These fixers detect and fix trailing whitespace and trailing newlines in files
143143to keep commits clean of adding trailing whitespace and are used in GitHub CI:
0 commit comments