The environment lifecycle was designed to be minimal and intuitive. Actions occur as they are necessary.
You can restrict a feature to only occur during specific phases with a comma-delimited list of the phases it should run:
[sub]
recipe = sprinter.formulas.git
phases = update
When an environment is installed for the first time, the ‘install’ directive is called on every feature.
When an environment is upgraded:
When an environment is removed, every feature has the ‘remove’ directive called on them.
When an environment is deactivated, every feature has the ‘deactivate’ directive called on them.
When an environment is activated, every feature has the ‘activate’ directive called on them.