Rename azd extension/tool UPGRADE commands to UPDATE - #9370
Open
hyoshis wants to merge 3 commits into
Open
Conversation
Rename the user-facing 'azd extension upgrade' and 'azd tool upgrade' commands to 'update', keeping 'upgrade' as a cobra alias for backward compatibility. Update all displayed help text, flag descriptions, prompts, progress and summary messages, error strings, docs, and regenerate usage/figspec snapshots. Go identifiers, telemetry field-key constants, and the --no-dependency-upgrades flag name are unchanged. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Adds two sets of UX guidance to the azd style guides: 1. Responsive list/table layouts for list commands, documented as part of the core azd design patterns in azd-style-guide.md. 2. Agentic (AI / GitHub Copilot) UX patterns, moved into a dedicated agentic-ux-style-guide.md so the core guide focuses solely on core azd design patterns (which extensions may follow for consistency, but are not enforced). Adds cross-references in the core guide's overview and in cli/azd/AGENTS.md so agents reference the correct file for the flow they're working on. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 656aee2e-29aa-4b53-965c-63543c1dd44a
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: be625a8a-0787-45ea-b3d9-a782d4c2651f
hyoshis
requested review from
JeffreyCA,
RickWinter,
hemarina,
richardpark-msft,
tg-msft and
vhvb1989
as code owners
July 30, 2026 18:36
🔗 Linked Issue RequiredThanks for the contribution! Please link a GitHub issue to this PR by adding |
|
Azure Pipelines: Successfully started running 1 pipeline(s). 21 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
Contributor
There was a problem hiding this comment.
Pull request overview
Renames extension/tool upgrade commands to update while retaining aliases, and refreshes related UX, documentation, tests, and snapshots.
Changes:
- Adds canonical
extension updateandtool updatecommands. - Updates user-facing terminology and generated snapshots.
- Adds broader CLI and agentic UX guidance.
Show a summary per file
| File | Description |
|---|---|
docs/guides/creating-an-extension.md |
Updates promotion guidance. |
cli/azd/docs/style-guidelines/azd-style-guide.md |
Adds responsive-layout guidance. |
cli/azd/docs/style-guidelines/agentic-ux-style-guide.md |
Adds agentic UX guidance. |
cli/azd/docs/extensions/extension-resolution-and-versioning.md |
Updates extension commands and terminology. |
cli/azd/docs/extensions/extension-framework.md |
Documents extension update and alias. |
cli/azd/cmd/tool.go |
Renames the tool command and output. |
cli/azd/cmd/tool_test.go |
Updates expected result messages. |
cli/azd/cmd/testdata/TestUsage-azd-tool.snap |
Updates tool command listing. |
cli/azd/cmd/testdata/TestUsage-azd-tool-update.snap |
Captures update-command help. |
cli/azd/cmd/testdata/TestUsage-azd-tool-check.snap |
Updates check help wording. |
cli/azd/cmd/testdata/TestUsage-azd-extension.snap |
Updates extension command listing. |
cli/azd/cmd/testdata/TestUsage-azd-extension-update.snap |
Captures update-command help. |
cli/azd/cmd/testdata/TestFigSpec.ts |
Updates completion specifications. |
cli/azd/cmd/extension.go |
Renames extension command and output. |
cli/azd/cmd/extension_upgrade_test.go |
Updates failure assertions. |
cli/azd/cmd/extension_test.go |
Updates summary assertions. |
cli/azd/CHANGELOG.md |
Records the command rename. |
cli/azd/AGENTS.md |
References expanded UX guidance. |
Review details
Comments suppressed due to low confidence (1)
cli/azd/cmd/tool.go:1537
- Changing this value to
updatechanges the serializedactionfield in--dry-run --output json; the normal update path makes the same change at line 1362. Existing automation invoking the backward-compatibleupgradealias can therefore break even though the command still resolves. Decouple the human-facing verb from the stable JSON value, or explicitly version and document this machine-output contract change.
action := "update"
- Files reviewed: 18/18 changed files
- Comments generated: 6
- Review effort level: Medium
| { | ||
| name: ['upgrade'], | ||
| description: 'Upgrade installed extensions to the latest version.', | ||
| name: ['update', 'upgrade'], |
Comment on lines
+117
to
+121
| // azd extension update <extension-id> | ||
| group.Add("update", &actions.ActionDescriptorOptions{ | ||
| Command: &cobra.Command{ | ||
| Use: "upgrade [extension-id]", | ||
| Short: "Upgrade installed extensions to the latest version.", | ||
| Long: `Upgrade one or more installed extensions. | ||
| Use: "update [extension-id]", | ||
| Aliases: []string{"upgrade"}, |
Comment on lines
+130
to
+134
| // azd tool update [tool-name...] | ||
| group.Add("update", &actions.ActionDescriptorOptions{ | ||
| Command: &cobra.Command{ | ||
| Use: "upgrade [tool-name...]", | ||
| Short: "Upgrade installed tools.", | ||
| Use: "update [tool-name...]", | ||
| Aliases: []string{"upgrade"}, |
| | Status text | Meaning | Color helper | | ||
| | ------------------- | ----------------------------- | ------------------- | | ||
| | `Installed` / `Up to date` | Present and current | `WithSuccessFormat` | | ||
| | `Upgrade available` | Installed but outdated | `WithWarningFormat` | |
Comment on lines
+685
to
+687
| Nightly versions use semver prerelease labels, so the standard `azd extension update` flow works: | ||
|
|
||
| - A newer nightly (higher build id, or a higher base version) supersedes an older one, so `azd extension upgrade` pulls the latest nightly. | ||
| - A newer nightly (higher build id, or a higher base version) supersedes an older one, so `azd extension update` pulls the latest nightly. |
Comment on lines
+1
to
+5
| # Azure Developer CLI (`azd`) Agentic UX Style Guide | ||
|
|
||
| ## Overview | ||
|
|
||
| This guide covers the **agentic (AI / GitHub Copilot) UX patterns** for the Azure Developer CLI. These are a **deliberately distinct visual system** from the core azd flows documented in [azd-style-guide.md](./azd-style-guide.md). |
3 tasks
vhvb1989
approved these changes
Jul 31, 2026
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
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.
Why
The
upgradeverb was inconsistent with the rest of azd's user-facing vocabulary,where "update" is the common term for moving to a newer version. This renames the
two user-facing
upgradecommands toupdateso the CLI reads consistently.What changed
azd extension upgrade->azd extension updateandazd tool upgrade->azd tool update. The oldupgradenames still work ascobra aliases, so existing scripts and muscle memory keep working.
messages, done/summary headers, suggestions, and error strings from
"Upgrade/Upgrading/Upgraded" to "Update/Updating/Updated".
extension-framework.md,extension-resolution-and-versioning.md,creating-an-extension.md) to the newcommand names, noting the
upgradealias.*-upgrade.snaptestdatafiles to
*-update.snapand fixed affected test assertions.Scope / non-goals
To keep this a user-facing rename only, the following were intentionally left
unchanged:
UpgradeOptions,.Upgrade()).ext.upgrade,tool.upgrade.*) andchangelog history.
--no-dependency-upgradesflag name (a stable flag identifier).Note: the auto-derived telemetry command span name follows the command path, so it
shifts to
cmd.tool.update/cmd.extension.update. The explicit telemetry fieldkeys above are unchanged.