Add one-time move versioning override CLI support#1093
Conversation
| @@ -17,13 +17,13 @@ require ( | |||
| github.com/stretchr/testify v1.11.1 | |||
| github.com/temporalio/cli/cliext v0.0.0 | |||
| github.com/temporalio/ui-server/v2 v2.49.1 | |||
| go.temporal.io/api v1.62.13 | |||
| go.temporal.io/api v1.62.15-0.20260618002053-7c062185c563 | |||
| go.temporal.io/sdk v1.44.1 | |||
| go.temporal.io/sdk/contrib/envconfig v1.0.2 | |||
| go.temporal.io/server v1.32.0-157.0 | |||
| go.temporal.io/server v1.29.0-135.0.0.20260617003708-75fcd219ad4a | |||
There was a problem hiding this comment.
apart from the API change, the other two are temporary and shall go away the second the API changes land on main!
| overrideChange = &client.VersioningOverrideChange{ | ||
| Value: &client.AutoUpgradeVersioningOverride{}, | ||
| } | ||
| case "one_time": |
There was a problem hiding this comment.
the reason why there is no object construction happening over here is because we don't have the SDK changes that can represent this change (which is why there is that special handling for one_time that happens right after this block)
| Version: &deploymentpb.WorkerDeploymentVersion{ | ||
| DeploymentName: c.VersioningOverrideDeploymentName, | ||
| BuildId: c.VersioningOverrideBuildId, | ||
| versioningOverride = &workflowpb.VersioningOverride{ |
There was a problem hiding this comment.
these changes are mostly readability imo
|
Please filk out hte "Manual tests" section. it helps the reviewer. (Me) expirement with the changes. mostly looking to UX issues. |
| }), | ||
| ) | ||
|
|
||
| res := s.Execute( |
There was a problem hiding this comment.
please add some checks for -o json as well.
| go.temporal.io/sdk v1.44.1 | ||
| go.temporal.io/sdk/contrib/envconfig v1.0.2 | ||
| go.temporal.io/server v1.29.0-135.0.0.20260625184343-267e150ec47a | ||
| go.temporal.io/server v1.32.0-158.0 |
There was a problem hiding this comment.
this is the latest server version which has my server changes, which have gone in
Related issues
What changed?
Checklist
Stability
-o json/-o jsonl) are treated as breaking changesDesign
temporal <noun> <verb>structure (e.g.temporal workflow start)--search-attribute, bad:--index-field)(Experimental)incommands.yamlHelp text (see style guide at the top of
commands.yaml)--namespace, not-n), one flag per lineYourXxxform (YourWorkflowId,YourNamespace)Behavior
Tests
SharedServerSuite)func TestXxx) where applicableManual tests
Setup
Requires a server that includes temporalio/temporal#10763 and a workflow whose Task Queue is present in the target Worker Deployment Version.
temporal server start-dev --headless temporal workflow start \ --type YourWorkflowType \ --task-queue YourTaskQueue \ --workflow-id YourWorkflowIdUse an existing Worker Deployment Version for the target:
Happy path
temporal workflow update-options \ --workflow-id YourWorkflowId \ --versioning-override-behavior one_time \ --versioning-override-deployment-name YourDeploymentName \ --versioning-override-build-id YourBuildIdExpected output:
Verify table output:
temporal workflow describe \ --workflow-id YourWorkflowIdExpected:
OverrideBehaviorisOneTime, withOverrideTargetVersionDeploymentNameandOverrideTargetVersionBuildIdset.Verify JSON output:
temporal workflow describe \ --workflow-id YourWorkflowId \ --output jsonExpected:
versioningInfo.versioningOverride.oneTime.targetDeploymentVersioncontains the deployment name and build ID.Error case
temporal workflow update-options \ --workflow-id YourWorkflowId \ --versioning-override-behavior one_timeExpected:
Expected:
Composition
temporal workflow update-options \ --query 'WorkflowId = "YourWorkflowId"' \ --yes \ --versioning-override-behavior one_time \ --versioning-override-deployment-name YourDeploymentName \ --versioning-override-build-id YourBuildIdExpected: a batch update-options job is started. Use
temporal batch describeto inspect the batch, thentemporal workflow describeon an affected Workflow Execution to verify the one-time override.