Skip to content

Enable MSBuild node reuse defaults in the F# build scripts - #20220

Merged
ViktorHofer merged 1 commit into
mainfrom
t-gro-fix-msbuild-node-reuse
Aug 10, 2026
Merged

Enable MSBuild node reuse defaults in the F# build scripts#20220
ViktorHofer merged 1 commit into
mainfrom
t-gro-fix-msbuild-node-reuse

Conversation

@T-Gro

@T-GroT-Gro commented Aug 6, 2026

Copy link
Copy Markdown
Member

Fixes#20217

eng/Build.ps1 and eng/build.sh both hard-disabled MSBuild node reuse for every build, overriding Arcade's default (reuse on locally, off on CI). The overrides were added together in March 2019 as a workaround for FSharp.Build.dll version conflicts when the proto compiler and the freshly built one land in reused MSBuild nodes during F#'s self-bootstrap — not, as the issue assumed, a PowerShell-only template leftover.

Removing both restores node reuse for the inner loop and unblocks MSBuild Server. Whether that 2019 FSharp.Build.dll conflict still reproduces is the open question, so this leans on full CI to answer it — in particular the Windows EndToEndBuildTests job, which builds without -ci and now exercises node reuse end to end.

Both entry points hard-disabled MSBuild node reuse for every build,
overriding Arcade's default (node reuse on locally, off on CI). The
overrides were added together in March 2019 (7a6448e, f4bd221)
as a workaround for FSharp.Build.dll version conflicts when the proto
compiler and the freshly built one are loaded into reused MSBuild nodes
during F#'s self-bootstrap.
This removes both overrides so Arcade's default applies, restoring node
reuse for the inner loop and unblocking MSBuild Server. Whether the 2019
FSharp.Build.dll conflict still reproduces is validated by full CI,
including the Windows EndToEndBuildTests job, which builds without -ci
and therefore now exercises node reuse end to end.
Fixes#20217
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@github-actions

github-actionsBot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

⚠️ Release notes required, but author opted out

Warning

Author opted out of release notes, check is disabled for this pull request.
cc @dotnet/fsharp-team-msft

@github-actionsgithub-actionsBot added the AI-Tooling-Check-Bypassed Tooling check: non-fork PR, not diff-analyzed label Aug 6, 2026
@T-Gro
T-Gro requested a review from abonieAugust 10, 2026 08:36
@T-GroT-Gro added the NO_RELEASE_NOTES Label for pull requests which signals, that user opted-out of providing release notes label Aug 10, 2026
@github-project-automationgithub-project-automationBot moved this from New to In Progress in F# Compiler and ToolingAug 10, 2026
@ViktorHofer
ViktorHofer merged commit 80b7e4e into mainAug 10, 2026
56 checks passed
@github-project-automationgithub-project-automationBot moved this from In Progress to Done in F# Compiler and ToolingAug 10, 2026
@ViktorHofer
ViktorHofer deleted the t-gro-fix-msbuild-node-reuse branch August 10, 2026 09:14
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI-Tooling-Check-BypassedTooling check: non-fork PR, not diff-analyzedNO_RELEASE_NOTESLabel for pull requests which signals, that user opted-out of providing release notes

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

eng/Build.ps1 hard-disables MSBuild node reuse, hurting inner-loop perf and blocking MSBuild Server

3 participants

@T-Gro@ViktorHofer@abonie