Update deployment docs to pipeline-step APIs and remove legacy callback annotation references - #1158
Update deployment docs to pipeline-step APIs and remove legacy callback annotation references#1158David Pine (IEvangelist) with Copilot wants to merge 2 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates Aspire deployment documentation to remove references to legacy callback annotation APIs and align guidance/examples with the newer pipeline-step model (for publish/deploy extensibility and progress reporting).
Changes:
- Migrates the custom deployments tutorial to pipeline-step registration (
WithPipelineStepFactory,PipelineStepContext, step dependencies). - Removes remaining
DeployingCallbackAnnotation/PublishingCallbackAnnotationmentions across “what’s new”, pipelines, and diagnostics docs (including JA translations). - Updates surrounding wording/cross-links to point readers to pipeline and custom-resource extensibility docs.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| src/frontend/src/content/docs/whats-new/aspire-9-4.mdx | Reworks the aspire deploy extensibility example toward pipeline steps and updates narrative around deploy workflow reporting. |
| src/frontend/src/content/docs/whats-new/aspire-9-3.mdx | Removes explicit legacy type name from publisher model description. |
| src/frontend/src/content/docs/whats-new/aspire-13.mdx | Rephrases removed-API list entries to avoid legacy callback annotation type names. |
| src/frontend/src/content/docs/ja/whats-new/aspire-13.mdx | JP equivalent of Aspire 13 removed-API list wording updates. |
| src/frontend/src/content/docs/deployment/pipelines.mdx | Updates “Removed APIs” list to avoid legacy callback annotation type names. |
| src/frontend/src/content/docs/ja/deployment/pipelines.mdx | JP equivalent “Removed APIs” list wording updates. |
| src/frontend/src/content/docs/diagnostics/aspirepipelines001.mdx | Removes explicit legacy type name from affected-APIs list. |
| src/frontend/src/content/docs/diagnostics/aspirepipelines002.mdx | Removes explicit legacy type name from affected-APIs list. |
| src/frontend/src/content/docs/deployment/custom-deployments.mdx | Migrates tutorial from callback annotations to pipeline-step factories, including updated progress reporting examples and links. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| var step = await reporter.CreateStepAsync("Seeding data", ct); | ||
| var task = await step.CreateTaskAsync($"Loading seed data from {seedDataPath}", ct); | ||
| // ReportingStep represents the current pipeline step context. |
| #### `aspire deploy` | ||
|
|
||
| The `aspire deploy` command supports extensible deployment workflows through the new [`DeployingCallbackAnnotation`](https://aspire.dev/fundamentals/annotations-overview/), enabling custom pre/post-deploy logic and richer integration with external systems during deployment operations. | ||
| The `aspire deploy` command introduced extensible deployment workflows through deployment callback annotations, enabling custom pre/post-deploy logic and richer integration with external systems during deployment operations. |
| - **Workflow activity reporting** via the `Aspire.Hosting.Publishing.IPublishingActivityReporter` to support progress notifications and prompting in commands | ||
| - **Integration with publish** - `aspire deploy` can run publish-related callbacks to support deploying artifacts emitted by publish steps, if applicable |
|
There is one more blocking issue that does not map cleanly to a changed line: |
Frontend HTML artifact readyThe latest frontend build uploaded the This comment updates automatically when a new frontend build artifact is uploaded. |
| const horizontalWhitespace = String.raw`[ \t]+`; | ||
|
|
||
| // A deprecated term only matches when it isn't fused to an adjacent alphanumeric | ||
| // character, so longer tokens like `ASP.NET Aspire` or `.NET AspireX` stay intact |
There was a problem hiding this comment.
Use "Aspire" instead of ".NET Aspire".
| // character, so longer tokens like `ASP.NET Aspire` or `.NET AspireX` stay intact | |
| // character, so longer tokens like `ASPAspire` or `AspireX` stay intact |
| const termEnd = String.raw`(?![A-Za-z0-9])`; | ||
|
|
||
| // Markdown emphasis/link openers can sit between an article and a term in raw | ||
| // README content (e.g. `a **.NET Aspire**`, `a [.NET Aspire](url)`, or |
There was a problem hiding this comment.
Use "Aspire" instead of ".NET Aspire".
| // README content (e.g. `a **.NET Aspire**`, `a [.NET Aspire](url)`, or | |
| // README content (e.g. `a **Aspire**`, `a [Aspire](url)`, or |
|
|
||
| // Markdown emphasis/link openers can sit between an article and a term in raw | ||
| // README content (e.g. `a **.NET Aspire**`, `a [.NET Aspire](url)`, or | ||
| // `a _.NET Aspire_`), so the article corrector consumes them to stay grammatical |
There was a problem hiding this comment.
Use "Aspire" instead of ".NET Aspire".
| // `a _.NET Aspire_`), so the article corrector consumes them to stay grammatical | |
| // `a _Aspire_`), so the article corrector consumes them to stay grammatical |
| const markdownOpeners = String.raw`[*\[_]*`; | ||
|
|
||
| // Fenced code blocks and inline code spans are copied through verbatim so sample | ||
| // commands like `dotnet aspire run` are never rewritten into an unrunnable |
There was a problem hiding this comment.
Use "Aspire" instead of "dotnet aspire".
| // commands like `dotnet aspire run` are never rewritten into an unrunnable | |
| // commands like `Aspire run` are never rewritten into an unrunnable |
| * Case-insensitive regex source matching the deprecated term core, without | ||
| * boundaries. Use `${horizontalWhitespace}` for internal spaces; alphanumeric | ||
| * boundaries are applied automatically so a rule can never corrupt a longer | ||
| * token like `ASP.NET Aspire` or `.NET AspireX`. |
There was a problem hiding this comment.
Use "Aspire" instead of ".NET Aspire".
| * token like `ASP.NET Aspire` or `.NET AspireX`. | |
| * token like `ASPAspire` or `AspireX`. |
| /** | ||
| * Indefinite article the replacement should take. Set this only when the | ||
| * replacement's leading sound differs from the term's, so a preceding `a`/`an` | ||
| * is corrected (e.g. `a .NET Aspire` -> `an Aspire`). |
There was a problem hiding this comment.
Use "Aspire" instead of ".NET Aspire".
| * is corrected (e.g. `a .NET Aspire` -> `an Aspire`). | |
| * is corrected (e.g. `a Aspire` -> `an Aspire`). |
| seoTitle: Bun integration for Aspire AppHost (Community Toolkit) | ||
| description: Learn how to use the Aspire Community Toolkit Bun hosting integration to orchestrate Bun applications alongside other resources in the Aspire app host. | ||
| seoTitle: Bun integration for Aspire AppHost | ||
| description: Learn how to use the Aspire.Hosting.JavaScript Bun hosting APIs to orchestrate Bun applications alongside other resources in the Aspire app host. |
There was a problem hiding this comment.
Use "AppHost" instead of "app host".
| description: Learn how to use the Aspire.Hosting.JavaScript Bun hosting APIs to orchestrate Bun applications alongside other resources in the Aspire app host. | |
| description: Learn how to use the Aspire.Hosting.JavaScript Bun hosting APIs to orchestrate Bun applications alongside other resources in the Aspire AppHost. |
| ['uppercase article', `A ${legacyDotnetAspireName} sample`, 'An Aspire sample'], | ||
| ['lowercase article', `Build a ${legacyDotnetAspireName} sample`, 'Build an Aspire sample'], | ||
| ['no article', `Deploy the ${legacyDotnetAspireName} app`, 'Deploy the Aspire app'], | ||
| ])('normalizes the "dotnet aspire" spelling (%s)', (_scenario, input, expected) => { |
There was a problem hiding this comment.
Use "Aspire" instead of "dotnet aspire".
| ])('normalizes the "dotnet aspire" spelling (%s)', (_scenario, input, expected) => { | |
| ])('normalizes the "Aspire" spelling (%s)', (_scenario, input, expected) => { |
| test('normalizes prose while preserving adjacent code', () => { | ||
| const input = `Build a ${legacyAspireName} app, then run \`${legacyDotnetAspireName} run\`.`; | ||
| expect(normalizeAspireTerminology(input)).toBe( | ||
| 'Build an Aspire app, then run `dotnet aspire run`.' |
There was a problem hiding this comment.
Use "Aspire" instead of "dotnet aspire".
| 'Build an Aspire app, then run `dotnet aspire run`.' | |
| 'Build an Aspire app, then run `Aspire run`.' |
Refresh custom deployment examples for pipeline steps and clarify legacy callback references in deployment, diagnostics, and release notes. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 5b0c81a3-d822-462e-8cf5-8eb6debfe968
2223db7 to
1597377
Compare
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
The custom deployment pipeline guidance was outdated and still referenced
DeployingCallbackAnnotation/PublishingCallbackAnnotation, which no longer exist. This updates the docs to the current pipeline-step model and removes those legacy references across docs content.Custom deployment tutorial migrated to current API
/deployment/custom-deployments/to useWithPipelineStepFactory+PipelineStepContextinstead of callback annotations.requiredBy/dependsOnwithWellKnownPipelineSteps.Cross-links to current extensibility surfaces
/deployment/pipelines/and/extensibility/custom-resources/from the updated tutorial to anchor readers on the canonical pipeline-step and custom-resource docs.Legacy type names removed from docs corpus
DeployingCallbackAnnotationandPublishingCallbackAnnotationundersrc/frontend/src/content/docs/.