Skip to content

Add one-time move to the versioning override API!#808

Open
Shivs11 wants to merge 4 commits into
mainfrom
ss/one-time-versioning-override-api
Open

Add one-time move to the versioning override API!#808
Shivs11 wants to merge 4 commits into
mainfrom
ss/one-time-versioning-override-api

Conversation

@Shivs11

@Shivs11 Shivs11 commented Jun 17, 2026

Copy link
Copy Markdown
Member

What changed?

  • WISOTT

Why?

  • So that operators can have a versioning override that is not sticky. The idea is that the next task of the workflow execution moves to the target version, after which the behaviour/version of the workflow are dictated by the worker response.

Breaking changes

  • No, since this is a new option that I am adding whose default value is false (it's opt-in)

Server PR

  • in progress

@Shivs11 Shivs11 requested review from a team June 17, 2026 22:31
// Indicates whether to override the workflow to be AutoUpgrade or Pinned.
oneof override {
// Override the workflow to have Pinned behavior.
PinnedOverride pinned = 3;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so this would continue to be sticky pin behavior? I think we need to update the doc so it is more clear. It would ignore even when SDK do CAN and wants change to AU to current version?

@Shivs11 Shivs11 Jun 17, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would ignore even when SDK do CAN and wants change to AU to current version

yes, the PinnedOverride is meant to be sticky. As long as it exists on a workflow execution, it shall be pinned to a specific workflow execution

// until one Workflow Task completes there. After completion, the workflow
// execution's Versioning Behavior and Deployment Version come from the
// worker's completion response.
OneTimeOverride one_time = 5;

@rkannan82 rkannan82 Jun 18, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have given this naming some more thought. What do you think about?

  • MoveAndKeepDefaultBehavior: this clearly tells the behavior. move to version X, then respect whatever is the default versioning configuration defined in code. It tells this is not sticky unlike PinnedOverride where it moves to version X and stays put.

  • Also add the following to the comment:
    When you moves the wf from version x to y, and a new version z arrives.

    • if a workflow is pinned, it will stay on the y
    • if wf is auto upgrade -- it will move to z
    • if wf uses upgrade on can -- it will move to z when can happens
  • Personally, I would avoid using temporary.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants