Preamble:
When viewing a historical build's Step Status (https://{QuckBuildServer}/build/{BuildID}/step_status), one can click on the name of a step to see the implementation of that step.
This will always display the most current implementation of that step, even if the step implementation was different at the time that the build ran.
Request:
Would it be possible to let the user know if the current step implementation is different than it was at the time of the build being looked at in Step Status?
Possible approaches:
I can think of three different ways to handle this:
-
Use the timestamp of the build, and the configuration history as seen in the Audit Log (eg., https://{QuickBuildServer}/audit/{ConfigurationID}) to determine what the step's implementation was at the time of the build.
Pitfall: the audit log does not appear to go back forever, so beyond a certain amount of time in the past, it would no longer be possible to reconstruct the step implementation. -
At the time of the build, calculate a "hash" of the step's implementation, and save this hash with the build. When inspecting the step during Step Status of that build later, compare the current hash versus the saved hash and if they are different, tell the user that the step has changed.
Drawback: This would not tell the user exactly what the change was. However, simply knowing if the implementation has changed can be useful for debugging. -
At the time of the build, save the full implementation of the step with that build.
Drawback: this may cause builds to use up considerably more storage than they currently do, so I do not consider this option very viable.
edit: fixed formatting