Rename azd extension/tool UPGRADE commands to UPDATE - #9370
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
|
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. |
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'], |
| // 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"}, |
| | Status text | Meaning | Color helper | | ||
| | ------------------- | ----------------------------- | ------------------- | | ||
| | `Installed` / `Up to date` | Present and current | `WithSuccessFormat` | | ||
| | `Upgrade available` | Installed but outdated | `WithWarningFormat` | |
| # 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). |
jongio
left a comment
There was a problem hiding this comment.
Two of the failing CI checks trace directly to this diff, and both are quick fixes.
golangci-lint fails with a single issue: cmd/extension.go:1061:1: File is not properly formatted (gofmt). The reindented return in the dependency-upgrade error path lost a tab. Inline suggestion below.
cspell fails on tabwriter at docs/style-guidelines/azd-style-guide.md:308, :375, and :422. Those lines come from the new responsive-table section in this PR, so the word needs to go in the cspell dictionary (or be wrapped so cspell skips it). Inline comment below.
Two smaller things that don't block:
--docs builds its deep link from c.CommandPath() (cmd/cobra_builder.go), so azd extension update --docs and azd tool update --docs now resolve to https://learn.microsoft.com/azure/developer/azure-developer-cli/reference#azd-extension-update and #azd-tool-update. Cobra reports the canonical path for alias invocations too, so azd extension upgrade --docs lands on the new anchor as well. Is the learn.microsoft.com reference page regenerated from this repo automatically, or does that anchor need a separate docs PR? Right now both the new name and the old alias point at an anchor that doesn't exist yet.
cli/azd/extensions/azure.coding-agent/README.md:32 still tells users to run azd extension upgrade azure.coding-agent. It keeps working via the alias, but it's user-facing copy in the same rename scope.
| if err != nil { | ||
| a.console.StopSpinner(ctx, stepMessage, input.StepFailed) | ||
| return nil, wrapDependencyError(fmt.Errorf("failed to upgrade extension: %w", err)) | ||
| return nil, wrapDependencyError(fmt.Errorf("failed to update extension: %w", err)) |
There was a problem hiding this comment.
golangci-lint fails on exactly this line: cmd/extension.go:1061:1: File is not properly formatted (gofmt). It's the only lint issue in the run. This return needs one more tab to sit inside the if err != nil block.
| return nil, wrapDependencyError(fmt.Errorf("failed to update extension: %w", err)) | |
| return nil, wrapDependencyError(fmt.Errorf("failed to update extension: %w", err)) |
gofmt -w ./cmd/extension.go fixes it.
|
|
||
| ### Responsive List & Table Layouts | ||
|
|
||
| Commands that print a list of items — `azd tool list`, `azd tool check`, `azd extension list` (and its alias `azd ext list`), `azd extension source list`, `azd template list`, `azd template source list`, `azd copilot consent list` — render through the shared responsive formatter rather than hand-rolling their own `tabwriter` output. This keeps column names, colors, and layout behavior consistent, and gives every list command a layout that adapts to the terminal width. |
There was a problem hiding this comment.
cspell-lint fails here and at lines 375 and 422 with Unknown word (tabwriter). All three come from this new section, so the check goes red on this PR. Add tabwriter to the repo cspell dictionary (.vscode/cspell.yaml or wherever the shared word list lives) so the term stays usable in prose.
Address review feedback, complete customer-facing terminology updates, preserve compatibility, and remove unrelated documentation changes. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 21cd8119-a644-4b3c-8c99-3f89f63a9968
There was a problem hiding this comment.
Review details
Suppressed comments (7)
cli/azd/cmd/tool.go:1563
- [azd-code-reviewer] This compatibility rewrite also changes
skip (not installed)rows toupgrade. Before this change, skipped tools kept their skip action in--dry-run --output json; now consumers are incorrectly told every row will be upgraded. Only translate rows whose action isupdate.
for i := range rows {
rows[i].Action = "upgrade"
cli/azd/docs/tracing-in-azd.md:246
- [azd-code-reviewer] The telemetry guide is only partially renamed: line 210 still describes active
azd tooloperations as install/upgrade/check/show, rows 237–245 use install/upgrade, and row 247 says “Single-target upgrade.” These describe the canonical command, not the intentionally stabletool.upgrade.*keys, so update the prose throughout this section while retaining the key names.
| `tool.upgrade.from_version` | string | Single-target update | Pre-update installed version. Captured via detection on both the explicit-args (`azd tool update <id>`) and auto-detect (`azd tool update`) paths. Unset only when detection failed or the tool was not previously installed. |
docs/specs/metrics-audit/feature-telemetry-matrix.md:33
- [azd-code-reviewer] The adjacent Extensions row still says direct source locations apply to extension “install/upgrade,” even though the canonical command is now
extension update. Update that command description while keeping theext.upgradeandextension.upgrade.*telemetry keys unchanged.
docs/reference/telemetry-data.md:710 - [azd-code-reviewer] This public reference is only partially updated. The extension field table still names
azd extension ... upgradeat line 455, and the tool-management section at lines 467–507 still documents active install/upgrade operations. Keep the stable*.upgradetelemetry keys, but rename the command/operation prose toupdateso it matchescmd.tool.updateand the CLI.
docs/specs/metrics-audit/telemetry-schema.md:20 - [azd-code-reviewer] The event description now says “update,” but this schema still documents active
azd toolcommands as install/upgrade/check at lines 288 and 312, with upgrade-command wording in the field notes below. Preserve thetool.upgrade.*field names, but update the operation prose so the authoritative schema matches the renamed command.
cli/azd/extensions/azure.coding-agent/README.md:29 - [azd-code-reviewer] The command is renamed here, but the immediately preceding sentence still says “if you already the ... installed” and “want to upgrade.” Use the new vocabulary and fix the missing “have” so the installation instructions read consistently.
azd extension update azure.coding-agent
cli/azd/CHANGELOG.md:7
- Repository guidance defers changelog entries for feature/fix PRs to release or version-bump PRs (
cli/azd/AGENTS.md:227-235). This PR is not preparing a release, so remove this entry and let the release process add it to avoid recurring changelog conflicts.
- Rename the `azd extension upgrade` and `azd tool upgrade` commands to `azd extension update` and `azd tool update`. The former `upgrade` names continue to work as aliases for backward compatibility.
- Files reviewed: 45/45 changed files
- Comments generated: 0 new
- Review effort level: Balanced
Resolve the extension update conflict while preserving source and version flags in retry guidance. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 21cd8119-a644-4b3c-8c99-3f89f63a9968
📋 Prioritization NoteThanks for the contribution! The linked issue isn't in the current milestone yet. |
There was a problem hiding this comment.
Review details
Suppressed comments (7)
cli/azd/cmd/tool.go:1563
- azd-code-reviewer: This loop also rewrites
"skip (not installed)"rows to"upgrade", so JSON dry runs falsely report that an uninstalled tool would be upgraded. Only translate the new"update"action value when preserving the legacy JSON contract.
for i := range rows {
rows[i].Action = "upgrade"
docs/reference/telemetry-data.md:710
- azd-code-reviewer: The canonical span is updated here, but the same reference still documents the old operation name: line 455 lists
azd extension ... upgrade, and lines 467 and 492–507 describe activetool upgradeoperations. Keep immutable keys such asext.upgradeandtool.upgrade.*, but update the prose and command references so this authoritative telemetry reference is internally consistent.
cli/azd/docs/tracing-in-azd.md:233 - azd-code-reviewer: This heading now says
tool update, but the introduction at line 210 and nearly every “Emitted by” entry at lines 237–247 still call the operationupgrade. Preservetool.upgrade.*as telemetry keys, but rename the surrounding prose toupdateso the tracing contract does not describe a command that is now only an alias.
The `tool install` / `tool update` / `tool check` / `tool show` actions emit:
docs/specs/metrics-audit/feature-telemetry-matrix.md:33
- azd-code-reviewer: The Extensions (dynamic) row above still says
extension.source.kindapplies toextension ... upgrade. Update that canonical command reference too; the telemetry field/event keys can remainupgradeas intended.
cli/azd/docs/extensions/extension-resolution-and-versioning.md:514 - azd-code-reviewer: This document is still inconsistent with the changed behavior: line 172 says the install confirmation prompt displays
Upgrade to <version>, butversionTransitionVerbnow emitsUpdate to <version>. Lines 142–143 also retain “upgrade azd” guidance. Update those passages so the documented output matches the CLI.
# Output: my.extension updated from 1.0.0-beta.2 (dev) → 1.0.0 (azd)
cli/azd/extensions/azure.coding-agent/README.md:32
- azd-code-reviewer: The sentence immediately above this example still tells users they “want to upgrade,” which leaves the old user-facing vocabulary in place and conflicts with the new command. Update that sentence as part of the rename.
azd extension update azure.coding-agent
cli/azd/CHANGELOG.md:7
cli/azd/AGENTS.md:232says changelog entries should be deferred to release/version-bump PRs. This command-rename PR is not preparing a release, so remove this entry and let the release process add it.
- Rename the `azd extension upgrade` and `azd tool upgrade` commands to `azd extension update` and `azd tool update`. The former `upgrade` names continue to work as aliases for backward compatibility.
- Files reviewed: 45/45 changed files
- Comments generated: 0 new
- Review effort level: Balanced
jongio
left a comment
There was a problem hiding this comment.
CI is red on all three BuildCLI legs. I reproduced it locally on 6a59b2d: two test assertions didn't get updated with the rename, and both fail in ./cmd.
cmd/extension_bundle_test.go:202expectsUpgrade to 2.0.0, butversionTransitionVerbnow emitsUpdate to 2.0.0. The sibling table inTestVersionTransitionVerbgot updated, this one inTestConfirmSourceChange/UpgradeShowsTargetVersiondidn't.cmd/extension_upgrade_test.go:294expectsUpgraded, butdependencyChangeVerbnow returnsUpdated.
I applied both one-line fixes locally and go test ./cmd/... goes green. Neither line sits inside a diff hunk, so I anchored the comments on the production lines that changed the expected strings.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 21cd8119-a644-4b3c-8c99-3f89f63a9968
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 21cd8119-a644-4b3c-8c99-3f89f63a9968
There was a problem hiding this comment.
Review details
Suppressed comments (6)
cli/azd/CHANGELOG.md:7
- azd-code-reviewer: This changelog entry should be deferred to the release/version-bump PR.
cli/azd/AGENTS.md:232says feature changes generally should not updateCHANGELOG.md, and this PR is not preparing a release.
- Rename the `azd extension upgrade` and `azd tool upgrade` commands to `azd extension update` and `azd tool update`. The former `upgrade` names continue to work as aliases for backward compatibility.
docs/specs/metrics-audit/telemetry-schema.md:20
- azd-code-reviewer: This updates only the event description, but the authoritative schema still calls these operations “upgrade” throughout the extension fields (lines 207–216) and tool-management section (lines 288–327). Update those headings, field labels, and descriptions to “update” while retaining the stable
*.upgrade.*keys; otherwise the telemetry docs use conflicting terminology for the renamed commands.
docs/specs/metrics-audit/feature-telemetry-matrix.md:33 - azd-code-reviewer: The extension row immediately above still says
extension.source.kindapplies tolist/show/install/upgrade, while the detailed row now usesupdate. Use the canonical command name consistently here; keep only the stable telemetry keys asupgrade.
cli/azd/extensions/azure.coding-agent/README.md:32 - azd-code-reviewer: The introductory sentence still tells users they “want to upgrade” immediately before showing the new
updatecommand, and it is missing “have.” Align the prose with the renamed command to avoid a contradictory example.
azd extension update azure.coding-agent
cli/azd/docs/extensions/extension-framework.md:1214
- azd-code-reviewer: This guide still describes
requiredAzdVersionfiltering as “install/upgrade” on line 1095 and dependency resolution as “installs or upgrades” on line 1191. Update those remaining operation descriptions so this user-facing guide consistently uses the new command vocabulary.
Pack manifests must include at least one dependency. They may omit `capabilities`, `namespace`, `entryPoint`, `usage`, and `examples` when the pack has no commands of its own. Installing a pack installs its dependencies recursively from the same extension source as the pack. Dependency versions in the manifest support semver constraints, but command-line `--version` values for `azd extension install` and `azd extension update` are exact versions.
cli/azd/pkg/tool/installer.go:1407
- azd-code-reviewer:
runSkillAgentCommandstill sets its operation verb to"upgrade"at line 1932, so a missing plugin update command now surfacesagent … has no upgrade command configuredfrom line 1936. Change that diagnostic verb to"update"so this error path matches the renamed command and the other updated error strings.
- Files reviewed: 45/45 changed files
- Comments generated: 0 new
- Review effort level: Balanced
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 21cd8119-a644-4b3c-8c99-3f89f63a9968
There was a problem hiding this comment.
Review details
Suppressed comments (6)
cli/azd/pkg/tool/installer.go:1153
- [azd-code-reviewer] The rename is incomplete in this file:
runSkillAgentCommandat lines 1929-1937 still builds the user-facing erroragent %q has no upgrade command configured. Anazd tool updatefailure can therefore still surface the old verb. Change that display verb toupdatewhile retaining internal upgrade identifiers.
docs/specs/metrics-audit/feature-telemetry-matrix.md:35 - [azd-code-reviewer] This matrix update misses the Extensions summary at line 33, which still says
extension.source.kindapplies tolist/show/install/upgrade. Change that command reference tolist/show/install/update; theext.upgradeevent andextension.upgrade.*keys should remain unchanged.
cli/azd/extensions/azure.coding-agent/README.md:32 - [azd-code-reviewer] The command was updated, but its lead-in still says “want to upgrade” and is missing “have” (“if you already the extension installed”). Update the sentence too so the example is grammatical and uses the new vocabulary.
azd extension update azure.coding-agent
cli/azd/docs/extensions/extension-framework.md:1214
- [azd-code-reviewer] The extension framework still uses the old current-operation terminology in several places, including
install/upgradeforrequiredAzdVersion(line 1095), “installs or upgrades” for dependency resolution (line 1191), and the “Version Upgrade Path” section (lines 772-806). Update this prose to match the renamed command while leaving historical references and stable identifiers unchanged.
Pack manifests must include at least one dependency. They may omit `capabilities`, `namespace`, `entryPoint`, `usage`, and `examples` when the pack has no commands of its own. Installing a pack installs its dependencies recursively from the same extension source as the pack. Dependency versions in the manifest support semver constraints, but command-line `--version` values for `azd extension install` and `azd extension update` are exact versions.
cli/azd/CHANGELOG.md:7
- Feature and fix PRs generally defer changelog edits to the release/version-bump workflow to avoid conflicts (
cli/azd/AGENTS.md:235-243). This PR is not preparing a release, so remove this entry and let release tooling add it later.
### Other Changes
- Rename the `azd extension upgrade` and `azd tool upgrade` commands to `azd extension update` and `azd tool update`. The former `upgrade` names continue to work as aliases for backward compatibility.
docs/specs/metrics-audit/telemetry-schema.md:20
- [azd-code-reviewer] The schema is still internally inconsistent: line 19 says “install/upgrade event,” and lines 207-216 plus 288-327 describe current extension/tool operations as “upgrade” in prose and section titles. Rename those labels and descriptions to “update” while retaining stable OTel keys and enum values such as
extension.upgrade.*andupgraded.
- Files reviewed: 46/46 changed files
- Comments generated: 2
- Review effort level: Balanced
| Use: "upgrade [tool-name...]", | ||
| Short: "Upgrade installed tools.", | ||
| Use: "update [tool-name...]", | ||
| Aliases: []string{"upgrade"}, |
jongio
left a comment
There was a problem hiding this comment.
Two notes inline: a changelog wording suggestion about JSON output, and a correction on the lifecycle hooks concern raised earlier on this PR.
|
|
||
| ### Other Changes | ||
|
|
||
| - Rename the `azd extension upgrade` and `azd tool upgrade` commands to `azd extension update` and `azd tool update`. The former `upgrade` names continue to work as aliases for backward compatibility. |
There was a problem hiding this comment.
Worth calling out that --output json intentionally keeps the old vocabulary, since that's the part script authors are most likely to get wrong. azd tool update --output json still emits "action": "upgrade" (cmd/tool.go:1388 and :1563), and the extension side still emits "upgraded" plus the dependencyUpgrades key (pkg/extensions/upgrade_result.go:29 and :81). Someone reading this entry could reasonably assume the JSON followed the rename and preemptively rewrite their jq filters.
There's precedent for spelling out JSON impact in this file: the #9045 entry at line 43 ends with "Update scripts and JSON consumers accordingly."
| - Rename the `azd extension upgrade` and `azd tool upgrade` commands to `azd extension update` and `azd tool update`. The former `upgrade` names continue to work as aliases for backward compatibility. | |
| - Rename the `azd extension upgrade` and `azd tool upgrade` commands to `azd extension update` and `azd tool update`. The former `upgrade` names continue to work as aliases for backward compatibility. Machine-readable `--output json` fields are unchanged, so existing scripts keep working. |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 21cd8119-a644-4b3c-8c99-3f89f63a9968
There was a problem hiding this comment.
Review details
Suppressed comments (4)
cli/azd/cmd/extension.go:2595
- The user-facing rename is incomplete for skipped dependency rows. This line appends
child.SkipReason, andpkg/extensions/manager.go:1159still producesdependency upgrades disabled; ... available, soazd extension update --no-dependency-upgradescontinues to display the old verb. Update that source string and its assertions to saydependency updates disabled.
"%s%s Updating %s dependency",
cli/azd/extensions/azure.coding-agent/README.md:29
- The sentence introducing this updated command still says users “want to upgrade” and is missing “have,” leaving this README inconsistent with the new command vocabulary. Update the introduction along with the command example.
azd extension update azure.coding-agent
docs/specs/metrics-audit/feature-telemetry-matrix.md:33
- The command inventory is still inconsistent: the Extensions row above this updated Tool row lists
extension list/show/install/upgrade. Change that command-facing reference toupdate; theext.upgradeevent andextension.upgrade.*keys should remain unchanged.
docs/specs/metrics-audit/telemetry-schema.md:20 - The telemetry schema terminology update is incomplete. Line 19 still calls
ext.installan install/upgrade event, lines 207-216 describe extension updates as upgrades, and lines 288, 312, and 320-327 still describe theazd toolcommand asupgrade. Update those command-facing headings and descriptions to “update” while retaining the intentionally stableext.upgradeandtool.upgrade.*keys.
- Files reviewed: 48/48 changed files
- Comments generated: 0 new
- Review effort level: Balanced
There was a problem hiding this comment.
I think we can go a bit further and use update everywhere in the code and output, and keep upgrade only where we really need backward compatibility.
Specifically, I think we can:
- Rename all Go identifiers, exported APIs, interfaces, tests, and filenames that belong to these extension and tool update flows from
UpgradetoUpdate. I don't see any external consumers using those exported APIs. - Rename telemetry to
ext.update,tool.update.*, and the matchingUpdateconstants. The command span names (cmd.extension.update) already change, so keeping the old telemetry names would leave us with mixed terms. - Rename
extension updateJSON from"upgraded"to"updated","upgraded"counts to"updated", anddependencyUpgradestodependencyUpdates. - Rename
tool updateJSON, including--dry-run, from"action": "upgrade"to"action": "update". - Add
--no-dependency-updatesas the new flag while keeping--no-dependency-upgradesas a hidden alias for existing scripts. - Keep
azd extension upgradeandazd tool upgradeas command aliases. - Keep
upgradefor terms owned by other tools or protocols, such ashelm upgrade, package-manager or pipupgradearguments, WebSocket upgrades, existing URLs, etc.
The JSON changes only affect extension update -o json, extension update --all -o json, and the matching tool update result and dry-run output, which I think this is an acceptable break - I don't see any occurrences users running azd ext upgrade or azd tool upgrade with --output json in our telemetry.
I also think we can also remove the hook compatibility change. The extension and tool commands do not use HooksMiddleware, so those old hook names never worked. The middleware change affects other commands and is not needed for this rename.
|
@JeffreyCA I agree on dropping the hook compatibility change, and I think the case is stronger than "those names never worked".
So it isn't only that Dropping Unrelated to the code: the failing |
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.