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

S.N.Quic private #54610

Merged
merged 5 commits into from
Jun 25, 2021
Merged

S.N.Quic private #54610

merged 5 commits into from
Jun 25, 2021

Conversation

ManickaP
Copy link
Member

@ManickaP ManickaP commented Jun 23, 2021

Based on mail with @ericstj set up S.N.Quic to be flown to ASP.

I still see the S.N.Quic in artifacts/bin/ref/net6.0. How do I actually make it "private", i.e. to not publish ref assembly? @Anipik could you please help?
Fixed with @ViktorHofer help. So I guess this is it for runtime.

There's still the ASP.NET part that needs to be solved afterwards.
Contributes to #54534

cc: @wtgodbe @JamesNK @ViktorHofer @wfurt @CarnaViire @geoffkizer

@ghost
Copy link

ghost commented Jun 23, 2021

Tagging subscribers to this area: @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

Issue Details

Based on mail with @ericstj set up S.N.Quic to be flown to ASP.

I still see the S.N.Quic in artifacts/bin/ref/net6.0. How do I actually make it "private", i.e. to not publish ref assembly? @Anipik could you please help?

There's still the ASP.NET part that needs to be solved afterwards.
Contributes to #54534

cc: @wtgodbe @JamesNK @ViktorHofer @wfurt @CarnaViire @geoffkizer

Author: ManickaP
Assignees: -
Labels:

area-System.Net

Milestone: -

@ghost
Copy link

ghost commented Jun 23, 2021

Tagging subscribers to this area: @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

Issue Details

Based on mail with @ericstj set up S.N.Quic to be flown to ASP.

I still see the S.N.Quic in artifacts/bin/ref/net6.0. How do I actually make it "private", i.e. to not publish ref assembly? @Anipik could you please help?

There's still the ASP.NET part that needs to be solved afterwards.
Contributes to #54534

cc: @wtgodbe @JamesNK @ViktorHofer @wfurt @CarnaViire @geoffkizer

Author: ManickaP
Assignees: -
Labels:

area-System.Net.Quic

Milestone: -

@ViktorHofer
Copy link
Member

How do I actually make it "private", i.e. to not publish ref assembly? @Anipik could you please help?

Set <IsNETCoreAppRef>false</IsNETCoreAppRef> here

@ManickaP
Copy link
Member Author

Set <IsNETCoreAppRef>false</IsNETCoreAppRef> here

I just tried that and I got compilations errors:

System.Text.Json -> /home/manicka/repositories/runtime/artifacts/bin/System.Text.Json/net6.0-Debug/System.Text.Json.dll
/usr/share/dotnet/sdk/6.0.100-preview.4.21255.9/Microsoft.Common.CurrentVersion.targets(2202,5): error MSB3245: Could not resolve this reference. Could not locate the assembly "System.Net.Quic". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [/home/manicka/repositories/runtime/src/libraries/System.Net.Http/src/System.Net.Http.csproj]        
  Microsoft.VisualBasic.Core -> /home/manicka/repositories/runtime/artifacts/bin/Microsoft.VisualBasic.Core/net6.0-Debug/Microsoft.VisualBasic.Core.dll
/home/manicka/repositories/runtime/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/ConnectHelper.cs(6,18): error CS0234: The type or namespace name 'Quic' does not exist in the namespace 'System.Net' (are you missing an assembly reference?) [/home/manicka/repositories/runtime/src/libraries/System.Net.Http/src/System.Net.Http.csproj]     
/home/manicka/repositories/runtime/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/ConnectHelper.cs(7,18): error CS0234: The type or namespace name 'Quic' does not exist in the namespace 'System.Net' (are you missing an assembly reference?) [/home/manicka/repositories/runtime/src/libraries/System.Net.Http/src/System.Net.Http.csproj] 
...

I assume that the ref is now not produced, but that means that even our own libraries cannot see it?

@ViktorHofer
Copy link
Member

ViktorHofer commented Jun 23, 2021

I assume that the ref is now not produced, but that means that even our own libraries cannot see it?

The ref is produced but it now isn't binplaced into the directory that marks the Microsoft.NETCore.App.Ref targeting pack anymore, as expected.

The failure is because now that System.Net.Quic isn't part of the targeting pack anymore, a simple <Reference Include="System.Net.Quic" doesn't work anymore (because named references only look into the targeting pack, as expected). Instead you need to switch all references to it to <ProjectReference> items.

@ManickaP
Copy link
Member Author

@ViktorHofer thanks! That worked!

@@ -629,7 +629,7 @@
<Reference Include="System.Net.NameResolution" />
<Reference Include="System.Net.NetworkInformation" />
<Reference Include="System.Net.Primitives" />
<Reference Include="System.Net.Quic" />
<ProjectReference Include="..\..\System.Net.Quic\ref\System.Net.Quic.csproj" />
Copy link
Member

Choose a reason for hiding this comment

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

nit: please move this up to the other ProjectReference as we usually sort alphabetically. Also use the $(LibrariesProjectRoot) property instead of ..\..\.

Copy link
Member Author

Choose a reason for hiding this comment

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

Fixed.

Copy link
Member

@CarnaViire CarnaViire left a comment

Choose a reason for hiding this comment

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

LGTM

@stephentoub
Copy link
Member

So I guess this is it for runtime.

This needs to be removed:

public QuicImplementationProvider? QuicImplementationProvider

@@ -3,6 +3,7 @@
<PropertyGroup>
<StrongNameKeyId>Microsoft</StrongNameKeyId>
<IncludePlatformAttributes>true</IncludePlatformAttributes>
<IsAspNetCoreApp>true</IsAspNetCoreApp>
Copy link
Member

Choose a reason for hiding this comment

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

What exactly does this control? We don't want this .dll to be part of our SharedFx/Targeting Pack

Copy link
Member Author

Choose a reason for hiding this comment

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

Quoting @ericstj from the mail since I do not understand the process fully:

Today this is used to bundle public API which ships in ASP.NET but builds in dotnet/runtime. This allows us to avoid putting those builds in our public packages while still giving them reference assemblies and 6.0 targeted assemblies.

Copy link
Member

Choose a reason for hiding this comment

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

@wtgodbe if putting it into the transport package the same way as the other libraries that form the ref/runtime packs, you will likely need to exclude this one from automatically flowing in your infra.

@ManickaP
Copy link
Member Author

This needs to be removed:

public QuicImplementationProvider? QuicImplementationProvider

Good catch! The easiest way ATM would be to just make it internal and set it via reflection in our tests here:

socketsHttpHandler.QuicImplementationProvider = quicImplementationProvider;

I know that @geoffkizer wanted to keep the mock implementation for testing purposes, which uses this settings. So I guess I cannot get rid of it completely. Any thoughts @stephentoub @geoffkizer?

@stephentoub
Copy link
Member

I know that @geoffkizer wanted to keep the mock implementation for testing purposes

At this point, I'd have hoped the mock implementation would have outlived its usefulness and we could just nuke all of this. But I'll go with whatever Geoff prefers here.

@ManickaP
Copy link
Member Author

Failures are unrelated.

@karelz karelz added this to the 6.0.0 milestone Jul 15, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Aug 14, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants