dotnet / dotnet/msbuild

TaskAnalyzer: decide whether IMultiThreadableTask should enable MT-specific diagnostics

Closed
#14,990 2 comments 0 reactions 0 assignees View on GitHub
Area: Analyzer
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.