From 5a7f8267627508947866f1c02a6f324eb70664a4 Mon Sep 17 00:00:00 2001 From: "REDMOND\\takendall" Date: Wed, 20 Dec 2023 11:55:03 -0800 Subject: [PATCH 01/18] Adding some benchmarks as part of investigation of various FFT libraries. Updating to generate net8.0 artifacts --- src/FftSharp.Benchmark/BenchmarkLoadData.cs | 17 + src/FftSharp.Benchmark/Benchmarking.md | 49 ++ .../BluesteinSizeBenchmark.cs | 34 ++ src/FftSharp.Benchmark/FftBenchmark.cs | 36 ++ .../FftSharp.Benchmark.csproj | 29 + src/FftSharp.Benchmark/Program.cs | 16 + src/FftSharp.Benchmark/sample.txt | 523 ++++++++++++++++++ src/FftSharp.Tests/FftSharp.Tests.csproj | 2 +- src/FftSharp.sln | 80 +-- src/FftSharp/FftSharp.csproj | 4 +- 10 files changed, 750 insertions(+), 40 deletions(-) create mode 100644 src/FftSharp.Benchmark/BenchmarkLoadData.cs create mode 100644 src/FftSharp.Benchmark/Benchmarking.md create mode 100644 src/FftSharp.Benchmark/BluesteinSizeBenchmark.cs create mode 100644 src/FftSharp.Benchmark/FftBenchmark.cs create mode 100644 src/FftSharp.Benchmark/FftSharp.Benchmark.csproj create mode 100644 src/FftSharp.Benchmark/Program.cs create mode 100644 src/FftSharp.Benchmark/sample.txt diff --git a/src/FftSharp.Benchmark/BenchmarkLoadData.cs b/src/FftSharp.Benchmark/BenchmarkLoadData.cs new file mode 100644 index 0000000..febcc04 --- /dev/null +++ b/src/FftSharp.Benchmark/BenchmarkLoadData.cs @@ -0,0 +1,17 @@ +namespace FftSharp.Benchmark; + +public static class BenchmarkLoadData +{ + public static double[] Double(string fileName) => + File.ReadLines(fileName) + .Where(x => !x.StartsWith('#') && x.Length > 1) + .Select(x => double.Parse(x)) + .ToArray(); + + public static System.Numerics.Complex[] Complex(string fileName) => + File.ReadLines(fileName) + .Select(x => x.Trim('(').Trim(')').Trim('j')) + .Select(x => x.Replace("-", " -").Replace("+", " +").Trim()) + .Select(x => new System.Numerics.Complex(double.Parse(x.Split(' ')[0]), double.Parse(x.Split(' ')[1]))) + .ToArray(); +} diff --git a/src/FftSharp.Benchmark/Benchmarking.md b/src/FftSharp.Benchmark/Benchmarking.md new file mode 100644 index 0000000..0d5fe4f --- /dev/null +++ b/src/FftSharp.Benchmark/Benchmarking.md @@ -0,0 +1,49 @@ +# Benchmarking + +## Benchmarking FFTSharp + +To run the benchmarks navigate to the `src/FftSharp.Benchmark` directory and run the following command: + +```bash +dotnet run -c Release +``` + +## Results 12/20/2023 + +### BluesteinSizeBenchmark +``` +BenchmarkDotNet v0.13.11, Windows 11 (10.0.22631.2861/23H2/2023Update/SunValley3) +Intel Core i7-1065G7 CPU 1.30GHz, 1 CPU, 8 logical and 4 physical cores +.NET SDK 8.0.100 + [Host] : .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2 + .NET 6.0 : .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2 + .NET 8.0 : .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI +``` +| Method | Job | Runtime | DataLength | Mean | Error | StdDev | Gen0 | Gen1 | Gen2 | Allocated | +|---------- |--------- |--------- |----------- |-------------:|-------------:|-------------:|---------:|---------:|---------:|------------:| +| **Bluestein** | **.NET 6.0** | **.NET 6.0** | **100** | **26.40 μs** | **0.401 μs** | **0.375 μs** | **7.1716** | **0.0305** | **-** | **29.36 KB** | +| Bluestein | .NET 8.0 | .NET 8.0 | 100 | 24.97 μs | 0.321 μs | 0.284 μs | 7.1716 | - | - | 29.36 KB | +| **Bluestein** | **.NET 6.0** | **.NET 6.0** | **1000** | **247.14 μs** | **3.809 μs** | **3.181 μs** | **58.1055** | **16.1133** | **-** | **239.49 KB** | +| Bluestein | .NET 8.0 | .NET 8.0 | 1000 | 239.35 μs | 4.046 μs | 3.379 μs | 58.1055 | 16.3574 | - | 239.49 KB | +| **Bluestein** | **.NET 6.0** | **.NET 6.0** | **10000** | **5,426.03 μs** | **88.896 μs** | **102.372 μs** | **984.3750** | **984.3750** | **984.3750** | **3641.08 KB** | +| Bluestein | .NET 8.0 | .NET 8.0 | 10000 | 5,348.21 μs | 103.018 μs | 86.025 μs | 984.3750 | 984.3750 | 984.3750 | 3641.04 KB | +| **Bluestein** | **.NET 6.0** | **.NET 6.0** | **100000** | **84,122.15 μs** | **1,655.385 μs** | **2,374.104 μs** | **833.3333** | **833.3333** | **833.3333** | **29749.57 KB** | +| Bluestein | .NET 8.0 | .NET 8.0 | 100000 | 83,047.50 μs | 1,654.760 μs | 2,718.818 μs | 666.6667 | 666.6667 | 666.6667 | 29751.45 KB | + +### FftBenchmark +``` +BenchmarkDotNet v0.13.11, Windows 11 (10.0.22631.2861/23H2/2023Update/SunValley3) +Intel Core i7-1065G7 CPU 1.30GHz, 1 CPU, 8 logical and 4 physical cores +.NET SDK 8.0.100 + [Host] : .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2 + .NET 6.0 : .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2 + .NET 8.0 : .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI +``` +| Method | Job | Runtime | Mean | Error | StdDev | Gen0 | Gen1 | Allocated | +|------------------------ |--------- |--------- |----------:|---------:|---------:|--------:|--------:|----------:| +| FFT_Forward | .NET 6.0 | .NET 6.0 | 41.47 μs | 0.722 μs | 0.676 μs | 1.9531 | - | 8.02 KB | +| FFT_ForwardReal | .NET 6.0 | .NET 6.0 | 42.72 μs | 0.715 μs | 0.669 μs | 2.9297 | - | 12.06 KB | +| FFT_BluesteinComparason | .NET 6.0 | .NET 6.0 | 233.21 μs | 3.444 μs | 3.053 μs | 54.4434 | 15.3809 | 224.24 KB | +| FFT_Forward | .NET 8.0 | .NET 8.0 | 41.08 μs | 0.749 μs | 0.585 μs | 1.9531 | - | 8.02 KB | +| FFT_ForwardReal | .NET 8.0 | .NET 8.0 | 41.79 μs | 0.788 μs | 0.698 μs | 2.9297 | - | 12.06 KB | +| FFT_BluesteinComparason | .NET 8.0 | .NET 8.0 | 223.61 μs | 4.330 μs | 4.633 μs | 54.4434 | 15.3809 | 224.23 KB | \ No newline at end of file diff --git a/src/FftSharp.Benchmark/BluesteinSizeBenchmark.cs b/src/FftSharp.Benchmark/BluesteinSizeBenchmark.cs new file mode 100644 index 0000000..23ea71c --- /dev/null +++ b/src/FftSharp.Benchmark/BluesteinSizeBenchmark.cs @@ -0,0 +1,34 @@ +using BenchmarkDotNet.Attributes; +using BenchmarkDotNet.Jobs; +using MathNet.Numerics; +namespace FftSharp.Benchmark; + +[MemoryDiagnoser] +[SimpleJob(RuntimeMoniker.Net60)] +[SimpleJob(RuntimeMoniker.Net80)] +public class BluesteinSizeBenchmark +{ + private double[] Sample; + [Params(100, 1000, 10_000, 100_000)] + public int DataLength { get ; set; } + public double Frequency = 60; + public double SampleRate = 1000; + + [GlobalSetup] + public void BluesteinSizeBenchmarkSetup() + { + this.Sample = Generate.Sinusoidal(this.DataLength, this.SampleRate, this.Frequency, 1); + if(this.Sample.Length != this.DataLength) + { + throw new Exception("Sample length does not match DataLength"); + } + } + + [Benchmark] + public void Bluestein() + { + var something = Experimental.Bluestein(this.Sample); + } + +} + diff --git a/src/FftSharp.Benchmark/FftBenchmark.cs b/src/FftSharp.Benchmark/FftBenchmark.cs new file mode 100644 index 0000000..36a1cec --- /dev/null +++ b/src/FftSharp.Benchmark/FftBenchmark.cs @@ -0,0 +1,36 @@ +using BenchmarkDotNet.Attributes; +using BenchmarkDotNet.Jobs; + +namespace FftSharp.Benchmark; +[SimpleJob(RuntimeMoniker.Net60)] +[SimpleJob(RuntimeMoniker.Net80)] +[MemoryDiagnoser] +public class FftBenchmark +{ + private double[] Sample; + + [GlobalSetup] + public void FftBenchmarkSetup() + { + this.Sample = BenchmarkLoadData.Double("sample.txt"); + } + + [Benchmark] + public void FFT_Forward() + { + var something = FFT.Forward(this.Sample); + } + + [Benchmark] + public void FFT_ForwardReal() + { + var something = FFT.ForwardReal(this.Sample); + } + + [Benchmark] + public void FFT_BluesteinComparason() + { + var something = Experimental.Bluestein(this.Sample); + } +} + diff --git a/src/FftSharp.Benchmark/FftSharp.Benchmark.csproj b/src/FftSharp.Benchmark/FftSharp.Benchmark.csproj new file mode 100644 index 0000000..62e8e89 --- /dev/null +++ b/src/FftSharp.Benchmark/FftSharp.Benchmark.csproj @@ -0,0 +1,29 @@ + + + + Exe + net6.0 + enable + $(NoWarn);CA1018;CA5351;CA1825;CA8618 + + + + + + + + + + + + + + + + + + Always + + + + diff --git a/src/FftSharp.Benchmark/Program.cs b/src/FftSharp.Benchmark/Program.cs new file mode 100644 index 0000000..2b12659 --- /dev/null +++ b/src/FftSharp.Benchmark/Program.cs @@ -0,0 +1,16 @@ +using BenchmarkDotNet.Configs; +using BenchmarkDotNet.Environments; +using BenchmarkDotNet.Jobs; +using BenchmarkDotNet.Running; + +namespace FftSharp.Benchmark; + +public class Program +{ + static void Main(string[] args) + { + Console.WriteLine("FftSharp Benchmarks!"); + BenchmarkRunner.Run(); + BenchmarkRunner.Run(); + } +} diff --git a/src/FftSharp.Benchmark/sample.txt b/src/FftSharp.Benchmark/sample.txt new file mode 100644 index 0000000..1399ed0 --- /dev/null +++ b/src/FftSharp.Benchmark/sample.txt @@ -0,0 +1,523 @@ +# These data simulate a sample of audio with the following parameters: +# sample rate: 48 kHz +# points: 512 (2^9) +# offset: 0.1 (above zero) +# tone: 2 kHz (amplitude 2) +# tone: 10 kHz (amplitude 10) +# tone: 20 kHz (amplitude .5) +# +# Quick and dirty checksum +# the sum of these values is 71.52 +# the sum of the sins of these values is 10.417026634786811 ++0.33 ++2.15 ++1.44 ++1.37 ++0.24 ++2.60 ++3.51 ++1.98 ++1.88 ++0.08 ++1.82 ++1.30 ++0.23 +-1.16 +-1.35 +-0.58 +-0.84 +-1.35 +-2.72 +-2.53 +-0.02 +-0.76 +-0.48 +-2.10 ++0.30 ++1.86 ++1.60 ++1.49 ++0.58 ++2.12 ++2.79 ++1.99 ++1.20 ++0.80 ++2.18 ++1.60 +-0.37 +-1.25 +-1.99 ++0.35 +-1.19 +-1.62 +-3.28 +-2.57 ++0.07 +-0.81 +-1.13 +-1.68 +-0.25 ++1.55 ++1.08 ++1.53 ++0.65 ++2.53 ++2.79 ++2.42 ++1.72 ++0.54 ++2.39 ++1.51 ++0.22 +-1.42 +-1.44 ++0.29 +-1.61 +-1.50 +-3.23 +-2.20 +-0.01 +-1.39 +-0.47 +-1.65 ++0.25 ++2.05 ++1.48 ++0.91 ++0.76 ++2.76 ++2.73 ++2.45 ++1.09 ++0.28 ++2.07 ++1.16 ++0.27 +-1.17 +-1.50 ++0.20 +-0.91 +-1.58 +-2.46 +-2.55 +-0.31 +-0.94 +-1.13 +-1.85 ++0.42 ++1.56 ++0.85 ++0.88 ++0.66 ++2.73 ++3.23 ++2.47 ++1.12 ++0.74 ++1.60 ++1.73 ++0.28 +-1.54 +-2.18 +-0.50 +-1.09 +-1.39 +-2.91 +-2.69 +-0.16 +-1.04 +-1.24 +-1.52 +-0.39 ++1.69 ++1.52 ++0.87 ++0.31 ++2.75 ++3.56 ++2.53 ++1.29 ++0.33 ++1.81 ++1.34 ++0.13 +-1.58 +-2.05 +-0.11 +-0.85 +-1.73 +-3.30 +-2.10 +-0.43 +-0.67 +-1.34 +-1.43 ++0.22 ++2.16 ++1.35 ++1.38 ++0.21 ++2.23 ++3.21 ++1.79 ++1.90 ++0.38 ++1.60 ++1.10 ++0.44 +-1.07 +-1.69 +-0.09 +-0.73 +-2.26 +-2.89 +-2.68 +-0.02 +-0.96 +-0.89 +-1.58 ++0.27 ++2.33 ++0.97 ++0.87 ++0.50 ++2.52 ++2.82 ++1.61 ++1.13 +-0.04 ++1.98 ++1.28 +-0.38 +-1.24 +-1.52 +-0.40 +-0.79 +-2.31 +-2.89 +-1.88 ++0.16 +-1.59 +-0.81 +-1.86 ++0.57 ++1.92 ++1.44 ++1.13 ++0.45 ++3.02 ++3.49 ++2.51 ++1.15 +-0.06 ++2.43 ++1.01 ++0.48 +-1.09 +-1.55 +-0.09 +-1.35 +-1.35 +-3.37 +-2.15 +-0.71 +-1.41 +-0.97 +-1.55 +-0.14 ++1.64 ++0.91 ++1.59 ++0.17 ++2.65 ++3.16 ++2.20 ++1.24 +-0.17 ++1.63 ++1.71 ++0.31 +-0.74 +-1.68 +-0.35 +-1.43 +-1.87 +-3.20 +-1.95 +-0.34 +-0.97 +-1.15 +-1.76 +-0.16 ++2.33 ++1.28 ++0.81 ++1.02 ++3.00 ++2.76 ++2.31 ++0.99 +-0.00 ++1.60 ++0.94 ++0.33 +-1.53 +-1.49 ++0.04 +-1.13 +-2.10 +-2.56 +-1.98 +-0.39 +-0.70 +-0.66 +-1.67 +-0.06 ++2.11 ++1.09 ++1.45 ++1.03 ++2.65 ++2.69 ++2.16 ++1.89 ++0.68 ++2.07 ++0.97 +-0.40 +-1.08 +-1.66 +-0.23 +-0.83 +-2.02 +-2.61 +-2.32 +-0.00 +-1.07 +-0.94 +-1.97 ++0.23 ++1.89 ++0.98 ++1.06 ++0.83 ++2.50 ++3.52 ++1.88 ++1.09 +-0.04 ++2.19 ++1.04 ++0.13 +-1.12 +-1.56 +-0.12 +-1.60 +-1.90 +-3.28 +-1.98 +-0.27 +-0.90 +-0.83 +-2.12 ++0.17 ++1.79 ++1.66 ++0.93 ++0.15 ++2.32 ++3.23 ++2.34 ++1.15 ++0.07 ++1.55 ++1.28 +-0.11 +-0.79 +-1.51 +-0.08 +-0.75 +-2.14 +-2.45 +-1.99 ++0.06 +-1.14 +-0.62 +-1.78 ++0.15 ++1.64 ++1.09 ++1.20 ++0.45 ++2.70 ++3.20 ++2.47 ++1.81 ++0.11 ++2.21 ++1.18 ++0.07 +-0.83 +-2.12 ++0.30 +-1.18 +-1.48 +-2.45 +-2.57 +-0.34 +-1.28 +-1.28 +-1.87 ++0.22 ++1.92 ++1.58 ++1.17 ++0.79 ++2.83 ++2.72 ++1.64 ++1.51 ++0.44 ++2.10 ++1.65 ++0.46 +-1.39 +-1.96 +-0.01 +-1.04 +-2.26 +-2.87 +-1.85 +-0.67 +-1.13 +-1.40 +-1.98 ++0.59 ++1.37 ++1.00 ++0.84 ++0.55 ++2.61 ++3.46 ++1.76 ++1.02 +-0.04 ++2.31 ++1.67 ++0.35 +-1.39 +-2.16 +-0.48 +-1.52 +-1.76 +-2.67 +-2.01 +-0.60 +-1.21 +-1.42 +-1.85 ++0.08 ++1.69 ++1.27 ++1.22 ++0.83 ++2.23 ++2.70 ++1.68 ++1.42 ++0.56 ++1.91 ++1.55 ++0.06 +-1.55 +-1.75 +-0.57 +-0.92 +-1.99 +-2.70 +-2.13 +-0.37 +-1.06 +-0.63 +-1.71 ++0.51 ++1.74 ++1.48 ++1.39 ++0.78 ++2.27 ++3.52 ++2.13 ++1.89 +-0.14 ++2.08 ++0.99 ++0.57 +-1.19 +-1.90 ++0.32 +-1.64 +-1.70 +-3.09 +-1.84 ++0.03 +-1.15 +-0.80 +-2.04 ++0.59 ++2.02 ++0.72 ++1.69 ++0.73 ++2.38 ++3.42 ++2.48 ++1.42 +-0.01 ++2.04 ++1.22 +-0.02 +-1.11 +-1.95 +-0.32 +-0.87 +-1.55 +-2.67 +-2.44 +-0.30 +-1.18 +-1.39 +-1.80 ++0.52 ++2.11 ++1.32 ++1.63 ++0.27 ++2.88 ++3.16 ++1.99 ++1.64 ++0.53 ++2.12 ++0.90 +-0.22 +-1.59 +-1.45 ++0.05 +-1.46 +-1.73 +-2.76 +-2.06 ++0.10 +-1.56 +-0.92 +-1.60 +-0.14 ++1.35 ++0.83 ++0.88 ++0.76 ++2.30 ++3.16 ++2.11 \ No newline at end of file diff --git a/src/FftSharp.Tests/FftSharp.Tests.csproj b/src/FftSharp.Tests/FftSharp.Tests.csproj index 6da4e56..f3da40f 100644 --- a/src/FftSharp.Tests/FftSharp.Tests.csproj +++ b/src/FftSharp.Tests/FftSharp.Tests.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 false 10 diff --git a/src/FftSharp.sln b/src/FftSharp.sln index 2dd38a1..b2b5005 100644 --- a/src/FftSharp.sln +++ b/src/FftSharp.sln @@ -1,37 +1,43 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.0.31815.197 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FftSharp", "FftSharp\FftSharp.csproj", "{43680BFA-9D82-41F2-A56A-6B93433AE4E1}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FftSharp.Demo", "FftSharp.Demo\FftSharp.Demo.csproj", "{9EA24240-F1BF-4C5F-B08C-6D5C8AFBFDE7}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FftSharp.Tests", "FftSharp.Tests\FftSharp.Tests.csproj", "{A82CD7FC-ECA6-4BF7-BC73-22675DEC1CD0}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {43680BFA-9D82-41F2-A56A-6B93433AE4E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {43680BFA-9D82-41F2-A56A-6B93433AE4E1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {43680BFA-9D82-41F2-A56A-6B93433AE4E1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {43680BFA-9D82-41F2-A56A-6B93433AE4E1}.Release|Any CPU.Build.0 = Release|Any CPU - {9EA24240-F1BF-4C5F-B08C-6D5C8AFBFDE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9EA24240-F1BF-4C5F-B08C-6D5C8AFBFDE7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9EA24240-F1BF-4C5F-B08C-6D5C8AFBFDE7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9EA24240-F1BF-4C5F-B08C-6D5C8AFBFDE7}.Release|Any CPU.Build.0 = Release|Any CPU - {A82CD7FC-ECA6-4BF7-BC73-22675DEC1CD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A82CD7FC-ECA6-4BF7-BC73-22675DEC1CD0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A82CD7FC-ECA6-4BF7-BC73-22675DEC1CD0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A82CD7FC-ECA6-4BF7-BC73-22675DEC1CD0}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {1721ADCD-AF40-45E0-A3AA-DE007761C72A} - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31815.197 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FftSharp", "FftSharp\FftSharp.csproj", "{43680BFA-9D82-41F2-A56A-6B93433AE4E1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FftSharp.Demo", "FftSharp.Demo\FftSharp.Demo.csproj", "{9EA24240-F1BF-4C5F-B08C-6D5C8AFBFDE7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FftSharp.Tests", "FftSharp.Tests\FftSharp.Tests.csproj", "{A82CD7FC-ECA6-4BF7-BC73-22675DEC1CD0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FftSharp.Benchmark", "FftSharp.Benchmark\FftSharp.Benchmark.csproj", "{A3DE12AF-60E1-4CF2-86BF-73C2B345091B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {43680BFA-9D82-41F2-A56A-6B93433AE4E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {43680BFA-9D82-41F2-A56A-6B93433AE4E1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {43680BFA-9D82-41F2-A56A-6B93433AE4E1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {43680BFA-9D82-41F2-A56A-6B93433AE4E1}.Release|Any CPU.Build.0 = Release|Any CPU + {9EA24240-F1BF-4C5F-B08C-6D5C8AFBFDE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9EA24240-F1BF-4C5F-B08C-6D5C8AFBFDE7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9EA24240-F1BF-4C5F-B08C-6D5C8AFBFDE7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9EA24240-F1BF-4C5F-B08C-6D5C8AFBFDE7}.Release|Any CPU.Build.0 = Release|Any CPU + {A82CD7FC-ECA6-4BF7-BC73-22675DEC1CD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A82CD7FC-ECA6-4BF7-BC73-22675DEC1CD0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A82CD7FC-ECA6-4BF7-BC73-22675DEC1CD0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A82CD7FC-ECA6-4BF7-BC73-22675DEC1CD0}.Release|Any CPU.Build.0 = Release|Any CPU + {A3DE12AF-60E1-4CF2-86BF-73C2B345091B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A3DE12AF-60E1-4CF2-86BF-73C2B345091B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A3DE12AF-60E1-4CF2-86BF-73C2B345091B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A3DE12AF-60E1-4CF2-86BF-73C2B345091B}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {1721ADCD-AF40-45E0-A3AA-DE007761C72A} + EndGlobalSection +EndGlobal diff --git a/src/FftSharp/FftSharp.csproj b/src/FftSharp/FftSharp.csproj index d5842da..c52ce18 100644 --- a/src/FftSharp/FftSharp.csproj +++ b/src/FftSharp/FftSharp.csproj @@ -1,7 +1,7 @@  - netstandard2.0;net6.0 + netstandard2.0;net6.0;net8.0 false Library https://github.com/swharden/FftSharp @@ -35,7 +35,7 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all From 81eb27f1006494f6ca64c3361e8dc2c7a42e0e2d Mon Sep 17 00:00:00 2001 From: Taylor Kendall <113073041+msft-takend@users.noreply.github.com> Date: Thu, 11 Jan 2024 09:18:24 -0800 Subject: [PATCH 02/18] Update ci.yaml --- .github/workflows/ci.yaml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 47e2b01..ea499f1 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -1,4 +1,4 @@ -name: CI/CD +name: Build and Test on: workflow_dispatch: @@ -10,15 +10,20 @@ on: jobs: build: - name: Build and Test - runs-on: windows-latest + name: Build ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, windows-latest] + arch: [x64, arm64] + dotnetVersion: [6.0.x. 8.0.x] steps: - name: 🛒 Checkout uses: actions/checkout@v3 - - name: ✨ Setup .NET 6 + - name: ✨ Setup .NET ${{ matrix.dotnetVersion }} uses: actions/setup-dotnet@v3 with: - dotnet-version: "6.0.x" + dotnet-version: ${{ matrix.dotnetVersion }} - name: 🚚 Restore run: dotnet restore src - name: 🛠️ Build From 63ecef6766ab65750bba102615d7a8f9ff97ced7 Mon Sep 17 00:00:00 2001 From: Taylor Kendall <113073041+msft-takend@users.noreply.github.com> Date: Thu, 11 Jan 2024 09:21:39 -0800 Subject: [PATCH 03/18] Update ci.yaml --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index ea499f1..f716150 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -16,7 +16,7 @@ jobs: matrix: os: [ubuntu-latest, windows-latest] arch: [x64, arm64] - dotnetVersion: [6.0.x. 8.0.x] + dotnetVersion: [6.0.x 8.0.x] steps: - name: 🛒 Checkout uses: actions/checkout@v3 From c2fa83c994e92c8786c24c7098fefbc9ca253556 Mon Sep 17 00:00:00 2001 From: Taylor Kendall <113073041+msft-takend@users.noreply.github.com> Date: Thu, 11 Jan 2024 10:19:43 -0800 Subject: [PATCH 04/18] Update ci.yaml --- .github/workflows/ci.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f716150..2b1a439 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -14,16 +14,18 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest, windows-latest] - arch: [x64, arm64] + os: [windows-latest] + arch: [x64] dotnetVersion: [6.0.x 8.0.x] steps: - name: 🛒 Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: ✨ Setup .NET ${{ matrix.dotnetVersion }} uses: actions/setup-dotnet@v3 with: dotnet-version: ${{ matrix.dotnetVersion }} + - name: Display Dotnet Versio n + run: dotnet --version - name: 🚚 Restore run: dotnet restore src - name: 🛠️ Build From e6e70816a4b84fa32ea51017c72a459d2641e515 Mon Sep 17 00:00:00 2001 From: Taylor Kendall <113073041+msft-takend@users.noreply.github.com> Date: Thu, 11 Jan 2024 10:28:25 -0800 Subject: [PATCH 05/18] Create benchmark.yaml --- .github/workflows/benchmark.yaml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .github/workflows/benchmark.yaml diff --git a/.github/workflows/benchmark.yaml b/.github/workflows/benchmark.yaml new file mode 100644 index 0000000..366593c --- /dev/null +++ b/.github/workflows/benchmark.yaml @@ -0,0 +1,21 @@ +name: Benchmark +on: + push: + branches: + - master + +jobs: + benchmark: + name: Run Benchmark.Net benchmark example + runs-on: windows-latest + strategy: + matrix: + dotnet-version: [6.x, 8.x] + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-dotnet@v1 + with: + dotnet-version: ${{matrix.dotnet-version}} # SDK Version to use. keep in line with examples/benchmarkdotnet/global.json + - name: Run benchmark + run: cd src/FftSharp.Benchmark && dotnet run --exporters json --filter '*' + From 33b202b2cc3da2942c52ff987113c55125cd1cb6 Mon Sep 17 00:00:00 2001 From: Taylor Kendall <113073041+msft-takend@users.noreply.github.com> Date: Thu, 11 Jan 2024 10:53:27 -0800 Subject: [PATCH 06/18] Update ci.yaml --- .github/workflows/ci.yaml | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 2b1a439..130d94a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -14,7 +14,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [windows-latest] + os: [windows-latest, ubuntu-latest] arch: [x64] dotnetVersion: [6.0.x 8.0.x] steps: @@ -27,8 +27,24 @@ jobs: - name: Display Dotnet Versio n run: dotnet --version - name: 🚚 Restore - run: dotnet restore src + run: > + dotnet restore src/FftSharp/FftSharp.csproj + dotnet restore src/FftSharp.Benchmark/FftSharp.Benchmark.csproj + dotnet restore src/FftSharp.Tests/FftSharp.Tests.csproj - name: 🛠️ Build - run: dotnet build src --configuration Release --no-restore + run: > + dotnet build src --configuration Release --no-restore --project FftSharp/FftSharp.csproj + dotnet build src --configuration Release --no-restore --project FftSharp.Benchmark/FftSharp.Benchmark.csproj + dotnet build src --configuration Release --no-restore --project FftSharp.Tests/FftSharp.Tests.csproj + - name: 🧪 Benchmark + run: dotnet run --project src/FftSharp.Benchmark/FftSharp.Benchmark.csproj --configuration Release --no-build + - name: Benchmark Artifacts + uses: actions/upload-artifact@v2 + with: + name: benchmark-results + path: src/FftSharp.Benchmark/BenchmarkDotNet.Artifacts/results/*.md - name: 🧪 Test - run: dotnet test src --configuration Release --no-build + run: dotnet test src --configuration Release --no-build --project FftSharp.Tests/FftSharp.Tests.csproj + - name: Build Windows Demo + if: matrix.os == 'windows-latest' + run: dotnet publish src/FftSharp.Demo/FftSharp.Demo.csproj --configuration Release --no-build --output ./build/windows --runtime win-x64 From 55eaccd01bf89eb11a3979e155795d77c1afcdaf Mon Sep 17 00:00:00 2001 From: Taylor Kendall <113073041+msft-takend@users.noreply.github.com> Date: Thu, 11 Jan 2024 10:56:04 -0800 Subject: [PATCH 07/18] Update ci.yaml --- .github/workflows/ci.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 130d94a..266f1e4 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -27,12 +27,12 @@ jobs: - name: Display Dotnet Versio n run: dotnet --version - name: 🚚 Restore - run: > + run: | dotnet restore src/FftSharp/FftSharp.csproj dotnet restore src/FftSharp.Benchmark/FftSharp.Benchmark.csproj dotnet restore src/FftSharp.Tests/FftSharp.Tests.csproj - name: 🛠️ Build - run: > + run: | dotnet build src --configuration Release --no-restore --project FftSharp/FftSharp.csproj dotnet build src --configuration Release --no-restore --project FftSharp.Benchmark/FftSharp.Benchmark.csproj dotnet build src --configuration Release --no-restore --project FftSharp.Tests/FftSharp.Tests.csproj From 44aa4b53f585235eea3696f93dd5fb83db01b14b Mon Sep 17 00:00:00 2001 From: Taylor Kendall <113073041+msft-takend@users.noreply.github.com> Date: Thu, 11 Jan 2024 10:58:48 -0800 Subject: [PATCH 08/18] Update ci.yaml --- .github/workflows/ci.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 266f1e4..8e5518d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -33,9 +33,9 @@ jobs: dotnet restore src/FftSharp.Tests/FftSharp.Tests.csproj - name: 🛠️ Build run: | - dotnet build src --configuration Release --no-restore --project FftSharp/FftSharp.csproj - dotnet build src --configuration Release --no-restore --project FftSharp.Benchmark/FftSharp.Benchmark.csproj - dotnet build src --configuration Release --no-restore --project FftSharp.Tests/FftSharp.Tests.csproj + dotnet build FftSharp/FftSharp.csproj --configuration Release --no-restore + dotnet build FftSharp.Benchmark/FftSharp.Benchmark.csproj --configuration Release --no-restore + dotnet build FftSharp.Tests/FftSharp.Tests.csproj --configuration Release --no-restore - name: 🧪 Benchmark run: dotnet run --project src/FftSharp.Benchmark/FftSharp.Benchmark.csproj --configuration Release --no-build - name: Benchmark Artifacts From a940fea7173bed3b66ba2af510aaca878d939da6 Mon Sep 17 00:00:00 2001 From: Taylor Kendall <113073041+msft-takend@users.noreply.github.com> Date: Thu, 11 Jan 2024 11:00:50 -0800 Subject: [PATCH 09/18] Update ci.yaml --- .github/workflows/ci.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 8e5518d..15141a8 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -33,9 +33,9 @@ jobs: dotnet restore src/FftSharp.Tests/FftSharp.Tests.csproj - name: 🛠️ Build run: | - dotnet build FftSharp/FftSharp.csproj --configuration Release --no-restore - dotnet build FftSharp.Benchmark/FftSharp.Benchmark.csproj --configuration Release --no-restore - dotnet build FftSharp.Tests/FftSharp.Tests.csproj --configuration Release --no-restore + dotnet build src/FftSharp/FftSharp.csproj --configuration Release --no-restore + dotnet build src/FftSharp.Benchmark/FftSharp.Benchmark.csproj --configuration Release --no-restore + dotnet build src/FftSharp.Tests/FftSharp.Tests.csproj --configuration Release --no-restore - name: 🧪 Benchmark run: dotnet run --project src/FftSharp.Benchmark/FftSharp.Benchmark.csproj --configuration Release --no-build - name: Benchmark Artifacts From b117d1e5c59d82e2fac9b5f754705ce7039be7a0 Mon Sep 17 00:00:00 2001 From: Taylor Kendall <113073041+msft-takend@users.noreply.github.com> Date: Thu, 11 Jan 2024 11:01:42 -0800 Subject: [PATCH 10/18] Update ci.yaml --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 15141a8..0cbe3d3 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -16,7 +16,7 @@ jobs: matrix: os: [windows-latest, ubuntu-latest] arch: [x64] - dotnetVersion: [6.0.x 8.0.x] + dotnetVersion: [6.0.x, 8.0.x] steps: - name: 🛒 Checkout uses: actions/checkout@v4 From 246b18be08b6997fefc79e944e00c4216f497cda Mon Sep 17 00:00:00 2001 From: Taylor Kendall <113073041+msft-takend@users.noreply.github.com> Date: Thu, 11 Jan 2024 11:10:34 -0800 Subject: [PATCH 11/18] Update ci.yaml --- .github/workflows/ci.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 0cbe3d3..85048bc 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -44,7 +44,12 @@ jobs: name: benchmark-results path: src/FftSharp.Benchmark/BenchmarkDotNet.Artifacts/results/*.md - name: 🧪 Test - run: dotnet test src --configuration Release --no-build --project FftSharp.Tests/FftSharp.Tests.csproj + run: dotnet test FftSharp.Tests/FftSharp.Tests.csproj --configuration Release --no-build - name: Build Windows Demo if: matrix.os == 'windows-latest' run: dotnet publish src/FftSharp.Demo/FftSharp.Demo.csproj --configuration Release --no-build --output ./build/windows --runtime win-x64 + - name: Windows Demo Application Artifact + uses: actions/upload-artifact@v2 + with: + name: windows-demo + path: ./build/windows From 39658d999786e73ac7a41d5298bec0f3bb8859ec Mon Sep 17 00:00:00 2001 From: Taylor Kendall <113073041+msft-takend@users.noreply.github.com> Date: Thu, 11 Jan 2024 11:17:50 -0800 Subject: [PATCH 12/18] Update ci.yaml --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 85048bc..55ad5ec 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -44,7 +44,7 @@ jobs: name: benchmark-results path: src/FftSharp.Benchmark/BenchmarkDotNet.Artifacts/results/*.md - name: 🧪 Test - run: dotnet test FftSharp.Tests/FftSharp.Tests.csproj --configuration Release --no-build + run: dotnet test src/FftSharp.Tests/FftSharp.Tests.csproj --configuration Release --no-build - name: Build Windows Demo if: matrix.os == 'windows-latest' run: dotnet publish src/FftSharp.Demo/FftSharp.Demo.csproj --configuration Release --no-build --output ./build/windows --runtime win-x64 From d7782261a6d1f9986df4e9164e57fdfa01525586 Mon Sep 17 00:00:00 2001 From: Scott W Harden Date: Sat, 16 Nov 2024 13:14:48 -0500 Subject: [PATCH 13/18] CICD: update benchmark action --- .github/workflows/benchmark.yaml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/.github/workflows/benchmark.yaml b/.github/workflows/benchmark.yaml index 366593c..9e71566 100644 --- a/.github/workflows/benchmark.yaml +++ b/.github/workflows/benchmark.yaml @@ -1,21 +1,23 @@ name: Benchmark + on: + workflow_dispatch: push: branches: - - master + - main jobs: benchmark: - name: Run Benchmark.Net benchmark example + name: Run Benchmarks runs-on: windows-latest strategy: matrix: - dotnet-version: [6.x, 8.x] + dotnet-version: [8.x, 9.x] steps: - - uses: actions/checkout@v2 - - uses: actions/setup-dotnet@v1 + - uses: actions/checkout@v4 + - uses: actions/setup-dotnet@v4 with: - dotnet-version: ${{matrix.dotnet-version}} # SDK Version to use. keep in line with examples/benchmarkdotnet/global.json + dotnet-version: ${{matrix.dotnet-version}} - name: Run benchmark - run: cd src/FftSharp.Benchmark && dotnet run --exporters json --filter '*' - + working-directory: src/FftSharp.Benchmark + run: dotnet run --exporters json --filter '*' \ No newline at end of file From 8f23851ccc7c44c5019c0c745bf42496352d9d4e Mon Sep 17 00:00:00 2001 From: Scott W Harden Date: Sat, 16 Nov 2024 13:17:48 -0500 Subject: [PATCH 14/18] CICD: simplify build and test script I'd prefer a simpler/faster job for workflows that run frequently --- .github/workflows/ci.yaml | 47 +++++++++------------------------------ 1 file changed, 10 insertions(+), 37 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 55ad5ec..6f8cde1 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -1,4 +1,4 @@ -name: Build and Test +name: CI/CD on: workflow_dispatch: @@ -10,46 +10,19 @@ on: jobs: build: - name: Build ${{ matrix.os }} - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [windows-latest, ubuntu-latest] - arch: [x64] - dotnetVersion: [6.0.x, 8.0.x] + name: Build and Test + runs-on: windows-latest steps: - name: 🛒 Checkout uses: actions/checkout@v4 - - name: ✨ Setup .NET ${{ matrix.dotnetVersion }} - uses: actions/setup-dotnet@v3 + - name: ✨ Setup .NET + uses: actions/setup-dotnet@v4 with: - dotnet-version: ${{ matrix.dotnetVersion }} - - name: Display Dotnet Versio n - run: dotnet --version + dotnet-version: 9.0.x + dotnet-quality: "preview" - name: 🚚 Restore - run: | - dotnet restore src/FftSharp/FftSharp.csproj - dotnet restore src/FftSharp.Benchmark/FftSharp.Benchmark.csproj - dotnet restore src/FftSharp.Tests/FftSharp.Tests.csproj + run: dotnet restore src - name: 🛠️ Build - run: | - dotnet build src/FftSharp/FftSharp.csproj --configuration Release --no-restore - dotnet build src/FftSharp.Benchmark/FftSharp.Benchmark.csproj --configuration Release --no-restore - dotnet build src/FftSharp.Tests/FftSharp.Tests.csproj --configuration Release --no-restore - - name: 🧪 Benchmark - run: dotnet run --project src/FftSharp.Benchmark/FftSharp.Benchmark.csproj --configuration Release --no-build - - name: Benchmark Artifacts - uses: actions/upload-artifact@v2 - with: - name: benchmark-results - path: src/FftSharp.Benchmark/BenchmarkDotNet.Artifacts/results/*.md + run: dotnet build src - name: 🧪 Test - run: dotnet test src/FftSharp.Tests/FftSharp.Tests.csproj --configuration Release --no-build - - name: Build Windows Demo - if: matrix.os == 'windows-latest' - run: dotnet publish src/FftSharp.Demo/FftSharp.Demo.csproj --configuration Release --no-build --output ./build/windows --runtime win-x64 - - name: Windows Demo Application Artifact - uses: actions/upload-artifact@v2 - with: - name: windows-demo - path: ./build/windows + run: dotnet test src \ No newline at end of file From 274faef19ac03d680f168d9a47c74037f6641684 Mon Sep 17 00:00:00 2001 From: Scott W Harden Date: Sat, 16 Nov 2024 13:20:05 -0500 Subject: [PATCH 15/18] CICD: simplify packaging script --- .github/workflows/package.yaml | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/.github/workflows/package.yaml b/.github/workflows/package.yaml index d1388a7..6f24f64 100644 --- a/.github/workflows/package.yaml +++ b/.github/workflows/package.yaml @@ -9,30 +9,23 @@ jobs: runs-on: windows-latest steps: - name: 🛒 Checkout - uses: actions/checkout@v3 - - name: ✨ Setup .NET 6 - uses: actions/setup-dotnet@v3 + uses: actions/checkout@v4 + - name: ✨ Setup .NET + uses: actions/setup-dotnet@v4 with: - dotnet-version: "6.0.x" + dotnet-version: 9.0.x + dotnet-quality: "preview" - name: 🚚 Restore run: dotnet restore src - name: 🛠️ Build - run: dotnet build src --configuration Release --no-restore + run: dotnet build src - name: 🧪 Test - run: dotnet test src --configuration Release --no-build + run: dotnet test src - name: 📦 Pack - run: dotnet pack src --configuration Release --no-build - - name: 💾 Store - uses: actions/upload-artifact@v2 - with: - name: Packages - retention-days: 1 - path: | - src/FftSharp/bin/Release/*.nupkg - src/FftSharp/bin/Release/*.snupkg + run: dotnet pack src - name: 🔑 Secret uses: nuget/setup-nuget@v1 with: nuget-api-key: ${{ secrets.NUGET_API_KEY }} - name: 🚀 Deploy - run: nuget push "src\FftSharp\bin\Release\*.nupkg" -SkipDuplicate -Source https://api.nuget.org/v3/index.json + run: nuget push "src\FftSharp\bin\Release\*.nupkg" -SkipDuplicate -Source https://api.nuget.org/v3/index.json \ No newline at end of file From feceb36765102122fdf7f7afd2ea744ffa7d1065 Mon Sep 17 00:00:00 2001 From: Scott W Harden Date: Sat, 16 Nov 2024 13:22:04 -0500 Subject: [PATCH 16/18] csproj: do not target .NET 6 it has gone out of support https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core --- src/FftSharp.Benchmark/FftSharp.Benchmark.csproj | 2 +- src/FftSharp.Demo/FftSharp.Demo.csproj | 2 +- src/FftSharp/FftSharp.csproj | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/FftSharp.Benchmark/FftSharp.Benchmark.csproj b/src/FftSharp.Benchmark/FftSharp.Benchmark.csproj index 62e8e89..1b1fd9f 100644 --- a/src/FftSharp.Benchmark/FftSharp.Benchmark.csproj +++ b/src/FftSharp.Benchmark/FftSharp.Benchmark.csproj @@ -2,7 +2,7 @@ Exe - net6.0 + net8.0 enable $(NoWarn);CA1018;CA5351;CA1825;CA8618 diff --git a/src/FftSharp.Demo/FftSharp.Demo.csproj b/src/FftSharp.Demo/FftSharp.Demo.csproj index 9be88bf..97b1177 100644 --- a/src/FftSharp.Demo/FftSharp.Demo.csproj +++ b/src/FftSharp.Demo/FftSharp.Demo.csproj @@ -1,6 +1,6 @@  - net6.0-windows + net8.0-windows WinExe false true diff --git a/src/FftSharp/FftSharp.csproj b/src/FftSharp/FftSharp.csproj index c52ce18..0ec6c36 100644 --- a/src/FftSharp/FftSharp.csproj +++ b/src/FftSharp/FftSharp.csproj @@ -1,7 +1,7 @@  - netstandard2.0;net6.0;net8.0 + netstandard2.0;net8.0 false Library https://github.com/swharden/FftSharp From 0bf7a8ac286e0415e0ba45a420961ac38d83db76 Mon Sep 17 00:00:00 2001 From: Scott W Harden Date: Sat, 16 Nov 2024 13:24:56 -0500 Subject: [PATCH 17/18] CICD: use installed .NET version to reduce job time --- .github/workflows/ci.yaml | 3 --- .github/workflows/package.yaml | 3 --- 2 files changed, 6 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6f8cde1..f8d417f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -17,9 +17,6 @@ jobs: uses: actions/checkout@v4 - name: ✨ Setup .NET uses: actions/setup-dotnet@v4 - with: - dotnet-version: 9.0.x - dotnet-quality: "preview" - name: 🚚 Restore run: dotnet restore src - name: 🛠️ Build diff --git a/.github/workflows/package.yaml b/.github/workflows/package.yaml index 6f24f64..bd2d1b4 100644 --- a/.github/workflows/package.yaml +++ b/.github/workflows/package.yaml @@ -12,9 +12,6 @@ jobs: uses: actions/checkout@v4 - name: ✨ Setup .NET uses: actions/setup-dotnet@v4 - with: - dotnet-version: 9.0.x - dotnet-quality: "preview" - name: 🚚 Restore run: dotnet restore src - name: 🛠️ Build From 8f33f3f67ea28cfcecdfb7494ed3cadeb2a2afe0 Mon Sep 17 00:00:00 2001 From: Scott W Harden Date: Sat, 16 Nov 2024 13:25:13 -0500 Subject: [PATCH 18/18] CICD: allow testing preview runtimes --- .github/workflows/benchmark.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/benchmark.yaml b/.github/workflows/benchmark.yaml index 9e71566..2517d9f 100644 --- a/.github/workflows/benchmark.yaml +++ b/.github/workflows/benchmark.yaml @@ -18,6 +18,7 @@ jobs: - uses: actions/setup-dotnet@v4 with: dotnet-version: ${{matrix.dotnet-version}} + dotnet-quality: "preview" - name: Run benchmark working-directory: src/FftSharp.Benchmark run: dotnet run --exporters json --filter '*' \ No newline at end of file