Skip to content

AVRO-4352: [csharp] Add .NET 9.0 and .NET 10.0 support - #4009

Merged
zcsizmadia merged 1 commit into
apache:mainfrom
zcsizmadia:avro-4352-net9-net10
Oct 1, 2026
Merged

zcsizmadia merged 1 commit into
apache:mainfrom
zcsizmadia:avro-4352-net9-net10

Conversation

@zcsizmadia

Copy link
Copy Markdown
Contributor

What is the purpose of the change

This pull request adds .NET 9.0 and .NET 10.0 support to the C# SDK and
drops the end-of-life .NET 6.0 and .NET 7.0 targets, fixing AVRO-4352.

.NET 6.0 and 7.0 are out of support, and the SDK did not build or test
against the current LTS release, .NET 10.0.

This change:

  • Changes the executable and unit test target frameworks from
    net6.0;net7.0;net8.0 to net8.0;net9.0;net10.0 (common.props).
  • Keeps the class libraries on netstandard2.0;netstandard2.1, so library
    consumers are not affected.
  • Installs the 8.0, 9.0 and 10.0 SDKs in the C#, CodeQL and Java interop
    workflows and in the build Docker image.
  • Runs perf and interop-data-generate in build.sh on net10.0.
  • Updates the README target framework table and the SDK prerequisite.

avrogen (Apache.Avro.Tools) keeps RollForward=Major, so it still runs on
newer runtimes. The tool package no longer contains net6.0 or net7.0 builds.

Verifying this change

This change is already covered by existing tests, which now run on
net8.0, net9.0 and net10.0:

  • ./build.sh test: every test suite in Avro.sln passes on all three
    target frameworks, with no build warnings.
  • ./build.sh interop-data-generate generates the interop data files on
    net10.0, and InteropDataTests passes against them on all three target
    frameworks.

Documentation

  • Does this pull request introduce a new feature? no
  • If yes, how is the feature documented? not applicable

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.
@github-actions github-actions Bot added Java Pull Requests for Java binding build C# labels Sep 25, 2026
@zcsizmadia zcsizmadia removed the Java Pull Requests for Java binding label Sep 25, 2026
@zcsizmadia
zcsizmadia merged commit 28cb08c into apache:main Oct 1, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants