This is an automated email from the ASF dual-hosted git repository.
gkoszyk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iggy.git
The following commit(s) were added to refs/heads/master by this push:
new 16b7d6680 feat(csharp): add .net10 (#2599)
16b7d6680 is described below
commit 16b7d6680632a18651e89834e97ae9d19ee5cea5
Author: Łukasz Zborek <[email protected]>
AuthorDate: Sat Jan 24 14:25:43 2026 +0100
feat(csharp): add .net10 (#2599)
- add .net10 to multi target build
- update examples to .net10
- update tests to use multi target framework (bdd tests runs only on
.net10)
- change tests to use Microsoft Testing Platform
- enable symbol generation and publish with NuGet packages
- add source link for source debugging
---------
Co-authored-by: Grzegorz Koszyk
<[email protected]>
---
.../actions/csharp-dotnet/post-merge/action.yml | 2 +-
.github/actions/csharp-dotnet/pre-merge/action.yml | 13 ++--
bdd/csharp/Dockerfile | 2 +-
.../Iggy_SDK.Examples.Basic.Consumer.csproj | 10 ++--
.../Iggy_SDK.Examples.Basic.Producer.csproj | 12 ++--
...ggy_SDK.Examples.GettingStarted.Consumer.csproj | 6 +-
...ggy_SDK.Examples.GettingStarted.Producer.csproj | 6 +-
.../Iggy_SDK.Examples.Shared.csproj | 2 +-
...gy_SDK.Examples.MessageEnvelope.Consumer.csproj | 12 ++--
...gy_SDK.Examples.MessageEnvelope.Producer.csproj | 12 ++--
...ggy_SDK.Examples.MessageHeaders.Consumer.csproj | 6 +-
...ggy_SDK.Examples.MessageHeaders.Producer.csproj | 6 +-
.../Iggy_SDK.Examples.NewSdk.Consumer.csproj | 12 ++--
.../Iggy_SDK.Examples.NewSdk.Producer.csproj | 12 ++--
foreign/csharp/Benchmarks/Benchmarks.csproj | 2 +-
foreign/csharp/DEPENDENCIES.md | 21 ++++---
foreign/csharp/Directory.Build.props | 14 +++++
foreign/csharp/Directory.Packages.props | 21 ++++---
.../Iggy_SDK.Tests.BDD/Iggy_SDK.Tests.BDD.csproj | 7 +--
.../BasicMessagingOperationsSteps.cs | 3 +-
.../Fixtures/IggyServerFixture.cs | 3 +-
.../Iggy_SDK.Tests.Integration.csproj | 6 +-
foreign/csharp/Iggy_SDK/Iggy_SDK.csproj | 8 ++-
.../csharp/Iggy_SDK_Tests/Iggy_SDK_Tests.csproj | 9 +--
.../UtilityTests/EventAggregatorTests.cs | 4 +-
.../csharp/Iggy_SDK_Tests/Utils/PriorityOrderer.cs | 69 ----------------------
foreign/csharp/Shared/Shared.csproj | 2 +-
foreign/csharp/global.json | 5 ++
28 files changed, 117 insertions(+), 170 deletions(-)
diff --git a/.github/actions/csharp-dotnet/post-merge/action.yml
b/.github/actions/csharp-dotnet/post-merge/action.yml
index 7d9ca5af6..b69333e98 100644
--- a/.github/actions/csharp-dotnet/post-merge/action.yml
+++ b/.github/actions/csharp-dotnet/post-merge/action.yml
@@ -33,7 +33,7 @@ runs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
- dotnet-version: "8.0.x"
+ dotnet-version: "10.0.x"
- name: Restore dependencies
run: |
diff --git a/.github/actions/csharp-dotnet/pre-merge/action.yml
b/.github/actions/csharp-dotnet/pre-merge/action.yml
index b8422b071..962d75a4b 100644
--- a/.github/actions/csharp-dotnet/pre-merge/action.yml
+++ b/.github/actions/csharp-dotnet/pre-merge/action.yml
@@ -30,7 +30,7 @@ runs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
- dotnet-version: "8.0.x"
+ dotnet-version: "10.0.x"
- name: Setup Rust with cache
if: inputs.task == 'test' || inputs.task == 'e2e'
@@ -65,9 +65,10 @@ runs:
- name: Test
if: inputs.task == 'test'
+ working-directory: foreign/csharp
run: |
# Run unit tests
- dotnet test foreign/csharp/Iggy_SDK_Tests --no-build --verbosity normal
+ dotnet test --project Iggy_SDK_Tests --no-build --verbosity normal
shell: bash
@@ -82,19 +83,21 @@ runs:
- name: Run integration tests
if: inputs.task == 'e2e'
+ working-directory: foreign/csharp
env:
IGGY_SERVER_DOCKER_IMAGE: ${{ steps.docker_build.outputs.docker_image
}}
run: |
- dotnet test foreign/csharp/Iggy_SDK.Tests.Integration --no-build
--verbosity normal
+ dotnet test --project Iggy_SDK.Tests.Integration --no-build
--verbosity normal
shell: bash
- name: Build Release
if: inputs.task == 'build'
+ working-directory: foreign/csharp
run: |
# Build in Release mode
- dotnet build foreign/csharp/Iggy_SDK.sln -c Release --no-restore
+ dotnet build Iggy_SDK.sln -c Release --no-restore
# List build output
echo "Build output:"
- find . -name "*.dll" -path "*/bin/Release/*" | head -20 || echo "No
DLLs found in Release folders"
+ find . -name "*.dll" -path "Iggy_SDK/bin/Release/*" | head -20 || echo
"No DLLs found in Release folders"
shell: bash
diff --git a/bdd/csharp/Dockerfile b/bdd/csharp/Dockerfile
index 570a86cad..de6ea610e 100644
--- a/bdd/csharp/Dockerfile
+++ b/bdd/csharp/Dockerfile
@@ -15,7 +15,7 @@
# specific language governing permissions and limitations
# under the License.
-FROM mcr.microsoft.com/dotnet/sdk:8.0
+FROM mcr.microsoft.com/dotnet/sdk:10.0
COPY ./foreign/csharp ./foreign/csharp
COPY ./bdd/scenarios ./bdd/scenarios
diff --git
a/examples/csharp/src/Basic/Iggy_SDK.Examples.Basic.Consumer/Iggy_SDK.Examples.Basic.Consumer.csproj
b/examples/csharp/src/Basic/Iggy_SDK.Examples.Basic.Consumer/Iggy_SDK.Examples.Basic.Consumer.csproj
index d02cde821..4b60e15ab 100644
---
a/examples/csharp/src/Basic/Iggy_SDK.Examples.Basic.Consumer/Iggy_SDK.Examples.Basic.Consumer.csproj
+++
b/examples/csharp/src/Basic/Iggy_SDK.Examples.Basic.Consumer/Iggy_SDK.Examples.Basic.Consumer.csproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<WarningsAsErrors>true</WarningsAsErrors>
@@ -11,10 +11,10 @@
<ProjectReference
Include="..\..\Iggy_SDK.Examples.Shared\Iggy_SDK.Examples.Shared.csproj"/>
</ItemGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.Extensions.Configuration"
Version="8.0.0"/>
- <PackageReference Include="Microsoft.Extensions.Configuration.Binder"
Version="8.0.2"/>
- <PackageReference Include="Microsoft.Extensions.Configuration.Json"
Version="8.0.1"/>
- <PackageReference Include="Microsoft.Extensions.Logging.Console"
Version="8.0.1"/>
+ <PackageReference Include="Microsoft.Extensions.Configuration"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Configuration.Binder"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Configuration.Json"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Logging.Console"
Version="10.0.2" />
</ItemGroup>
<ItemGroup>
<None Update="appsettings.json">
diff --git
a/examples/csharp/src/Basic/Iggy_SDK.Examples.Basic.Producer/Iggy_SDK.Examples.Basic.Producer.csproj
b/examples/csharp/src/Basic/Iggy_SDK.Examples.Basic.Producer/Iggy_SDK.Examples.Basic.Producer.csproj
index beb8b9c32..64342641b 100644
---
a/examples/csharp/src/Basic/Iggy_SDK.Examples.Basic.Producer/Iggy_SDK.Examples.Basic.Producer.csproj
+++
b/examples/csharp/src/Basic/Iggy_SDK.Examples.Basic.Producer/Iggy_SDK.Examples.Basic.Producer.csproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<WarningsAsErrors>true</WarningsAsErrors>
@@ -11,11 +11,11 @@
<ProjectReference
Include="..\..\Iggy_SDK.Examples.Shared\Iggy_SDK.Examples.Shared.csproj"/>
</ItemGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.Extensions.Configuration"
Version="8.0.0"/>
- <PackageReference Include="Microsoft.Extensions.Configuration.Binder"
Version="8.0.2"/>
- <PackageReference Include="Microsoft.Extensions.Configuration.Json"
Version="8.0.1"/>
- <PackageReference Include="Microsoft.Extensions.Logging"
Version="8.0.1" />
- <PackageReference Include="Microsoft.Extensions.Logging.Console"
Version="8.0.1"/>
+ <PackageReference Include="Microsoft.Extensions.Configuration"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Configuration.Binder"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Configuration.Json"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Logging"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Logging.Console"
Version="10.0.2" />
</ItemGroup>
<ItemGroup>
<None Update="appsettings.json">
diff --git
a/examples/csharp/src/GettingStarted/Iggy_SDK.Examples.GettingStarted.Consumer/Iggy_SDK.Examples.GettingStarted.Consumer.csproj
b/examples/csharp/src/GettingStarted/Iggy_SDK.Examples.GettingStarted.Consumer/Iggy_SDK.Examples.GettingStarted.Consumer.csproj
index bbb39ca85..d216e933e 100644
---
a/examples/csharp/src/GettingStarted/Iggy_SDK.Examples.GettingStarted.Consumer/Iggy_SDK.Examples.GettingStarted.Consumer.csproj
+++
b/examples/csharp/src/GettingStarted/Iggy_SDK.Examples.GettingStarted.Consumer/Iggy_SDK.Examples.GettingStarted.Consumer.csproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<WarningsAsErrors>true</WarningsAsErrors>
@@ -11,7 +11,7 @@
<ProjectReference
Include="..\..\Iggy_SDK.Examples.Shared\Iggy_SDK.Examples.Shared.csproj"/>
</ItemGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.Extensions.Logging"
Version="8.0.1" />
- <PackageReference Include="Microsoft.Extensions.Logging.Console"
Version="8.0.1"/>
+ <PackageReference Include="Microsoft.Extensions.Logging"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Logging.Console"
Version="10.0.2" />
</ItemGroup>
</Project>
diff --git
a/examples/csharp/src/GettingStarted/Iggy_SDK.Examples.GettingStarted.Producer/Iggy_SDK.Examples.GettingStarted.Producer.csproj
b/examples/csharp/src/GettingStarted/Iggy_SDK.Examples.GettingStarted.Producer/Iggy_SDK.Examples.GettingStarted.Producer.csproj
index ecc1004a8..a97e57117 100644
---
a/examples/csharp/src/GettingStarted/Iggy_SDK.Examples.GettingStarted.Producer/Iggy_SDK.Examples.GettingStarted.Producer.csproj
+++
b/examples/csharp/src/GettingStarted/Iggy_SDK.Examples.GettingStarted.Producer/Iggy_SDK.Examples.GettingStarted.Producer.csproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<WarningsAsErrors>true</WarningsAsErrors>
@@ -11,7 +11,7 @@
<ProjectReference
Include="..\..\Iggy_SDK.Examples.Shared\Iggy_SDK.Examples.Shared.csproj"/>
</ItemGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.Extensions.Logging.Abstractions"
Version="8.0.2" />
- <PackageReference Include="Microsoft.Extensions.Logging.Console"
Version="8.0.1"/>
+ <PackageReference Include="Microsoft.Extensions.Logging.Abstractions"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Logging.Console"
Version="10.0.2" />
</ItemGroup>
</Project>
diff --git
a/examples/csharp/src/Iggy_SDK.Examples.Shared/Iggy_SDK.Examples.Shared.csproj
b/examples/csharp/src/Iggy_SDK.Examples.Shared/Iggy_SDK.Examples.Shared.csproj
index c36794630..064ff65b8 100644
---
a/examples/csharp/src/Iggy_SDK.Examples.Shared/Iggy_SDK.Examples.Shared.csproj
+++
b/examples/csharp/src/Iggy_SDK.Examples.Shared/Iggy_SDK.Examples.Shared.csproj
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<WarningsAsErrors>true</WarningsAsErrors>
diff --git
a/examples/csharp/src/MessageEnvelope/Iggy_SDK.Examples.MessageEnvelope.Consumer/Iggy_SDK.Examples.MessageEnvelope.Consumer.csproj
b/examples/csharp/src/MessageEnvelope/Iggy_SDK.Examples.MessageEnvelope.Consumer/Iggy_SDK.Examples.MessageEnvelope.Consumer.csproj
index 92bdab468..86cbd0bd8 100644
---
a/examples/csharp/src/MessageEnvelope/Iggy_SDK.Examples.MessageEnvelope.Consumer/Iggy_SDK.Examples.MessageEnvelope.Consumer.csproj
+++
b/examples/csharp/src/MessageEnvelope/Iggy_SDK.Examples.MessageEnvelope.Consumer/Iggy_SDK.Examples.MessageEnvelope.Consumer.csproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<WarningsAsErrors>true</WarningsAsErrors>
@@ -11,10 +11,10 @@
<ProjectReference
Include="..\..\Iggy_SDK.Examples.Shared\Iggy_SDK.Examples.Shared.csproj"/>
</ItemGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.Extensions.Configuration"
Version="8.0.0"/>
- <PackageReference Include="Microsoft.Extensions.Configuration.Binder"
Version="8.0.2"/>
- <PackageReference Include="Microsoft.Extensions.Configuration.Json"
Version="8.0.1"/>
- <PackageReference Include="Microsoft.Extensions.Logging"
Version="8.0.1" />
- <PackageReference Include="Microsoft.Extensions.Logging.Console"
Version="8.0.1"/>
+ <PackageReference Include="Microsoft.Extensions.Configuration"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Configuration.Binder"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Configuration.Json"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Logging"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Logging.Console"
Version="10.0.2" />
</ItemGroup>
</Project>
diff --git
a/examples/csharp/src/MessageEnvelope/Iggy_SDK.Examples.MessageEnvelope.Producer/Iggy_SDK.Examples.MessageEnvelope.Producer.csproj
b/examples/csharp/src/MessageEnvelope/Iggy_SDK.Examples.MessageEnvelope.Producer/Iggy_SDK.Examples.MessageEnvelope.Producer.csproj
index 92bdab468..86cbd0bd8 100644
---
a/examples/csharp/src/MessageEnvelope/Iggy_SDK.Examples.MessageEnvelope.Producer/Iggy_SDK.Examples.MessageEnvelope.Producer.csproj
+++
b/examples/csharp/src/MessageEnvelope/Iggy_SDK.Examples.MessageEnvelope.Producer/Iggy_SDK.Examples.MessageEnvelope.Producer.csproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<WarningsAsErrors>true</WarningsAsErrors>
@@ -11,10 +11,10 @@
<ProjectReference
Include="..\..\Iggy_SDK.Examples.Shared\Iggy_SDK.Examples.Shared.csproj"/>
</ItemGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.Extensions.Configuration"
Version="8.0.0"/>
- <PackageReference Include="Microsoft.Extensions.Configuration.Binder"
Version="8.0.2"/>
- <PackageReference Include="Microsoft.Extensions.Configuration.Json"
Version="8.0.1"/>
- <PackageReference Include="Microsoft.Extensions.Logging"
Version="8.0.1" />
- <PackageReference Include="Microsoft.Extensions.Logging.Console"
Version="8.0.1"/>
+ <PackageReference Include="Microsoft.Extensions.Configuration"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Configuration.Binder"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Configuration.Json"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Logging"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Logging.Console"
Version="10.0.2" />
</ItemGroup>
</Project>
diff --git
a/examples/csharp/src/MessageHeaders/Iggy_SDK.Examples.MessageHeaders.Consumer/Iggy_SDK.Examples.MessageHeaders.Consumer.csproj
b/examples/csharp/src/MessageHeaders/Iggy_SDK.Examples.MessageHeaders.Consumer/Iggy_SDK.Examples.MessageHeaders.Consumer.csproj
index bbb39ca85..d216e933e 100644
---
a/examples/csharp/src/MessageHeaders/Iggy_SDK.Examples.MessageHeaders.Consumer/Iggy_SDK.Examples.MessageHeaders.Consumer.csproj
+++
b/examples/csharp/src/MessageHeaders/Iggy_SDK.Examples.MessageHeaders.Consumer/Iggy_SDK.Examples.MessageHeaders.Consumer.csproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<WarningsAsErrors>true</WarningsAsErrors>
@@ -11,7 +11,7 @@
<ProjectReference
Include="..\..\Iggy_SDK.Examples.Shared\Iggy_SDK.Examples.Shared.csproj"/>
</ItemGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.Extensions.Logging"
Version="8.0.1" />
- <PackageReference Include="Microsoft.Extensions.Logging.Console"
Version="8.0.1"/>
+ <PackageReference Include="Microsoft.Extensions.Logging"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Logging.Console"
Version="10.0.2" />
</ItemGroup>
</Project>
diff --git
a/examples/csharp/src/MessageHeaders/Iggy_SDK.Examples.MessageHeaders.Producer/Iggy_SDK.Examples.MessageHeaders.Producer.csproj
b/examples/csharp/src/MessageHeaders/Iggy_SDK.Examples.MessageHeaders.Producer/Iggy_SDK.Examples.MessageHeaders.Producer.csproj
index bbb39ca85..d216e933e 100644
---
a/examples/csharp/src/MessageHeaders/Iggy_SDK.Examples.MessageHeaders.Producer/Iggy_SDK.Examples.MessageHeaders.Producer.csproj
+++
b/examples/csharp/src/MessageHeaders/Iggy_SDK.Examples.MessageHeaders.Producer/Iggy_SDK.Examples.MessageHeaders.Producer.csproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<WarningsAsErrors>true</WarningsAsErrors>
@@ -11,7 +11,7 @@
<ProjectReference
Include="..\..\Iggy_SDK.Examples.Shared\Iggy_SDK.Examples.Shared.csproj"/>
</ItemGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.Extensions.Logging"
Version="8.0.1" />
- <PackageReference Include="Microsoft.Extensions.Logging.Console"
Version="8.0.1"/>
+ <PackageReference Include="Microsoft.Extensions.Logging"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Logging.Console"
Version="10.0.2" />
</ItemGroup>
</Project>
diff --git
a/examples/csharp/src/NewSdk/Iggy_SDK.Examples.NewSdk.Consumer/Iggy_SDK.Examples.NewSdk.Consumer.csproj
b/examples/csharp/src/NewSdk/Iggy_SDK.Examples.NewSdk.Consumer/Iggy_SDK.Examples.NewSdk.Consumer.csproj
index b5c34ff99..96f90f615 100644
---
a/examples/csharp/src/NewSdk/Iggy_SDK.Examples.NewSdk.Consumer/Iggy_SDK.Examples.NewSdk.Consumer.csproj
+++
b/examples/csharp/src/NewSdk/Iggy_SDK.Examples.NewSdk.Consumer/Iggy_SDK.Examples.NewSdk.Consumer.csproj
@@ -2,17 +2,17 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.Extensions.Configuration"
Version="8.0.0"/>
- <PackageReference Include="Microsoft.Extensions.Configuration.Binder"
Version="8.0.2"/>
- <PackageReference Include="Microsoft.Extensions.Configuration.Json"
Version="8.0.1"/>
- <PackageReference Include="Microsoft.Extensions.Logging"
Version="8.0.1" />
- <PackageReference Include="Microsoft.Extensions.Logging.Console"
Version="8.0.1"/>
+ <PackageReference Include="Microsoft.Extensions.Configuration"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Configuration.Binder"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Configuration.Json"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Logging"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Logging.Console"
Version="10.0.2" />
</ItemGroup>
<ItemGroup>
diff --git
a/examples/csharp/src/NewSdk/Iggy_SDK.Examples.NewSdk.Producer/Iggy_SDK.Examples.NewSdk.Producer.csproj
b/examples/csharp/src/NewSdk/Iggy_SDK.Examples.NewSdk.Producer/Iggy_SDK.Examples.NewSdk.Producer.csproj
index 369228baf..388f1c562 100644
---
a/examples/csharp/src/NewSdk/Iggy_SDK.Examples.NewSdk.Producer/Iggy_SDK.Examples.NewSdk.Producer.csproj
+++
b/examples/csharp/src/NewSdk/Iggy_SDK.Examples.NewSdk.Producer/Iggy_SDK.Examples.NewSdk.Producer.csproj
@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
@@ -11,10 +11,10 @@
<ProjectReference
Include="..\..\Iggy_SDK.Examples.Shared\Iggy_SDK.Examples.Shared.csproj"/>
</ItemGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.Extensions.Configuration"
Version="8.0.0"/>
- <PackageReference Include="Microsoft.Extensions.Configuration.Binder"
Version="8.0.2"/>
- <PackageReference Include="Microsoft.Extensions.Configuration.Json"
Version="8.0.1"/>
- <PackageReference Include="Microsoft.Extensions.Logging"
Version="8.0.1" />
- <PackageReference Include="Microsoft.Extensions.Logging.Console"
Version="8.0.1"/>
+ <PackageReference Include="Microsoft.Extensions.Configuration"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Configuration.Binder"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Configuration.Json"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Logging"
Version="10.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Logging.Console"
Version="10.0.2" />
</ItemGroup>
</Project>
diff --git a/foreign/csharp/Benchmarks/Benchmarks.csproj
b/foreign/csharp/Benchmarks/Benchmarks.csproj
index d772e827c..457769b67 100644
--- a/foreign/csharp/Benchmarks/Benchmarks.csproj
+++ b/foreign/csharp/Benchmarks/Benchmarks.csproj
@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFrameworks>net8.0;net10.0</TargetFrameworks>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<AssemblyName>Apache.Iggy.Benchmarks</AssemblyName>
diff --git a/foreign/csharp/DEPENDENCIES.md b/foreign/csharp/DEPENDENCIES.md
index 5e8657912..4ae8d2e34 100644
--- a/foreign/csharp/DEPENDENCIES.md
+++ b/foreign/csharp/DEPENDENCIES.md
@@ -1,18 +1,17 @@
# Dependencies
-BenchmarkDotNet: "0.15.2", "MIT",
-coverlet.collector: "6.0.4", "MIT",
FluentAssertions: "6.12.0", "Apache-2.0",
-Microsoft.Extensions.Logging: "8.0.1", "MIT",
-Microsoft.Extensions.Logging.Console: "8.0.1", "MIT",
-Microsoft.NET.Test.Sdk: "18.0.0", "MIT",
-Microsoft.Testing.Extensions.CodeCoverage: "18.0.4", "MIT",
-Microsoft.Testing.Extensions.TrxReport: "1.9.0", "MIT",
+Microsoft.Extensions.Logging: "8.0.0", "MIT",
+Microsoft.Extensions.Logging.Console: "8.0.0", "MIT",
+Microsoft.NET.Test.Sdk: "18.0.1", "MIT",
+Microsoft.SourceLink.GitHub: "10.0.102", "MIT",
+Microsoft.Testing.Extensions.CodeCoverage: "18.3.2", "MIT",
+Microsoft.Testing.Extensions.TrxReport: "2.0.2", "MIT",
Moq: "4.20.72", "BSD-3-Clause",
-Reqnroll.xUnit: "3.2.1", "BSD-3-Clause",
+Reqnroll.xUnit: "3.3.2", "BSD-3-Clause",
Shouldly: "4.3.0", "BSD-3-Clause",
System.IO.Hashing: "8.0.0", "MIT",
-Testcontainers: "4.8.1", "MIT",
-TUnit: "0.70.0", "MIT",
-xunit: "2.9.3", "Apache-2.0",
+Testcontainers: "4.10.0", "MIT",
+TUnit: "1.12.15", "MIT",
+xunit.v3.mtp-v2: "3.2.2", "Apache-2.0",
xunit.runner.visualstudio: "3.1.5", "Apache-2.0",
diff --git a/foreign/csharp/Directory.Build.props
b/foreign/csharp/Directory.Build.props
new file mode 100644
index 000000000..7bbbc8015
--- /dev/null
+++ b/foreign/csharp/Directory.Build.props
@@ -0,0 +1,14 @@
+<Project>
+ <PropertyGroup>
+ <PublishRepositoryUrl>true</PublishRepositoryUrl>
+ <EmbedUntrackedSources>true</EmbedUntrackedSources>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
+ <ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <PackageReference Include="Microsoft.SourceLink.GitHub"
PrivateAssets="All" />
+ </ItemGroup>
+</Project>
diff --git a/foreign/csharp/Directory.Packages.props
b/foreign/csharp/Directory.Packages.props
index 9ab1be837..d32135b2f 100644
--- a/foreign/csharp/Directory.Packages.props
+++ b/foreign/csharp/Directory.Packages.props
@@ -4,24 +4,23 @@
<CentralPackageTransitivePinningEnabled>false</CentralPackageTransitivePinningEnabled>
</PropertyGroup>
<ItemGroup>
- <PackageVersion Include="BenchmarkDotNet" Version="0.15.2" />
- <PackageVersion Include="coverlet.collector" Version="6.0.4" />
<PackageVersion Include="FluentAssertions" Version="6.12.0" />
- <PackageVersion Include="Microsoft.Extensions.Logging" Version="8.0.1"
/>
- <PackageVersion Include="Microsoft.Extensions.Logging.Console"
Version="8.0.1" />
- <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.0.0" />
- <PackageVersion Include="Microsoft.Testing.Extensions.CodeCoverage"
Version="18.0.4" />
- <PackageVersion Include="Microsoft.Testing.Extensions.TrxReport"
Version="1.9.0" />
+ <PackageVersion Include="Microsoft.Extensions.Logging" Version="8.0.0"
/>
+ <PackageVersion Include="Microsoft.Extensions.Logging.Console"
Version="8.0.0" />
+ <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
+ <PackageVersion Include="Microsoft.SourceLink.GitHub"
Version="10.0.102" />
+ <PackageVersion Include="Microsoft.Testing.Extensions.CodeCoverage"
Version="18.3.2" />
+ <PackageVersion Include="Microsoft.Testing.Extensions.TrxReport"
Version="2.0.2" />
<PackageVersion Include="Moq" Version="4.20.72" />
- <PackageVersion Include="Reqnroll.xUnit" Version="3.2.1" />
+ <PackageVersion Include="Reqnroll.xunit.v3" Version="3.3.2" />
<PackageVersion Include="Shouldly" Version="4.3.0" />
<PackageVersion Include="System.IO.Hashing" Version="8.0.0" />
- <PackageVersion Include="Testcontainers" Version="4.8.1" />
- <PackageVersion Include="TUnit" Version="0.70.0" />
- <PackageVersion Include="xunit" Version="2.9.3" />
+ <PackageVersion Include="Testcontainers" Version="4.10.0" />
+ <PackageVersion Include="TUnit" Version="1.12.15" />
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers;
buildtransitive</IncludeAssets>
</PackageVersion>
+ <PackageVersion Include="xunit.v3.mtp-v2" Version="3.2.2" />
</ItemGroup>
</Project>
diff --git a/foreign/csharp/Iggy_SDK.Tests.BDD/Iggy_SDK.Tests.BDD.csproj
b/foreign/csharp/Iggy_SDK.Tests.BDD/Iggy_SDK.Tests.BDD.csproj
index 773e61c32..1c1b2230a 100644
--- a/foreign/csharp/Iggy_SDK.Tests.BDD/Iggy_SDK.Tests.BDD.csproj
+++ b/foreign/csharp/Iggy_SDK.Tests.BDD/Iggy_SDK.Tests.BDD.csproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
@@ -18,15 +18,14 @@
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="coverlet.collector" />
<PackageReference Include="Microsoft.NET.Test.Sdk" />
- <PackageReference Include="Reqnroll.xUnit" />
+ <PackageReference Include="Reqnroll.xunit.v3" />
<PackageReference Include="Shouldly" />
- <PackageReference Include="xunit" />
<PackageReference Include="xunit.runner.visualstudio">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers;
buildtransitive</IncludeAssets>
</PackageReference>
+ <PackageReference Include="xunit.v3.mtp-v2" />
</ItemGroup>
<ItemGroup>
diff --git
a/foreign/csharp/Iggy_SDK.Tests.BDD/StepDefinitions/BasicMessagingOperationsSteps.cs
b/foreign/csharp/Iggy_SDK.Tests.BDD/StepDefinitions/BasicMessagingOperationsSteps.cs
index 974397cc8..82bacbba0 100644
---
a/foreign/csharp/Iggy_SDK.Tests.BDD/StepDefinitions/BasicMessagingOperationsSteps.cs
+++
b/foreign/csharp/Iggy_SDK.Tests.BDD/StepDefinitions/BasicMessagingOperationsSteps.cs
@@ -22,11 +22,10 @@ using Apache.Iggy.Enums;
using Apache.Iggy.Factory;
using Apache.Iggy.Kinds;
using Apache.Iggy.Messages;
-using Apache.Iggy.Tests.BDD.Context;
-using Microsoft.Extensions.Logging.Abstractions;
using Reqnroll;
using Shouldly;
using Partitioning = Apache.Iggy.Kinds.Partitioning;
+using TestContext = Apache.Iggy.Tests.BDD.Context.TestContext;
namespace Apache.Iggy.Tests.BDD.StepDefinitions;
diff --git
a/foreign/csharp/Iggy_SDK.Tests.Integration/Fixtures/IggyServerFixture.cs
b/foreign/csharp/Iggy_SDK.Tests.Integration/Fixtures/IggyServerFixture.cs
index bc81d3087..136d2c22b 100644
--- a/foreign/csharp/Iggy_SDK.Tests.Integration/Fixtures/IggyServerFixture.cs
+++ b/foreign/csharp/Iggy_SDK.Tests.Integration/Fixtures/IggyServerFixture.cs
@@ -60,8 +60,7 @@ public class IggyServerFixture : IAsyncInitializer,
IAsyncDisposable
public IggyServerFixture()
{
- var builder = new ContainerBuilder()
- .WithImage(DockerImage)
+ var builder = new ContainerBuilder(DockerImage)
.WithPortBinding(3000, true)
.WithPortBinding(8090, true)
.WithOutputConsumer(Consume.RedirectStdoutAndStderrToConsole())
diff --git
a/foreign/csharp/Iggy_SDK.Tests.Integration/Iggy_SDK.Tests.Integration.csproj
b/foreign/csharp/Iggy_SDK.Tests.Integration/Iggy_SDK.Tests.Integration.csproj
index 24b2162d9..9c8b3cf1e 100644
---
a/foreign/csharp/Iggy_SDK.Tests.Integration/Iggy_SDK.Tests.Integration.csproj
+++
b/foreign/csharp/Iggy_SDK.Tests.Integration/Iggy_SDK.Tests.Integration.csproj
@@ -4,17 +4,13 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<OutputType>Exe</OutputType>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFrameworks>net8.0;net10.0</TargetFrameworks>
<AssemblyName>Apache.Iggy.Tests.Integrations</AssemblyName>
<RootNamespace>Apache.Iggy.Tests.Integrations</RootNamespace>
<IsTestingPlatformApplication>true</IsTestingPlatformApplication>
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="coverlet.collector">
- <PrivateAssets>all</PrivateAssets>
- <IncludeAssets>runtime; build; native; contentfiles; analyzers;
buildtransitive</IncludeAssets>
- </PackageReference>
<PackageReference Include="Microsoft.Testing.Extensions.CodeCoverage"
/>
<PackageReference Include="Microsoft.Testing.Extensions.TrxReport" />
<PackageReference Include="Shouldly" />
diff --git a/foreign/csharp/Iggy_SDK/Iggy_SDK.csproj
b/foreign/csharp/Iggy_SDK/Iggy_SDK.csproj
index a42832d85..ffc1c58f7 100644
--- a/foreign/csharp/Iggy_SDK/Iggy_SDK.csproj
+++ b/foreign/csharp/Iggy_SDK/Iggy_SDK.csproj
@@ -4,7 +4,7 @@
<PackageId>Apache.Iggy</PackageId>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFrameworks>net8.0;net10.0</TargetFrameworks>
<AssemblyName>Apache.Iggy</AssemblyName>
<RootNamespace>Apache.Iggy</RootNamespace>
<PackageVersion>0.6.1-edge.1</PackageVersion>
@@ -16,9 +16,15 @@
<Authors>Apache Iggy</Authors>
<IsPackable>true</IsPackable>
<PackageTags>SDK Iggy Messaging</PackageTags>
+ <RepositoryType>git</RepositoryType>
<RepositoryUrl>https://github.com/apache/iggy</RepositoryUrl>
+ <PackageProjectUrl>https://github.com/apache/iggy</PackageProjectUrl>
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
<PackageReadmeFile>README.md</PackageReadmeFile>
+
+ <PublishRepositoryUrl>true</PublishRepositoryUrl>
+ <IncludeSymbols>true</IncludeSymbols>
+ <SymbolPackageFormat>snupkg</SymbolPackageFormat>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
diff --git a/foreign/csharp/Iggy_SDK_Tests/Iggy_SDK_Tests.csproj
b/foreign/csharp/Iggy_SDK_Tests/Iggy_SDK_Tests.csproj
index 40cba4638..d54b567c5 100644
--- a/foreign/csharp/Iggy_SDK_Tests/Iggy_SDK_Tests.csproj
+++ b/foreign/csharp/Iggy_SDK_Tests/Iggy_SDK_Tests.csproj
@@ -6,7 +6,7 @@
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFrameworks>net8.0;net10.0</TargetFrameworks>
<AssemblyName>Apache.Iggy.Tests</AssemblyName>
<RootNamespace>Apache.Iggy.Tests</RootNamespace>
</PropertyGroup>
@@ -14,17 +14,14 @@
<ItemGroup>
<PackageReference Include="FluentAssertions" />
<PackageReference Include="Microsoft.NET.Test.Sdk" />
+ <PackageReference Include="Microsoft.Testing.Extensions.CodeCoverage"
/>
<PackageReference Include="Moq" />
<PackageReference Include="Testcontainers" />
- <PackageReference Include="xunit" />
<PackageReference Include="xunit.runner.visualstudio">
<IncludeAssets>runtime; build; native; contentfiles; analyzers;
buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
- <PackageReference Include="coverlet.collector">
- <IncludeAssets>runtime; build; native; contentfiles; analyzers;
buildtransitive</IncludeAssets>
- <PrivateAssets>all</PrivateAssets>
- </PackageReference>
+ <PackageReference Include="xunit.v3.mtp-v2" />
</ItemGroup>
<ItemGroup>
diff --git a/foreign/csharp/Iggy_SDK_Tests/UtilityTests/EventAggregatorTests.cs
b/foreign/csharp/Iggy_SDK_Tests/UtilityTests/EventAggregatorTests.cs
index e96add5ee..4279b3872 100644
--- a/foreign/csharp/Iggy_SDK_Tests/UtilityTests/EventAggregatorTests.cs
+++ b/foreign/csharp/Iggy_SDK_Tests/UtilityTests/EventAggregatorTests.cs
@@ -163,12 +163,12 @@ public class EventAggregatorTests
eventAggregator.Publish("test");
- await Task.Delay(200);
+ await Task.Delay(200, TestContext.Current.CancellationToken);
Assert.False(executed);
Assert.Equal(string.Empty, executedEventValue);
- await Task.Delay(400);
+ await Task.Delay(400, TestContext.Current.CancellationToken);
Assert.True(executed);
Assert.Equal("test", executedEventValue);
}
diff --git a/foreign/csharp/Iggy_SDK_Tests/Utils/PriorityOrderer.cs
b/foreign/csharp/Iggy_SDK_Tests/Utils/PriorityOrderer.cs
deleted file mode 100644
index 389d9c6e0..000000000
--- a/foreign/csharp/Iggy_SDK_Tests/Utils/PriorityOrderer.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using Xunit.Abstractions;
-using Xunit.Sdk;
-
-namespace Apache.Iggy.Tests.Utils;
-
-public class PriorityOrderer : ITestCaseOrderer
-{
- public IEnumerable<TTestCase>
OrderTestCases<TTestCase>(IEnumerable<TTestCase> testCases)
- where TTestCase : ITestCase
- {
- var sortedMethods = new SortedDictionary<int, List<TTestCase>>();
-
- foreach (var testCase in testCases)
- {
- var priority = 0;
-
- foreach (var attr in
testCase.TestMethod.Method.GetCustomAttributes(typeof(TestPriorityAttribute)
- .AssemblyQualifiedName))
- {
- priority = attr.GetNamedArgument<int>("Priority");
- }
-
- GetOrCreate(sortedMethods, priority).Add(testCase);
- }
-
- foreach (List<TTestCase> list in sortedMethods.Keys.Select(priority =>
sortedMethods[priority]))
- {
- list.Sort((x, y) =>
-
StringComparer.OrdinalIgnoreCase.Compare(x.TestMethod.Method.Name,
y.TestMethod.Method.Name));
- foreach (var testCase in list)
- {
- yield return testCase;
- }
- }
- }
-
- private static TValue GetOrCreate<TKey, TValue>(IDictionary<TKey, TValue>
dictionary, TKey key)
- where TValue : new()
- {
- TValue? result;
-
- if (dictionary.TryGetValue(key, out result))
- {
- return result;
- }
-
- result = new TValue();
- dictionary[key] = result;
-
- return result;
- }
-}
diff --git a/foreign/csharp/Shared/Shared.csproj
b/foreign/csharp/Shared/Shared.csproj
index 6f9978f6c..14774ab3f 100644
--- a/foreign/csharp/Shared/Shared.csproj
+++ b/foreign/csharp/Shared/Shared.csproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFrameworks>net8.0;net10.0</TargetFrameworks>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<AssemblyName>Apache.Iggy.Shared</AssemblyName>
diff --git a/foreign/csharp/global.json b/foreign/csharp/global.json
new file mode 100644
index 000000000..3140116df
--- /dev/null
+++ b/foreign/csharp/global.json
@@ -0,0 +1,5 @@
+{
+ "test": {
+ "runner": "Microsoft.Testing.Platform"
+ }
+}