Skip to content

Add polyglot exports for Aspire.Hosting.Orleans#14891

Merged
sebastienros merged 8 commits intorelease/13.2from
sebros/polyglot-orleans
Mar 5, 2026
Merged

Add polyglot exports for Aspire.Hosting.Orleans#14891
sebastienros merged 8 commits intorelease/13.2from
sebros/polyglot-orleans

Conversation

@sebastienros
Copy link
Copy Markdown
Contributor

Description

Add polyglot AspireExport coverage for Aspire.Hosting.Orleans.
Related to #14069.

Validation:

  • dotnet build src/Aspire.Hosting.Orleans/Aspire.Hosting.Orleans.csproj -v minimal
  • (cd playground/polyglot/TypeScript/Aspire.Hosting.Orleans/ValidationAppHost && npx tsc --noEmit)

Fixes # (issue)

Checklist

  • Is this feature complete?
    • Yes. Ready to ship.
    • No. Follow-up changes expected.
  • Are you including unit tests for the changes and scenario tests if relevant?
    • Yes
    • No
  • Did you add public API?
    • Yes
      • If yes, did you have an API Review for it?
        • Yes
        • No
      • Did you add <remarks /> and <code /> elements on your triple slash comments?
        • Yes
        • No
    • No
  • Does the change make any security assumptions or guarantees?
    • Yes
      • If yes, have you done a threat model and had a security review?
        • Yes
        • No
    • No
  • Does the change require an update in our Aspire docs?

Copilot AI review requested due to automatic review settings March 3, 2026 18:07
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 3, 2026

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/dotnet/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 14891

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/dotnet/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 14891"

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds ATS/polyglot export coverage for Aspire.Hosting.Orleans so TypeScript AppHosts can configure Orleans resources via generated capabilities, and includes a TypeScript ValidationAppHost to compile-check the generated SDK surface.

Changes:

  • Annotates Orleans resource types and extension methods with [AspireExport] and marks non-polyglot-friendly overloads with [AspireExportIgnore].
  • Adds Orleans TypeScript ValidationAppHost (tsconfig/package manifests, generated .modules, and sample apphost.ts) to validate codegen/typing.
  • Exposes Orleans “silo” and “client” reference wiring as separate polyglot capabilities.

Reviewed changes

Copilot reviewed 12 out of 14 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/Aspire.Hosting.Orleans/OrleansServiceExtensions.cs Adds [AspireExport] coverage for Orleans configuration APIs and reference wiring; adds ignore annotations for non-polyglot overloads.
src/Aspire.Hosting.Orleans/OrleansServiceClientExtensions.cs Exports the Orleans client reference wiring capability for polyglot AppHosts.
src/Aspire.Hosting.Orleans/OrleansServiceClient.cs Marks Orleans client type as an ATS-exported type.
src/Aspire.Hosting.Orleans/OrleansService.cs Marks Orleans service type as an ATS-exported type.
playground/polyglot/TypeScript/Aspire.Hosting.Orleans/ValidationAppHost/tsconfig.json TypeScript compiler configuration for Orleans ValidationAppHost.
playground/polyglot/TypeScript/Aspire.Hosting.Orleans/ValidationAppHost/package.json NPM manifest for the Orleans ValidationAppHost.
playground/polyglot/TypeScript/Aspire.Hosting.Orleans/ValidationAppHost/package-lock.json Dependency lockfile for Orleans ValidationAppHost.
playground/polyglot/TypeScript/Aspire.Hosting.Orleans/ValidationAppHost/apphost.ts TypeScript AppHost script exercising the exported Orleans capabilities.
playground/polyglot/TypeScript/Aspire.Hosting.Orleans/ValidationAppHost/apphost.run.json Run profile/environment variables for the Orleans ValidationAppHost.
playground/polyglot/TypeScript/Aspire.Hosting.Orleans/ValidationAppHost/.modules/transport.ts Generated ATS transport/runtime support for the ValidationAppHost.
playground/polyglot/TypeScript/Aspire.Hosting.Orleans/ValidationAppHost/.modules/base.ts Generated base types/helpers for the ValidationAppHost.
playground/polyglot/TypeScript/Aspire.Hosting.Orleans/ValidationAppHost/.modules/.codegen-hash Tracks codegen hash for generated .modules output.
playground/polyglot/TypeScript/Aspire.Hosting.Orleans/ValidationAppHost/.aspire/settings.json Configures the ValidationAppHost as a TypeScript AppHost and references the Orleans package.
Files not reviewed (1)
  • playground/polyglot/TypeScript/Aspire.Hosting.Orleans/ValidationAppHost/package-lock.json: Language not supported

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 3, 2026

🎬 CLI E2E Test Recordings

The following terminal recordings are available for commit f47772f:

Test Recording
AddPackageInteractiveWhileAppHostRunningDetached ▶️ View Recording
AddPackageWhileAppHostRunningDetached ▶️ View Recording
AgentCommands_AllHelpOutputs_AreCorrect ▶️ View Recording
AgentInitCommand_MigratesDeprecatedConfig ▶️ View Recording
AgentInitCommand_WithMalformedMcpJson_ShowsErrorAndExitsNonZero ▶️ View Recording
AspireUpdateRemovesAppHostPackageVersionFromDirectoryPackagesProps ▶️ View Recording
Banner_DisplayedOnFirstRun ▶️ View Recording
Banner_DisplayedWithExplicitFlag ▶️ View Recording
CreateAndDeployToDockerCompose ▶️ View Recording
CreateAndDeployToDockerComposeInteractive ▶️ View Recording
CreateAndPublishToKubernetes ▶️ View Recording
CreateAndRunAspireStarterProject ▶️ View Recording
CreateAndRunAspireStarterProjectWithBundle ▶️ View Recording
CreateAndRunJsReactProject ▶️ View Recording
CreateAndRunPythonReactProject ▶️ View Recording
CreateAndRunTypeScriptStarterProject ▶️ View Recording
CreateEmptyAppHostProject ▶️ View Recording
CreateStartAndStopAspireProject ▶️ View Recording
CreateStartWaitAndStopAspireProject ▶️ View Recording
CreateTypeScriptAppHostWithViteApp ▶️ View Recording
DescribeCommandResolvesReplicaNames ▶️ View Recording
DescribeCommandShowsRunningResources ▶️ View Recording
DetachFormatJsonProducesValidJson ▶️ View Recording
DoctorCommand_DetectsDeprecatedAgentConfig ▶️ View Recording
DoctorCommand_WithSslCertDir_ShowsTrusted ▶️ View Recording
DoctorCommand_WithoutSslCertDir_ShowsPartiallyTrusted ▶️ View Recording
LogsCommandShowsResourceLogs ▶️ View Recording
PsCommandListsRunningAppHost ▶️ View Recording
PsFormatJsonOutputsOnlyJsonToStdout ▶️ View Recording
SecretCrudOnDotNetAppHost ▶️ View Recording
SecretCrudOnTypeScriptAppHost ▶️ View Recording
StagingChannel_ConfigureAndVerifySettings_ThenSwitchChannels ▶️ View Recording
StopAllAppHostsFromAppHostDirectory ▶️ View Recording
StopAllAppHostsFromUnrelatedDirectory ▶️ View Recording
StopNonInteractiveMultipleAppHostsShowsError ▶️ View Recording
StopNonInteractiveSingleAppHost ▶️ View Recording
StopWithNoRunningAppHostExitsSuccessfully ▶️ View Recording
TypeScriptAppHostWithProjectReferenceIntegration ▶️ View Recording

📹 Recordings uploaded automatically from CI run #22697464622

@dotnet-policy-service dotnet-policy-service bot added the needs-author-action An issue or pull request that requires more info or actions from the author. label Mar 3, 2026
davidfowl
davidfowl previously approved these changes Mar 4, 2026
@davidfowl davidfowl dismissed stale reviews from IEvangelist and themself March 4, 2026 02:03

changes mde

sebastienros and others added 8 commits March 4, 2026 17:09
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Rename withSiloReference → withOrleansReference and
withClientReference → withOrleansClientReference to follow the pattern
used by other integrations (e.g., withServiceReference for
IResourceWithServiceDiscovery).

Update playground ValidationAppHost and regenerate TypeScript SDK.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Removed sdkVersion and cleared Aspire.Hosting.Orleans version.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@sebastienros sebastienros force-pushed the sebros/polyglot-orleans branch from f6e70b9 to f47772f Compare March 5, 2026 01:11
@sebastienros sebastienros merged commit 09f3dcf into release/13.2 Mar 5, 2026
385 checks passed
@sebastienros sebastienros deleted the sebros/polyglot-orleans branch March 5, 2026 03:16
@dotnet-policy-service dotnet-policy-service bot added this to the 13.2 milestone Mar 5, 2026
eerhardt pushed a commit to eerhardt/aspire that referenced this pull request Mar 7, 2026
* Add AspireExport coverage for Orleans

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

* Update src/Aspire.Hosting.Orleans/OrleansServiceExtensions.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/Aspire.Hosting.Orleans/OrleansServiceClientExtensions.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix XML documentation return tags in OrleansServiceExtensions

* Address review feedback for polyglot-orleans

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

* Rename Orleans WithReference export IDs to match naming conventions

Rename withSiloReference → withOrleansReference and
withClientReference → withOrleansClientReference to follow the pattern
used by other integrations (e.g., withServiceReference for
IResourceWithServiceDiscovery).

Update playground ValidationAppHost and regenerate TypeScript SDK.

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

* Cleanup settings.json

Removed sdkVersion and cleared Aspire.Hosting.Orleans version.

* Regenerate Orleans playground after rebase on release/13.2

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI pushed a commit that referenced this pull request Mar 10, 2026
* Add AspireExport coverage for Orleans

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

* Update src/Aspire.Hosting.Orleans/OrleansServiceExtensions.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/Aspire.Hosting.Orleans/OrleansServiceClientExtensions.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix XML documentation return tags in OrleansServiceExtensions

* Address review feedback for polyglot-orleans

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

* Rename Orleans WithReference export IDs to match naming conventions

Rename withSiloReference → withOrleansReference and
withClientReference → withOrleansClientReference to follow the pattern
used by other integrations (e.g., withServiceReference for
IResourceWithServiceDiscovery).

Update playground ValidationAppHost and regenerate TypeScript SDK.

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

* Cleanup settings.json

Removed sdkVersion and cleared Aspire.Hosting.Orleans version.

* Regenerate Orleans playground after rebase on release/13.2

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@github-actions github-actions bot locked and limited conversation to collaborators Apr 4, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

needs-author-action An issue or pull request that requires more info or actions from the author.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants