dotnet / dotnet/msbuild

Analyzers for MSBuild task authors

Open
#15,027 0 comments 0 reactions 0 assignees View on GitHub
Area: Analyzer Epic
Dominant language
C#
Stars
5.5k
Forks
1.5k
Avg merge
1d 8h
Merged PRs (30d)
141

Description

It is not easy for Task authors cannot to tell by reading their own code whether it is safe to run on a thread. Analyzers find these problems at build time instead: process-wide state, unsafe path handling, and APIs that are never safe inside a task. Without them, migrating the task ecosystem to multithreaded mode depends on manual review.

This epic covers all analyzer work, from shipping the first release to the enhancements that follow.

## Steps

- [ ] [#14078](https://github.com/dotnet/msbuild/issues/14078) Ship the analyzers to task authors [size L] [Milestone: version 18.12]
- [ ] [#14772](https://github.com/dotnet/msbuild/issues/14772) Enhance the analyzers and fix the bugs after shipping [size XL] [Milestone: SDK 11.0.200]

## Stakeholders

Task authors in dotnet/sdk, dotnet/nuget, dotnet/roslyn, dotnet/arcade and the VMR, plus task authors referencing latest `Microsoft.Build.Framework`.

## Definition of done

Task authors get the analyzers automatically with MSBuild, and the analyzers catch the unsafe patterns that task migration has actually hit.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading linked issues #14078 and #14772, which divide shipping the analyzers from later enhancements and bug fixes. Use the listed unsafe patterns and definition of done to determine the specific analyzer scope; completion means analyzers ship automatically with MSBuild and catch unsafe patterns found during task migration.

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.