Repository navigation
🤓 Content for release: 13.6 - #1599
Merged
Merged
Conversation
Documents changes from microsoft/aspire#19248
Co-authored-by: David Pine <david.pine@microsoft.com>
…limits (#1554) Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: James Newton-King <james@newtonking.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: JamesNK <303201+JamesNK@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Documents changes from microsoft/aspire#20528 Author: ``@mitchdenny`` Targeting `release/13.6` — the latest release branch on `microsoft/aspire.dev` — because `release/14.0` (from the source PR milestone `14.0`) does not exist there (`target_resolution`: `latest_release_fallback`). **Why:** The source PR removed the dashboard's top-right Terminals button and the mobile Terminal menu entry. The backtick shortcut is now the only manual way to open the terminal dock. Triggered signal: `pr_body_has_user_facing_section`. **Changes:** Updated the existing page `src/frontend/src/content/docs/dashboard/explore.mdx` (Interactive terminals section) to describe the backtick shortcut, the absence of header or mobile menu entries, and F6 focus behavior. > Generated by [PR Documentation Check](https://github.com/microsoft/aspire/actions/runs/36478835539) for #20528 · copilot · auto · 29.5 AIC · ⌖ 13.9 AIC · ⊞ 20.2K · [◷](https://github.com/search?q=repo%3Amicrosoft%2Faspire.dev+%22gh-aw-workflow-id%3A+pr-docs-check%22&type=pullrequests) <!-- gh-aw-agentic-workflow: PR Documentation Check, engine: copilot, model: auto, id: 36478835539, workflow_id: pr-docs-check, run: https://github.com/microsoft/aspire/actions/runs/36478835539 --> <!-- gh-aw-workflow-id: pr-docs-check --> <!-- gh-aw-workflow-call-id: microsoft/aspire/pr-docs-check --> --------- Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com> Co-authored-by: Maddy Montaquila <maddyleger1@gmail.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Documents changes from microsoft/aspire#20477 by ``@davidfowl-unknown`` Targeting `release/13.6` — the latest release branch on `microsoft/aspire.dev` — because `release/14.0` (from the source PR milestone `14.0`) does not exist there. ## Why The source PR changes the CLI/SDK skew warning: it now appears only when the CLI is older than the SDK, build metadata is ignored, `aspire update` compares against the target SDK, and the message text was reworded (`CodegenVersionSkewWarning`). Triggered signals: `cli_resource_strings_changed`, `pr_body_has_cli_flag_mention`. ## Changes (updated pages) - `src/frontend/src/content/docs/get-started/troubleshooting.mdx` - `src/frontend/src/content/docs/app-host/typescript-apphost.mdx` > Generated by [PR Documentation Check](https://github.com/microsoft/aspire/actions/runs/36487180665) for #20477 · copilot · auto · 33.9 AIC · ⌖ 17 AIC · ⊞ 20.2K · [◷](https://github.com/search?q=repo%3Amicrosoft%2Faspire.dev+%22gh-aw-workflow-id%3A+pr-docs-check%22&type=pullrequests) <!-- gh-aw-agentic-workflow: PR Documentation Check, engine: copilot, model: auto, id: 36487180665, workflow_id: pr-docs-check, run: https://github.com/microsoft/aspire/actions/runs/36487180665 --> <!-- gh-aw-workflow-id: pr-docs-check --> <!-- gh-aw-workflow-call-id: microsoft/aspire/pr-docs-check --> Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
## Summary <!-- Describe what this pull request changes and why. --> Onboards the first-party Java (`Aspire.Hosting.Java`) and Rust (`Aspire.Hosting.Rust`) hosting integrations that ship in Aspire 13.6. The Community Toolkit–based articles are replaced by the official three-article integration format that other official integrations use: | Integration | Get started | Set up in the AppHost | Connect | | --- | --- | --- | --- | | Java | `java-get-started` (rewritten) | `java-host` (rewritten) | `java-connect` (new) | | Rust | `rust-get-started` (rewritten) | `rust-host` (rewritten) | `rust-connect` (new) | - **Get started:** why to use the integration, prerequisites, an architecture diagram, and steps that lead to the other two articles. - **Set up … apps in the AppHost:** - Installation. - Java: Spring Boot, Quarkus, and Java apps (a Maven or Gradle task, or a prebuilt JAR), builds, JVM options, the OpenTelemetry Java agent, and Java containers. - Rust: Cargo and program arguments, binary selection, and environment variables. - Certificate trust, debugging, and publishing, including generated Dockerfiles. - A concise **Migrate from the Community Toolkit** section. Rust keeps the Toolkit-only Bacon note. - **Connect to … apps:** - The connection properties that consumers receive. - Connecting from the AppHost and from apps in other languages. - How the Java or Rust app reads what Aspire injects: its port, references, connection strings, OTLP telemetry settings, and development-certificate trust. - Every API mention uses the new `<ApiReference />` component. Every TypeScript AppHost sample is `twoslash`-checked, and the TypeScript tab comes first. - Adds **Connect to Java apps** and **Connect to Rust apps** to the integrations sidebar. - Updates the Java pivot of the AppHost overview (`get-started/app-host`) to use `Aspire.Hosting.Java` and `AddSpringBootApp`. The `ja` copy is updated too, because it shares the `SimpleAppHostCode` sample and its highlight ranges moved. - A separate commit changes "App Host" to "AppHost" in the EF Core architecture diagram. Facts were verified against the microsoft/aspire `release/13.6` sources, READMEs, and playgrounds. The migration mappings were verified against the Community Toolkit v13.5.0 APIs. Notes for reviewers: - The 📦 `Aspire.Hosting.Java` and `Aspire.Hosting.Rust` NuGet links resolve once 13.6 ships. - This branch is rebased on #1787, which regenerated the API data from the 13.6.0 staging build. The `twoslash` and `ApiReference` tests pass against the regenerated data. ## Third-party links and affiliations <!-- List any third-party links added or changed by this pull request and disclose any material affiliation with the linked organizations, such as employment, sponsorship, or ownership. Write "None" if this pull request doesn't add or change third-party links. --> This PR adds links to project documentation: - **Java:** dev.java, spring.io, docs.spring.io, quarkus.io, maven.apache.org, gradle.org, and docs.gradle.org. - **Rust:** rust-lang.org, doc.rust-lang.org, docs.rs (`axum`, `opentelemetry-otlp`, `reqwest`, and `sqlx`), and opentelemetry.io. - **Microsoft:** nuget.org (`CommunityToolkit.Aspire.Hosting.Rust`) and the Rust playground in github.com/microsoft/aspire. The author is a Microsoft employee. There is no material affiliation with the other linked organizations. ## Validation <!-- List the checks you ran or explain why validation isn't needed. --> - `pnpm test:unit` (after rebasing on #1787): 977 passed and 1 skipped. This includes the `twoslash-blocks`, `api-reference`, SEO-length, redirect, and Dev Hub catalog tests. - `pnpm build:skip-search`, the production build without the Pagefind index, completed before the rebase. `starlight-links-validator` reported: "All internal links are valid." - ESLint on the changed TypeScript files, the forbidden-words rules on all added lines, and `git diff --check`. - Every internal link and anchor resolves: 126 outbound links from the changed pages and 51 inbound links to the Java and Rust pages. External URLs were checked too. - The Rust samples compile with `cargo check`, using `opentelemetry-otlp` 0.33. - All six pages were checked visually on the dev server, including the diagrams, `ApiReference` labels, and tab sync. - Two independent accuracy reviews against the 13.6 sources. All of their findings were applied. --------- Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
David Pine (IEvangelist)
marked this pull request as ready for review
September 29, 2026 17:19
Eric Erhardt (eerhardt)
approved these changes
Sep 29, 2026
Contributor
There was a problem hiding this comment.
Copilot review overview
🔵 Needs a closer look
The large generated snapshot has unresolved version/provenance discrepancies, and upstream packaging and current-head CI gates remain incomplete.
Review effort: Balanced
Findings: 2
Open (4)
What changed in this PR
Prepares Aspire 13.6 documentation and API-reference data while extending ingestion and validation for the release’s expanded API surface.
Changes:
- Adds 13.6 release notes, guides, Dev Hub pages, and migration guidance.
- Regenerates integration, C#, TypeScript, and Twoslash data.
- Updates generators, routes, workflows, and validation tests.
| File | Description |
|---|---|
.github/workflows/* |
Updates release-data validation automation. |
src/tools/AtsJsonGenerator/* |
Supports diagnostics, unions, canonical enums, and stricter failures. |
src/tools/PackageJsonGenerator/* |
Records generated-export packages and provenance. |
src/statichost/StaticHost/Live/README.md |
Documents live-client 404 behavior. |
src/frontend/scripts/* |
Updates integration, API, and Twoslash generation. |
src/frontend/src/content/docs/** |
Adds and refreshes 13.6 documentation and banners. |
src/frontend/src/content/glossary/** |
Expands glossary content. |
src/frontend/src/pages/hub/** |
Adds resource and glossary browsing routes. |
src/frontend/src/components/dev-center/** |
Implements Dev Hub browsing interfaces. |
src/frontend/src/utils/** |
Updates API routing, search, package filtering, and Hub utilities. |
src/frontend/src/data/aspire-integrations.json |
Publishes the updated package catalog. |
src/frontend/src/data/integration-docs.json |
Adds package documentation mappings. |
src/frontend/src/data/pkgs/** |
Regenerates C# API-reference records. |
src/frontend/src/data/ts-modules/** |
Regenerates TypeScript API modules. |
src/frontend/src/data/twoslash/aspire.d.ts |
Rebuilds shared TypeScript declarations. |
src/frontend/tests/unit/** |
Expands generator and semantic validation. |
src/frontend/tests/e2e/** |
Updates metadata and navigation expectations. |
src/frontend/vitest.structured-data.config.ts |
Includes new validation suites. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| @@ -11,7 +11,7 @@ prev: false | |||
| next: false | |||
| banner: | |||
| content: | | |||
| <strong>✨ Aspire 13.5 is available!</strong> — <a href="/whats-new/aspire-13-5/">Explore the latest features and improvements</a> | |||
| <strong>✨ Aspire 13.6 is available!</strong> — <a href="/whats-new/aspire-13-6/">Explore the latest features and improvements</a> | |||
| "downloads": 148236, | ||
| "version": "13.5.4-preview.1.26464.4" | ||
| "downloads": 154677, | ||
| "version": "13.6.0-preview.1.26478.8" |
Comment on lines
+2
to
+4
| import HubLayout from '../../../components/dev-center/HubLayout.astro'; | ||
| import ResourceBrowser from '../../../components/dev-center/ResourceBrowser.astro'; | ||
| import { getResourceCatalog } from '../../../utils/dev-center/catalog'; |
Comment on lines
+3
to
+4
| import HubLayout from '../../../components/dev-center/HubLayout.astro'; | ||
| import GlossaryBrowser from '../../../components/dev-center/GlossaryBrowser.astro'; |
…ease notes (#1664) Documents changes from microsoft/aspire#20011 `@maddymontaquila` Targeting `release/13.6` based on the source PR milestone `13.6`. ## Why microsoft/aspire#20011 assigns the Fluent UI `CloudCube` icon to the `azure-environment` control resource so it no longer shows the dashboard's generic cog fallback icon. The PR body explicitly calls this out under a "User-facing usage" heading: "The Resources page now displays a filled cloud-and-cube icon next to the `azure-environment` resource instead of the generic cog." This is a dashboard-visible change with no existing docs coverage of the `azure-environment` resource's icon, so it needs a release-note mention. ## What changed - Added a bullet to the existing "Other dashboard improvements" list in the 13.6 release notes (`whats-new/aspire-13-6.mdx`), which is the page already tracking the 13.6 milestone this PR targets. ## Files modified - `src/frontend/src/content/docs/whats-new/aspire-13-6.mdx` > Generated by [PR Documentation Check](https://github.com/microsoft/aspire/actions/runs/34941223887) for #20011 · auto · 52.5 AIC · ⌖ 6.64 AIC · ⊞ 18.5K · [◷](https://github.com/search?q=repo%3Amicrosoft%2Faspire.dev+%22gh-aw-workflow-id%3A+pr-docs-check%22&type=pullrequests) <!-- gh-aw-agentic-workflow: PR Documentation Check, engine: copilot, model: auto, id: 34941223887, workflow_id: pr-docs-check, run: https://github.com/microsoft/aspire/actions/runs/34941223887 --> <!-- gh-aw-workflow-id: pr-docs-check --> <!-- gh-aw-workflow-call-id: microsoft/aspire/pr-docs-check --> Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Maddy Montaquila <maddyleger1@gmail.com>
Documents changes from microsoft/aspire#20490 and the planned removal of the same diagnostic from `Aspire.Hosting.Blazor`. ``@eerhardt`` ## Target branch `release/13.6` ## Summary - Document the removal of `ASPIREDOTNETPROJECT001` in Aspire 13.6 from `AddDotnetProject`, `DotnetProjectResource`, the related `WithBuildEnvironment` overloads, and the Blazor `AddDotnetProjectBlazorGateway` and matching `WithBlazorClientApp` overload. - Explain in the diagnostic reference and release notes that the additional experimental designation was unnecessary because `Aspire.Hosting.Dotnet` and `Aspire.Hosting.Blazor` are already prerelease packages. Their APIs remain unstable and may change in future releases. - Keep the integration guides focused on the packages' prerelease status and removing existing `ASPIREDOTNETPROJECT001` suppressions after upgrading to 13.6. - Remove `ASPIREDOTNETPROJECT001` from the Blazor gateway example while retaining the separate `ASPIREBLAZOR001` suppression and guidance for experimental Blazor hosting types. - Retain the diagnostic page and suppression guidance for earlier releases, and update the diagnostics overview and Aspire 13.6 release notes consistently. The Aspire 13.5 release notes and versioned API metadata remain unchanged. No new pages were created. ## Files modified - `src/frontend/src/content/docs/diagnostics/aspiredotnetproject001.mdx` - `src/frontend/src/content/docs/diagnostics/overview.mdx` - `src/frontend/src/content/docs/integrations/dotnet/blazor-hosting.mdx` - `src/frontend/src/content/docs/integrations/frameworks/dotnet/dotnet-get-started.mdx` - `src/frontend/src/content/docs/integrations/frameworks/dotnet/dotnet-host.mdx` - `src/frontend/src/content/docs/whats-new/aspire-13-6.mdx` > Originally generated by [PR Documentation Check](https://github.com/microsoft/aspire/actions/runs/36189171025) for microsoft/aspire#20490; updated following review. <!-- gh-aw-agentic-workflow: PR Documentation Check, engine: copilot, model: auto, id: 36189171025, workflow_id: pr-docs-check, run: https://github.com/microsoft/aspire/actions/runs/36189171025 --> <!-- gh-aw-workflow-id: pr-docs-check --> <!-- gh-aw-workflow-call-id: microsoft/aspire/pr-docs-check --> --------- Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com>
…1623) Documents changes from microsoft/aspire#19810 by `@mitchdenny`. Targeting `release/13.6` based on the source PR milestone `13.6`. ### Why PR #19810 changes `PublishAsAzureSandbox`/`publishAsAzureSandbox` to no longer take a sandbox-group parameter, removes `PublicEndpointReadyTimeout` from `AzureSandboxGroupOptions`, and makes sandbox groups work as compute environments that automatically assign and deploy projects (kept private unless an endpoint is explicitly external). This is a breaking change (label `breaking-change`) and the PR body includes a dedicated "User-facing usage" section, so the What's new in Aspire 13.6 page (which already documents the experimental Azure Container Apps Sandboxes integration and its breaking-changes section) needed an update to describe the new default behavior and migration path. ### What changed - `src/frontend/src/content/docs/whats-new/aspire-13-6.mdx`: - Updated the release summary bullet to note **two** breaking changes (Cosmos DB emulator default, and the new `PublishAsAzureSandbox` signature). - Updated the *Azure Container Apps Sandboxes* section under **New integrations** to describe automatic compute-environment inference and link to the new breaking-change entry. - Added a new **Breaking changes** entry, "Azure Container Apps Sandboxes now infer their compute environment", with C#/TypeScript before/after code samples for `WithComputeEnvironment` + `PublishAsAzureSandbox`, a description of the paired HTTP/HTTPS endpoint translation behavior, and a note about the removed `PublicEndpointReadyTimeout` option. No new pages were created; only the existing what's-new page was updated. > Generated by [PR Documentation Check](https://github.com/microsoft/aspire/actions/runs/33952610938) for #19810 · auto · 97.6 AIC · ⌖ 6.75 AIC · ⊞ 19.6K · [◷](https://github.com/search?q=repo%3Amicrosoft%2Faspire.dev+%22gh-aw-workflow-id%3A+pr-docs-check%22&type=pullrequests) <!-- gh-aw-agentic-workflow: PR Documentation Check, engine: copilot, model: auto, id: 33952610938, workflow_id: pr-docs-check, run: https://github.com/microsoft/aspire/actions/runs/33952610938 --> <!-- gh-aw-workflow-id: pr-docs-check --> <!-- gh-aw-workflow-call-id: microsoft/aspire/pr-docs-check --> --------- Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com>
…utes (#1574) Documents changes from microsoft/aspire#19430 `@mitchdenny` Targeting `release/13.6` based on the source PR milestone `13.6`. ## Why microsoft/aspire#19430 fixes Kubernetes hostname publishing and routing: `WithHostname(...)` on an `AddIngress`/`AddGateway` now applies to hostless `WithPath`/`WithRoute` calls instead of leaving them as catch-all rules, while `WithDefaultBackend(endpoint)` keeps generating a catch-all rule as before. The PR body's "User-facing usage" section shows this new scoping behavior in both C# and TypeScript AppHost samples, which triggered the `pr_body_has_user_facing_section` signal — the existing docs describe `WithHostname`/`WithPath`/`WithDefaultBackend` but didn't previously explain this inheritance rule. ## What changed - `src/frontend/src/content/docs/deployment/kubernetes-ingress.mdx`: added a new "Hostname inheritance for paths and routes" section after the path-routing example, explaining that `WithHostname(...)` now scopes hostless paths/routes, that explicit per-path/route hostnames still take precedence, and that `WithDefaultBackend(...)` remains an unscoped catch-all (including its TLS compatibility rule). Includes a version note that this inheritance behavior applies from Aspire 13.6 onward. No new pages were created; this is a targeted addition to the existing Ingress/Gateway walkthrough page since the behavior applies to both `AddIngress` and `AddGateway` (the Gateway-specific AKS walkthrough already links back to this page for the shared concepts). > Generated by [PR Documentation Check](https://github.com/microsoft/aspire/actions/runs/32791545936) for #19430 · auto · 79.6 AIC · ⌖ 8.28 AIC · ⊞ 19.6K · [◷](https://github.com/search?q=repo%3Amicrosoft%2Faspire.dev+%22gh-aw-workflow-id%3A+pr-docs-check%22&type=pullrequests) <!-- gh-aw-agentic-workflow: PR Documentation Check, engine: copilot, model: auto, id: 32791545936, workflow_id: pr-docs-check, run: https://github.com/microsoft/aspire/actions/runs/32791545936 --> <!-- gh-aw-workflow-id: pr-docs-check --> <!-- gh-aw-workflow-call-id: microsoft/aspire/pr-docs-check --> --------- Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Maddy Montaquila <maddyleger1@gmail.com> Co-authored-by: Alistair Matthews <alistairwebdojo@live.com> Co-authored-by: Maddy Montaquila <maleger@microsoft.com>
…bernetes (#1565) Documents changes from microsoft/aspire#19429 `@mitchdenny` ## Why this is needed The source PR fixes how Aspire generates Helm values for parameters that are embedded inside a larger environment-variable expression (e.g. interpolated into a URL). Previously, Kubernetes publishing could emit incomplete Helm output (e.g. `(redacted) because the embedded parameter was not declared as its own values entry. The fix declares embedded config/secret parameters directly in `values.yaml`, resolves composite/conditional expressions at deploy time, and rejects values-path conflicts instead of silently overwriting them. This is a user-facing behavior change to the generated Helm chart output, so the docs need to describe the new values.yaml shape. ## What changed - `src/frontend/src/content/docs/deployment/kubernetes/clusters.mdx`: Added a new subsection under "Environment-specific configuration" that documents how Aspire now declares embedded parameters as their own `values.yaml` entries (with a C#/TypeScript example matching the source PR's reproduction), shows the generated YAML shape, and notes the values-path conflict rejection behavior. No new pages were created; this is an update to an existing page. > Generated by [PR Documentation Check](https://github.com/microsoft/aspire/actions/runs/32689590583) for #19429 · auto · 79 AIC · ⌖ 12.6 AIC · ⊞ 19.6K · [◷](https://github.com/search?q=repo%3Amicrosoft%2Faspire.dev+%22gh-aw-workflow-id%3A+pr-docs-check%22&type=pullrequests) <!-- gh-aw-agentic-workflow: PR Documentation Check, engine: copilot, model: auto, id: 32689590583, workflow_id: pr-docs-check, run: https://github.com/microsoft/aspire/actions/runs/32689590583 --> <!-- gh-aw-workflow-id: pr-docs-check --> <!-- gh-aw-workflow-call-id: microsoft/aspire/pr-docs-check --> Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Maddy Montaquila <maleger@microsoft.com>
David Pine (IEvangelist)
added a commit
that referenced
this pull request
Oct 5, 2026
) ## Summary <!-- Describe what this pull request changes and why. --> Fixes the failing scheduled [Integration Data Updater run](https://github.com/microsoft/aspire.dev/actions/runs/36928288291/job/110590941798), and makes API regeneration faster and more resilient. **Root cause.** The TypeScript API phase failed with `144 succeeded, 2 failed, 7 skipped`. The two failures were `Aspire.Hosting.Azure.Provisioning.Kusto` and `Aspire.Hosting.Azure.Provisioning.Network` (`13.6.0-preview.1.26479.8`). The shipped Aspire CLI (`13.6.0+56f3e9c0d`) exports an inherited `AddTo` once per derived proxy type, all under the base type's capability ID. It reports every collision as a `Duplicate capability` error and exits 1, although it still writes the dump. Since #1599 the generator fails closed on any dump error, so the whole run aborted. The scanner fix is microsoft/aspire#20443. ### Changes - **Narrow tolerance (AtsJsonGenerator).** The new `--tolerate-known-scanner-diagnostics` flag accepts only the inherited duplicate-capability diagnostic. Both definitions must be in the capability's namespace, on different types, with the same member name, and that name must match the capability method. Each defining type must also be a handle type in the dump that is the type owning the capability ID or lists it in `HandleTypes.BaseTypeHierarchy`, so unrelated types that share a capability ID still fail. Each tolerated message is printed, and any other error diagnostic still fails. - **Fail-closed script wiring.** `generate-ts-api-json.ps1` passes the flag only when the CLI exits nonzero without timing out and still writes a dump. The package fails if nothing was actually tolerated. - **Reporting (orchestrator).** `update-integration-data.ps1` emits a `::warning` annotation for tolerated diagnostics. It also adds a **Tolerated ATS scanner diagnostics** section and a review checklist item to the PR body it generates. The section lists the packages and has a collapsible list of diagnostics. - **Faster, more resilient TypeScript generation.** `generate-ts-api-json.ps1` processes packages concurrently in dependency waves: 1. core 2. independent packages 3. packages that need a supporting scan context Up to `min(cores, 8)` packages run at a time. Set `ASPIRE_TS_API_PARALLELISM` to override this; `-AspireRepoPath` runs stay sequential. Each Aspire CLI `dump` and `export` call has a 10-minute timeout and gets up to 3 attempts. The transformer and the enum supplement each have a 5-minute timeout. Each package's log is printed as a block when that package finishes, so logs stay readable. - **Faster C# generation.** `generate-package-json.ps1` restores package graphs concurrently and retries each restore up to 3 times. It honors `-Parallelism` and `-Sequential`, and its output and summary format are unchanged. - **Docs.** Updated the `update-integrations` skill and both generator READMEs. ### Reviewer notes - Remove the tolerance once the CLI that the workflow installs includes microsoft/aspire#20443. `KnownScannerDiagnostics.cs` says this too. - nuget.org replaced `13.6.0-preview.1.26478.8` with `13.6.0-preview.1.26479.8`. The first bot PR will bump the 50 catalog entries that are pinned to `26478.8`; this PR doesn't include that bump. - The next bot PR will remove an export from the `Aspire.Hosting.Radius` module. This isn't caused by this PR. - With the stable CLI, the regenerated module drops `withDotnetProgramContainerImage`, the `IDotnetProgramResource` overload of `withContainerImage`. This happens even with the `Aspire.Hosting.Dotnet` scan context, and the script on `main` drops it too. - The semantic validator doesn't check whether every export is present, so it won't flag this. - After merging, run `gh workflow run update-integration-data.yml --repo microsoft/aspire.dev` instead of waiting for the next scheduled run. ## Third-party links and affiliations <!-- List any third-party links added or changed by this pull request and disclose any material affiliation with the linked organizations, such as employment, sponsorship, or ownership. Write "None" if this pull request doesn't add or change third-party links. --> None ## Validation <!-- List the checks you ran or explain why validation isn't needed. --> All runs used the same Aspire CLI as CI (`13.6.0+56f3e9c0d`, set via `ASPIRE_CLI_PATH`) on a 20-core Windows machine. The default parallelism there was 8; CI's 4-vCPU runner will use 4. - `dotnet test tests/AtsJsonGenerator.Tests`: passed (37/37). This includes new tests that accept and report matching diagnostics. They also reject look-alike and unrelated errors, unrelated types that share a capability ID, and defining types missing from the dump's `HandleTypes`. - After the review fix, I re-dumped Kusto and Network with the stable CLI and ran the transformer with `--tolerate-known-scanner-diagnostics`. Both exited 0, with 5 and 2 diagnostics tolerated. Without the flag, both still fail. - Upstream runners were backed up, so I also ran the PR checks that support `workflow_dispatch` on my fork at `eca5c048`. All passed: [Tools Tests](https://github.com/IEvangelist/aspire.dev/actions/runs/37017188918) (41 PackageJsonGenerator and 37 AtsJsonGenerator tests), [Forbidden Words](https://github.com/IEvangelist/aspire.dev/actions/runs/37017241429) over `96fb149d..eca5c04`, and [CodeQL](https://github.com/IEvangelist/aspire.dev/actions/runs/37017691344) (no C# alerts; the only JS/TS alert is in existing code this PR doesn't touch). Upstream Frontend Build and Frontend validation passed on the first commit, and the review fix doesn't touch `src/frontend`. - `pnpm exec vitest run --config vitest.config.ts tests/unit/update-integrations.vitest.test.ts` (in `src/frontend`): passed (42/42). - **End-to-end replay of the regeneration phases.** I temporarily bumped the catalog to `26479.8`, used a cold NuGet cache, and pointed `ASPIRE_API_*` at a staging directory. - `pwsh src/tools/PackageJsonGenerator/generate-package-json.ps1 -OutputDir <stage>/pkgs`: `Done! Success: 210 | Failed: 0 | Skipped: 7` in 3:21. - `pnpm run normalize:api-data -- --pkgs`: passed. - `pnpm run update:ts-api`: `Complete: 146 succeeded, 0 failed, 7 skipped` in 4:05 (3:47 of it generation). It tolerated 5 Kusto and 2 Network diagnostics. - `pnpm run validate:api-data`: passed. It reconciled 217 package identities, matched 146 modules to C# provenance, checked 74 DTO shapes and 2,873 inheritance chains, and checked attribute payloads against HEAD. - Run against the real `update:ts-api` log, the orchestrator's parsing and PR-body code rendered both packages, all 7 diagnostics, and the `::warning` annotation. - **Comparison with the scripts on `main`, using the same inputs:** - TypeScript: 3:48 in parallel vs 13:46 sequentially. All 122 modules that both runs produced are byte-identical. Both runs had the same failures for packages pinned to the deleted `26478.8` builds. - C#: 3:21 in parallel with a cold cache vs 8:28 sequentially with a warm cache. Both runs reported `Success: 210 | Failed: 0 | Skipped: 7`, and 208 of 210 files are byte-identical. The other 2 (`Aspire.Hosting` and `Aspire.Hosting.JavaScript` 13.6.0) differ only in `sourceCommit`, because my warm cache held a pre-release build of those packages. - For reference, the failed CI job spent 8m02s in C# generation and 12m46s in TypeScript generation before it failed. --------- Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This was referenced Oct 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Summary
Prepare the Aspire 13.6 documentation release. The release article is reconciled against
microsoft/aspirerelease/13.6 ata11eca9611073f7cf66fa87faac63c2119e87713, compared withv13.5.0. The inventory contains 402 first-parent history entries, including maintenance, merges, and reversions—not 402 distinct shipped features.Highlights cover dashboard persistence/run history and terminals; Java, Rust, Connector Namespace and Sandboxes; coordinated .NET builds; CLI and VS Code workflows; deployment and integration improvements; emulator images; and migration guidance for Cosmos DB, Front Door, connection-string aliases, and terminal namespaces.
Published documentation and ingestion work
94b5f0c19: migrate Java guides from Toolkit to first-party hosting, document typed Azure provisioning customization and VS Code agent lifecycle tools, and refresh 34 container-image records from the pinned release source. Default tag changes: App Configuration1.0.2 → 1.2.0, Cosmos DBstable → vnext-latest.27e2db77a: exact release-version selection, ATS-only package metadata, union and canonical SDK enum handling, empty C# navigation filtering, and fail-closed handling of SDK dump errors.0b64558c1: reconcile all 29 contributors against the pinned release snapshot.2696e2207: recognize const-object enum declarations, retain colliding enum-name literals in the shared Twoslash bundle while preserving exact package-specific JSON, and increase the full example-audit time budget for the larger dataset.7ab5f74bd: include the exact Dotnet package as supporting scan context for Radius's generic .NET program export; subtract core/supporting modules without dropping Radius's real IDs or receiver targets.44b9819bb: publish the complete, validated 13.6 catalog, mappings, C#/TypeScript API data, and Twoslash bundle together.The maintainer-set planned release date remains September 29, 2026 (#1690). Published package constants remain separate from prerelease ingestion. Release membership comes from product source, not merely a docs PR's target; #1740 documents microsoft/aspire#20231 (14.0), not a 13.6 feature.
Generated data and provenance
The published snapshot contains 217 catalog entries, 161 documentation mappings (including the 26 new mappings), 210 C# records, 146 TypeScript modules, and the rebuilt Twoslash bundle. There are 132 official packages at exact version
13.6.0-preview.1.26473.12, with no 14.x imports. Independently versioned packages retain their selected catalog versions.Generation used genuine pinned packages from the public dotnet9 feed and an isolated, locally built 13.6 CLI/RemoteHost. Package provenance remains
a11eca9611073f7cf66fa87faac63c2119e87713; the scanner fixes are separate development-build provenance, not a claim that an official corrected CLI has shipped.320eed42f85a7d4b090a9429b98c7a6a8547a4b8) produced 146 modules, 0 failures, and 7 explicit skips.435fd4eb7d06ef99702ae5106cf01c10f5c6a780) succeeded. The real compound Radius + exact Dotnet SDK dump has no diagnostics and retains bothwithContainerImageandwithDotnetProgramContainerImagecapability IDs.Third-party links and affiliations
microsoft/aspire; Java debugger links point to the corresponding Visual Studio Marketplace extensions. No new material affiliation claims.Validation
Remaining release gates
5482164dc1225f3c2a1a93bf5055e11b720117e9. 13.6 backport: [release/13.6] Fix duplicate inherited ATS method exports aspire#20443, draft, latest commit435fd4eb7d06ef99702ae5106cf01c10f5c6a780. Both require human review/merge; neither has been merged or released by this session. Latest-commit CI is still being monitored.13.6#1599 (comment).