dapr / dotnet-sdk

Dapr SDK for .NET
Apache License 2.0
1.12k stars 340 forks source link

Implementing nullability annotations on Dapr.Client SDK #1317

Closed WhitWaldo closed 1 day ago

WhitWaldo commented 5 months ago

Description

This implements the nullability annotations across the Dapr.Client SDK both on the type level and with a few changes to the logic as necessary to facilitate these changes.

I couldn't leave the challenge posted here unanswered.

I again raise the issue over at #1261 to propose dropping support for both .NET 6 and .NET 7 as both are out of support officially and further, adopting a standard policy of targeting the latest C# language version. Here, this is relevant because while the csproj doesn't lack support for the <nullability>enable</nullability> tag, we don't adopt a specific C# language version, so because we target .NET 6, we implicitly target C# 10 and C# 10 requires explicit #nullability enable notations at the tops of each file implementing the same (e.g. it ignores the csproj annotation).

Issue reference

We strive to have all PR being opened based on an issue, where the problem or feature have been discussed prior to implementation.

Please reference the issue this PR will close: #1316

Though this itself won't close #1316, but will at least let us check off the box for Dapr.Client as that's a larger over-arching issue tracking the end goal.

Checklist

Please make sure you've completed the relevant tasks for this PR, out of the following list:

WhitWaldo commented 1 day ago

Closing this issue as the intent going forward is simply to add nullability annotations by default on new Dapr.* packages while undergoing possible refactoring for performance and language improvements.