Migrate ApplyCssScopes to IMultiThreadableTask#54705
Conversation
No decoy-style unit test added — not viable hereThis is an attribute-only opt-in. A decoy-CWD test of the form used for |
There was a problem hiding this comment.
Pull request overview
This PR opts ApplyCssScopes into MSBuild’s multi-threadable task execution by annotating it with [MSBuildMultiThreadableTask], aligning it with MSBuild’s parallel task execution requirements and addressing the regression described in msbuild#14033.
Changes:
- Add
[MSBuildMultiThreadableTask]toApplyCssScopes.
|
/azp run dotnet-sdk-public-ci |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run dotnet-sdk-public-ci |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Marks the task with [MSBuildMultiThreadableTask] so MSBuild's multithreaded mode skips the per-task TaskHost wrapper. The task body matches scoped CSS to inputs purely in memory, so attribute-only opt-in is sufficient per the migration skill. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2f86107 to
ebf8d62
Compare
|
/azp run dotnet-sdk-public-ci |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run dotnet-sdk-public-ci |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Migrates
ApplyCssScopes(src/StaticWebAssetsSdk/Tasks/ScopedCss/ApplyCssScopes.cs) to multi-threadable by adding[MSBuildMultiThreadableTask].Fixes dotnet/msbuild#14033
Perfstar regression (14d, Windows, paired MT vs non-MT, p50 sum across iterations)
ResolveCssScopesChanges
[MSBuildMultiThreadableTask]on the concrete class. NoIMultiThreadableTaskplumbing needed — the task body matches scoped CSS items to inputs purely in memory;Environment.NewLineis the onlyEnvironment.*reference and is a string constant.Compatibility sins audit (per migration skill)
24/24 dimensions clean — attribute-only opt-in.
Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com