diff --git a/doc/dev/logs/2011-04-19 b/doc/dev/logs/2011-04-19 new file mode 100644 index 00000000..65b9550b --- /dev/null +++ b/doc/dev/logs/2011-04-19 @@ -0,0 +1,67 @@ +Meeting with: Steven, Thorsten, Nico + +Problem: execute my code only if somebody else's changed something. + +Proposals: + +1) Introduce new binary (Steven) + +gencode: + +if has_changed __file/etc/nginx.conf; then + echo mycode +fi + +2) Use -f plus new variable to cover .cdist/has_code: + +if [ -f $global/objects/__file/etc/nginx.conf/$has_code ]; then + echo mycode +fi + +And $has_code resolves to .cdist/has_code to cover the .cdist +directory. + +3) Create a new tree that contains changed objects + +if [ -e $global/changed/__file/etc/nginx.conf ]; then + echo mycode +fi + +4) Use a \n seperated list + +if grep -q __file/etc/nginx.conf $global/changed; then + echo mycode +fi + +X) General problem (add to FAQ): + + When having "do something only if somebody else did something" + it is possible that users get confused, because code will not + be executed. + + This may especially happen in code development: + + a) User creates __file/etc/nginx.conf + b) User creates a new type __nginx that restarts + nginx, only if __file/etc/nginx.conf changed. + But __file/etc/nginx.conf has already been deployed + and thus will never be restarted. +-------------------------------------------------------------------------------- + +Introduce exclude/conflicts attribute for types? + + Handling in cdist vs. handling in the types themselves? + + Examples: __file, __link, __directory + + Need to handle errors on low level for those anyway. + + Conclusion: Wait until we need exclude in a different type. + + Pro: + Throw error as soon as possible without touching the target. + + Contra: + No needod for most cases. + Very controversal for stuff like __package and __package_gem + for instance: rails; Should those two conflict or not?