From 67d8324267bd19725fd1bd412acd09c83d0f407e Mon Sep 17 00:00:00 2001 From: Paul Irwin Date: Wed, 22 Oct 2025 08:54:14 -0600 Subject: [PATCH 01/13] Generate strong-name keypair --- StringSimilarity.NET.snk | Bin 0 -> 596 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 StringSimilarity.NET.snk diff --git a/StringSimilarity.NET.snk b/StringSimilarity.NET.snk new file mode 100644 index 0000000000000000000000000000000000000000..7c475c1780b0e1be41f229b16a749e1135effdba GIT binary patch literal 596 zcmV-a0;~N80ssI2Bme+XQ$aES1ONa50098GqtAT3vTBjIr44ZG1uyCG?bFeio)CG^ zu)&iKATTF7f?}Q+$MTaZ9(h;Pj>Bsw1I?$pv~M~Fgv^FxegfLUOoe(w@0w$#MVl0T z5$r>^TNoYSsxoOYt`oX3z-f202|`SB4T(`i{;O2lTG&cpPmr?KazJ5scpxXpK|HF% zlM8E+D}derIl0m3zF`D#ac#5ot}D|T$9Vw9{iEO6&+=^hU01LnX7_LPj9f(xpN8^E2lm3)^jH-AeuXJC?4DEQUTdk2XU#FRw7|4RN|Z0V z2y6Fabof=}E5eQT9=H945PwNck2t0HK_RfF!!drB(n$)6zbj6BWxWr(FlC`%$Dagw;O zDtwKcLBKLuZ1*3lr55f~7Vjii5KJaKh=^S7#Qt<94=pn6UDNkfTF<=xN?k6>R3DdU z)pNr9?0PIyaXU6TuZ)&?yJU(wqu1~r1e4x1UprSG0jDNp3%72#0R3(@T_JVc%ks+C iPcLUgi)<4Oo$I9}wXc5cq~j+Qe#Iy&7yzs0T{W4~=oC!= literal 0 HcmV?d00001 From 132d2cd01e9b4f9b786a0f5d0f57a2939d9652e3 Mon Sep 17 00:00:00 2001 From: Paul Irwin Date: Wed, 22 Oct 2025 09:11:51 -0600 Subject: [PATCH 02/13] Sign assembly; move benchmarks to test folder --- Directory.Build.props | 6 ++++++ F23.StringSimilarity.sln | 2 +- src/Directory.Build.props | 4 ++++ src/F23.StringSimilarity/F23.StringSimilarity.csproj | 2 +- src/F23.StringSimilarity/Properties/AssemblyInfo.cs | 2 +- test/Directory.Build.props | 4 ++++ .../F23.StringSimilarity.Benchmarks}/Benchmarks.cs | 0 .../F23.StringSimilarity.Benchmarks.csproj | 2 +- .../F23.StringSimilarity.Benchmarks}/Program.cs | 0 9 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 Directory.Build.props create mode 100644 src/Directory.Build.props create mode 100644 test/Directory.Build.props rename {F23.StringSimilarity.Benchmarks => test/F23.StringSimilarity.Benchmarks}/Benchmarks.cs (100%) rename {F23.StringSimilarity.Benchmarks => test/F23.StringSimilarity.Benchmarks}/F23.StringSimilarity.Benchmarks.csproj (80%) rename {F23.StringSimilarity.Benchmarks => test/F23.StringSimilarity.Benchmarks}/Program.cs (100%) diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 0000000..232afa3 --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,6 @@ + + + $(SolutionDir)StringSimilarity.NET.snk + true + + diff --git a/F23.StringSimilarity.sln b/F23.StringSimilarity.sln index c9a10d0..148038f 100644 --- a/F23.StringSimilarity.sln +++ b/F23.StringSimilarity.sln @@ -7,7 +7,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "F23.StringSimilarity", "src EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "F23.StringSimilarity.Tests", "test\F23.StringSimilarity.Tests\F23.StringSimilarity.Tests.csproj", "{68F339E6-278F-4B04-A6ED-422AAD30591F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "F23.StringSimilarity.Benchmarks", "F23.StringSimilarity.Benchmarks\F23.StringSimilarity.Benchmarks.csproj", "{3A9605B1-820C-43C2-8F9B-72BCA5F5543B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "F23.StringSimilarity.Benchmarks", "test\F23.StringSimilarity.Benchmarks\F23.StringSimilarity.Benchmarks.csproj", "{3A9605B1-820C-43C2-8F9B-72BCA5F5543B}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/src/Directory.Build.props b/src/Directory.Build.props new file mode 100644 index 0000000..3ff68bc --- /dev/null +++ b/src/Directory.Build.props @@ -0,0 +1,4 @@ + + + + diff --git a/src/F23.StringSimilarity/F23.StringSimilarity.csproj b/src/F23.StringSimilarity/F23.StringSimilarity.csproj index b77acfb..5750fe2 100644 --- a/src/F23.StringSimilarity/F23.StringSimilarity.csproj +++ b/src/F23.StringSimilarity/F23.StringSimilarity.csproj @@ -28,4 +28,4 @@ bin\Release\netstandard2.0\F23.StringSimilarity.xml - \ No newline at end of file + diff --git a/src/F23.StringSimilarity/Properties/AssemblyInfo.cs b/src/F23.StringSimilarity/Properties/AssemblyInfo.cs index e8a022e..be0fd35 100644 --- a/src/F23.StringSimilarity/Properties/AssemblyInfo.cs +++ b/src/F23.StringSimilarity/Properties/AssemblyInfo.cs @@ -1,3 +1,3 @@ using System.Runtime.CompilerServices; -[assembly: InternalsVisibleTo("F23.StringSimilarity.Tests")] +[assembly: InternalsVisibleTo("F23.StringSimilarity.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b9a3cf7cbdb26a91b8a50d70ec052fe9f1edd3d1989e1079d0b0c1930e2030273a82629e18c7f2932a1e7957d48ec36b2703cda7bab46f3a0684cc86637e02dac24c857a43ef9a63a6459b147d11ec43b75b181de0aa326931ae13ba31c06977b309424c730d895144feab54da5ad84a604f90b2d672406177782027c8413caa")] diff --git a/test/Directory.Build.props b/test/Directory.Build.props new file mode 100644 index 0000000..3ff68bc --- /dev/null +++ b/test/Directory.Build.props @@ -0,0 +1,4 @@ + + + + diff --git a/F23.StringSimilarity.Benchmarks/Benchmarks.cs b/test/F23.StringSimilarity.Benchmarks/Benchmarks.cs similarity index 100% rename from F23.StringSimilarity.Benchmarks/Benchmarks.cs rename to test/F23.StringSimilarity.Benchmarks/Benchmarks.cs diff --git a/F23.StringSimilarity.Benchmarks/F23.StringSimilarity.Benchmarks.csproj b/test/F23.StringSimilarity.Benchmarks/F23.StringSimilarity.Benchmarks.csproj similarity index 80% rename from F23.StringSimilarity.Benchmarks/F23.StringSimilarity.Benchmarks.csproj rename to test/F23.StringSimilarity.Benchmarks/F23.StringSimilarity.Benchmarks.csproj index 9d869a8..f4dda15 100644 --- a/F23.StringSimilarity.Benchmarks/F23.StringSimilarity.Benchmarks.csproj +++ b/test/F23.StringSimilarity.Benchmarks/F23.StringSimilarity.Benchmarks.csproj @@ -12,7 +12,7 @@ - + diff --git a/F23.StringSimilarity.Benchmarks/Program.cs b/test/F23.StringSimilarity.Benchmarks/Program.cs similarity index 100% rename from F23.StringSimilarity.Benchmarks/Program.cs rename to test/F23.StringSimilarity.Benchmarks/Program.cs From ea972374ae78c79d03d8707993a4a5d59d704cd9 Mon Sep 17 00:00:00 2001 From: Paul Irwin Date: Wed, 22 Oct 2025 09:15:57 -0600 Subject: [PATCH 03/13] Run tests on all platforms; remove .NET 6 setup --- .github/workflows/dotnet.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index f539e3e..d15a9b0 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -8,15 +8,14 @@ on: jobs: build: + strategy: + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - - name: Setup .NET 6 - uses: actions/setup-dotnet@v1 - with: - dotnet-version: 6.0.x - name: Setup .NET 8 uses: actions/setup-dotnet@v1 with: From c9d740e7d2507553b3a796bd34676029ac63b959 Mon Sep 17 00:00:00 2001 From: Paul Irwin Date: Wed, 22 Oct 2025 09:18:39 -0600 Subject: [PATCH 04/13] Run tests on net9 and net10 too --- .github/workflows/dotnet.yml | 8 ++++++++ .../F23.StringSimilarity.Tests.csproj | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index d15a9b0..09109ed 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -20,6 +20,14 @@ jobs: uses: actions/setup-dotnet@v1 with: dotnet-version: 8.0.x + - name: Setup .NET 9 + uses: actions/setup-dotnet@v1 + with: + dotnet-version: 9.0.x + - name: Setup .NET 10 + uses: actions/setup-dotnet@v1 + with: + dotnet-version: 10.0.x - name: Restore dependencies run: dotnet restore - name: Build diff --git a/test/F23.StringSimilarity.Tests/F23.StringSimilarity.Tests.csproj b/test/F23.StringSimilarity.Tests/F23.StringSimilarity.Tests.csproj index b74e697..2f47986 100644 --- a/test/F23.StringSimilarity.Tests/F23.StringSimilarity.Tests.csproj +++ b/test/F23.StringSimilarity.Tests/F23.StringSimilarity.Tests.csproj @@ -1,7 +1,7 @@  - net6.0;net8.0 + net8.0;net9.0;net10.0 $(TargetFrameworks);net481 latest enable From 3b5c69317c16fa40dbdd328d4e73e785bc24e2fb Mon Sep 17 00:00:00 2001 From: Paul Irwin Date: Wed, 22 Oct 2025 09:21:06 -0600 Subject: [PATCH 05/13] Use setup-dotnet@v5 --- .github/workflows/dotnet.yml | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 09109ed..6e67db6 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -16,18 +16,13 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Setup .NET 8 - uses: actions/setup-dotnet@v1 + - name: Setup .NET SDKs + uses: actions/setup-dotnet@v5 with: - dotnet-version: 8.0.x - - name: Setup .NET 9 - uses: actions/setup-dotnet@v1 - with: - dotnet-version: 9.0.x - - name: Setup .NET 10 - uses: actions/setup-dotnet@v1 - with: - dotnet-version: 10.0.x + dotnet-version: | + 10.0.x + 9.0.x + 8.0.x - name: Restore dependencies run: dotnet restore - name: Build From c5414f275f689a6b6a390e106e2b4779121c5538 Mon Sep 17 00:00:00 2001 From: Paul Irwin Date: Wed, 22 Oct 2025 09:27:23 -0600 Subject: [PATCH 06/13] Upgrade System.Memory --- src/F23.StringSimilarity/F23.StringSimilarity.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/F23.StringSimilarity/F23.StringSimilarity.csproj b/src/F23.StringSimilarity/F23.StringSimilarity.csproj index 5750fe2..79fb442 100644 --- a/src/F23.StringSimilarity/F23.StringSimilarity.csproj +++ b/src/F23.StringSimilarity/F23.StringSimilarity.csproj @@ -20,7 +20,7 @@ - + From c1450c6c4315e827c3bf85943e41be81a095d68c Mon Sep 17 00:00:00 2001 From: Paul Irwin Date: Wed, 22 Oct 2025 09:32:20 -0600 Subject: [PATCH 07/13] Install .NET 10 on CodeQL --- .github/workflows/codeql-analysis.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 0c43592..1c37361 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -40,6 +40,12 @@ jobs: - name: Checkout repository uses: actions/checkout@v2 + # Temporarily set up .NET 10 SDK until CodeQL autobuild supports .NET 10 + - name: Setup .NET 10 + uses: actions/setup-dotnet@v5 + with: + dotnet-version: 10.0.x + # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL uses: github/codeql-action/init@v1 From b0c3253be5be15ab45243f3a74350822709d9bfa Mon Sep 17 00:00:00 2001 From: Paul Irwin Date: Wed, 22 Oct 2025 09:35:11 -0600 Subject: [PATCH 08/13] Upgrade NuGet packages to address vulnerabilities --- .../F23.StringSimilarity.Tests.csproj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/F23.StringSimilarity.Tests/F23.StringSimilarity.Tests.csproj b/test/F23.StringSimilarity.Tests/F23.StringSimilarity.Tests.csproj index 2f47986..bc23f6a 100644 --- a/test/F23.StringSimilarity.Tests/F23.StringSimilarity.Tests.csproj +++ b/test/F23.StringSimilarity.Tests/F23.StringSimilarity.Tests.csproj @@ -18,9 +18,9 @@ - - - + + + all runtime; build; native; contentfiles; analyzers From 7f8e1e3c0c473060f0321efac7070ff841714fd8 Mon Sep 17 00:00:00 2001 From: Paul Irwin Date: Wed, 22 Oct 2025 09:37:28 -0600 Subject: [PATCH 09/13] Disable CodeQL autobuild until it supports .NET 10 --- .github/workflows/codeql-analysis.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 1c37361..a58ba7d 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -40,11 +40,13 @@ jobs: - name: Checkout repository uses: actions/checkout@v2 - # Temporarily set up .NET 10 SDK until CodeQL autobuild supports .NET 10 - name: Setup .NET 10 uses: actions/setup-dotnet@v5 with: - dotnet-version: 10.0.x + dotnet-version: | + 10.0.x + 9.0.x + 8.0.x # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL @@ -58,8 +60,8 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v1 + # - name: Autobuild + # uses: github/codeql-action/autobuild@v1 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -68,9 +70,8 @@ jobs: # and modify them (or add more) to build your code if your project # uses a compiled language - #- run: | - # make bootstrap - # make release + - run: | + dotnet build - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v1 From 6d0bff871aca752219b28e0d88d04b88ad2b4e99 Mon Sep 17 00:00:00 2001 From: Paul Irwin Date: Wed, 22 Oct 2025 09:39:06 -0600 Subject: [PATCH 10/13] Upgrade deprecated codeql tasks --- .github/workflows/codeql-analysis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index a58ba7d..759f67e 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -50,7 +50,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v1 + uses: github/codeql-action/init@v2 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -61,7 +61,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) # - name: Autobuild - # uses: github/codeql-action/autobuild@v1 + # uses: github/codeql-action/autobuild@v2 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -74,4 +74,4 @@ jobs: dotnet build - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 + uses: github/codeql-action/analyze@v2 From 35a596e4477807009e83a4c086f9a743cca9adca Mon Sep 17 00:00:00 2001 From: Paul Irwin Date: Wed, 22 Oct 2025 09:40:34 -0600 Subject: [PATCH 11/13] Upgrade deprecated codeql tasks --- .github/workflows/codeql-analysis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 759f67e..f04fa8c 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -50,7 +50,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -61,7 +61,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) # - name: Autobuild - # uses: github/codeql-action/autobuild@v2 + # uses: github/codeql-action/autobuild@v3 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -74,4 +74,4 @@ jobs: dotnet build - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@v3 From 67af3723cf868e2216e322816beb5db82e3f854c Mon Sep 17 00:00:00 2001 From: Paul Irwin Date: Wed, 22 Oct 2025 09:42:30 -0600 Subject: [PATCH 12/13] Attempt using autobuild v3 --- .github/workflows/codeql-analysis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index f04fa8c..b4c2a04 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -60,8 +60,8 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - # - name: Autobuild - # uses: github/codeql-action/autobuild@v3 + - name: Autobuild + uses: github/codeql-action/autobuild@v3 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -70,8 +70,8 @@ jobs: # and modify them (or add more) to build your code if your project # uses a compiled language - - run: | - dotnet build + # - run: | + # dotnet build - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v3 From e824ab91e8c1973f7c4802b391ce989a99844879 Mon Sep 17 00:00:00 2001 From: Paul Irwin Date: Wed, 22 Oct 2025 09:47:04 -0600 Subject: [PATCH 13/13] Remove CodeQL workflow until they get it working on .NET 10 --- .github/workflows/codeql-analysis.yml | 77 --------------------------- 1 file changed, 77 deletions(-) delete mode 100644 .github/workflows/codeql-analysis.yml diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml deleted file mode 100644 index b4c2a04..0000000 --- a/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,77 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: "CodeQL" - -on: - push: - branches: [ main, develop ] - pull_request: - # The branches below must be a subset of the branches above - branches: [ main, develop ] - schedule: - - cron: '45 17 * * 6' - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - permissions: - actions: read - contents: read - security-events: write - - strategy: - fail-fast: false - matrix: - language: [ 'csharp' ] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] - # Learn more about CodeQL language support at https://git.io/codeql-language-support - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - - name: Setup .NET 10 - uses: actions/setup-dotnet@v5 - with: - dotnet-version: | - 10.0.x - 9.0.x - 8.0.x - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v3 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v3 - - # ℹ️ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl - - # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - # - run: | - # dotnet build - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3