Making backwards-compatible Changes to a Template¶
The following list suggests how to implement certain template changes in a backwards-compatible way.
Adding a new Variable¶
fengine supports defaults, which are used when no value is specified for the template rendering.
Specifying the default effectively makes the variable optional.
variables:
new_var:
type: string
description: New variable for the template
default: "Hello"
Removing a Variable¶
fengine ignores, but warns about additional variables being based for the template rendering. Therefore, removing a variable is supported out of the box and no active measure needs to be taken.
Changing the name of a Variable¶
This is has to be implemented as a combination of Removing a Variable and Adding a new Variable. fengine doesn’t yet support automatic migration of renamed variable as in: fengine knows the old name of a variable and uses its passed value for the newly named variable.
Changing the type of a Variable¶
fengine doesn’t yet care about the type too much. It’s neither enforced nor are the passed values casted to its respective Python type. Changing the type of a Variable can therefore be implemented without taking active measures.