I have been thinking about espresso recently and this are my conclusion:
There is a balance in configuration management between scripts and descriptions that need to be solved.
Descriptions are good to solve part of the problem but once the description turn into an spaghetti a script can help a lot.
Readability counts. This is part of the balance if a description is hard to read maybe it means that is moment to flush something in a script.
Given this I have added a
Stage class to espresso, in this way we can unify all the basic components in stages. Inside stages there is no real descriptions. but each stage can be thougth as a descriptive unit.
A command is also added to run (enforce) the stages:
espresso -S stages --run=prepare
I still want to look deeper in the description-script relation since the stages can tend to be too much code, in this way I will try to use the current helper module to derive a more extensible plugins module with descriptive capabilities like signaling and relations between them.
Current version of espresso can be found at: http://github.com/jorgeecardona/espresso