forked from ungleich-public/cdist
		
	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…
	
	Add table
		Add a link
		
	
		Reference in a new issue