Runtime: Archiving stable runtime packages

Created on 31 Oct 2018  路  9Comments  路  Source: dotnet/runtime

There are several packages in dotnet/corefx where the package and supporting language features are mature and no longer evolving, and where the risk of code change likely exceeds the benefit. Those packages should be effectively archived.

Packages:

  • Microsoft.CSharp
  • Microsoft.VisualBasic
  • System.Dynamic
  • System.Linq.Expressions

When archived, we would not accept features contributions to the packages. We would consider changes that address significant bugs or regressions, or changes that are necessary to continue shipping the binaries. Other changes will be rejected.

There is one exception: Microsoft.VisualBasic is currently being ported to .NET Core and we will continue to accept contributions that are within the scope of the porting effort.

README.md files will be added to the root of each affected package.

Design Discussion area-Meta packaging

Most helpful comment

I disagree with the maturity status of System.Linq.Expressions: this package does not support any of the recent .NET constructs like Span<T>, stackalloc and ref struct.

All 9 comments

Tagging some most active contributors in the area and in the repo for awareness (sorry if I missed anyone): @hughbe @JonHanna @justinvp @bartdesmet @jamesqo @MarcoRossignoli @AlexRadch @filipnavara @benaadams @jbhensley @svick @GSPP

This is understandable. As said, these are mature assemblies, and there is risk to changing them. Moreover, two of these assemblies are language specific.

However, I'm curious about how it affects issue dotnet/runtime#19615. Namely, Microsoft.VisualBasic.dll as it existed in netcore v1 and v2 had low test coverage. (Of course, for the netcore v3 additions, tests are being added).

So, for improving test coverage, would that need to be done before the freeze date?

This list should include more assemblies, e.g. System.Runtime.Serialization.Formatters (binary serialization) should be in the archived list as well.

I'm not sure those are libraries that are "no longer evolving". Specifically:

Or would those changes fall under those that are allowed on archived packages?

@svick that one change though to Microsoft.CSharp is the exception, not the rule. In general new features have not made their way to having dynamic or expression tree support for several releases now. There aren't any plans to pick up the pace on this at this time.

In the event we did decide to bring more language features back then yes we'd need to un-archive these projects.

I disagree with the maturity status of System.Linq.Expressions: this package does not support any of the recent .NET constructs like Span<T>, stackalloc and ref struct.

Also, System.Linq.Expressions is currently lacking the CompileToMethod method, as stated in dotnet/runtime#20270.

@jaredpar looks like most of these are not being live built anymore (all except for Microsoft.CSharp). Do we want to move this to Future or do we want to keep this as 3.0?

Moving to Future given that this doesn't need to happen before 3.0

Was this page helpful?
0 / 5 - 0 ratings