Hi, I’m curious about the seemingly inconsistent behavior of how deployment processes utilize new versions of various shared resources in Octopus.
For script modules and library variables, it appears that when I change those, any deployment process that uses those items is updated immediately to use the latest value(s). This is pretty expected behavior and makes sense; snapshots for releases are unaffected of course.
However, for step templates, deployment processes that use a given template must be manually updated to use the latest version. I haven’t been able to reason why this behavior should be different than the automatic behavior as specified for modules/variables.
Does this also feel odd to you? Why was this behavior chosen for step templates?
Thanks for getting in touch! The major reason for step templates behaving differently is due to the fact that it is slightly more complex, being that it not only includes the step template itself, but also variables that need to be defined in the projects. If you were to say update a step template, and add or remove or change a variable definition, and it was saved before the variables were correctly updated in the project that project would break. So it is like a check, to say ‘Yes I have updated the project variables, and this should not break, lets update the Step Template for this project’.
A major example would be email step templates. I know of customers who use one email step template in all of their projects. If they made a change to it, and it was saved and they renamed the ‘to’ field without updating the variable, all of their projects would break on release. This way they go and make the variable change, and then acknowledge this project is ready for the change.