This is an automated email from the ASF dual-hosted git repository.

zcsizmadia pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/avro.git


The following commit(s) were added to refs/heads/main by this push:
     new 28cb08c155 AVRO-4352: [C#] Add .NET 9.0 and .NET 10.0 support (#4009)
28cb08c155 is described below

commit 28cb08c15543c8c2dd8d186db2029bfe760940a5
Author: Zoltan Csizmadia <[email protected]>
AuthorDate: Thu Oct 1 07:36:21 2026 -0500

    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.
---
 .github/workflows/codeql-csharp-analysis.yml | 4 ++--
 .github/workflows/test-lang-csharp.yml       | 8 ++++----
 .github/workflows/test-lang-java.yml         | 4 ++--
 lang/csharp/README.md                        | 4 ++--
 lang/csharp/build.sh                         | 4 ++--
 lang/csharp/common.props                     | 2 +-
 lang/csharp/src/apache/benchmark/Program.cs  | 4 ++--
 share/docker/Dockerfile                      | 6 +++---
 8 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/.github/workflows/codeql-csharp-analysis.yml 
b/.github/workflows/codeql-csharp-analysis.yml
index 6e93ae649f..9bc1cac407 100644
--- a/.github/workflows/codeql-csharp-analysis.yml
+++ b/.github/workflows/codeql-csharp-analysis.yml
@@ -64,9 +64,9 @@ jobs:
       uses: actions/setup-dotnet@v6
       with:
         dotnet-version: |
-          6.0.x
-          7.0.x
           8.0.x
+          9.0.x
+          10.0.x
 
     # Initializes the CodeQL tools for scanning.
     - name: Initialize CodeQL
diff --git a/.github/workflows/test-lang-csharp.yml 
b/.github/workflows/test-lang-csharp.yml
index a513620d4d..c7f2544937 100644
--- a/.github/workflows/test-lang-csharp.yml
+++ b/.github/workflows/test-lang-csharp.yml
@@ -51,9 +51,9 @@ jobs:
         uses: actions/setup-dotnet@v6
         with:
           dotnet-version: |
-            6.0.x
-            7.0.x
             8.0.x
+            9.0.x
+            10.0.x
 
       - uses: actions/cache@v6
         with:
@@ -86,9 +86,9 @@ jobs:
         uses: actions/setup-dotnet@v6
         with:
           dotnet-version: |
-            6.0.x
-            7.0.x
             8.0.x
+            9.0.x
+            10.0.x
 
       - name: Cache Local Maven Repository
         uses: actions/cache@v6
diff --git a/.github/workflows/test-lang-java.yml 
b/.github/workflows/test-lang-java.yml
index 0fdf0b9fb8..ea541b0c1f 100644
--- a/.github/workflows/test-lang-java.yml
+++ b/.github/workflows/test-lang-java.yml
@@ -144,9 +144,9 @@ jobs:
         uses: actions/setup-dotnet@v6
         with:
           dotnet-version: |
-            6.0.x
-            7.0.x
             8.0.x
+            9.0.x
+            10.0.x
 
       - name: "Create Interop Data Directory"
         working-directory: .
diff --git a/lang/csharp/README.md b/lang/csharp/README.md
index 6a7c7283b2..a36446f2f6 100644
--- a/lang/csharp/README.md
+++ b/lang/csharp/README.md
@@ -12,12 +12,12 @@ Install-Package Apache.Avro
 
 ## Build & Test
 
-1. Install [.NET SDK 8.0+](https://dotnet.microsoft.com/download/dotnet-core)
+1. Install [.NET SDK 10.0+](https://dotnet.microsoft.com/download/dotnet-core)
 2. `dotnet test`
 
 ## Project Target Frameworks
 
-| Project             | Published to nuget.org     | Type       | .NET 
Standard 2.0  | .NET Standard 2.1 | .NET 6.0  | .NET 7.0  | .NET 8.0  |
+| Project             | Published to nuget.org     | Type       | .NET 
Standard 2.0  | .NET Standard 2.1 | .NET 8.0  | .NET 9.0  | .NET 10.0 |
 
|:-------------------:|:--------------------------:|:----------:|:------------------:|:-----------------:|:---------:|:---------:|:---------:|
 | Avro.main           | Apache.Avro                | Library    | ✔️           
      | ✔️               |           |           |           |
 | Avro.File.Snappy    | Apache.Avro.File.Snappy    | Library    | ✔️           
      | ✔️               |           |           |           |
diff --git a/lang/csharp/build.sh b/lang/csharp/build.sh
index 2efd446317..b34883e050 100755
--- a/lang/csharp/build.sh
+++ b/lang/csharp/build.sh
@@ -42,7 +42,7 @@ do
 
     perf)
       pushd ./src/apache/perf/
-      dotnet run --configuration Release --framework net8.0
+      dotnet run --configuration Release --framework net10.0
       ;;
 
     dist)
@@ -77,7 +77,7 @@ do
       ;;
 
     interop-data-generate)
-      dotnet run --project src/apache/test/Avro.test.csproj --framework net8.0 
../../share/test/schemas/interop.avsc ../../build/interop/data
+      dotnet run --project src/apache/test/Avro.test.csproj --framework 
net10.0 ../../share/test/schemas/interop.avsc ../../build/interop/data
       ;;
 
     interop-data-test)
diff --git a/lang/csharp/common.props b/lang/csharp/common.props
index f41617eadf..36b04db170 100644
--- a/lang/csharp/common.props
+++ b/lang/csharp/common.props
@@ -37,7 +37,7 @@
 
   <PropertyGroup Label="Target Frameworks">
     <!-- Exe -->
-    
<DefaultExeTargetFrameworks>net6.0;net7.0;net8.0</DefaultExeTargetFrameworks>
+    
<DefaultExeTargetFrameworks>net8.0;net9.0;net10.0</DefaultExeTargetFrameworks>
     <!-- Library -->
     
<DefaultLibraryTargetFrameworks>netstandard2.0;netstandard2.1</DefaultLibraryTargetFrameworks>
     <!-- Unit Tests -->
diff --git a/lang/csharp/src/apache/benchmark/Program.cs 
b/lang/csharp/src/apache/benchmark/Program.cs
index c29d51f94d..235127cb22 100644
--- a/lang/csharp/src/apache/benchmark/Program.cs
+++ b/lang/csharp/src/apache/benchmark/Program.cs
@@ -21,8 +21,8 @@ namespace Avro.Benchmark
 {
     public class Program
     {
-        // dotnet run -c Release -f net8.0
-        // dotnet run -c Release -f net8.0 --runtimes net6.0 net7.0 net8.0
+        // dotnet run -c Release -f net10.0
+        // dotnet run -c Release -f net10.0 --runtimes net8.0 net9.0 net10.0
         public static void Main(string[] args)
         {
             BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);
diff --git a/share/docker/Dockerfile b/share/docker/Dockerfile
index 5932e5be7b..2838278c22 100644
--- a/share/docker/Dockerfile
+++ b/share/docker/Dockerfile
@@ -211,9 +211,9 @@ ENV PATH=$PATH:/root/.cargo/bin/:/root/.local/bin
 # Install .NET SDK
 RUN cd /opt ; \
     wget https://dot.net/v1/dotnet-install.sh ; \
-    bash ./dotnet-install.sh --channel "6.0" --install-dir "/opt/dotnet" ; \
-    bash ./dotnet-install.sh --channel "7.0" --install-dir "/opt/dotnet" ; \
-    bash ./dotnet-install.sh --channel "8.0" --install-dir "/opt/dotnet" ;
+    bash ./dotnet-install.sh --channel "8.0" --install-dir "/opt/dotnet" ; \
+    bash ./dotnet-install.sh --channel "9.0" --install-dir "/opt/dotnet" ; \
+    bash ./dotnet-install.sh --channel "10.0" --install-dir "/opt/dotnet" ;
 
 ENV PATH=$PATH:/opt/dotnet
 

Reply via email to