-
Notifications
You must be signed in to change notification settings - Fork 69
Reset subcommand to update version #812
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need a separate PR to backport main into next-server? It is a bit hard to follow this PR on what changes are yours and what changes are in main.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah. Looks like next-server is a lot of commits behind main?
I don't fully understand the purpose of next-server branch. I just set it as the base to get the failing tests pass. I've changed the base back to main so that the PR shows just my commits.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't fully understand the purpose of next-server branch
It's for server features without a stable server tag
Sushisource
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This all looks good to me, though I'm not sure what's the problem with the test.
Regardless, I'll need to update this slightly after my refactor & next-server are merged. So potentially we can just let this sit until after that since everything needs to be together in the next release anyway.
go.mod
Outdated
| go.temporal.io/api v1.49.2-0.20250605210325-e57aa581185c | ||
| go.temporal.io/sdk v1.34.0 | ||
| go.temporal.io/sdk/contrib/envconfig v0.1.0 | ||
| go.temporal.io/server v1.27.1 | ||
| go.temporal.io/server v1.29.0-135.2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will have to wait for stable API and OSS server tags since this now targets main
| # Commands with subcommands can't be run on their own unless | ||
| # subcommands-optional is set to true. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When designing commands, we had intentionally decided that a command either houses children or is a standalone command. We intentionally avoided hybrids in all of our designs so that it's clear when you execute a parent command you don't have a side effect. It's also clearer from a docs/usability standpoint to know that commands cannot serve two purposes.
I'm not completely against the change in our long-held stance, but it is a change and worth confirming the CLI is ok deviating from its existing stance.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We agreed on this decision quite some ways back when this went through design review: https://www.notion.so/temporalio/Multi-commands-with-reset-PRD-1d38fc5677388025a756ca7241453e32
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, I wasn't aware the matter was settled, ok
| Don't prompt to confirm. | ||
| Only allowed when `--query` is present. | ||
| - name: temporal workflow reset with-workflow-update-options |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think if this is a separate command, it's reset-and-update-workflow-options but is it really a separate command or is it just a "post reset operation" on top of reset?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not a separate command. It's a "subcommand" of workflow reset in cli. In server rpc it's just a post reset operation param to reset request.
cretz
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, but will have to wait until there is a stable tag for API and server before merging in to main
Got it. Will wait for new server release, then rebase on main and check everything before merging. |
|
@cretz @Sushisource Please take a final look? I'll merge it on Monday evening. |
temporalcli/commandsgen/commands.yml
Outdated
| - name: versioning-override-pinned-version | ||
| type: string | ||
| description: Override Pinned Version for a Worker Deployment (Only for pinned). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will need to change to match my PR #811 after it goes in, so you can do that now if you want or I can do it before we cut the release, either way is fine.
|
Looking good to me. Thanks! |
|
Now that my PR was merged, I think we'll want to update this to use the explicit deployment name / build ID args rather than the string before merging. |
I don't see your changes. Did you merge it into main? This PR is against main. |
Yes. All my changes to versioning-related commands are in main. For example: cli/temporalcli/commandsgen/commands.yml Line 860 in 106fc34
|
Sushisource
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome, thanks for updating.
What was changed
Added reset subcommands so that we can do reset + update version info atomically in one operation. The server changes were made in temporalio/temporal#7719. This is the CLI counterpart.
To allow subcommands we added a new flag
subcommands-optional. When this flag is present a parent command can be run in isolation without any subcommands (i.e subcommands will be optional)Why?
So that we can reset + update_version at the same time.
Checklist
Closes: N/A
How was this tested:
Added tests + manually tested
Any docs updates needed?
N/A