-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Implement optional versioning override version for pinned workflows #8885
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Shivs11
approved these changes
Jan 6, 2026
carlydf
added a commit
to temporalio/api
that referenced
this pull request
Jan 6, 2026
…lows (#687) _**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 --> Make version optional for versioning override of already-pinned workflows <!-- Tell your future self why have you made these changes --> So that people don't have to specify a version if they just mean "pin to what you're already pinned to." Someone could use this if they want to set pinned overrides on a batch of workflows that are pinned to different versions, and the user wants to prevent these workflows from upgrading-on-CaN (since Pinned override is inherited on CaN, they would not upgrade-on-CaN) <!-- Are there any breaking changes on binary or code level? --> **Breaking changes** <!-- If this breaks the Server, please provide the Server PR to merge right after this PR was merged. --> **Server PR** temporalio/temporal#8885
temporal-cicd bot
pushed a commit
to temporalio/api-go
that referenced
this pull request
Jan 6, 2026
…lows (#687) _**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 --> Make version optional for versioning override of already-pinned workflows <!-- Tell your future self why have you made these changes --> So that people don't have to specify a version if they just mean "pin to what you're already pinned to." Someone could use this if they want to set pinned overrides on a batch of workflows that are pinned to different versions, and the user wants to prevent these workflows from upgrading-on-CaN (since Pinned override is inherited on CaN, they would not upgrade-on-CaN) <!-- Are there any breaking changes on binary or code level? --> **Breaking changes** <!-- If this breaks the Server, please provide the Server PR to merge right after this PR was merged. --> **Server PR** temporalio/temporal#8885
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What changed?
Implement optional versioning override version for pinned workflows.
Only for UpdateOptions, not for start-with-override or reset-with-override.
Why?
So that a user can set a Pinned Override on a batch of workflows with different versions (or on a single workflow, but without having to look up and provide the specific version) and simply mean "pin to what you are already on, forever."
Setting a Pinned Override on an already-pinned workflow and not changing the version seems silly, but, with the introduction of the upgrade-on-continue-as-new option, setting a Pinned Override means that, even if the workflow says "upgrade-on-CaN", the workflow will remain on the override version after CaN.
How did you test it?
Potential risks
Note
Implements implied pinned overrides for workflow option updates and covers them with tests.
service/history/api/updateworkflowoptions/api.goto clone request options and, when a pinned override omitsversion, auto-fill from the workflow’s effective deployment; returnFailedPreconditionif behavior isn’t already pinned. Continue to validate viaValidateVersioningOverride, then merge/apply.TestUpdateWorkflowExecutionOptions_SetImpliedPinnedSuccessand..._Error; refactor helpers (startVersionedWorkflow,startUnpinnedWorkflow,setAndCheckOverrideWithExpectedOutput), improve assertions, and setuseV32in suites.testvars.WithWorkflowID.go.temporal.io/apitov1.59.1-0.20260106204414-b9a666f3d64e.Written by Cursor Bugbot for commit 98726fb. This will update automatically on new commits. Configure here.