Skip to content

Enable Azure C# emitters in the Azure TypeSpec playground - #5968

Closed
JoshLove-msft wants to merge 8 commits into
Azure:mainfrom
JoshLove-msft:joshlove-msft-azure-csharp-playground
Closed

JoshLove-msft wants to merge 8 commits into
Azure:mainfrom
JoshLove-msft:joshlove-msft-azure-csharp-playground

Conversation

@JoshLove-msft

@JoshLove-msft JoshLove-msft commented Nov 4, 2026 •

Copy link
Copy Markdown
Member

Summary

Enable the Azure C# data-plane, management-plane, and provisioning emitters in the Azure standalone and website playgrounds using the shared libraries/deferredEmitters configuration, following the TypeSpec playground approach.

Both playgrounds load each emitter's published latest.json browser import map from TypeSpec package storage. The standalone playground registers emitters whose maps load successfully. The website merges these additional maps only for the latest compiler selection, not historical versions. Browser emitter modules remain deferred until selected.

Keep the C# emitters out of npm dependencies and Vite's locally bundled libraries. Convert the locally generated native import map to importmap-shim so existing local libraries remain resolvable after adding remote shim maps. No /generators catalog loader or custom C# mock tests are included.

Relates to Azure/azure-sdk-for-net#64101.

Prerequisites

Azure/azure-sdk-for-net#64544 and microsoft/typespec#12497 have merged the browser artifact publication and hosted Azure generator deployment implementations. Actual publication of the three emitter import maps and deployment of the hosted generators remain rollout prerequisites; their completion and end-to-end Azure C# generation have not been verified here. This PR does not publish artifacts or deploy the service. The loading review thread remains open pending end-to-end evidence.

Validation

Current head: 3b3959635899615792a1a53e1539359a00580d7a.

  • CI builds passed on Ubuntu with Node 22, 24, and 26, and Windows with Node 24 and 26. Windows Node 22 is still running as of this update.
  • Website, Format, Lint, Check Changes, and preview checks passed.
  • The E2E job failed in eng/feeds/test/init-templates.e2e.ts: both standalone template validation tests fail during npm install with ERESOLVE. The generated projects request @typespec/rest@^0.88.0, while published @azure-tools/typespec-azure-core@0.73.0 requires @typespec/rest@^0.87.0. Those feed templates, tests, and package versions are unchanged by this PR. No peer-dependency bypass or unrelated template change was made.
  • The job failure does not establish a passing playground browser E2E run. Actual Azure C# generation remains unverified.

These are current-head CI results, not the removed catalog-loader tests or validation from earlier revisions.

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

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

No changes needing a change description found.

@github-actions

github-actions Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

📦 Package size report

4 packages changed size, +22.59 KB (+0.1%) packed overall.

Package Packed (base → head) Δ Packed Unpacked (base → head) Δ Unpacked
@azure-tools/typespec-go 290.61 KB → 303.39 KB +12.78 KB (+4.4%) 🔴 1.48 MB → 1.55 MB +71.91 KB (+4.7%) 🔴
@azure-tools/azure-http-specs 150.23 KB → 155.02 KB +4.79 KB (+3.2%) 🔴 1.25 MB → 1.27 MB +26.52 KB (+2.1%) 🔴
@azure-tools/typespec-azure-core 140.92 KB → 144.66 KB +3.74 KB (+2.7%) 🔴 753.75 KB → 771.39 KB +17.64 KB (+2.3%) 🔴
@azure-tools/typespec-azure-rulesets 6.06 KB → 6.21 KB +154 B (+2.5%) 36.10 KB → 38.47 KB +2.38 KB (+6.6%) 🔴
10 package(s) with no notable change
Package Packed (base → head) Δ Packed Unpacked (base → head) Δ Unpacked
@azure-tools/typespec-ts 550.68 KB → 551.24 KB +578 B (+0.1%) 2.75 MB → 2.76 MB +1.92 KB (+0.1%)
@azure-tools/typespec-azure-resource-manager 210.53 KB → 210.18 KB -363 B (-0.2%) 1.26 MB → 1.26 MB -1.79 KB (-0.1%)
@azure-tools/typespec-client-generator-core 264.20 KB → 264.53 KB +334 B (+0.1%) 1.40 MB → 1.40 MB -3.28 KB (-0.2%)
@azure-tools/typespec-azure-examples 96.70 KB → 96.99 KB +297 B (+0.3%) 486.12 KB → 487.04 KB +944 B (+0.2%)
@azure-tools/typespec-autorest 88.49 KB → 88.65 KB +159 B (+0.2%) 427.62 KB → 427.94 KB +325 B (+0.1%)
@azure-tools/typespec-python 42.58 KB → 42.66 KB +82 B (+0.2%) 166.02 KB → 166.15 KB +139 B (+0.1%)
@azure-tools/typespec-java 20.23 MB → 20.23 MB +71 B (+0.0%) 22.53 MB → 22.53 MB +139 B (+0.0%)
@azure-tools/typespec-azure-portal-core 36.32 KB → 36.33 KB +3 B (+0.0%) 243.05 KB → 243.09 KB +43 B (+0.0%)
@azure-tools/typespec-autorest-canonical 7.42 KB → 7.42 KB — 26.00 KB → 26.00 KB —
@azure-tools/typespec-metadata 15.88 KB → 15.88 KB — 62.08 KB → 62.08 KB —

Packed = gzipped .tgz published to npm. Unpacked = total extracted size. 🆕 added, 🗑️ removed. Packages from the core/ submodule are not included.
🔴 grew · 🟢 shrank — only changes of at least 512 B and 0.5% are marked.

@azure-sdk-automation

Copy link
Copy Markdown
Contributor

You can try these changes here

🛝 Playground 🌐 Website

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
JoshLove-msft and others added 3 commits November 5, 2026 12:07
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep externally supplied deferred emitters out of local library bundling while retaining the runtime library list.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@JoshLove-msft
JoshLove-msft added this pull request to the merge queue Nov 9, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Nov 9, 2026
JoshLove-msft and others added 2 commits November 10, 2026 14:53
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Deferred emitters are published separately from the Azure library index, so both Azure playgrounds now merge each emitter's latest.json import map, matching the TypeSpec website. Emitters without a published map are skipped.

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

meta:website TypeSpec.io updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants