[ 
https://issues.apache.org/jira/browse/AVRO-4352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18121555#comment-18121555
 ] 

ASF subversion and git services commented on AVRO-4352:
-------------------------------------------------------

Commit 28cb08c15543c8c2dd8d186db2029bfe760940a5 in avro's branch 
refs/heads/main from Zoltan Csizmadia
[ https://gitbox.apache.org/repos/asf?p=avro.git;h=28cb08c155 ]

AVRO-4352: [C#] Add .NET 9.0 and .NET 10.0 support (#4009)

Target net8.0, net9.0 and net10.0 for executables and unit tests,
replacing the end-of-life net6.0 and net7.0. Class libraries keep
targeting netstandard2.0 and netstandard2.1.

Install the 8.0, 9.0 and 10.0 SDKs in the C#, CodeQL and Java interop
workflows and in the build Docker image, run perf and interop data
generation on net10.0, and update the README target framework table.

>  [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: 20m
>  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)

Reply via email to