dotnet / command-line-api

Command line parsing, invocation, and rendering of terminal output.
https://github.com/dotnet/command-line-api/wiki
MIT License
3.35k stars 375 forks source link

Powderhouse support for .NET versions #2373

Open KathleenDollard opened 3 months ago

KathleenDollard commented 3 months ago

Powderhouse plans to support .NET Framework via .NET Standard. We also plan to support LTS, which is easy during development because we are in an LTS version right now.

We will multi-target and test against supported versions.

We will support C# 7.3, which means if you are using 7.3 and can't accomplish something, we'll consider it a bug. This is because C# 7.3 is the highest support version on .NET Standard.

We will develop using the latest version of C#. While this is not a supported scenario, it is this approach used in most .NET repos in order to give you the best tools. This is not a supported because it requires special knowledge and backfilling types.

This issue tracks any details that are needed to provide good support. Please add comments about any down-level issues. As shown by init, things can compile and test, but not work correctly.

.NET Standard

Powderhouse plans to support .NET Standard 2.1 (to provide span<T>).

C# 7.3

init scope

init scope is problematic, indicated by #2213.

init scope will compile, however the setter is not available in 7.3.

We will offer an alternative where init is used, probably via a constructor. We'll consider the value of having two ways of doing things and this may result in us avoiding init scope, but that will be case by case.