diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 4700b6ec..02972513 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -4,12 +4,8 @@ on: push: branches: [ main, dev, feature/*, fix/*, release/* ] - pull_request: - branches: [ main ] - release: types: [ published ] - branches: [ main ] jobs: build: @@ -17,69 +13,29 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Setup .NET - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v5 with: dotnet-version: | - 6.0.x - 7.0.x - 8.0.x - - # Create Local NuGet Source + 10.0.x + # dotnet-quality: 'preview' # When using preview versions + dotnet-quality: 'ga' # General Availability - name: Create Local NuGet Directory run: mkdir ~/nuget - - name: Add Local Nuget Source - run: dotnet nuget add source ~/nuget - - # ServiceProviderExtensions - - - name: Restore Dependency.ServiceProviderExtensions - run: dotnet restore ./src/*/*/ServiceProviderExtensions.csproj - - - name: Build Dependency.ServiceProviderExtensions - run: dotnet build ./src/*/*/ServiceProviderExtensions.csproj --no-restore -c Release - - - name: Pack Dependency.ServiceProviderExtensions - run: dotnet pack ./src/*/*/ServiceProviderExtensions.csproj --no-restore -o ~/nuget -c Release - - - name: Restore Dependency.ServiceProviderExtensions.Tests - run: dotnet restore ./src/*/*/ServiceProviderExtensions.Tests.csproj - - - name: Test Dependency.ServiceProviderExtensions.Tests - run: dotnet test ./src/*/*/ServiceProviderExtensions.Tests.csproj --no-restore -c Release - - # Dependency.Core - - - name: Restore Dependency.Core - run: dotnet restore ./src/*/*/Dependency.Core.csproj - - - name: Build Dependency.Core - run: dotnet build ./src/*/*/Dependency.Core.csproj --no-restore -c Release - - - name: Pack Dependency.Core - run: dotnet pack ./src/*/*/Dependency.Core.csproj --no-restore -o ~/nuget -c Release - - - name: Restore Dependency.Core.Tests - run: dotnet restore ./src/*/*/Dependency.Core.Tests.csproj - - - name: Test Dependency.Core.Tests - run: dotnet test ./src/*/*/Dependency.Core.Tests.csproj --no-restore -c Release - - # Dependency - - - name: Restore Dependency - run: dotnet restore ./src/*/*/Dependency.csproj + - name: Restore solution + run: dotnet restore src/Dependency.slnx - - name: Build Dependency - run: dotnet build ./src/*/*/Dependency.csproj --no-restore -c Release + - name: Build solution + run: dotnet build src/Dependency.slnx --no-restore -c Release - - name: Pack Dependency - run: dotnet pack ./src/*/*/Dependency.csproj --no-restore -o ~/nuget -c Release + - name: Test solution + run: dotnet test src/Dependency.slnx --no-restore -c Release - # Push + - name: Pack solution + run: dotnet pack src/Dependency.slnx --no-restore -o ~/nuget -c Release - name: Push Packages if: ${{ github.event_name == 'release' }} diff --git a/LICENSE b/LICENSE index 64bdac4b..bd1f4cfe 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2020-2023 Andrei Sergeev, Pavel Moskovoy +Copyright (c) 2020-2026 Andrei Sergeev, Pavel Moskovoy Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Dependency.slnx b/src/Dependency.slnx new file mode 100644 index 00000000..e4143377 --- /dev/null +++ b/src/Dependency.slnx @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/dependency-core/Core.Tests/Dependency.Core.Tests.csproj b/src/dependency-core/Core.Tests/Dependency.Core.Tests.csproj index 0899f8bd..347fe9b4 100644 --- a/src/dependency-core/Core.Tests/Dependency.Core.Tests.csproj +++ b/src/dependency-core/Core.Tests/Dependency.Core.Tests.csproj @@ -1,14 +1,15 @@ - net6.0;net7.0;net8.0 + net10.0 disable enable true true + $(NoWarn);IDE0130;xUnit1046 false Andrei Sergeev, Pavel Moskovoy - Copyright © 2020-2023 Andrei Sergeev, Pavel Moskovoy + Copyright © 2020-2026 Andrei Sergeev, Pavel Moskovoy PrimeFuncPack.Tests PrimeFuncPack.Dependency.Core.Tests @@ -18,18 +19,18 @@ - - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all + - + \ No newline at end of file diff --git a/src/dependency-core/Core.Tests/TestData/ServiceProviderTestSource.cs b/src/dependency-core/Core.Tests/TestData/ServiceProviderTestSource.cs index 40fd9c75..f6b2d7f1 100644 --- a/src/dependency-core/Core.Tests/TestData/ServiceProviderTestSource.cs +++ b/src/dependency-core/Core.Tests/TestData/ServiceProviderTestSource.cs @@ -1,19 +1,16 @@ using System; -using System.Collections.Generic; -using System.Linq; using Moq; +using Xunit; namespace PrimeFuncPack.Tests; internal static class ServiceProviderTestSource { - public static IEnumerable NullableProviders + public static TheoryData NullableProviders => - new[] + new() { - null, + null!, Mock.Of() - } - .Select( - sp => new object?[] { sp }); + }; } \ No newline at end of file diff --git a/src/dependency-core/Core.Tests/TestData/TestEntitySource.cs b/src/dependency-core/Core.Tests/TestData/TestEntitySource.cs index 7b243532..60bb7cf5 100644 --- a/src/dependency-core/Core.Tests/TestData/TestEntitySource.cs +++ b/src/dependency-core/Core.Tests/TestData/TestEntitySource.cs @@ -1,50 +1,31 @@ -using System.Collections.Generic; -using System.Linq; +using PrimeFuncPack.UnitTest; +using Xunit; using static PrimeFuncPack.UnitTest.TestData; namespace PrimeFuncPack.Tests; internal static class TestEntitySource { - public static IEnumerable RefTypes + public static TheoryData RefTypes => - new[] - { + [ PlusFifteenIdRefType, MinusFifteenIdRefType, - null - } - .ToNullableTestSourceValues(); + new(null!) + ]; - public static IEnumerable RecordTypes + public static TheoryData RecordTypes => - new[] - { + [ PlusFifteenIdSomeStringNameRecord, ZeroIdNullNameRecord, - null - } - .ToNullableTestSourceValues(); + new(null!) + ]; - public static IEnumerable StructTypes + public static TheoryData StructTypes => - new[] - { + [ SomeTextStructType, - default - } - .ToTestSourceValues(); - - private static IEnumerable ToTestSourceValues( - this IEnumerable source) - where T : notnull - => - source.Select( - value => new object[] { value }); - - private static IEnumerable ToNullableTestSourceValues( - this IEnumerable source) - => - source.Select( - value => new object?[] { value }); + new(default) + ]; } \ No newline at end of file diff --git a/src/dependency-core/Core/Dependency.Core.csproj b/src/dependency-core/Core/Dependency.Core.csproj index 66376185..543e87ac 100644 --- a/src/dependency-core/Core/Dependency.Core.csproj +++ b/src/dependency-core/Core/Dependency.Core.csproj @@ -1,11 +1,12 @@ - net6.0;net7.0;net8.0 + net10.0 disable enable true true + $(NoWarn);IDE0130 true LICENSE README.md @@ -13,11 +14,11 @@ https://github.com/pfpack/pfpack-dependency pfpack Andrei Sergeev, Pavel Moskovoy - Copyright © 2020-2023 Andrei Sergeev, Pavel Moskovoy + Copyright © 2020-2026 Andrei Sergeev, Pavel Moskovoy PrimeFuncPack Dependency.Core is a core library for .NET providing a functional programming based technology to build consistent dependency trees validated in the compile time. PrimeFuncPack PrimeFuncPack.Dependency.Core - 2.1.0 + 2.2.0-preview.1 @@ -32,7 +33,7 @@ - + diff --git a/src/dependency-core/Core/Dependency/Empty/Empty.cs b/src/dependency-core/Core/Dependency/Empty/Empty.cs index ab1e281d..ea01887e 100644 --- a/src/dependency-core/Core/Dependency/Empty/Empty.cs +++ b/src/dependency-core/Core/Dependency/Empty/Empty.cs @@ -4,5 +4,7 @@ namespace PrimeFuncPack; partial class Dependency { - public static Dependency Empty() => new(default(Unit)); + public static Dependency Empty() + => + new(default(Unit)); } \ No newline at end of file diff --git a/src/dependency-core/Core/InternalDependencyResolver/InternalDependencyResolver.T.cs b/src/dependency-core/Core/InternalDependencyResolver/InternalDependencyResolver.T.cs index 3a344fab..37f86047 100644 --- a/src/dependency-core/Core/InternalDependencyResolver/InternalDependencyResolver.T.cs +++ b/src/dependency-core/Core/InternalDependencyResolver/InternalDependencyResolver.T.cs @@ -11,4 +11,4 @@ internal sealed partial class InternalDependencyResolver private readonly Func? factory; private readonly Func? resolver; -} +} \ No newline at end of file diff --git a/src/dependency-core/Core/InternalDependencyResolver/InternalDependencyResolver.T.Factory.Constructor.cs b/src/dependency-core/Core/InternalDependencyResolver/Resolver.T.Factory.Constructor.cs similarity index 99% rename from src/dependency-core/Core/InternalDependencyResolver/InternalDependencyResolver.T.Factory.Constructor.cs rename to src/dependency-core/Core/InternalDependencyResolver/Resolver.T.Factory.Constructor.cs index d2290822..8933bffd 100644 --- a/src/dependency-core/Core/InternalDependencyResolver/InternalDependencyResolver.T.Factory.Constructor.cs +++ b/src/dependency-core/Core/InternalDependencyResolver/Resolver.T.Factory.Constructor.cs @@ -18,4 +18,4 @@ public InternalDependencyResolver( Func resolver) => (this.resolver, tag) = (resolver, Tag.Resolver); -} +} \ No newline at end of file diff --git a/src/dependency-core/Core/InternalDependencyResolver/InternalDependencyResolver.T.Factory.Implicit.cs b/src/dependency-core/Core/InternalDependencyResolver/Resolver.T.Factory.Implicit.cs similarity index 100% rename from src/dependency-core/Core/InternalDependencyResolver/InternalDependencyResolver.T.Factory.Implicit.cs rename to src/dependency-core/Core/InternalDependencyResolver/Resolver.T.Factory.Implicit.cs diff --git a/src/dependency-core/Core/InternalDependencyResolver/InternalDependencyResolver.T.Invoke.cs b/src/dependency-core/Core/InternalDependencyResolver/Resolver.T.Invoke.cs similarity index 99% rename from src/dependency-core/Core/InternalDependencyResolver/InternalDependencyResolver.T.Invoke.cs rename to src/dependency-core/Core/InternalDependencyResolver/Resolver.T.Invoke.cs index 30784d38..5ca48686 100644 --- a/src/dependency-core/Core/InternalDependencyResolver/InternalDependencyResolver.T.Invoke.cs +++ b/src/dependency-core/Core/InternalDependencyResolver/Resolver.T.Invoke.cs @@ -14,4 +14,4 @@ partial class InternalDependencyResolver _ => throw new InvalidOperationException("An unexpected tag value.") }; -} +} \ No newline at end of file diff --git a/src/dependency-core/Core/InternalDependencyResolver/InternalDependencyResolver.T.Tag.cs b/src/dependency-core/Core/InternalDependencyResolver/Resolver.T.Tag.cs similarity index 98% rename from src/dependency-core/Core/InternalDependencyResolver/InternalDependencyResolver.T.Tag.cs rename to src/dependency-core/Core/InternalDependencyResolver/Resolver.T.Tag.cs index 4629dbe1..ed944da2 100644 --- a/src/dependency-core/Core/InternalDependencyResolver/InternalDependencyResolver.T.Tag.cs +++ b/src/dependency-core/Core/InternalDependencyResolver/Resolver.T.Tag.cs @@ -5,7 +5,9 @@ partial class InternalDependencyResolver private enum Tag { Instance, + Factory, + Resolver } -} +} \ No newline at end of file diff --git a/src/dependency-core/Core/InternalPipelineExtensions/InternalPipelineExtensions.cs b/src/dependency-core/Core/InternalPipelineExtensions/InternalPipelineExtensions.cs index 095eb2e8..4c0c1b5c 100644 --- a/src/dependency-core/Core/InternalPipelineExtensions/InternalPipelineExtensions.cs +++ b/src/dependency-core/Core/InternalPipelineExtensions/InternalPipelineExtensions.cs @@ -5,4 +5,4 @@ internal static class InternalPipelineExtensions internal static TResult InternalPipe(this T value, Func pipe) => pipe.Invoke(value); -} +} \ No newline at end of file diff --git a/src/dependency-core/Core/InternalServiceProviderExtensions/InternalServiceProviderExtensions.cs b/src/dependency-core/Core/InternalServiceProviderExtensions/InternalServiceProviderExtensions.cs index e3bc3784..d92def94 100644 --- a/src/dependency-core/Core/InternalServiceProviderExtensions/InternalServiceProviderExtensions.cs +++ b/src/dependency-core/Core/InternalServiceProviderExtensions/InternalServiceProviderExtensions.cs @@ -17,4 +17,4 @@ internal static TResult InternalResolveThenMap( Func map) => serviceProvider.InternalPipe(resolver).InternalPipe(dependency => map.Invoke(serviceProvider, dependency)); -} +} \ No newline at end of file diff --git a/src/dependency-service-provider-extensions/ServiceProviderExtensions.Tests/ServiceProviderExtensions.Tests.csproj b/src/dependency-service-provider-extensions/ServiceProviderExtensions.Tests/ServiceProviderExtensions.Tests.csproj index c29acde3..01e854dd 100644 --- a/src/dependency-service-provider-extensions/ServiceProviderExtensions.Tests/ServiceProviderExtensions.Tests.csproj +++ b/src/dependency-service-provider-extensions/ServiceProviderExtensions.Tests/ServiceProviderExtensions.Tests.csproj @@ -1,14 +1,15 @@ - net6.0;net7.0;net8.0 + net10.0 disable enable true true + $(NoWarn);IDE0130;xUnit1046 false Andrei Sergeev, Pavel Moskovoy - Copyright © 2020-2023 Andrei Sergeev, Pavel Moskovoy + Copyright © 2020-2026 Andrei Sergeev, Pavel Moskovoy PrimeFuncPack.Tests PrimeFuncPack.Dependency.ServiceProviderExtensions.Tests @@ -18,18 +19,18 @@ - - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all + \ No newline at end of file diff --git a/src/dependency-service-provider-extensions/ServiceProviderExtensions/ServiceProviderExtensions.csproj b/src/dependency-service-provider-extensions/ServiceProviderExtensions/ServiceProviderExtensions.csproj index d2bfe0ad..2f6f5f9d 100644 --- a/src/dependency-service-provider-extensions/ServiceProviderExtensions/ServiceProviderExtensions.csproj +++ b/src/dependency-service-provider-extensions/ServiceProviderExtensions/ServiceProviderExtensions.csproj @@ -1,11 +1,12 @@ - net6.0;net7.0;net8.0 + net10.0 disable enable true true + $(NoWarn);IDE0130 true LICENSE README.md @@ -13,11 +14,11 @@ https://github.com/pfpack/pfpack-dependency pfpack Andrei Sergeev, Pavel Moskovoy - Copyright © 2020-2023 Andrei Sergeev, Pavel Moskovoy + Copyright © 2020-2026 Andrei Sergeev, Pavel Moskovoy PrimeFuncPack Dependency.ServiceProviderExtensions is a library for .NET providing useful extensions for the service provider. PrimeFuncPack PrimeFuncPack.Dependency.ServiceProviderExtensions - 2.1.0 + 2.1.1-preview.1 @@ -35,4 +36,4 @@ - + \ No newline at end of file diff --git a/src/dependency/Dependency/Dependency.csproj b/src/dependency/Dependency/Dependency.csproj index cfbe1b01..0c2ed7b8 100644 --- a/src/dependency/Dependency/Dependency.csproj +++ b/src/dependency/Dependency/Dependency.csproj @@ -1,11 +1,12 @@ - net6.0;net7.0;net8.0 + net10.0 disable enable true true + $(NoWarn);IDE0130 true LICENSE README.md @@ -13,11 +14,11 @@ https://github.com/pfpack/pfpack-dependency pfpack Andrei Sergeev, Pavel Moskovoy - Copyright © 2020-2023 Andrei Sergeev, Pavel Moskovoy + Copyright © 2020-2026 Andrei Sergeev, Pavel Moskovoy PrimeFuncPack Dependency is a framework for .NET providing a functional programming based technology to build consistent dependency trees validated in the compile time. PrimeFuncPack PrimeFuncPack.Dependency - 2.1.0 + 2.2.0-preview.1 @@ -32,8 +33,8 @@ - - + + - + \ No newline at end of file