-
Notifications
You must be signed in to change notification settings - Fork 5.1k
Open
Labels
Team:LibrariesUser StoryA single user-facing feature. Can be grouped under an epic.A single user-facing feature. Can be grouped under an epic.area-MetatrackingThis issue is tracking the completion of other related issues.This issue is tracking the completion of other related issues.
Milestone
Description
Across .NET Core 3.0 and .NET 5.0, we annotated 94% of the netcoreapp
assemblies for nullable reference types. In .NET 6.0/.NET 7.0, we plan to annotate the remaining 6% of that surface area and continue through other assemblies built from the dotnet/runtime repo.
This issue represents the assemblies previously tracked in #2339 that did not get completed in .NET 5.0. Following the same practices we used in .NET 5.0, we will:
- Submit individual PRs, one for each assembly. Each PR should include changes to both the src and the ref. Each PR should contain only changes related to the nullable annotations/attributes, no other changes.
- PRs can be merged once the annotations have been appropriately reviewed in PR.
- Group all of the nullable annotation changes together in Changes to Nullable Reference Type Annotations in .NET 6.0 docs#21202
In .NET 5.0, as was tracked in #2339, we completed groups 1-8, most of group 9, all of group 10, and some items in groups 11 and 12
Planned for .NET 6.0
Group 9
- System.ComponentModel.TypeConverter (Add nullable annotations to System.ComponentModel.TypeConverter #54961 - @krwq)
- Finish System.Data.Common (Nullable annotations for the remainder of System.Data.Common #55409 - @krwq)
Group 11 (not part of netcoreapp but reference netcoreapp)
- System.DirectoryServices (Add nullable annotations to System.DirectoryServices #48454)
- System.Diagnostics.EventLog
- System.DirectoryServices.Protocols
- System.Security.Permissions
- System.Windows.Extensions Nullable annotation for System.Windows.Extensions #57896
Stretch Goal for .NET 6, or Carry Over to .NET 7.0
Group 12 (built from dotnet/runtime but not in netcoreapp and reference netstandard)
With netstandard not annotated, we will need to be cognizant of the fact that all dependencies will be viewed as oblivious:
- System.CodeDom => netstandard
- System.ComponentModel.Composition.Registration => netstandard, System.Reflection.Context
- System.Composition.AttributedModel => netstandard
- System.Composition.Convention => netstandard, System.Composition.AttributedModel
- System.Composition.Hosting => netstandard, System.Composition.Runtime
- System.Composition.Runtime => netstandard
- System.Composition.TypedParts => netstandard, System.Composition.Runtime, System.Composition.AttributedModel, System.Composition.Hosting
- System.Configuration.ConfigurationManager => netstandard, System.Security.Cryptography.ProtectedData
- System.Diagnostics.PerformanceCounter => System.Configuration.ConfigurationManager
- System.DirectoryServices.AccountManagement => System.Configuration.ConfigurationManager
- System.IO.Ports => netstandard
- System.Management => System.CodeDom
- System.Runtime.Caching => netstandard, System.Configuration.ConfigurationManager
- System.Security.Cryptography.Xml => netstandard
- System.ServiceModel.Syndication => netstandard
Lastly
- Remove
#nullable enable
from individual files after all dependent projects annotated
Sti2nd
Metadata
Metadata
Assignees
Labels
Team:LibrariesUser StoryA single user-facing feature. Can be grouped under an epic.A single user-facing feature. Can be grouped under an epic.area-MetatrackingThis issue is tracking the completion of other related issues.This issue is tracking the completion of other related issues.