dependency tree v3
Signed-off-by: Nico Schottelius <nico@freiheit.schottelius.org>
This commit is contained in:
parent
0297545270
commit
bc29bb2b3c
1 changed files with 26 additions and 0 deletions
26
docs/dev/logs/dependency-tree-with-fruits
Normal file
26
docs/dev/logs/dependency-tree-with-fruits
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
1. Manifests need type explorers to be run before
|
||||||
|
Only this way the manifest can use the values
|
||||||
|
|
||||||
|
2. Type explorers can depend on the (successful) execution of other objects
|
||||||
|
A type explorer may lookup values (ownership, size, processes, etc.)
|
||||||
|
that are depending on the code of other objects.
|
||||||
|
|
||||||
|
3. The 'require="a" b' dependency specifies only that execution of b needs to wait until a is finished
|
||||||
|
Other requirements given at another position may not be
|
||||||
|
executed before b, as cdist interprets require="a" as
|
||||||
|
"a is everything that is needed to realise b"
|
||||||
|
|
||||||
|
4. The 'require' state is thus *not* suitable to trigger reloads
|
||||||
|
A type b, which uses the require="" statement to wait for all
|
||||||
|
require="" dependencies, may be executed in an incomplete
|
||||||
|
status.
|
||||||
|
|
||||||
|
5. Depending on multiple dependencies defined at different locations requires all objects to be present
|
||||||
|
Because otherwise the dependent object cannot be sure that the
|
||||||
|
list of objects it waits for is complete.
|
||||||
|
|
||||||
|
6. If a statement requires all objects to be present, all manifests must have run already.
|
||||||
|
If all manifests have run already, also all type explorers have run already (#1).
|
||||||
|
If all type explorers have run already, some objects may have been finished completly already (#2).
|
||||||
|
|
||||||
|
7. Because of #4 and #6, we need to introduce another dependency that allows to trigger reload
|
Loading…
Reference in a new issue