Skip to content

Commit

Permalink
add unset_versioning_override to WorkflowExecutionOptionsUpdatedEvent…
Browse files Browse the repository at this point in the history
…Attributes (#516)

_**READ BEFORE MERGING:** All PRs require approval by both Server AND
SDK teams before merging! This is why the number of required approvals
is "2" and not "1"--two reviewers from the same team is NOT sufficient.
If your PR is not approved by someone in BOTH teams, it may be summarily
reverted._

<!-- Describe what has changed in this PR -->
### What:

Add unset_versioning_override to
WorkflowExecutionOptionsUpdatedEventAttributes

<!-- Tell your future self why have you made these changes -->
### Why:

So that users of this event don't need to load VersioningOverride from
mutable state every time they create this event.
This change was prompted because the event is now being used for
non-version-override-related things, and I received feedback that it is
inefficient / awkward / error-prone to have to load and pass in the
current versioning override every time anyone writes to this event.

Now, a nil Versioning Override in this event means "no change" instead
of "remove".
This reduces the chance that someone accidentally unsets an override in
the future, and also is more efficient.
We've discussed this change internally in the server team and are ok
with changing the meaning of this history event, because it is such a
small change and the scope of impact is small (pre-release versioning
users who have unset a versioning override and are building mutable
state from that history).


<!-- Are there any breaking changes on binary or code level? -->
### Breaking changes?

Now, a nil Versioning Override in this event means "no change" instead
of "remove".
If an event exists with the previous meaning and the mutable state is
rebuilt, the Versioning Override would not be removed.
But the chance of that happening is very low.

<!-- If this breaks the Server, please provide the Server PR to merge
right after this PR was merged. -->
temporalio/temporal#7091
  • Loading branch information
carlydf authored Jan 18, 2025
1 parent 2b167f8 commit 71e068d
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 3 deletions.
6 changes: 5 additions & 1 deletion openapi/openapiv2.json
Original file line number Diff line number Diff line change
Expand Up @@ -13077,7 +13077,11 @@
"properties": {
"versioningOverride": {
"$ref": "#/definitions/v1VersioningOverride",
"description": "Versioning override in the mutable state after event has been applied."
"description": "Versioning override upserted in this event.\nIgnored if nil or if unset_versioning_override is true."
},
"unsetVersioningOverride": {
"type": "boolean",
"description": "Versioning override removed in this event."
}
}
},
Expand Down
7 changes: 6 additions & 1 deletion openapi/openapiv3.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10572,7 +10572,12 @@ components:
versioningOverride:
allOf:
- $ref: '#/components/schemas/VersioningOverride'
description: Versioning override in the mutable state after event has been applied.
description: |-
Versioning override upserted in this event.
Ignored if nil or if unset_versioning_override is true.
unsetVersioningOverride:
type: boolean
description: Versioning override removed in this event.
WorkflowExecutionSignaledEventAttributes:
type: object
properties:
Expand Down
5 changes: 4 additions & 1 deletion temporal/api/history/v1/message.proto
Original file line number Diff line number Diff line change
Expand Up @@ -741,8 +741,11 @@ message ChildWorkflowExecutionTerminatedEventAttributes {
}

message WorkflowExecutionOptionsUpdatedEventAttributes {
// Versioning override in the mutable state after event has been applied.
// Versioning override upserted in this event.
// Ignored if nil or if unset_versioning_override is true.
temporal.api.workflow.v1.VersioningOverride versioning_override = 1;
// Versioning override removed in this event.
bool unset_versioning_override = 2;
}

// Not used anywhere. Use case is replaced by WorkflowExecutionOptionsUpdatedEventAttributes
Expand Down

0 comments on commit 71e068d

Please sign in to comment.