3 Commits

Author SHA1 Message Date
0f45b6b463 added dotnet 10 support
All checks were successful
.NET Test / .NET tests (push) Successful in 2m9s
.NET Publish / .NET tests (push) Successful in 1m0s
2025-11-11 22:32:04 +04:00
9485ad3ec4 update Copyright
All checks were successful
.NET Test / test (push) Successful in 1m1s
.NET Publish / publish (push) Successful in 56s
2025-07-31 23:35:06 +04:00
595b63dc23 support for dotnet9 compilation
All checks were successful
.NET Test / test (push) Successful in 2m2s
2025-07-29 23:22:28 +04:00
7 changed files with 61 additions and 33 deletions

View File

@@ -9,14 +9,18 @@ on:
jobs:
publish:
runs-on: ubuntu-latest
name: .NET tests
env:
DOTNET_CLI_TELEMETRY_OPTOUT: true
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v5
- name: Setup .NET
uses: https://github.com/actions/setup-dotnet@v3
uses: https://github.com/actions/setup-dotnet@v4
with:
dotnet-version: 8.x
dotnet-version: 10.x
- name: Restore dependencies
run: dotnet restore Railway/Railway.csproj

View File

@@ -14,28 +14,47 @@ on:
jobs:
test:
runs-on: ubuntu-latest
name: .NET tests
env:
DOTNET_CLI_TELEMETRY_OPTOUT: true
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v5
- name: Setup .NET
uses: https://github.com/actions/setup-dotnet@v3
uses: https://github.com/actions/setup-dotnet@v4
with:
dotnet-version: 8.x
dotnet-version: |
8.0.x
9.0.x
10.0.x
- name: Restore dependencies
run: dotnet restore
- name: Build
run: dotnet build --no-restore
- name: Build .NET 10.0
run: dotnet build --no-restore --framework net10.0 --configuration Release ./Raliway.Tests/Raliway.Tests.csproj
- name: Test
run: dotnet test --no-build --verbosity normal --logger trx --results-directory "TestResults-8.x"
- name: Build .NET 9.0
run: dotnet build --no-restore --framework net9.0 --configuration Release ./Raliway.Tests/Raliway.Tests.csproj
- name: Build .NET 8.0
run: dotnet build --no-restore --framework net8.0 --configuration Release ./Raliway.Tests/Raliway.Tests.csproj
- name: Test .NET 10.0
run: dotnet run --no-build --framework net10.0 --configuration Release --project ./Raliway.Tests/Raliway.Tests.csproj -- -trx TestResults/results-net10.trx
- name: Test .NET 9.0
run: dotnet run --no-build --framework net9.0 --configuration Release --project ./Raliway.Tests/Raliway.Tests.csproj -- -trx TestResults/results-net9.trx
- name: Test .NET 8.0
run: dotnet run --no-build --framework net8.0 --configuration Release --project ./Raliway.Tests/Raliway.Tests.csproj -- -trx TestResults/results-net8.trx
- name: Upload dotnet test results
uses: actions/upload-artifact@v3
with:
name: dotnet-results-8.x
path: TestResults-8.x
name: test-results
path: TestResults
if: ${{ always() }}
retention-days: 30

View File

@@ -1,4 +1,4 @@
Copyright (c) 2023-2024 JustFixMe
Copyright (c) 2023-2025 JustFixMe
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -221,15 +221,22 @@ public sealed class ExceptionalError : Error
private static ImmutableDictionary<string, string> ExtractExtensionData(Exception exception)
{
if (!(exception.Data?.Count > 0))
return ImmutableDictionary<string, string>.Empty;
return ImmutableDictionary<string, string>.Empty;
var values = GetGenericExtData(exception);
return values is not null ? values.ToImmutable() : ImmutableDictionary<string, string>.Empty;
}
private static ImmutableDictionary<string, string>.Builder? GetGenericExtData(Exception ex)
{
ImmutableDictionary<string, string>.Builder? values = null;
foreach (var key in exception.Data.Keys)
foreach (var key in ex.Data.Keys)
{
if (key is null) continue;
var value = exception.Data[key];
var value = ex.Data[key];
if (value is null) continue;
var keyString = key.ToString();
@@ -239,7 +246,8 @@ public sealed class ExceptionalError : Error
values ??= ImmutableDictionary.CreateBuilder<string, string>();
values.Add(keyString, valueString);
}
return values is not null ? values.ToImmutable() : ImmutableDictionary<string, string>.Empty;
return values;
}
}

View File

@@ -1,8 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net6.0;net7.0;net8.0</TargetFrameworks>
<LangVersion>10.0</LangVersion>
<TargetFrameworks>net8.0;net9.0;net10.0</TargetFrameworks>
<LangVersion>12.0</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<AssemblyName>Just.Railway</AssemblyName>
@@ -11,7 +11,7 @@
<Description>Base for railway-oriented programming in .NET. Package includes Result object, Error class and most of the common extensions.</Description>
<PackageTags>railway-oriented;functional;result-pattern;result-object;error-handling</PackageTags>
<Authors>JustFixMe</Authors>
<Copyright>Copyright (c) 2023-2024 JustFixMe</Copyright>
<Copyright>Copyright (c) 2023-2025 JustFixMe</Copyright>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<PackageReadmeFile>README.md</PackageReadmeFile>
<RepositoryUrl>https://github.com/JustFixMe/Just.Railway/</RepositoryUrl>

View File

@@ -1,23 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<TargetFrameworks>net8.0;net9.0;net10.0</TargetFrameworks>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<OutputType>Exe</OutputType>
<AssemblyName>Just.Railway.Tests</AssemblyName>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="xunit" Version="2.6.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.3">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="6.0.0">
<PackageReference Include="xunit.v3" Version="3.2.0" />
<PackageReference Include="coverlet.collector" Version="6.0.4">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>