Skip to content

Document cross-assembly ATS exports#15810

Merged
davidfowl merged 1 commit intomainfrom
sebros/issue-14884-cross-assembly-polyglot-docs
Apr 4, 2026
Merged

Document cross-assembly ATS exports#15810
davidfowl merged 1 commit intomainfrom
sebros/issue-14884-cross-assembly-polyglot-docs

Conversation

@sebastienros
Copy link
Copy Markdown
Contributor

Description

This documents the cross-assembly ATS export behavior behind polyglot AppHost type generation so issue #14884 has a concrete explanation in the existing ATS spec. Reviewers were missing guidance on what happens when one assembly exports a type and another assembly contributes capabilities that use it.

The update keeps the change scoped to the existing spec by expanding docs/specs/polyglot-apphost.md with a focused cross-assembly exports subsection and by adding a small related cleanup in ThirdPartyAtsAttributes.md. The new text explains when to use assembly-level AspireExport(typeof(T)), how ATS type IDs are derived from the exported CLR type, how multi-assembly scanning merges exported types and capabilities, and why duplicate capability IDs are still errors.

Fixes #14884

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 April 2, 2026 20:11
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 2, 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/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 15810

Or

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

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

Updates the polyglot AppHost ATS specification to explicitly document how type exports and capability scanning behave when types and capabilities are split across multiple assemblies (addressing #14884), and links that guidance from the third-party ATS attribute copy instructions.

Changes:

  • Documented cross-assembly ATS exports in the polyglot AppHost spec (type ID derivation, multi-assembly scan merging, and duplicate capability ID errors).
  • Clarified that ATS type IDs are derived from {AssemblyName}/{FullTypeName} in the third-party attributes documentation and added a pointer to the spec section.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
src/Aspire.Hosting/Ats/ThirdPartyAtsAttributes.md Updates type ID wording to use full type name and links to the spec’s cross-assembly export behavior section.
docs/specs/polyglot-apphost.md Adds a focused “Cross-Assembly Type Exports” subsection explaining scanning/merging behavior and type ID source.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@sebastienros sebastienros force-pushed the sebros/issue-14884-cross-assembly-polyglot-docs branch from 46e75d0 to d3e168e Compare April 4, 2026 01:33
@davidfowl davidfowl merged commit 2745734 into main Apr 4, 2026
5 checks passed
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.

Document cross-assembly polyglot type exports

3 participants