Skip to content

feat: support .NET 10 isolated and bump CLI to 2.1.0 - #1016

Merged
Long Hao (LongOddCode) merged 1 commit into
Azure:mainfrom
LongOddCode:developer/haolong_microsoft/dotnet10-minor-release
Oct 20, 2026
Merged

Long Hao (LongOddCode) merged 1 commit into
Azure:mainfrom
LongOddCode:developer/haolong_microsoft/dotnet10-minor-release

Conversation

@LongOddCode

Copy link
Copy Markdown
Contributor

Summary

Add opt-in .NET 10 isolated API runtime support and prepare the backward-compatible CLI minor version 2.1.0.

Problem and root cause

The CLI runtime choices and staticwebapp.config.json schema currently include .NET isolated 8.0 and 9.0, but omit 10.0. Consequently, the CLI does not offer the new version and rejects its runtime configuration token.

Changes

Files Change
src/core/constants.ts Append 10.0 to isolated API versions; retain all existing versions and defaults.
schema/staticwebapp.config.json Accept dotnet-isolated:10.0 without accepting unsupported in-process dotnet:10.0.
package.json, package-lock.json Bump 2.0.10 to 2.1.0; no dependency changes.
docs/www/docs/cli/swa-deploy.md Document explicit API flags and runtime configuration, unchanged default, and backend-availability boundary.
src/core/constants.spec.ts Cover actual choices, literal default 8.0, and isolated versus in-process behavior.
src/core/utils/json.spec.ts Validate isolated 10.0, all previous runtime tokens, and rejection of in-process 10.0 using the production validator.
src/cli/commands/deploy/deploy.spec.ts Verify explicit isolated 8.0, 9.0, and 10.0 are forwarded unchanged to the deployment process.

Compatibility and scope

  • .NET 8.0 remains the default; framework detection, existing runtimes, and Node/Python behavior are unchanged.
  • Use swa deploy --api-language dotnetisolated --api-version 10.0 and platform.apiRuntime: "dotnet-isolated:10.0" where applicable.
  • This adds CLI-side support only. It does not deploy or certify SWA backend runtime availability.
  • No release workflow, npm publication, or live Azure deployment was performed.

Validation

  • Node 20 full unit suite: 38 files, 628 passed, 16 pre-existing skipped.
  • Node 24 affected and neighboring suites: 4 files, 38 passed, 4 pre-existing skipped.
  • Added 18 active regression cases, with no new skips.
  • TypeScript build and postbuild asset copy pass on Node 20 and Node 24.
  • Prettier checks for all eight changed files and git diff whitespace checks pass.
  • CLI version smoke prints 2.1.0 on Node 20 and Node 24.
  • Package/lock metadata agree on 2.1.0; structural comparison confirms no dependency changes.
  • In-memory negative controls detect omitted isolated 10.0 support and accidental explicit-version fallback to 8.0 without altering source files.

Existing validation limitations

The complete Node 24 suite has two pre-existing failures in func-core-tools.spec.ts: the current Functions Core Tools 4 compatibility table only accepts Node 18–22. The same failures reproduce with baseline runtime constants; this PR does not change that compatibility table. The default Node 25 CLI invocation also encounters an existing buffer-equal-constant-time dependency incompatibility. No unrelated compatibility fix or dependency upgrade is included. Numeric line/branch coverage and real cloud deployment were not measured.

References

Allow explicitly selecting the .NET 10 isolated runtime while preserving existing defaults, runtime support, and dependencies.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions github-actions Bot added the scope: core Issues happened a the ./src/core level label Oct 20, 2026
@LongOddCode
Long Hao (LongOddCode) merged commit d9a75a3 into Azure:main Oct 20, 2026
24 checks passed
@LongOddCode
Long Hao (LongOddCode) deleted the developer/haolong_microsoft/dotnet10-minor-release branch October 20, 2026 06:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

scope: core Issues happened a the ./src/core level

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants