You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by zo...@apache.org on 2022/12/07 14:28:56 UTC
[avro] branch master updated: AVRO-3670: Add NET 7.0 support (#1956)
This is an automated email from the ASF dual-hosted git repository.
zoltan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/avro.git
The following commit(s) were added to refs/heads/master by this push:
new e3dc0ea60 AVRO-3670: Add NET 7.0 support (#1956)
e3dc0ea60 is described below
commit e3dc0ea60d664f5369094cf33ca9edf1b75a636c
Author: Zoltan Csizmadia <zc...@gmail.com>
AuthorDate: Wed Dec 7 08:28:50 2022 -0600
AVRO-3670: Add NET 7.0 support (#1956)
* Add NET 7.0 support
* Update README
* Revert to setup-dotnet v3
Co-authored-by: Zoltan Csizmadia <Cs...@valassis.com>
---
.github/workflows/codeql-csharp-analysis.yml | 1 +
.github/workflows/test-lang-csharp.yml | 15 ++--------
.github/workflows/test-lang-java.yml | 1 +
lang/csharp/README.md | 28 +++++++++---------
lang/csharp/build.sh | 4 +--
lang/csharp/common.props | 10 +++++--
.../src/apache/benchmark/Avro.benchmark.csproj | 6 ++++
lang/csharp/src/apache/benchmark/Program.cs | 4 +--
lang/csharp/versions.props | 34 ++++++++++------------
9 files changed, 51 insertions(+), 52 deletions(-)
diff --git a/.github/workflows/codeql-csharp-analysis.yml b/.github/workflows/codeql-csharp-analysis.yml
index 53a357dda..81bb1afbe 100644
--- a/.github/workflows/codeql-csharp-analysis.yml
+++ b/.github/workflows/codeql-csharp-analysis.yml
@@ -67,6 +67,7 @@ jobs:
3.1.x
5.0.x
6.0.x
+ 7.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 a9589cb87..1b1d5af95 100644
--- a/.github/workflows/test-lang-csharp.yml
+++ b/.github/workflows/test-lang-csharp.yml
@@ -49,6 +49,7 @@ jobs:
3.1.x
5.0.x
6.0.x
+ 7.0.x
- uses: actions/cache@v3
with:
@@ -63,19 +64,6 @@ jobs:
- name: Test
run: ./build.sh test
- # Build and test against .NET 7
- # .NET 7 is not released yet, however this is a good way to test if the project is ready for the release
- # Once .NET 7 is officially released, this can be removed and 7.0.x can be used instead above
- - name: Install .NET SDK 7.0 (pre-release)
- uses: actions/setup-dotnet@v3
- with:
- include-prerelease: true
- dotnet-version: |
- 7.0.x
-
- - name: Test .NET 7.0 (pre-release)
- run: ./build.sh test
-
interop:
runs-on: ubuntu-latest
steps:
@@ -92,6 +80,7 @@ jobs:
3.1.x
5.0.x
6.0.x
+ 7.0.x
- name: Cache Local Maven Repository
uses: actions/cache@v3
diff --git a/.github/workflows/test-lang-java.yml b/.github/workflows/test-lang-java.yml
index 2f0b9c1fa..3263442e8 100644
--- a/.github/workflows/test-lang-java.yml
+++ b/.github/workflows/test-lang-java.yml
@@ -125,6 +125,7 @@ jobs:
3.1.x
5.0.x
6.0.x
+ 7.0.x
- name: Install Java Avro for Interop Test
working-directory: .
diff --git a/lang/csharp/README.md b/lang/csharp/README.md
index 70fc90e86..6f923fe02 100644
--- a/lang/csharp/README.md
+++ b/lang/csharp/README.md
@@ -17,20 +17,20 @@ Install-Package Apache.Avro
## Project Target Frameworks
-| Project | Published to nuget.org | Type | .NET Standard 2.0 | .NET Standard 2.1 | .NET Core 3.1 | .NET 5.0 | .NET 6.0 |
-|:-------------------:|:--------------------------:|:----------:|:------------------:|:-----------------:|:-------------:|:---------:|:---------:|
-| Avro.main | Apache.Avro | Library | ✔️ | ✔️ | | | |
-| Avro.File.Snappy | Apache.Avro.File.Snappy | Library | ✔️ | ✔️ | | | |
-| Avro.File.BZip2 | Apache.Avro.File.BZip2 | Library | ✔️ | ✔️ | | | |
-| Avro.File.XZ | Apache.Avro.File.XZ | Library | ✔️ | ✔️ | | | |
-| Avro.File.Zstandard | Apache.Avro.File.Zstandard | Library | ✔️ | ✔️ | | | |
-| Avro.codegen | Apache.Avro.Tools | Exe | | | ✔️ |✔️ |✔️ |
-| Avro.ipc | | Library | ✔️ | ✔️ | | | |
-| Avro.ipc.test | | Unit Tests | | | ✔️ |✔️ |✔️ |
-| Avro.msbuild | | Library | ✔️ | ✔️ | | | |
-| Avro.perf | | Exe | | | ✔️ |✔️ |✔️ |
-| Avro.test | | Unit Tests | | | ✔️ |✔️ |✔️ |
-| Avro.benchmark | | Exe | | | ✔️ |✔️ |✔️ |
+| Project | Published to nuget.org | Type | .NET Standard 2.0 | .NET Standard 2.1 | .NET Core 3.1 | .NET 5.0 | .NET 6.0 | .NET 7.0 |
+|:-------------------:|:--------------------------:|:----------:|:------------------:|:-----------------:|:-------------:|:---------:|:---------:|:---------:|
+| Avro.main | Apache.Avro | Library | ✔️ | ✔️ | | | | |
+| Avro.File.Snappy | Apache.Avro.File.Snappy | Library | ✔️ | ✔️ | | | | |
+| Avro.File.BZip2 | Apache.Avro.File.BZip2 | Library | ✔️ | ✔️ | | | | |
+| Avro.File.XZ | Apache.Avro.File.XZ | Library | ✔️ | ✔️ | | | | |
+| Avro.File.Zstandard | Apache.Avro.File.Zstandard | Library | ✔️ | ✔️ | | | | |
+| Avro.codegen | Apache.Avro.Tools | Exe | | | ✔️ |✔️ |✔️ |✔️ |
+| Avro.ipc | | Library | ✔️ | ✔️ | | | | |
+| Avro.ipc.test | | Unit Tests | | | ✔️ |✔️ |✔️ |✔️ |
+| Avro.msbuild | | Library | ✔️ | ✔️ | | | | |
+| Avro.perf | | Exe | | | ✔️ |✔️ |✔️ |✔️ |
+| Avro.test | | Unit Tests | | | ✔️ |✔️ |✔️ |✔️ |
+| Avro.benchmark | | Exe | | | ✔️ |✔️ |✔️ |✔️ |
## Dependency package version strategy
diff --git a/lang/csharp/build.sh b/lang/csharp/build.sh
index c65e08d5d..623ef03a3 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 net6.0
+ dotnet run --configuration Release --framework net7.0
;;
dist)
@@ -77,7 +77,7 @@ do
;;
interop-data-generate)
- dotnet run --project src/apache/test/Avro.test.csproj --framework net6.0 ../../share/test/schemas/interop.avsc ../../build/interop/data
+ dotnet run --project src/apache/test/Avro.test.csproj --framework net7.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 72a79fda0..f7d036255 100644
--- a/lang/csharp/common.props
+++ b/lang/csharp/common.props
@@ -37,9 +37,7 @@
<PropertyGroup Label="Target Frameworks">
<!-- Exe -->
- <!-- NOTE: .NET 7 is still in preview state, use it only if it is available to make sure the project is ready for it. When .NET 7 SDK is released preview, update this -->
- <DefaultExeTargetFrameworks Condition="'$(NETCoreAppMaximumVersion)' != '7.0' or '$(_NETCoreSdkIsPreview)' == 'false'">netcoreapp3.1;net5.0;net6.0</DefaultExeTargetFrameworks>
- <DefaultExeTargetFrameworks Condition="'$(NETCoreAppMaximumVersion)' == '7.0' and '$(_NETCoreSdkIsPreview)' == 'true'">net7.0</DefaultExeTargetFrameworks>
+ <DefaultExeTargetFrameworks>netcoreapp3.1;net5.0;net6.0;net7.0</DefaultExeTargetFrameworks>
<!-- Library -->
<DefaultLibraryTargetFrameworks>netstandard2.0;netstandard2.1</DefaultLibraryTargetFrameworks>
<!-- Unit Tests -->
@@ -61,6 +59,12 @@
<None Include="$(MSBuildThisFileDirectory)\..\..\doc\assets\icons\logo.png" Pack="true" Visible="false" PackagePath=""/>
</ItemGroup>
+ <PropertyGroup>
+ <!-- Disable warning for EOL target frameworks -->
+ <CheckEolTargetFramework>false</CheckEolTargetFramework>
+ <SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings>
+ </PropertyGroup>
+
<PropertyGroup>
<IsTestProject Condition="'$(IsTestProject)' == ''">false</IsTestProject>
<IsTestProject Condition="$(MSBuildProjectName.ToLower().EndsWith('.test')) or $(MSBuildProjectName.ToLower().StartsWith('.test'))">true</IsTestProject>
diff --git a/lang/csharp/src/apache/benchmark/Avro.benchmark.csproj b/lang/csharp/src/apache/benchmark/Avro.benchmark.csproj
index 5b38895a1..b944de3c2 100644
--- a/lang/csharp/src/apache/benchmark/Avro.benchmark.csproj
+++ b/lang/csharp/src/apache/benchmark/Avro.benchmark.csproj
@@ -31,6 +31,12 @@
<IsPackable>false</IsPackable>
</PropertyGroup>
+ <PropertyGroup>
+ <!-- Some schemas use lower cased names, which causes some class names being lower case only -->
+ <!-- e.g. The type name 'test' only contains lower-cased ascii characters. Such names may become reserved for the language. -->
+ <NoWarn>$(NoWarn);CS8981</NoWarn>
+ </PropertyGroup>
+
<ItemGroup>
<PackageReference Include="BenchmarkDotNet" Version="$(BenchmarkDotNetVersion)" />
</ItemGroup>
diff --git a/lang/csharp/src/apache/benchmark/Program.cs b/lang/csharp/src/apache/benchmark/Program.cs
index 4381897e2..5b6351762 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 net6.0
- // dotnet run -c Release -f net6.0 --runtimes netcoreapp3.1 net5.0 net6.0
+ // dotnet run -c Release -f net7.0
+ // dotnet run -c Release -f net7.0 --runtimes netcoreapp3.1 net5.0 net6.0 net7.0
public static void Main(string[] args)
{
BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);
diff --git a/lang/csharp/versions.props b/lang/csharp/versions.props
index 170e609db..203e69722 100644
--- a/lang/csharp/versions.props
+++ b/lang/csharp/versions.props
@@ -26,14 +26,14 @@
!!! SHIPPED CLASS LIBRARIES SHOULD USE MINIMUMVERSIONs FOR SOME LIBRARIES. SEE BELOW !!!
-->
<PropertyGroup Label="Latest Package Versions">
- <NewtonsoftJsonVersion>12.0.3</NewtonsoftJsonVersion>
- <SystemCodeDomVersion>6.0.0</SystemCodeDomVersion>
+ <NewtonsoftJsonVersion>13.0.1</NewtonsoftJsonVersion>
+ <SystemCodeDomVersion>7.0.0</SystemCodeDomVersion>
<SystemReflectionVersion>4.3.0</SystemReflectionVersion>
<SystemReflectionEmitILGenerationVersion>4.7.0</SystemReflectionEmitILGenerationVersion>
<SystemReflectionEmitLightweightVersion>4.7.0</SystemReflectionEmitLightweightVersion>
<!-- The following packages are required for the extra codec libraries. These are not direct dependencies of the Avro.main library. -->
- <SharpZipLibVersion>1.3.3</SharpZipLibVersion>
+ <SharpZipLibVersion>1.4.1</SharpZipLibVersion>
<IronSnappyVersion>1.3.0</IronSnappyVersion>
<JovelerCompressionXZVersion>4.1.0</JovelerCompressionXZVersion>
<ZstandardNetVersion>1.1.7</ZstandardNetVersion>
@@ -55,21 +55,19 @@
Please sort the packages alphabetically
-->
<PropertyGroup Label="Build, Test, Code Analysis, Benchmark Package Versions">
- <BenchmarkDotNetVersion>0.13.1</BenchmarkDotNetVersion>
- <CoverletCollectorVersion>3.1.2</CoverletCollectorVersion>
- <CoverletMSBuildVersion>3.1.2</CoverletMSBuildVersion>
- <MicrosoftBuildFrameworkVersion>17.1.0</MicrosoftBuildFrameworkVersion>
- <MicrosoftBuildUtilitiesCoreVersion>17.1.0</MicrosoftBuildUtilitiesCoreVersion>
- <MicrosoftCodeAnalysisVersion>4.1.0</MicrosoftCodeAnalysisVersion>
- <MicrosoftCodeAnalysisCSharpVersion>4.1.0</MicrosoftCodeAnalysisCSharpVersion>
- <MicrosoftCodeAnalysisCSharpCodeStyleVersion>4.1.0</MicrosoftCodeAnalysisCSharpCodeStyleVersion>
- <!-- When .NET 7 SDK is released or the package is not in preview, update this version -->
- <MicrosoftCodeAnalysisNetAnalyzersVersion Condition="'$(TargetFramework)' != 'net7.0'">6.0.0</MicrosoftCodeAnalysisNetAnalyzersVersion>
- <MicrosoftCodeAnalysisNetAnalyzersVersion Condition="'$(TargetFramework)' == 'net7.0'">7.0.0-preview*</MicrosoftCodeAnalysisNetAnalyzersVersion>
- <MicrosoftNETTestSdkVersion>17.1.0</MicrosoftNETTestSdkVersion>
- <NUnitVersion>3.13.2</NUnitVersion>
- <NUnitConsoleRunnerVersion>3.15.0</NUnitConsoleRunnerVersion>
- <NUnit3TestAdapterVersion>4.2.1</NUnit3TestAdapterVersion>
+ <BenchmarkDotNetVersion>0.13.2</BenchmarkDotNetVersion>
+ <CoverletCollectorVersion>3.2.0</CoverletCollectorVersion>
+ <CoverletMSBuildVersion>3.2.0</CoverletMSBuildVersion>
+ <MicrosoftBuildFrameworkVersion>17.4.0</MicrosoftBuildFrameworkVersion>
+ <MicrosoftBuildUtilitiesCoreVersion>17.4.0</MicrosoftBuildUtilitiesCoreVersion>
+ <MicrosoftCodeAnalysisVersion>4.3.1</MicrosoftCodeAnalysisVersion>
+ <MicrosoftCodeAnalysisCSharpVersion>4.3.1</MicrosoftCodeAnalysisCSharpVersion>
+ <MicrosoftCodeAnalysisCSharpCodeStyleVersion>4.3.1</MicrosoftCodeAnalysisCSharpCodeStyleVersion>
+ <MicrosoftCodeAnalysisNetAnalyzersVersion>7.0.0-preview*</MicrosoftCodeAnalysisNetAnalyzersVersion>
+ <MicrosoftNETTestSdkVersion>17.4.0</MicrosoftNETTestSdkVersion>
+ <NUnitVersion>3.13.3</NUnitVersion>
+ <NUnitConsoleRunnerVersion>3.15.2</NUnitConsoleRunnerVersion>
+ <NUnit3TestAdapterVersion>4.3.0</NUnit3TestAdapterVersion>
<StyleCopAnalyzersVersion>1.1.118</StyleCopAnalyzersVersion>
</PropertyGroup>
</Project>