TaskAnalyzer: decide whether IMultiThreadableTask should enable MT-specific diagnostics
- Dominant language
- C#
- Stars
- 5.5k
- Forks
- 1.5k
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 135
Description
### Problem
PR #14775 uses `[MSBuildMultiThreadableTask]` as the default signal for running MT-specific analyzer rules. This matches runtime behavior: the attribute routes a task to the MT environment, while `IMultiThreadableTask` only enables `TaskEnvironment` injection.
However, implementing `IMultiThreadableTask` usually indicates that a task author has started migrating the task. Skipping MT-specific diagnostics for an interface-only task may therefore miss useful migration guidance.
### Open question
Should implementing `IMultiThreadableTask` also opt a task into MT-specific analyzer diagnostics, even though it does not opt the task into MT execution?
We should agree on whether analyzer scope must strictly model runtime routing or may also recognize migration intent. The decision should include how to avoid implying that the interface alone makes a task MT-routed.
Related: #14775, #14787
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading PR #14775 and related issue #14787, then review the two comments on this issue. Decide whether IMultiThreadableTask should affect MT-specific analyzer diagnostics without implying MT runtime routing. Done means the scope decision and safeguards are documented clearly enough to guide implementation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- build-system, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100