Skip to content

TFM trimming should be enabled by default - with option for opting-out #3362

@NikolaMilosavljevic

Description

@NikolaMilosavljevic

Most repos have TFM trimming enabled today by adding the following property to repo's eng/SourceBuild.props:

<SourceBuildTrimNetFrameworkTargets>true</SourceBuildTrimNetFrameworkTargets>

With new repos likely to be added in the future, it would be a better option to not require opt-in to this feature, and make it a default if property isn't set by the repo.

We should still allow repos to opt-out of this feature. There are two options - option 1 seems better as it eliminates one property from infra.

Option 1

Use NoTargetFrameworkFiltering property and set it to true in repo's eng/SourceBuild.props.

Option 2 - alternative

Continue using SourceBuildTrimNetFrameworkTargets property and set it to false in repo's eng/SourceBuild.props.

Proposed work items

[ ] Add opt-outs to repos that do TFM trimming differently and do not use SourceBuildTrimNetFrameworkTargets property: runtime

[ ] Add opt-outs to repos that do not support TFM trimming: emsdk

[ ] Modify Arcade's TFM trimming infra to reverse the logic for trimming and only check for opt-outs, instead of requiring opt-ins - https://github.com/dotnet/arcade/blob/e4e5e16cf38c950ed835f8b223ebfdeca3e112aa/src/Microsoft.DotNet.Arcade.Sdk/tools/SourceBuild/SourceBuildArcade.targets#L35 Arcade change can only be made after all opt-outs have been implemented and changes flowed to installer/VMR.

Metadata

Metadata

Labels

area-buildImprovements in source-build's own build process

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions