Skip to content
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

Make it possible to build only the inbox portion of libs #51168

Closed
MichalStrehovsky opened this issue Apr 13, 2021 · 6 comments
Closed

Make it possible to build only the inbox portion of libs #51168

MichalStrehovsky opened this issue Apr 13, 2021 · 6 comments

Comments

@MichalStrehovsky
Copy link
Member

MichalStrehovsky commented Apr 13, 2021

build.cmd libs will build all libraries, but most people working in this repo only want what's inbox in .NET.

I have a:

    <ProjectExclusions Include="$(MSBuildThisFileDirectory)Microsoft.Extensions.*\src\*.csproj" />

line in my libraries\src.proj and this speeds up the libraries build by 15%, but it would be nice to be able to easily exclude the rest of the useless libraries and get additional boost.

EDIT: I just realized the above is a cargo cult I've been doing and apparently doesn't work (anymore?).

@ghost
Copy link

ghost commented Apr 13, 2021

Tagging subscribers to this area: @Anipik, @safern, @ViktorHofer
See info in area-owners.md if you want to be subscribed.

Issue Details

build.cmd libs will build all libraries, but most people working in this repo only want what's inbox in .NET.

I have a:

    <ProjectExclusions Include="$(MSBuildThisFileDirectory)Microsoft.Extensions.*\src\*.csproj" />

line in my libraries\src.proj and this speeds up the libraries build by 15%, but it would be nice to be able to easily exclude the rest of the useless libraries and get additional boost.

Author: MichalStrehovsky
Assignees: -
Labels:

area-Infrastructure-libraries

Milestone: -

@dotnet-issue-labeler dotnet-issue-labeler bot added the untriaged New issue has not been triaged by the area owner label Apr 13, 2021
@ViktorHofer ViktorHofer added this to the Future milestone Apr 13, 2021
@ViktorHofer ViktorHofer removed the untriaged New issue has not been triaged by the area owner label Apr 13, 2021
@ViktorHofer
Copy link
Member

With little amount of work this should be easy to implement. We just need a better separation between inbox and OOB by changing the current ref.proj and src.proj projects to:

  • sfx.proj (anything inside the shared framework, builds both the reference and the source assembly)
  • oob.proj (anything outside the shared framework, builds both the reference and the source assembly)
  • shims.proj (build the netstandard and the netframework shims. The netframework shims depend on OOBs as well)

The current libs.ref and libs.src subsets would be removed and the following would be added:

  • libs.sfx
  • libs.oob
  • libs.shims

@ViktorHofer
Copy link
Member

This should also help with the issue that @jkoritzinsky worked around in the recent SDK upgrade: #60256 (comment). The tricky part is to make sure that the PlatformManifest can be generated without the CLR being built (for libraries dev's innerloop).

@MichalStrehovsky
Copy link
Member Author

Duping this to #65492.

@ViktorHofer
Copy link
Member

Sorry @MichalStrehovsky I forgot about this issue. Thanks for duping it against the one that I just opened. This will be implemented with #64000, then you can just build the sfx by invoking build.cmd/sh libs.sfx.

@MichalStrehovsky
Copy link
Member Author

Sorry @MichalStrehovsky I forgot about this issue. Thanks for duping it against the one that I just opened. This will be implemented with #64000, then you can just build the sfx by invoking build.cmd/sh libs.sfx.

I don't mind there's a new issue with more detail, and doubly so because there's also a pull request to go along with it. Opening issues is easy, pull requests are hard. Thank you for working on this! I owe you a drink!

@ghost ghost locked as resolved and limited conversation to collaborators Mar 20, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants