@@ -21,6 +21,12 @@ You can also request a YAML report using the option `-o OUTPUT.yaml`
2121
2222### IaaS checks
2323
24+ Install IaaS-specific requirements:
25+
26+ ``` shell
27+ pip install -r iaas/requirements.txt
28+ ```
29+
2430With a cloud environment configured in your ` ~/.config/openstack/clouds.yaml `
2531and ` secure.yaml ` , then run
2632
@@ -33,6 +39,12 @@ specified in `clouds.yaml`.
3339
3440### KaaS checks
3541
42+ Install KaaS-specific requirements:
43+
44+ ``` shell
45+ pip install -r kaas/requirements.txt
46+ ```
47+
3648Given a kubeconfig file ` path/to/kubeconfig.yaml ` , run
3749
3850``` shell
@@ -133,13 +145,13 @@ We run the tests on a regular basis in our GitHub workflows.
133145
134146### Maintaining the Python dependencies
135147
136- We list our main Python dependencies in ` requirements.in ` . Additionally, we list
137- [ unit tests ] ( #unit-and-regression-tests ) dependencies in ` test-requirements.in ` .
138- The ` *.in ` files are fed to ` pip-compile ` to produce corresponding ` *.txt ` files
139- that contain an exact, version-pinned listing of * all * dependencies, including
140- transitive ones .
148+ We use ** pip-compile ** to pin and upgrade our dependencies in a controlled manner.
149+
150+ With ` pip-compile ` , you list your dependencies with as few version constraints as
151+ possible in a dedicated file, and then you have pip-compile generate the conventional
152+ ` requirements.txt ` with fully pinned dependencies .
141153
142- ` pip-compile ` can be installed via ` pip install pip-tools ` .
154+ The tool ` pip-compile ` can be installed via ` pip install pip-tools ` .
143155It needs to be run in two cases:
144156
1451571 . You modified an ` *.in ` file: run ` pip-compile <INFILE> ` . For example:
@@ -155,6 +167,15 @@ It needs to be run in two cases:
155167 pip-compile --upgrade requirements.in
156168 ```
157169
170+ We use a ** layered approach** to allow for selective installation:
171+
172+ - the most basic layer is ` requirements.in ` ,
173+ - above that we have ` iaas/requirements.in ` and ` kaas/requirements.in ` , and
174+ - at the very top we have ` test-requirements.in ` .
175+
176+ Whenever you change or recompile one of these layers,
177+ * all layers above that layer have to be recompiled as well* .
178+
158179Note: The Python version used for running ` pip-compile ` should be consistent. The currently
159180used version is documented in the header of the ` requirements.txt ` . It should match the
160181version used in the Docker image (see [ Dockerfile] ( Dockerfile ) ) and in our GitHub
0 commit comments