Skip to content

Revert .NET 10 custom code support for v5.959 hotfix#9170

Open
lambrianmsft wants to merge 24 commits into
Azure:hotfix/v5.959from
lambrianmsft:hotfix/v5.959-lambrian
Open

Revert .NET 10 custom code support for v5.959 hotfix#9170
lambrianmsft wants to merge 24 commits into
Azure:hotfix/v5.959from
lambrianmsft:hotfix/v5.959-lambrian

Conversation

@lambrianmsft
Copy link
Copy Markdown
Contributor

@lambrianmsft lambrianmsft commented May 14, 2026

What & Why

Reverts .NET 10 custom code project support from the v5.959 hotfix line and keeps the restored unit coverage in the same PR so this can merge directly into hotfix/v5.959.

Why:

  • Issue VS Code: Deployed logic app fails to open in the portal with prolonged loading and no content displayed. #9144 reports Azure-deployed Logic Apps workflows not loading after SQL + NuGet deployment.
  • VSIX 5.273.0 is reported as known-good, and the strongest regression boundary is the .NET 10 custom code support change.
  • The hotfix should restore the previous .NET 8 codeless NuGet conversion defaults while preserving later hotfix-era conflict resolutions.
  • Restored/adapted tests keep the coverage gate strict instead of weakening PR coverage policy.
  • PR coverage CI hit Node heap OOM while running the full VS Code extension unit suite with Istanbul coverage, so the coverage workflow now gives that step a larger Node heap without changing thresholds or exclusions.

Affected areas:

  • apps/vs-code-designer: custom code function/project steps, code project base, codeful workflow creation, workflow switchToDotnetProject, debug/custom-code/dotnet/codeless utility tests, and reverted .NET 8 defaults/templates.
  • apps/vs-code-react: create workspace .NET framework step tests and reverted .NET 8 framework UI behavior.
  • .github/workflows/pr-coverage.yml: CI-only Node heap increase for the coverage test step to avoid VS Code extension coverage OOM.

Supersedes #9169, which was closed so this PR can carry both the revert and coverage fix directly into hotfix/v5.959.

Fixes #9144

Type of Change

  • fix

Impact of Change

Users

  • Restores prior .NET 8-based custom-code/codeless NuGet conversion behavior for the v5.959 hotfix line.
  • Intended to unblock SQL + NuGet deployed Logic Apps workflows that fail to load in Azure Portal.

Developers

  • Restores and adapts unit tests removed by the revert so changed-file coverage remains enforced.
  • Keeps the hotfix branch reviewable as one PR: production revert plus corresponding coverage restoration.
  • Makes the PR coverage workflow more stable for the existing full VS Code extension unit coverage run.

System

  • Reverts .NET 10 workflow/template/default behavior back to the previously supported .NET 8 hotfix behavior.
  • No coverage-threshold changes, coverage exclusions, runtime dependencies, or product runtime changes from the CI heap adjustment.

Risk Level

  • Low

Risk notes:

  • Low risk because this is a targeted hotfix revert to previously shipped behavior plus tests.
  • The product change is scoped to VS Code custom-code/codeless NuGet conversion and workspace framework selection paths.
  • The CI change only increases Node heap for the PR coverage test step and does not weaken validation.

Test Plan

  • Updated/restored unit tests for the affected VS Code designer and VS Code React flows.
  • Ran pnpm install --frozen-lockfile during the hotfix setup.
  • Ran pnpm exec biome check --write <changed test files>.
  • Ran targeted apps/vs-code-designer Vitest coverage: 12 files, 192 tests passed.
  • Ran targeted apps/vs-code-react Vitest coverage: 2 files, 25 tests passed.
  • Verified final changed-file coverage table: all target files are >= 80%.
  • Ran pnpm run build:extension during the revert validation.
  • PR Coverage Check rerun after CI heap adjustment.

Screenshots / Videos

Not applicable - VS Code hotfix revert, unit coverage restoration, and CI coverage stability update; no new UI surface.

Contributors

N/A

lambrianmsft and others added 2 commits May 14, 2026 13:45
Reverts commit 3059380 from the v5.959 hotfix branch to restore the pre-.NET 10 custom code project defaults.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 14, 2026

🤖 AI PR Validation Report

PR Review Results

Thank you for your submission! Here's detailed feedback on your PR title and body compliance:

PR Title

  • Current: Revert .NET 10 custom code support for v5.959 hotfix
  • Issue: None. The title is clear, specific, and accurately describes the revert-focused hotfix scope.
  • Recommendation: No change needed.

Commit Type

  • Properly selected (fix).
  • Only one commit type is selected, which is correct.

Risk Level

  • The selected risk label risk:low matches the PR body’s low-risk assessment and the revert is scoped to previously shipped behavior plus tests.

What & Why

  • Current: Well populated and concise.
  • Issue: None.
  • Recommendation: No change needed.

Impact of Change

  • The impact section is filled out and appropriately scoped to users, developers, and system behavior.
  • Recommendation:
    • Users: Good as written.
    • Developers: Good as written.
    • System: Good as written.

Test Plan

  • The diff includes restored/updated unit tests, which satisfies the PR test-plan requirement.
  • Manual testing remaining unchecked is acceptable because unit tests are present in the diff.

Contributors

  • N/A is acceptable here.

Screenshots/Videos

  • Not applicable for this non-visual hotfix/revert.

Summary Table

Section Status Recommendation
Title No change needed
Commit Type No change needed
Risk Level No change needed
What & Why No change needed
Impact of Change No change needed
Test Plan No change needed
Contributors No change needed
Screenshots/Videos No change needed

This PR passes review as submitted.


Last updated: Wed, 27 May 2026 01:17:13 GMT

@lambrianmsft lambrianmsft added the risk:low Low risk change with minimal impact label May 14, 2026
@lambrianmsft lambrianmsft changed the title Restore coverage for .NET 10 revert Restore hotfix test coverage after .NET 10 custom code revert May 14, 2026
@lambrianmsft lambrianmsft changed the title Restore hotfix test coverage after .NET 10 custom code revert Revert .NET 10 custom code support for v5.959 hotfix May 14, 2026
@lambrianmsft lambrianmsft changed the base branch from hotfix/v5.959-lambrian to hotfix/v5.959 May 14, 2026 22:00
lambrianmsft and others added 19 commits May 14, 2026 15:05
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Run the VS Code designer extension unit test script through node with an explicit heap size so full-package Istanbul coverage can complete in CI.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Collect VS Code designer Istanbul coverage only for changed package source files during PR runs so coverage generation matches the changed-file gate and avoids CI heap exhaustion.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Resolve changed VS Code designer coverage files from the pull request event base SHA first, so CI does not fall back to all-source Istanbul coverage when remote branch refs are unavailable.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Allow test:extension-unit tasks to receive GitHub PR base-ref environment values so VS Code designer coverage can scope instrumentation to changed files in CI.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Have CI write the changed VS Code designer source list before extension-unit tests and let the package Vitest config read that list, avoiding all-source Istanbul coverage under Turbo.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Switch the VS Code designer Vitest coverage provider from Istanbul to V8 so the full extension-unit suite can complete in CI while still emitting lcov for the changed-file coverage gate.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Run VS Code designer Vitest through a small Node wrapper that sets NODE_OPTIONS before Vitest starts, allowing worker processes to inherit the larger heap in CI.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Run full extension-unit tests without coverage in Test Runner, and run targeted VS Code designer coverage only in the PR coverage workflow so the changed-file gate has data without exhausting CI memory.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep the sharded VS Code designer Vitest wrapper aligned with the package exclude rules by skipping src/test harness files when discovering unit test shards.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Default the VS Code designer no-coverage unit test wrapper to one test file per Vitest process so memory-heavy files cannot accumulate heap across a shard in CI.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove the CI and Vitest workaround churn from PR 9170, restore shared .NET 8 custom code behavior, and keep only the .NET 10 removal surface plus focused test coverage. Also harden the conversion-create E2E against the Azure Functions legacy-project prompt shown in CI artifacts.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Normalize csproj line endings and trailing whitespace in the Net8 custom code integration assertion so the test passes consistently on Windows and Linux.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Give the VS Code extension-unit CI path enough heap for Istanbul coverage/reporting without changing local scripts, Vitest provider, sharding, or coverage scope.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Disable extension-unit coverage in the normal Test Runner matrix and scope VS Code designer Istanbul coverage to changed source files in PR Coverage, avoiding CI heap exhaustion without changing providers or local scripts.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Run VS Code designer unit test files in separate Vitest processes to avoid CI heap accumulation while preserving merged LCOV output for PR coverage.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Drop the added CreateFunctionAppFiles unit test that OOMs as an isolated file in CI; equivalent .NET 8/Framework project generation coverage remains in the existing project creation and FunctionAppFilesStep tests.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Harden VS Code E2E run-history verification by waiting for workflow management readiness before opening overview and by avoiding shimmer/empty run-history statuses as terminal observations.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep the added workflow runtime probe as a short stabilization wait instead of a hard assertion, because the management endpoint is not reliably reachable from the VS Code browser context in CI.\n\nCo-authored-by: Copilot <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

pr-validated risk:low Low risk change with minimal impact

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant