[Multithreaded] Migrate tasks in SDK
- Dominant language
- C#
- Stars
- 5.5k
- Forks
- 1.5k
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 141
Description
The .NET SDK ships the tasks that almost every build actually runs. Until they are migrated, an `-mt` build sends them to a separate task host process, which cancels out much of the benefit of multithreaded mode.
Most tasks are done: 46 of 63 SDK tasks enlightened (73%). What is left would be migrated on demand if telemetry or perf tests would show its benefit.
## Steps
- [x] Migrate the tasks that only needed the attribute [size M]
- [x] Migrate the simple tasks: static web assets and SourceLink, etc [size L]
- [x] Migrate the complex tasks: deps file, package and targeting pack resolution, etc [size XL]
- [ ] Migrate the remaining tasks [size L]
## Stakeholders
Everyone building a .NET project with `-mt`. SDK tasks run in nearly every build, so each unmigrated task directly costs build time.
## Definition of done
Every SDK task either runs in multithreaded mode, or is recorded as intentionally left out.
Task migration checklist
# Task Migration Checklist
These are tasks that do something that requies anything else than just using the attribute.
Some of these will still be fairly simple. When I run into more complex ones, I will create sub-tickets accordingly.
- [x] AllowEmptyTelemetry
- [ ] ChangeEntryPointLibraryName
- [x] CheckForTargetInAssetsFile
- [x] CheckForUnsupportedWinMDReferences
- [x] CreateAppHost
- [ ] CreateComHost
- [ ] ExtractArchiveToDirectory
- [ ] FilterResolvedFiles
- [x] GenerateBundle
- [x] GenerateClsidMap
- [x] GenerateDepsFile
- [ ] GenerateMSBuildExtensionsSWR
- [ ] GenerateRegFreeComManifest
- [ ] GenerateRuntimeAnalyzersSWR
- [x] GenerateRuntimeConfigurationFiles
- [ ] GenerateSdkRuntimeIdentifierChain
- [ ] GenerateShims
- [x] GenerateToolsSettingsFile
- [x] GetAssemblyAttributes
- [ ] GetDependencyInfo
- [x] GetDependsOnNETStandard
- [x] GetPackageDirectory
- [x] GetPackagesToPrune
- [ ] GetRuntimePackRids
- [ ] OverrideAndCreateBundledNETCoreAppPackageVersion
- [x] PickBestRid
- [ ] PrepareForReadyToRunCompilation
- [x] ProcessFrameworkReferences
- [ ] ProcessRuntimeAnalyzerVersions
- [ ] ProduceContentAssets
- [ ] RemoveAssetFromDepsPackages
- [ ] ReplaceFileContents
- [ ] ReplaceFilesWithSymbolicLinks
- [x] ResolveAppHosts
- [ ] ResolveCopyLocalAssets
- [x] ResolvePackageAssets
- [x] ResolvePackageDependencies
- [ ] ResolveReadyToRunCompilers
- [x] ResolveRuntimePackAssets
- [x] ResolveTargetingPackAssets
- [ ] RunReadyToRunCompiler
- [x] SelectRuntimeIdentifierSpecificItems
- [ ] SetGeneratedAppConfigMetadata
- [ ] ShowMissingWorkloads
- [ ] TarGzFileCreateFromDirectory
- [ ] UpdateRuntimeConfig
- [x] ValidateExecutableReferences
- [x] WriteAppConfigWithSupportedRuntime
- [ ] ZipFileCreateFromDirectory
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.