update changes in log file for dependencies based on discussion
This commit is contained in:
parent
474d4f7cb0
commit
77e92ceba9
1 changed files with 75 additions and 15 deletions
|
@ -8,28 +8,88 @@ __git bar
|
|||
__package git --state present
|
||||
|
||||
|
||||
require="__git/foo" git bar:
|
||||
require="__git/foo" __git bar:
|
||||
|
||||
__git bar
|
||||
__git foo
|
||||
__package git --state present
|
||||
__package git --state present
|
||||
__git foo
|
||||
__package git --state present
|
||||
__git foo <---|
|
||||
__package git --state present ---|
|
||||
|
||||
-> detects circular dependency
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
require="__apt_repository/somewhere-where-you-can-find-package-git __git/foo" __git bar
|
||||
|
||||
__git bar
|
||||
__apt_repository somewhere-where-you-can-find-package-git
|
||||
|
||||
__git foo
|
||||
__package git --state present
|
||||
__package_apt git depends nachher auf __apt_repository
|
||||
__package git --state present
|
||||
__git foo <---|
|
||||
__package git --state present ---|
|
||||
__apt_repository somewhere-where-you-can-find-package-git
|
||||
|
||||
possible solutions:
|
||||
- __package git does not depend on __git foo (clear dependency)
|
||||
- because it DOES NOT depend on it!
|
||||
- but we don't know whether this is always true :-/
|
||||
- multiple instances of __package git exist, with
|
||||
- different required BY
|
||||
- different requirements
|
||||
- define non inheritent dependencies (?)
|
||||
- because __git bar really depends only on __git foo
|
||||
- proposal: introduce require_non_recursive and require_recursive (previously: require)
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
__package foo
|
||||
__package_apt foo
|
||||
|
||||
__package bar
|
||||
__package_apt bar
|
||||
|
||||
require="__package/foo" __package bar
|
||||
|
||||
__package bar
|
||||
__package foo
|
||||
__package_apt foo
|
||||
__package_apt bar
|
||||
__package foo
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
__package abc
|
||||
__package_apt abc
|
||||
__type1 var1
|
||||
__type2 FIX
|
||||
|
||||
__sometype def
|
||||
__package abc
|
||||
__package_apt abc
|
||||
__type1 var2
|
||||
__type2 FIX
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
facts:
|
||||
- use is different from require="", as use makes USED depend on parent deps
|
||||
- use = called/defined in the manifest of a type
|
||||
- it is currently not recorded, where an object gained its requirements and autorequirements
|
||||
--------------------------------------------------------------------------------
|
||||
requirements:
|
||||
- a type should be a black box:
|
||||
I can require an object and it is ensured,
|
||||
everything it needs is executed before me.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
possible implementations
|
||||
- requiring it should include everything it USES
|
||||
--------------------------------------------------------------------------------
|
||||
solutions:
|
||||
__type1 DEPENDS but does not use __type2 FIX
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Change proposal:
|
||||
|
@ -59,14 +119,14 @@ Order:
|
|||
|
||||
For __package:
|
||||
|
||||
__sometype def
|
||||
__package abc
|
||||
__sometype bar
|
||||
__package foo
|
||||
|
||||
__package abc
|
||||
__package_apt abc
|
||||
__package foo
|
||||
__package_apt foo
|
||||
|
||||
1) __package_apt/abc (leaf node)
|
||||
1) __package_apt/foo (leaf node)
|
||||
|
||||
2) __package/abc (new leaf node)
|
||||
2) __package/foo (new leaf node)
|
||||
|
||||
3) __sometype/def (new leaf node)
|
||||
3) __sometype/bar (new leaf node)
|
||||
|
|
Loading…
Reference in a new issue