Skip to content

Merge redist installer with redist #47659

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

Merged
merged 3 commits into from
Mar 19, 2025

Conversation

ViktorHofer
Copy link
Member

@ViktorHofer ViktorHofer commented Mar 17, 2025

Follow-up on 735bd6e & d374e88
Contributes to #45551

Commit 1 - Move redist-installer targets and packaging folder:
redist-installer targets -> src/Layout/redist/targets/
redist-installer packaging files -> src/Layout/pkg/

Commit 2 - Change redist-installer references to redist and make the repo buildable

@ghost ghost added Area-Infrastructure untriaged Request triage from a team member labels Mar 17, 2025
@ViktorHofer ViktorHofer force-pushed the MergeRedistInstallerWithRedist branch 4 times, most recently from d472e06 to 4b745c5 Compare March 17, 2025 18:26
@ViktorHofer ViktorHofer force-pushed the MergeRedistInstallerWithRedist branch 3 times, most recently from 91613bb to 381cd0e Compare March 17, 2025 21:53
redist-installer targets -> src/Layout/redist/targets/
redist-installer packaging files -> src/Layout/pkg/
@ViktorHofer ViktorHofer force-pushed the MergeRedistInstallerWithRedist branch from 2ad2402 to 338f561 Compare March 19, 2025 14:20
@ViktorHofer ViktorHofer marked this pull request as ready for review March 19, 2025 18:43
@Copilot Copilot AI review requested due to automatic review settings March 19, 2025 18:43
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot reviewed 81 out of 93 changed files in this pull request and generated no comments.

Files not reviewed (12)
  • eng/Build.props: Language not supported
  • eng/Publishing.props: Language not supported
  • eng/Version.Details.xml: Language not supported
  • sdk.sln: Language not supported
  • source-build.slnf: Language not supported
  • src/Layout/Directory.Build.props: Language not supported
  • src/Layout/Directory.Build.targets: Language not supported
  • src/Layout/VS.Redist.Common.Net.Core.SDK.RuntimeAnalyzers/VS.Redist.Common.Net.Core.SDK.RuntimeAnalyzers.proj: Language not supported
  • src/Layout/VS.Redist.Common.NetCore.SdkPlaceholder/VS.Redist.Common.NetCore.SdkPlaceholder.proj: Language not supported
  • src/Layout/VS.Redist.Common.NetCore.Templates/VS.Redist.Common.NetCore.Templates.proj: Language not supported
  • src/Layout/VS.Redist.Common.NetCore.Toolset/VS.Redist.Common.NetCore.Toolset.proj: Language not supported
  • src/Layout/pkg/dotnet-sdk.proj: Language not supported

@ViktorHofer
Copy link
Member Author

I validated this change by running windiff over the artifacts/bin directory with and without this change and all the differences are expected.

@ViktorHofer ViktorHofer merged commit ad154d6 into dotnet:main Mar 19, 2025
39 checks passed
@ViktorHofer ViktorHofer deleted the MergeRedistInstallerWithRedist branch March 19, 2025 19:14
@marcpopMSFT
Copy link
Member

@ViktorHofer thanks for taking care of this. Do you know what impact it has to local build perf or to the stage 2 sdk we use for testing? Are we set to replace overlay sdk now?

@ViktorHofer
Copy link
Member Author

ViktorHofer commented Mar 19, 2025

Happy to help here. This was bugging me for some time and it made VMR work harder so I took a stab at it.

Do you know what impact it has to local build perf or to the stage 2 sdk we use for testing? Are we set to replace overlay sdk now?

This doesn't have any negative impact on the build times but also shouldn't have any noticeable positive impact given that most time is spent in restore, csc and wix.

Yes, I think that most of the OverlaySdkOnLKG logic if not all can eventually be removed.

At the moment the artifacts are still kept separate. The logical next step would be to carefully merge them:

<SdkLayoutOutputDirectory>$(ArtifactsBinDir)redist\$(Configuration)\layouts\dotnet-toolset-internal\</SdkLayoutOutputDirectory>
<RedistLayoutPath>$(ArtifactsBinDir)redist\$(Configuration)\dotnet\</RedistLayoutPath>
<SdkOutputDirectory>$(RedistLayoutPath)sdk\$(Version)</SdkOutputDirectory>
<RedistInstallerBaseOutputPath>$(ArtifactsBinDir)redist-installer\$(Configuration)\</RedistInstallerBaseOutputPath>
<RedistInstallerLayoutPath>$(RedistInstallerBaseOutputPath)dotnet\</RedistInstallerLayoutPath>
<SdkInternalLayoutPath>$(RedistInstallerBaseOutputPath)i\</SdkInternalLayoutPath>
<InstallerOutputDirectory>$(RedistInstallerLayoutPath)sdk\$(Version)\</InstallerOutputDirectory>

Overall, this has a significant engineering thrive and disk space impact. By consolidating the artifacts paths and using hard links where possible, the size of the artifacts bin directory should significantly decrease.

@marcpopMSFT
Copy link
Member

Sounds good. This gets us closer to removing the overlay targets which should save a lot of space and build time. Thanks again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Infrastructure untriaged Request triage from a team member
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants