-
Notifications
You must be signed in to change notification settings - Fork 228
Proper workload support for 2xx #3705
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: release/10.0.2xx
Are you sure you want to change the base?
Proper workload support for 2xx #3705
Conversation
| --> | ||
| <PrivateSourceBuiltSdkVersion>10.0.100-rtm.25523.111</PrivateSourceBuiltSdkVersion> | ||
| <PrivateSourceBuiltArtifactsVersion>10.0.100-rtm.25523.111</PrivateSourceBuiltArtifactsVersion> | ||
| <DotNet1xxWorkloadManifestVersion>$(MicrosoftNETWorkloadEmscriptenCurrentManifest100100Version)</DotNet1xxWorkloadManifestVersion> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we ever override MicrosoftNETWorkloadEmscriptenCurrentManifest100100Version by what's coming in via PSB? Asking as if we do that, the DotNet1xxWorkloadManifestVersion property would point at the wrong version as the override happens at a later point.
We in general recommend to not read from other properties in Versions.props due to versions getting overwritten later by PvP.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PSB only applies to dependencies in the repos. Since this dependency is at the root level, PSB doesn't influence the version. And even if it did, it should be the correct version anyway as the PSB of a 2xx build should still contain the 1xx version of this package.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We do have PSB support in the repo root:
Lines 48 to 49 in d29a727
| <!-- For source only builds non test builds, override Versions.props entries with previously sourcebuilt artifacts. --> | |
| <Import Project="$(PreviouslySourceBuiltPackageVersionsPropsFile)" Condition="'$(DotNetBuildSourceOnly)' == 'true' and '$(IsTestRun)' != 'true' and Exists('$(PreviouslySourceBuiltPackageVersionsPropsFile)')" /> |
And even if it did, it should be the correct version anyway as the PSB of a 2xx build should still contain the 1xx version of this package.
👍
|
|
||
| <BuildArgs>$(BuildArgs) /p:PublicBaseURL=file:%2F%2F$(ArtifactsAssetsDir)</BuildArgs> | ||
| <BuildArgs>$(BuildArgs) /p:UsePortableLinuxSharedFramework=false</BuildArgs> | ||
| <BuildArgs>$(BuildArgs) /p:DotNetBuildSharedComponents=$(DotNetBuildSharedComponents)</BuildArgs> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we only pass that in when necessary?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How does that help? That then creates a dependency on knowing what the default value is. Just as your suggestion in #3705 (comment) shows, if we were to only set it as /p:DotNetBuildSharedComponents=false then any conditions of '$(DotNetBuildSharedComponents)' == 'true' in the sdk repo would always be false. That forces there to be too much understanding of default values across the files.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In high level terms I'm asking if we can make 1xx the default experience (as I think it already is today in the repos). The 2xx which if I read things correctly is indicated by /p:DotNetBuildSharedComponents=false would be the opt-in experience.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with Viktor.
| </Target> | ||
|
|
||
| <Target Name="_CollectDownloadedWorkloadPacks" | ||
| Condition="'$(BuildWorkloads)' == 'true' and '$(DotNetBuildSharedComponents)' == 'true'"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we make this the default when BuildWorkloads is set so that we only pass /p:DotNetBuildSharedComponents=false in?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure I understand. Can you explain more or provide a suggested change?
|
Reviewers: I need some eyes on this. Thanks. |
| <Uri>https://github.com/dotnet/dotnet</Uri> | ||
| <Sha>fad253f51b461736dfd3cd9c15977bb7493becef</Sha> | ||
| </Dependency> | ||
| <Dependency Name="Microsoft.NET.Workload.Emscripten.Current.Manifest-10.0.100" Version="10.0.100"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we need to remember to add this for every non-1xx branch going forward, do we have something to track this? or even better add it to branching automation
| --> | ||
| <PrivateSourceBuiltSdkVersion>10.0.101-servicing.25569.105</PrivateSourceBuiltSdkVersion> | ||
| <PrivateSourceBuiltArtifactsVersion>10.0.101-servicing.25569.105</PrivateSourceBuiltArtifactsVersion> | ||
| <DotNet1xxWorkloadManifestVersion>$(MicrosoftNETWorkloadEmscriptenCurrentManifest100100Version)</DotNet1xxWorkloadManifestVersion> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: add a comment above this line, this helps prevent merge conflicts. might be also a good place to document why we have this dependency
| </ItemGroup> | ||
|
|
||
| <ItemGroup Condition="'$(PublishingWorkloadMsiInternal)' == 'true'"> | ||
| <ItemGroup Condition="'$(DotNetBuildSharedComponents)' != 'true'"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand this change, can you explain?
|
|
||
| <BuildArgs>$(BuildArgs) /p:PublicBaseURL=file:%2F%2F$(ArtifactsAssetsDir)</BuildArgs> | ||
| <BuildArgs>$(BuildArgs) /p:UsePortableLinuxSharedFramework=false</BuildArgs> | ||
| <BuildArgs>$(BuildArgs) /p:DotNetBuildSharedComponents=$(DotNetBuildSharedComponents)</BuildArgs> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with Viktor.
| <RuntimeWorkloadPacksToDownload Include="Microsoft.NETCore.App.Runtime.win-x86" /> | ||
| <RuntimeWorkloadPacksToDownload Include="Microsoft.NETCore.App.Runtime.win-arm64" ExcludeAsMsi="true" /> | ||
| <RuntimeWorkloadPacksToDownload Include="Microsoft.NETCore.App.Runtime.win-x64" ExcludeAsMsi="true" /> | ||
| <RuntimeWorkloadPacksToDownload Include="Microsoft.NETCore.App.Runtime.win-x86" ExcludeAsMsi="true" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think I fully understand why these three packages are special?
Implements property workload support for the 2xx feature band. This does two things:
Example build containing the artifacts for inspection.
Fixes #3126