Skip to content

Stop publishing typespec-vscode/typespec-vs to npm & run build on Linux#11170

Draft
timotheeguerin wants to merge 1 commit into
mainfrom
timotheeguerin/retire-vscode-vs-npm-packages
Draft

Stop publishing typespec-vscode/typespec-vs to npm & run build on Linux#11170
timotheeguerin wants to merge 1 commit into
mainfrom
timotheeguerin/retire-vscode-vs-npm-packages

Conversation

@timotheeguerin

Copy link
Copy Markdown
Member

Fixes part of #11168 (part 2). Re-implements the build optimization from the closed #6907.

Now that the VS Code and Visual Studio extensions are installed from their respective marketplaces (part 1, #11169), publishing typespec-vscode and typespec-vs to npm is redundant. This PR stops publishing them and optimizes the build pipeline.

Stop publishing to npm

  • Mark typespec-vscode and typespec-vs as "private": true.
  • chronus pack iterates only non-private packages, so they drop out of the npm-packages-* artifacts and are no longer pushed to npm.
  • They remain in their chronus lockstep version policies (typespec-stable / typespec-preview), so the extension versions keep advancing for marketplace releases. This mirrors the existing @typespec/standalone-cli pattern (private: true + still in a lockstep policy).

Optimize the build pipeline (re-implements #6907)

The build stage previously ran entirely on Windows solely to build the Visual Studio extension (.NET/VS SDK). This splits that out so the bulk of the build runs on Linux:

  • Renamed build-for-publish.ymlbuild-packages.yml, moved it to a Linux pool, and set TYPESPEC_SKIP_VS_BUILD: true. It still builds/tests everything else and produces the npm packs, the VS Code .vsix, bundler packages, scenario manifest, and playground.
  • Added build-vs.yml, a dedicated Windows job that builds only the VS extension (TYPESPEC_VS_CI_BUILD: true) and outputs the vs-extension-unsigned artifact (same name as before).
  • Updated publish.yml to drop the stage-level Windows pool and reference both jobs.

Artifact names (npm-packages-stable, npm-packages-next, vscode-extension-unsigned, vs-extension-unsigned) and the build job/pack step names are preserved, so the downstream sign/publish stages are unchanged.

Validation

  • chronus verify passes; pnpm install --frozen-lockfile is unaffected by the private flag.
  • ⚠️ The ADO publish pipeline restructure (pool split) can't be executed locally and should be validated with a real pipeline run before merge.

Mark the typespec-vscode and typespec-vs packages as private so they are no longer published to npm (they are installed from their marketplaces). They stay in their chronus lockstep version policies so the extension versions keep advancing, matching the @typespec/standalone-cli pattern.

Split the VS extension build (.NET/VS SDK, Windows) into a dedicated build-vs job so the main build-packages job runs on Linux, following the approach from #6907.

Fixes part of #11168
@microsoft-github-policy-service microsoft-github-policy-service Bot added ide Issues for VS, VSCode, Monaco, etc. eng labels Jul 4, 2026
@github-actions

github-actions Bot commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

No changes needing a change description found.

@azure-sdk-automation

Copy link
Copy Markdown

You can try these changes here

🛝 Playground 🌐 Website 🛝 VSCode Extension

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

eng ide Issues for VS, VSCode, Monaco, etc.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant