Skip to content

Update deployment docs to pipeline-step APIs and remove legacy callback annotation references - #1158

Open
David Pine (IEvangelist) with Copilot wants to merge 2 commits into
mainfrom
copilot/update-pipeline-documentation
Open

Update deployment docs to pipeline-step APIs and remove legacy callback annotation references#1158
David Pine (IEvangelist) with Copilot wants to merge 2 commits into
mainfrom
copilot/update-pipeline-documentation

Conversation

Copilot AI commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

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

    • Reworked /deployment/custom-deployments/ to use WithPipelineStepFactory + PipelineStepContext instead of callback annotations.
    • Updated examples to show publish/deploy step registration using requiredBy / dependsOn with WellKnownPipelineSteps.
    • Kept the tutorial flow intact while swapping in modern code paths and terminology.
  • Cross-links to current extensibility surfaces

    • Added direct links to /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

    • Eliminated remaining occurrences of DeployingCallbackAnnotation and PublishingCallbackAnnotation under src/frontend/src/content/docs/.
    • Updated adjacent migration/diagnostics/what’s-new wording so references remain accurate without pointing to removed APIs.
return builder.AddResource(resource)
    .WithPipelineStepFactory(
        stepName: $"{name}-build-images",
        callback: PublishAsync,
        requiredBy: [WellKnownPipelineSteps.Publish])
    .WithPipelineStepFactory(
        stepName: $"{name}-deploy",
        callback: DeployAsync,
        dependsOn: [$"{name}-build-images"],
        requiredBy: [WellKnownPipelineSteps.Deploy]);

Copilot AI changed the title [WIP] Update pipeline documentation to remove outdated annotations Update deployment docs to pipeline-step APIs and remove legacy callback annotation references Jun 2, 2026
@IEvangelist
David Pine (IEvangelist) marked this pull request as ready for review June 30, 2026 08:38
Copilot AI review requested due to automatic review settings June 30, 2026 08:38

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 / PublishingCallbackAnnotation mentions 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.
Comment thread src/frontend/src/content/docs/whats-new/aspire-9-4.mdx Outdated
Comment thread src/frontend/src/content/docs/diagnostics/aspirepipelines001.mdx Outdated
Comment thread src/frontend/src/content/docs/diagnostics/aspirepipelines002.mdx Outdated
#### `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.
Comment on lines +125 to +126
- **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
Comment thread src/frontend/src/content/docs/whats-new/aspire-9-4.mdx Outdated
Comment thread src/frontend/src/content/docs/whats-new/aspire-9-3.mdx Outdated
Comment thread src/frontend/src/content/docs/deployment/custom-deployments.mdx
@adamint

Copy link
Copy Markdown
Member

There is one more blocking issue that does not map cleanly to a changed line: custom-deployments.mdx still references removed PublishingContext.ActivityReporter and the old CompletePublishAsync(message, state, isDeploy, ct) shape. The current pipeline API uses PipelineStepContext.ReportingStep, and completion is runner-invoked with PublishCompletionOptions. Could we update that surrounding section too so the page is internally consistent?

@aspire-repo-bot

Copy link
Copy Markdown
Contributor

Frontend HTML artifact ready

The latest frontend build uploaded the frontend-dist artifact for PR #1158. Use the VS Code button below to open this PR with GitHub Artifacts Explorer and browse the built HTML locally.

VS Code: Open PR #1158 artifacts

This comment updates automatically when a new frontend build artifact is uploaded.

@aspire-repo-bot aspire-repo-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated wording suggestions from the forbidden-words check. Apply the suggestions to resolve them.

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use "Aspire" instead of ".NET Aspire".

Suggested change
// 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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use "Aspire" instead of ".NET Aspire".

Suggested change
// 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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use "Aspire" instead of ".NET Aspire".

Suggested change
// `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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use "Aspire" instead of "dotnet aspire".

Suggested change
// 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`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use "Aspire" instead of ".NET Aspire".

Suggested change
* 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`).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use "Aspire" instead of ".NET Aspire".

Suggested change
* 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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use "AppHost" instead of "app host".

Suggested change
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) => {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use "Aspire" instead of "dotnet aspire".

Suggested change
])('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`.'

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use "Aspire" instead of "dotnet aspire".

Suggested change
'Build an Aspire app, then run `dotnet aspire run`.'
'Build an Aspire app, then run `Aspire run`.'

@IEvangelist David Pine (IEvangelist) added the ci:skip-forbidden-words Allows maintainers to bypass false positives in the forbidden-word check. label Aug 7, 2026
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
@IEvangelist David Pine (IEvangelist) removed the ci:skip-forbidden-words Allows maintainers to bypass false positives in the forbidden-word check. label Aug 7, 2026
@IEvangelist
David Pine (IEvangelist) force-pushed the copilot/update-pipeline-documentation branch from 2223db7 to 1597377 Compare August 7, 2026 20:09
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update Pipeline Documentation to remove DeployingCallbackAnnotation and PublishingCallbackAnnotation

4 participants