-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Remove NS1.x assets from building and packaging #53283
Conversation
These ten projects still built for netstandard1.x. This PR trims out these assets from both the build which also results in them not being packaged anymore as there is no harvesting mechanism in the repository anymore. Suppressing the package warnings for the intentionally dropped assets and cleaning up conditions in the project file as well. For more details please see the reasoning in the linked issue. Contributes to dotnet#53282
Tagging subscribers to this area: @Anipik, @safern, @ViktorHofer Issue DetailsThese ten projects still built for netstandard1.x. This PR Suppressing the package warnings for the intentionally dropped For more details please see the reasoning in the linked issue. Contributes to #53282
|
Note regarding the This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, to please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change. |
src/libraries/System.Threading.Tasks.Dataflow/src/Internal/ConcurrentQueue.cs
Show resolved
Hide resolved
@@ -118,10 +118,8 @@ public static partial class ImmutableArray | |||
public System.Collections.Immutable.ImmutableArray<T> Add(T item) { throw null; } | |||
public System.Collections.Immutable.ImmutableArray<T> AddRange(System.Collections.Generic.IEnumerable<T> items) { throw null; } | |||
public System.Collections.Immutable.ImmutableArray<T> AddRange(System.Collections.Immutable.ImmutableArray<T> items) { throw null; } | |||
#if !NETSTANDARD1_0 |
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.
System.Collections.Immutable is widely used, including by Roslyn. Just want to re-confirm there are no known remaining important dependencies on the .NET Standard 1.x assets?
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.
Let me provide clarity on the overall communication strategy and then go into specifics for Roslyn.
- The change to remove unsupported application tfms (.NETCoreApp < 3.1 and .NETFramework < 4.6.1) and pre netstandard2.0 library assets (.NETStandard < 2.0) was approved by leadership months ago.
- The first wave of this effort (removing harvested assets) was presented to Tactics months ago.
- In yesterday's meeting I communicated that I'll start with trimming the remaining 25 shipping packages and we agreed on to a) send out a separate mail to Tactics in case people were not present in the meeting b) send out a notice to our first party customers via the breaking change notice alias which includes filing a public breaking change issue.
- The docs team will then later convert the breaking change issue into a docs page.
In parallel to submitting these PRs (one for .NETStandard, another one for .NETFramework and the last one for .NETCoreApp) I'm filing the breaking change issue to send out the mail to Tactics and the bcn alias. I plan to do that later this week.
In regards to roslyn as a consumer, I found three code pieces where they still consume the netstandard1.x asset of
System.Collections.Immutable
and System.Reflection.Metadata
. All three projects will need to react to this change by either a) upgrading the tfms or if that's not possible/desirable b) continue referencing the 5.0.0 package even after the 6.0.0 shipped (only for configurations that are affected by this change). Thanks for the feedback, I'll make sure to include the roslyn team in the breaking change notice and will proactively reach out to them.
Customers who try to upgrade these packages to the 6.0.0 version (or to the preview 6 pre-release versions) and still target netstandard1.x, < net461 or < netcoreapp3.1 in their applications will hit an upgrade error in the NuGet Package Explorer or when trying to restore the newer version of the packages i.e. via dotnet restore
. The error will inform customers about which packages don't support the tfms in use anymore.
Please let me know if you have further suggestions regarding the handling and communication of the breaking changes.
src/libraries/System.Numerics.Tensors/pkg/System.Numerics.Tensors.pkgproj
Show resolved
Hide resolved
src/libraries/System.Private.CoreLib/src/System/Diagnostics/CodeAnalysis/NullableAttributes.cs
Show resolved
Hide resolved
src/libraries/System.Reflection.DispatchProxy/src/System/Reflection/DispatchProxyGenerator.cs
Show resolved
Hide resolved
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.
Thanks
</PropertyGroup> | ||
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'"> | ||
<ItemGroup Condition="'$(IsPartialFacadeAssembly)' != '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.
curious on why choose IsPartialFacadeAssembly over the TargetFramework ?
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.
IsPartialFacadeAssembly
is more expressive in this case as it indicates that the partial facade assembly doesn't contain any source where as the non partial facade assembly only contains source and no type forwards.
src/libraries/System.Collections.Immutable/ref/System.Collections.Immutable.csproj
Show resolved
Hide resolved
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.
Apart from TargetFrameworkIdentifier., everything looks good
Browser wasm leg is timing out. @akoeplinger @steveisok is that known? |
These ten projects still built for netstandard1.x. This PR
trims out these assets from both the build which also results
in them not being packaged (as there is no harvesting
mechanism in the repository present anymore).
Suppressing the package warnings for the intentionally dropped
assets and cleaning up conditions in the project file as well.
For more details please see the reasoning in the linked issue.
Contributes to #53282