Migrate Tasks in the Roslyn repo to the new Task type
- Dominant language
- C#
- Stars
- 5.5k
- Forks
- 1.5k
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 141
Description
Roslyn ships the compiler tasks that run in every .NET build. Until they are migrated, an `-mt` build sends them to a separate task host process. While overhead of `csc` task is not as big percentage-wise, it cancels out much of the benefit of multithreaded mode for small solutions builds just because of start-up of the task host.
The tasks are migrated: telemetry shows 6 of 7 Roslyn tasks enlightened (86%). What is left would be migrated on demand if telemetry or perf tests would show its benefit.
## Steps
- [x] Migrate the Roslyn tasks [size M]
- [ ] [#14257](https://github.com/dotnet/msbuild/issues/14257) Migrate the remaining tasks [size S]
## Stakeholders
Everyone building a .NET project with `-mt`. Compiler tasks run in nearly every build, so each unmigrated task directly costs build time in small solutions.
## Definition of done
Every Roslyn task either runs in multithreaded mode, or is recorded as intentionally left out.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the remaining-task work tracked in issue #14257 and review which Roslyn compiler tasks are still outside the new Task type. Check the migration status and telemetry or performance-test evidence for the remaining task. Done means every Roslyn task runs in multithreaded mode or is explicitly recorded as intentionally left out.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- build-system
- Issue type
- Refactor
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100