Notify users in azd CLI when installed extensions have updates available, like an "outdated" notification message
Problem
Users can install azd extensions, but currently there is no CLI notification when a locally installed extension has a newer released version available. This can lead to users running older extension versions and missing important improvements or security fixes.
Proposal
Add a notification feature to the azd CLI:
- On startup or after running extension-related commands, print a banner or message when an installed extension has an update available, similar to the azd outdated message for the core tool.
- Example: "Extensions with updates available: my-ext (0.1.2 → 0.2.0). Run
azd extension update <name>to upgrade." - Optionally add a command
azd extension outdatedorazd extension check-updatesto explicitly list out-of-date extensions and their latest versions. - Allow
azd extension update --allto update all outdated extensions in one go.
Implementation notes
- Perform a version check against the extension registry or gallery, comparing local installed versions to the latest available.
- Limit network calls and cache results to be efficient and avoid blocking CLI startup.
- Don't block CLI execution if the update check fails due to network issues; notification should be non-blocking.
- Add documentation for the notification feature and update privacy/telemetry info if required.
Acceptance criteria
- CLI notifies user interactively when installed extensions have updates available.
azd extension outdated(or similar) command lists installed extensions and shows if updates are available.- All update checks are efficient, rate-limited, and do not block CLI usage.
Additional context
Many users miss extension updates unless they manually check for them. Adding a notification improves user experience, extension reliability, and security.
@kristenwomack @puicchan could we consider this for the upcoming sprint? I second this: "Many users miss extension updates unless they manually check for them. Adding a notification improves user experience, extension reliability, and security." And I don't think a many users would know to run azd ext upgrade, especially if they're unfamiliar with extension commands or they went through the auto-install flow.
Allow azd extension update --all to update all outdated extensions in one go.
This is supported today through azd extension upgrade --all.
Optionally add a command azd extension outdated or azd extension check-updates to explicitly list out-of-date extensions and their latest versions.
azd extension list already exists today and supports the --installed flag, so if we follow the existing pattern adding an --outdated flag could be another approach.
Related to #5965