I think we should expand this normative text to describe what happens between actions.
The text currently says:
If this field is not present, it may be assumed that no outputs were generated as a result of the operation.
What happens to this value between executions? If we address this bug in Porter: https://github.com/deislabs/porter/issues/836
What is the correct answer? I think this spec doesn't provide enough prescriptive info about what the claim should provide.
For my part, I am not sure why outputs would persist from one to the next. That seems to me to be a misuse of a claim, which tracks only the state of the last operation. (It is not intended to be a general-purpose data storage mechanism.) To track older outputs, wouldn't you just store older claims instead of overwriting the claim?
There has also been some movement toward tracking outputs separately from claims, which could prove a more elegant solution.
A question was raised as to what happens to outputs operation to operation: https://github.com/cnabio/cnab-spec/pull/309#discussion_r366716640
@jeremyrickard says:
For my part, I am not sure why outputs would persist from one to the next. That seems to me to be a misuse of a claim, which tracks only the state of the last operation. (It is not intended to be a general-purpose data storage mechanism.) To track older outputs, wouldn't you just store older claims instead of overwriting the claim?
There has also been some movement toward tracking outputs separately from claims, which could prove a more elegant solution.