forked from ungleich-public/cdist
		
	
		
			
				
	
	
		
			72 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
2.1.0 behaviour:
 | 
						|
 | 
						|
 | 
						|
__git foo
 | 
						|
    __package git --state present
 | 
						|
 | 
						|
__git bar
 | 
						|
    __package git --state present
 | 
						|
 | 
						|
 | 
						|
require="__git/foo" git bar:
 | 
						|
 | 
						|
    __git bar
 | 
						|
        __git foo
 | 
						|
            __package git --state present
 | 
						|
        __package git --state present
 | 
						|
            __git foo
 | 
						|
                __package git --state present
 | 
						|
 | 
						|
    -> detects circular dependency
 | 
						|
 | 
						|
 | 
						|
--------------------------------------------------------------------------------
 | 
						|
 | 
						|
__package abc
 | 
						|
    __package_apt abc
 | 
						|
 | 
						|
__sometype def
 | 
						|
    __package abc
 | 
						|
        __package_apt abc
 | 
						|
 | 
						|
 | 
						|
--------------------------------------------------------------------------------
 | 
						|
 | 
						|
Change proposal:
 | 
						|
 | 
						|
Each object only depends on the objects it directly requires, tree build to
 | 
						|
ensure correct running behaviour:
 | 
						|
 | 
						|
 | 
						|
__git bar
 | 
						|
    __git foo
 | 
						|
    __package git --state present
 | 
						|
 | 
						|
__git foo
 | 
						|
    __package git --state present
 | 
						|
 | 
						|
Order:
 | 
						|
 | 
						|
1)
 | 
						|
    __package/git (leaf node!)
 | 
						|
 | 
						|
2)
 | 
						|
    __git/foo (new leaf node!)
 | 
						|
 | 
						|
3)
 | 
						|
    __git/bar (new leaf node!)
 | 
						|
 | 
						|
 | 
						|
For __package:
 | 
						|
 | 
						|
__sometype def
 | 
						|
    __package abc
 | 
						|
 | 
						|
__package abc
 | 
						|
    __package_apt abc
 | 
						|
 | 
						|
1) __package_apt/abc (leaf node)
 | 
						|
 | 
						|
2) __package/abc (new leaf node)
 | 
						|
 | 
						|
3) __sometype/def (new leaf node)
 |