[
https://issues.apache.org/jira/browse/AVRO-4352?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated AVRO-4352:
---------------------------------
Labels: pull-request-available (was: )
> [C#] Add .NET 9.0 and .NET 10.0 support, remove end-of-life .NET 6.0 and 7.0
> -----------------------------------------------------------------------------
>
> Key: AVRO-4352
> URL: https://issues.apache.org/jira/browse/AVRO-4352
> Project: Apache Avro
> Issue Type: New Feature
> Components: csharp
> Reporter: Zoltan Csizmadia
> Priority: Minor
> Labels: pull-request-available
> Time Spent: 10m
> Remaining Estimate: 0h
>
> The C# SDK's executables and test projects currently target
> net6.0;net7.0;net8.0, set by DefaultExeTargetFrameworks in
> lang/csharp/common.props. CI, CodeQL and the build Docker image install only
> the 6.0, 7.0 and 8.0 SDKs.
> Microsoft support status:
> - .NET 6.0 reached end of support on 2024-11-12.
> - .NET 7.0 reached end of support on 2024-05-14.
> - .NET 8.0 (LTS) is supported until 2026-11-10.
> - .NET 9.0 (STS) is supported until 2026-11-10.
> - .NET 10.0 (LTS) was released in November 2025 and is supported until
> November 2028.
> This means two of the three frameworks we target are out of support, and we
> don't build or test against the current LTS at all. common.props sets
> CheckEolTargetFramework=false to hide the warnings about this.
> Proposed changes
> 1. In common.props, change DefaultExeTargetFrameworks from
> net6.0;net7.0;net8.0 to net8.0;net9.0;net10.0.
> DefaultUnitTestTargetFrameworks follows it automatically.
> 2. Leave DefaultLibraryTargetFrameworks (netstandard2.0;netstandard2.1) as it
> is, so .NET Framework and older runtimes can still use the libraries.
> 3. In .github/workflows/test-lang-csharp.yml and
> .github/workflows/codeql-csharp-analysis.yml, install SDKs 8.0.x, 9.0.x and
> 10.0.x.
> 4. In share/docker/Dockerfile, install the 8.0, 9.0 and 10.0 channels instead
> of 6.0, 7.0 and 8.0.
> 5. In lang/csharp/README.md, update the target framework table and the SDK
> prerequisite.
> 6. Review whether CheckEolTargetFramework=false and
> SuppressTfmSupportBuildWarnings are still needed once no EOL targets remain.
> 7. Fix any new analyzer warnings or obsoletions (SYSLIB/CA) the .NET 9 and 10
> SDKs report. The build treats warnings under the project rulesets as errors.
> Compatibility
> - The libraries still target netstandard2.0 and 2.1, so this change doesn't
> affect library users.
> - avrogen uses RollForward=Major, so it still runs on newer runtimes. The
> published tool package will no longer contain net6.0 or net7.0 builds. Anyone
> still using those runtimes can stay on the previous release.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)