Skip to content

[docs] Close Aspire 13.6 canonical guide and release-note coverage gaps - #1780

Merged
David Pine (IEvangelist) merged 2 commits into
release/13.6from
ievangelist-13-6-documentation-coverage
Sep 28, 2026
Merged

David Pine (IEvangelist) merged 2 commits into
release/13.6from
ievangelist-13-6-documentation-coverage

Conversation

@IEvangelist

Copy link
Copy Markdown
Member

Summary

Reconcile the 13.6 wiki audit and all 25 open docs-from-code proposals targeting release/13.6 against the actual release source. Add missing canonical guidance rather than putting all coverage in What's new. This is a new, isolated feature PR into release/13.6; it does not update the release rollup #1599, merge or close another proposal, or push directly to a release branch.

Draft with explicit remaining packaging/validation gates: the six REPL walkthroughs are source-verified, but current publicly available 13.6 packages do not contain the late WithRepl exports. Generated API catalogs have deliberately not been fabricated or refreshed from 14.x. See the open checklist below.

Evidence baseline

Complete audit-gap checklist

Checked items mean documentation coverage is implemented, not that cloud deployment or every product runtime scenario was executed.

All 25 open proposal dispositions and provenance

Text is selectively adapted from these proposals, not merged wholesale. #1778 and #1748 are authored by Sébastien Ros (@sebastienros); the other proposals are authored by the Aspire repo bot. The table credits the associated product-change authors where supplied by the proposals. Existing PRs remain open and unchanged.

Docs PR Release source / credited product author Disposition
#1778 microsoft/aspire#19729 — Sébastien Ros (@sebastienros) Adopted: canonical connection-string alias correction, including logical-first resolution and migration.
#1771 microsoft/aspire#20481 — Sébastien Ros (@sebastienros) Excluded: flat polyglot feature keys are not in the audited release tip; no verified backport. Preserve release key names.
#1770 microsoft/aspire#20525 → microsoft/aspire#20548 — Mitch Denny (@mitchdenny) Corrected/adopted: command guides plus the still-current 13.6 article, which the proposal incorrectly treats as historical.
#1769 microsoft/aspire#20416 — James Newton-King (@JamesNK) Excluded: brand hover change has no verified 13.6 membership/backport.
#1768 microsoft/aspire#20523 → microsoft/aspire#20546 — James Newton-King (@JamesNK) Adopted: run pin/unpin preserves selector and current selection.
#1766 microsoft/aspire#20537 → microsoft/aspire#20541 — Mitch Denny (@mitchdenny) Adopted: terminal dock empty state.
#1761 microsoft/aspire#20490 → microsoft/aspire#20496 — Eric Erhardt (@eerhardt) Corrected: graduation is 13.6, package remains prerelease, Blazor-specific exception retained.
#1760 microsoft/aspire#20436 — Eric Erhardt (@eerhardt) Excluded: CLI net11/tools-any retarget is not in the audited release; no fallback-base inference.
#1748 microsoft/aspire#20131 — Sébastien Ros (@sebastienros) Adopted: extend existing provisioning guide with service-specific models/lookups and projection limits.
#1744 microsoft/aspire#20337 → microsoft/aspire#20441 — Karol Zadora-Przylecki (@karolz-ms) Adopted: precise SDK-conditional multithreaded build coverage.
#1740 microsoft/aspire#20231 → microsoft/aspire#20419 — Mitch Denny (@mitchdenny) Adapted: all six guides; TypeScript-first tabs, source-verified lifecycle/security. Actual post-backport SDK/runtime gate is open above.
#1738 microsoft/aspire#20158 → microsoft/aspire#20405 — Karol Zadora-Przylecki (@karolz-ms) Partly already covered / completed: existing seven-skill catalog retained; add project migration guidance and correct command catalog/defaults. Do not misclassify the bundled skill as a companion tool.
#1735 microsoft/aspire#20334 — Karol Zadora-Przylecki (@karolz-ms) Excluded: enhanced startup errors are not in the audited release; no verified backport.
#1731 microsoft/aspire#19847 → microsoft/aspire#20391 — Eric Erhardt (@eerhardt) Corrected/adopted: in-process NuGet and real authenticated-restore troubleshooting, not cache-command authentication.
#1719 microsoft/aspire#20299 → microsoft/aspire#20407 — James Newton-King (@JamesNK) Corrected/adopted: cookie naming/scoping; identical names can collide but do not guarantee cross-dashboard cookie decryptability or shared sign-in.
#1664 microsoft/aspire#20011 — Maddy Montaquila (@maddymontaquila) Adopted: concise Azure environment icon release note.
#1628 microsoft/aspire#17742 — David Fowler (@davidfowl) Adapted/expanded: canonical Toolbox examples, consumer contract, role/index prerequisites, approval/security and concurrency limits.
#1623 microsoft/aspire#19810 — Mitch Denny (@mitchdenny) Already covered: current Sandbox guide/article already describe compute inference, explicit selection and external endpoints. Preserve that guidance while removing obsolete suppressions.
#1620 microsoft/aspire#19243 — Sébastien Ros (@sebastienros) Adapted: AKS credential-before-Helm cleanup and destructive-operation warning; omit misleading ambient-context workaround.
#1614 microsoft/aspire#19870 — Sébastien Ros (@sebastienros) Adopted: typed callback handle behavior in extension authoring and article.
#1574 microsoft/aspire#19430 — Mitch Denny (@mitchdenny) Adapted: canonical hostname inheritance, explicit-host precedence, catch-all default backend.
#1570 microsoft/aspire#19590 — Karol Zadora-Przylecki (@karolz-ms) Adopted: Dev Tunnel URL regression troubleshooting.
#1565 microsoft/aspire#19429 — Mitch Denny (@mitchdenny) Corrected/adopted: Helm embedded parameters with real refExpr and addParameter(name, { value }), not stringifying a handle or using an invalid actual-SDK overload.
#1564 microsoft/aspire#19026 — Karol Zadora-Przylecki (@karolz-ms) Corrected/adopted: C#/TypeScript Dotnet gateway walkthrough. Retain both experimental diagnostics; remove obsolete run-only restriction after microsoft/aspire#19997 publishing support. Avoid imported ambiguous API reference.
#1499 microsoft/aspire#19248 — David Pine (@IEvangelist) Adopted: describe exact secret-value redaction and embedded-secret limit; release article already covered the fix.

Important source-verified corrections to proposals / earlier audit assumptions

  • BlazorGatewayExtensions.cs: AddDotnetProjectBlazorGateway and the Dotnet WithBlazorClientApp overload still carry ASPIREDOTNETPROJECT001; the class carries ASPIREBLAZOR001. They share WithBlazorClientAppCore/WithBlazorApp and the publish-companion path. Thus neither blanket diagnostic retirement nor the proposal's old run-only claim is correct.
  • SkillDefinition.cs sets bundled skills' IsDefault=true; AgentInitCommand.cs selects the applicable catalog defaults for both flows. MCP has its own standalone-only binding.
  • TypeScriptAppHostToolchainResolver.cs is the source for Deno flags and certificate variable; guest Deno hosting is separate.
  • Radius README supplies the resource-specific credential rules and publish diagnostics, not assumptions about local endpoints.

Third-party links and affiliations

Links point to official Microsoft Learn, VS Code Marketplace debugger extensions, Rust/Cargo/Bacon documentation, Radius documentation, and source repositories. No sponsorship, commercial endorsement, or affiliation claim is introduced. Maintainers should supply any personal affiliation disclosure required by policy; automation has not inferred one.

Validation

  • 97 passing focused unit checks across API-reference authoring/rendering, Twoslash blocks, file-tree formatting, CLI configuration schema, SEO lengths, and resource catalog.
  • 82 passing structured-data checks, including exact integration mapping uniqueness and page resolution.
  • 11 C# samples compile, zero warnings/errors, using genuine 13.6.0-preview.1.26473.12 packages. Scope: Rust, Connector Namespace, Radius, Toolbox, inline CSI, Helm, Blazor gateway, and provisioning. Projects.Api/Worker/Client use compile-only IProjectMetadata stand-ins; no claim of running those apps or provisioning cloud resources.
  • 10 TypeScript samples pass tsc under strict, NodeNext, and ES2022 against three unmodified actual SDK files, not just the site's declaration bundle. The fixture uses the exact e8fd6fbb release AtsCapabilityScanner and genuine 26473.12 TypeSystem/code-generator/integration binaries, whose informational source is a11eca96. This is an isolated local generation fixture, not a claim that official CLI generation or a new packaged release was tested. An attempted restore with the older handed-off local CLI could not discover an AppHost server; the bounded direct generator fixture was used instead.
  • The SDK scan is not globally warning-free: it reports a Radius withContainerImage collision on CSharpAppResource and an App Configuration createRoleAssignment overload collision. None of the compiled examples calls those colliding methods; the warnings are retained in evidence, not suppressed, and no generated declarations were edited.
  • Browser: Connector Namespace, Radius, both Rust pages, Foundry hosting, and What's new return HTTP 200, correct headings, and no rendered Twoslash errors. New guide/article page-local anchors and the cross-page Blazor anchor resolve. Connector/Radius mobile layouts have no horizontal overflow; Connector language-tab interaction works. Standalone Astro preview emits expected /api/live 404s because StaticHost is not running.
  • git diff --check passes. No production pnpm build, cloud deployment, REPL runtime session, full product suite, or blanket validation of every pre-existing example was performed.
  • Generated C#/TypeScript API data, declaration bundles, integration catalogs, image catalogs, and contributor data are unchanged. Only the authored package-to-guide mapping is updated.

Before merging: complete the two packaging/REPL checkboxes above, inspect CI, and obtain human review. This PR intentionally does not close or merge the source documentation proposals.

Reconcile release-source behavior and all 25 pending docs-from-code proposals. Add canonical Rust, Connector Namespace, Radius, Toolbox, Deno runtime, REPL, agent setup, and deployment guidance while preserving explicit late-package validation limits.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@aspire-repo-bot

Copy link
Copy Markdown
Contributor

Frontend HTML artifact ready

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

VS Code: Open PR #1780 artifacts

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

Remove version-led release framing throughout the updated guides. Keep versions only for diagnostic history, migration compatibility, and a known regression's upgrade remedy; leave release notes and code samples unchanged.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@IEvangelist
David Pine (IEvangelist) marked this pull request as ready for review September 28, 2026 20:26
Copilot AI lite review requested due to automatic review settings September 28, 2026 20:26
@IEvangelist
David Pine (IEvangelist) merged commit 2ff06f7 into release/13.6 Sep 28, 2026
17 checks passed
@IEvangelist
David Pine (IEvangelist) deleted the ievangelist-13-6-documentation-coverage branch September 28, 2026 20:26
@IEvangelist
David Pine (IEvangelist) removed the request for review from Copilot September 28, 2026 22:06
David Pine (IEvangelist) added a commit that referenced this pull request Sep 29, 2026
Follow-up to #1780, which merged with two open checkboxes. Both are now
validated against the latest staging build.

This is a single commit on top of the current `release/13.6` tip
(`5589ce6d`), so it merges cleanly.

- [x] Generated API catalog refreshed from genuine 13.6 packages,
including the late `WithRepl` additions and removed attributes.
- [x] REPL samples and all other new samples checked against the real
13.6 SDK, not stale Twoslash types.

## Provenance

- **Feed:** `darc-pub-microsoft-aspire-f4c27f2d`
(`https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-microsoft-aspire-f4c27f2d/nuget/v3/index.json`).
- **Source:** microsoft/aspire `release/13.6` at
`f4c27f2d43ddc1cacd0dd083b30d1fea1cee7a62`, the newest staging build.
Every regenerated official TS module records `sourceCommit: f4c27f2d…`,
and the restored nuspecs (for example Redis, Blazor and
CodeGeneration.TypeScript) report that commit.
- **Versions:** stable packages are `13.6.0`; prerelease packages are
`13.6.0-preview.1.26478.8`. The codegen package is
`Aspire.Hosting.CodeGeneration.TypeScript 13.6.0`, mapped exclusively to
the staging feed. nuget.org has no `13.6.0`, so resolution is
unambiguous.
- **Scanner:** a locally fixed CLI/ATS scanner, built from `a11eca96`
plus `320eed42` (the microsoft/aspire#20438 content) and `435fd4eb` (the
microsoft/aspire#20443 content). Both upstream PRs are still unmerged.
- Nothing in `a11eca96..f4c27f2d` touches `AtsCapabilityScanner`,
`Aspire.TypeSystem` or `Aspire.Hosting.CodeGeneration.TypeScript`. The
last two commits (microsoft/aspire#20566 and microsoft/aspire#20562)
only change dashboard layout code and Dockerfiles.
- The layout's `dashboard` and `dcp` folders are copies from the
`8230626c` staging CLI bundle. Layout discovery requires them, but they
aren't used for scanning or code generation.
- **Isolation:** the stable version number didn't change between builds,
so generation used fresh process-local `NUGET_PACKAGES`, HTTP cache,
`TEMP` and `ASPIRE_HOME` folders. That rules out reusing `e8fd6fbb`
bits. `ASPIRE_REPO_ROOT` and `ASPIRE_REPO_PATH` were unset, and there
was no source-project substitution.
- **Pipeline:** the repo's own pipeline, in this order:
`update:integrations` → `generate-package-json.ps1` →
`normalize:api-data -- --pkgs` → `update:ts-api` (with Twoslash `.d.ts`)
→ `validate:api-data`.
- Generated JSON and `d.ts` were not hand-edited, and nothing from 14.x
was imported.

### Deviation: no `ASPIRE_RELEASE_VERSION` pin

Pinning `13.6.0` left the 50 prerelease packages stale. The feed is
commit-specific, so the unpinned run resolves every package from the
same build.

### Packages absent from the feed

These seven official packages aren't in this build, so they are carried
forward unchanged:

- `Aspire.Elastic.Clients.Elasticsearch` 13.3.0
- `Aspire.Hosting.AgentFramework.DevUI` 1.22.0-preview.260918.1
- `Aspire.Hosting.AWS` 13.7.2
- `Aspire.Hosting.ClickHouse` 13.5.3
- `Aspire.Hosting.DocumentDB` 0.116.0
- `Aspire.Hosting.Elasticsearch` 13.3.0
- `Aspire.Hosting.GitHub.Models` 13.5.4

## Changes

- **Generated data:** regenerated `aspire-integrations.json` (still 217
packages; 82 at `13.6.0` and 50 at `13.6.0-preview.1.26478.8`), `pkgs/`
(210 succeeded, 0 failed), `ts-modules/` (146 succeeded, 0 failed) and
`twoslash/aspire.d.ts`. `integration-docs.json` needed no change.
- **Generator fix** (`generate-package-json.ps1`): the 24 Provisioning
overlays restored `Aspire.Hosting` at the overlay's own prerelease
version, which doesn't exist now that `Aspire.Hosting` is stable
`13.6.0`. The script now uses the resolved `Aspire.Hosting` version, via
a new `-HostingVersion` parameter with a feed-lookup fallback for
selective runs.
- **Blazor docs:** `AddDotnetProjectBlazorGateway` and
`WithBlazorClientApp` report their own `ASPIREDOTNETPROJECT001`
diagnostic. `ASPIREBLAZOR001` applies to other experimental Blazor
hosting types, such as `BlazorWasmAppResource`.
- A compile check with the pragma removed reports only
`ASPIREDOTNETPROJECT001`, on exactly those two methods.
- The previous wording, from #1564, said the gateway methods carry both
diagnostics.
- **Dashboard docs (microsoft/aspire#20562):** the dashboard no longer
has a terminal button in the header or a terminal entry in the mobile
menu.
- `dashboard/explore.mdx` and the What's new bullet now describe the
backtick key as the way to open and hide the terminal dock.

## Validation

- **`WithRepl` coverage:** present in the C# and TS API data for all six
REPL packages (PostgreSQL, MySql, MongoDB, SqlServer, Redis, Valkey) and
in `aspire.d.ts`.
- **C# compile:** every new sample compiles with 0 warnings and 0 errors
against exact packages from the `f4c27f2d` feed (16 at `13.6.0`, 9 at
`26478.8`). This covers REPL×6, Rust, ConnectorNamespace, Foundry
Toolbox, Radius, CSI, Helm, Blazor (now matching #1564's
`WithExternalHttpEndpoints` sample), Provisioning and Dotnet. The Dotnet
samples need no `ASPIREDOTNETPROJECT001` suppression.
- **TS compile:** the SDK was generated by a real `aspire restore`
(codegen `13.6.0`, `Aspire.Hosting.Redis/13.6.0` and
`Aspire.Hosting.Blazor/13.6.0-preview.1.26478.8`, all at `f4c27f2d`).
Strict `tsc` (NodeNext) passes for all 18 `.mts` samples, including the
new Blazor gateway TS sample. A negative control (`withReplz`) fails
with TS2551.
- **Scanner warnings:**
- Radius reports no collisions; the earlier `withContainerImage`
collision on `CSharpAppResource` is gone.
- The `createRoleAssignment` overload collisions remain in 16
Provisioning overlays. They are recorded here, not suppressed; no doc
sample calls this method.
- **Tests:** `pnpm validate:api-data` passes (217 identities, 146
modules matched to C# provenance). These suites pass:
`test:unit:structured-data` (82), `api-reference` (55), `api-markdown`
(30), `ts-api` (31), `twoslash-types` (12), `twoslash-blocks` (2),
`llms-txt` (12) and `docs` (2).
- No local `pnpm build` was run; CI covers it.

## Not done

- **Contributors:** `update:release-contributors` needs the `v13.6.0`
tag, which doesn't exist yet. This is left for after the release is
tagged.

Co-authored-by: David Pine <7679720+IEvangelist@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
David Pine (IEvangelist) added a commit that referenced this pull request Sep 29, 2026
Completes the in-progress `aspire-13-6.mdx` draft by adding the
remaining "Ship Mode" / changelog highlights, without removing any
previously approved content.

## What's added
- **Dashboard:** Native AOT standalone dashboard + Fluent UI Blazor v5
refresh.
- **Integrations:** docked database/cache REPLs (`WithRepl()`), remote
Foundry Local services (`RunAsFoundryLocal(endpoint)`), Cosmos DB
emulator OpenTelemetry.
- **App model:** multithreaded coordinated builds, Project V2 migration
skill for agents.
- **CLI:** pin the CLI via a local tool manifest
(`AspireCliInvocationMode`), MCP config now opt-in in `aspire
new`/`init`.
- **VS Code:** outdated-CLI warning.
- Reworked the "This release introduces" list into a high-level summary
rather than a section-by-section table of contents.

## Update: TODOs and review feedback addressed

- **Merged `release/13.6`** (42 commits, including #1780 and #1684).
When resolving conflicts, I kept this PR's summary list and emoji
headings and took the release branch's corrected facts: .NET project
graduation, `-mt` SDK requirements, and the Blazor gateway publish
support. I kept the Project V2 migration skill and Remote Foundry Local
bullets.
- **All TODOs resolved; the article now has none:**
- Connector Namespace (#1781): links to
`/integrations/cloud/azure/azure-connector-namespace/`.
- Connection-string naming (#1782): links to
`/fundamentals/environment-variables/#migrating-connection-string-consumers`.
  - Foundry Toolbox (#1628): links to the Toolbox walkthrough.
- Docked REPLs (#1777): links to the per-integration **Open an
interactive REPL** sections. The six REPL anchors were broken
(`#add-*-with-a-repl-command`) and are fixed to
`#open-an-interactive-repl`.
- Java (@marshalhayes): added an `addSpringBootApp` / `AddSpringBootApp`
sample, taken from the package README.
- Rust (@afscrome): used the reviewer's
`addRustApp(...).withHttpEndpoint({ env: 'PORT' })` sample.
- **Twoslash:** every TypeScript AppHost fence is now `twoslash`. New
TypeScript-first tabs cover `withRepl`, `withTerminal`, `addRustApp`,
`addSpringBootApp`, `withBuildEnvironment`, `addDenoApp`, and
`addToolbox`.
- **Preview note:** added a "Prerelease packages" note. Java, Rust,
Connector Namespace, and Sandboxes ship as `13.6.0-preview.1`.
- **Deno bullet:** now accurately says `AddDenoApp` is experimental
(`ASPIREDENO001`) and distinct from the Community Toolkit Deno
integration.
- **API vetting:** all 45 API names in the article are verified against
microsoft/aspire `release/13.6` @ `f4c27f2d`. `WithRepl` comes from
microsoft/aspire#20419 and exists on Redis, Valkey, PostgreSQL, MySQL,
SQL Server, and MongoDB.

**Validation** was run against this branch plus the #1787 13.6.0 API
data:
- `twoslash-blocks` passes. A negative control (`withReplz`,
`addSpringBootAppz`) fails with TS2551 as expected.
- 59 API-reference and SEO tests pass.
- All internal links and anchors in the article resolve.

> [!IMPORTANT]
> Merge #1787 first. The new Twoslash blocks need its regenerated 13.6.0
types (`withRepl`, Java, Rust).

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: David Pine <7679720+IEvangelist@users.noreply.github.com>
Copilot-Session: 829e510d-2b06-4301-9759-3bd760c45e5c
Maddy Montaquila (maddymontaquila) added a commit that referenced this pull request Sep 29, 2026
Resolve conflict with the shorter section added in #1780, add a TypeScript
example, document multi-hostname and HTTPRoute 16-hostname limit behavior,
and clarify that TLS-synthesized default-backend rules are host-scoped.

Co-authored-by: Copilot App <223556219+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.

1 participant