[Aspire extension] Phase 7: Migrate legacy built-in Aspire projects
- Dominant language
- Go
- Stars
- 569
- Forks
- 364
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 136
Description
Parent epic: #9479
Depends on the Aspire extension becoming the default for new projects.
## Objective
Move existing `host: containerapp` plus `language: dotnet` Aspire projects onto the extension without breaking old projects or silently rewriting configuration.
## Scope
- Continue recognizing the legacy marker as Aspire only when the referenced project is an AppHost.
- Prefer the extension for legacy projects once the installed version meets compatibility requirements.
- Retain built-in fallback during the migration window.
- Never switch implementations after an operation has started.
- Add an explicit migration command, for example:
```console
azd aspire migrate
```
- Update `azure.yaml` to `host: aspire`, remove the obsolete language marker, configure the Aspire provisioning provider, and add extension requirements where needed.
- Provide preview/confirmation and preserve comments and unrelated configuration where possible.
- Add regression coverage for old templates, generated projects, CI pipelines, App Service, and Container Apps.
- Publish migration and rollback guidance.
## Exit criteria
- Legacy projects run successfully through the extension without mandatory edits.
- Explicit migration produces the new canonical configuration.
- Built-in fallback usage and extension migration adoption can be measured safely.
Contributor guide
Assessment
This issue has not been assessed yet.