From 0bbf25fddabf861690a47421d52c09887494ec40 Mon Sep 17 00:00:00 2001 From: RejectKid Date: Thu, 12 Nov 2026 22:56:14 -0500 Subject: [PATCH] Add .NET 11 target and validation coverage --- .github/workflows/benchmarks.yml | 14 +- .github/workflows/ci.yml | 7 +- .github/workflows/fuzz.yml | 4 +- .github/workflows/release.yml | 3 + .gitignore | 1 + README.md | 16 +- .../OpenDisNet.Benchmarks.csproj | 5 +- .../OpenDisNet.Benchmarks/packages.lock.json | 919 ++++++++++++++---- docs/conformance.md | 2 +- docs/release-candidate.md | 2 +- docs/releasing.md | 4 +- eng/Validate-Package.ps1 | 6 +- src/OpenDisNet/OpenDisNet.csproj | 2 +- src/OpenDisNet/packages.lock.json | 8 + .../OpenDisNet.PackageSmoke.csproj | 2 +- .../OpenDisNet.Tests/OpenDisNet.Tests.csproj | 2 +- tests/OpenDisNet.Tests/packages.lock.json | 104 ++ 17 files changed, 866 insertions(+), 235 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index aeb822d..7dab6bd 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -41,21 +41,22 @@ jobs: 8.x 9.x 10.x + 11.x - run: dotnet restore --locked-mode - name: Build benchmark harness - run: dotnet build benchmarks/OpenDisNet.Benchmarks/OpenDisNet.Benchmarks.csproj --configuration Release --framework net10.0 --no-restore --no-incremental + run: dotnet build benchmarks/OpenDisNet.Benchmarks/OpenDisNet.Benchmarks.csproj --configuration Release --framework net11.0 --no-restore --no-incremental - name: Exercise every benchmark and runtime once run: >- dotnet run --project benchmarks/OpenDisNet.Benchmarks/OpenDisNet.Benchmarks.csproj --configuration Release - --framework net10.0 + --framework net11.0 --no-build --no-restore -- --filter '*' --job Dry - --runtimes net8.0 net9.0 net10.0 + --runtimes net8.0 net9.0 net10.0 net11.0 --join --exporters JSON --artifacts artifacts/benchmarks @@ -90,20 +91,21 @@ jobs: 8.x 9.x 10.x + 11.x - run: dotnet restore --locked-mode - name: Build benchmark harness - run: dotnet build benchmarks/OpenDisNet.Benchmarks/OpenDisNet.Benchmarks.csproj --configuration Release --framework net10.0 --no-restore --no-incremental + run: dotnet build benchmarks/OpenDisNet.Benchmarks/OpenDisNet.Benchmarks.csproj --configuration Release --framework net11.0 --no-restore --no-incremental - name: Measure all supported runtimes run: >- dotnet run --project benchmarks/OpenDisNet.Benchmarks/OpenDisNet.Benchmarks.csproj --configuration Release - --framework net10.0 + --framework net11.0 --no-build --no-restore -- --filter '*' - --runtimes net8.0 net9.0 net10.0 + --runtimes net8.0 net9.0 net10.0 net11.0 --join --exporters JSON --artifacts artifacts/benchmarks diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9b117ac..5f65c7b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,6 +23,7 @@ jobs: 8.x 9.x 10.x + 11.x - name: Derive CI package version shell: pwsh run: | @@ -44,6 +45,8 @@ jobs: run: dotnet run --project tests/OpenDisNet.PackageSmoke/OpenDisNet.PackageSmoke.csproj --configuration Release --framework net9.0 --no-restore -p:OpenDisNetPackageVersion=${{ env.PACKAGE_VERSION }} - name: Run packed-package consumer on .NET 10 run: dotnet run --project tests/OpenDisNet.PackageSmoke/OpenDisNet.PackageSmoke.csproj --configuration Release --framework net10.0 --no-restore -p:OpenDisNetPackageVersion=${{ env.PACKAGE_VERSION }} + - name: Run packed-package consumer on .NET 11 + run: dotnet run --project tests/OpenDisNet.PackageSmoke/OpenDisNet.PackageSmoke.csproj --configuration Release --framework net11.0 --no-restore -p:OpenDisNetPackageVersion=${{ env.PACKAGE_VERSION }} - uses: actions/upload-artifact@v7 if: matrix.os == 'ubuntu-latest' with: @@ -56,6 +59,8 @@ jobs: - uses: actions/checkout@v7 - uses: actions/setup-dotnet@v6 with: - dotnet-version: 10.x + dotnet-version: | + 10.x + 11.x - run: dotnet restore --locked-mode - run: dotnet format --verify-no-changes --no-restore diff --git a/.github/workflows/fuzz.yml b/.github/workflows/fuzz.yml index f10b7a9..ddf1d14 100644 --- a/.github/workflows/fuzz.yml +++ b/.github/workflows/fuzz.yml @@ -31,7 +31,9 @@ jobs: - uses: actions/checkout@v7 - uses: actions/setup-dotnet@v6 with: - dotnet-version: 10.x + dotnet-version: | + 10.x + 11.x - run: dotnet restore --locked-mode - name: Build fuzz target run: dotnet build tests/OpenDisNet.Fuzz/OpenDisNet.Fuzz.csproj --configuration Release --no-restore --no-incremental diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7dacf7e..bc08b49 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,6 +23,7 @@ jobs: 8.x 9.x 10.x + 11.x - name: Verify tag commit is on main shell: bash run: git merge-base --is-ancestor "$GITHUB_SHA" origin/main @@ -44,6 +45,8 @@ jobs: run: dotnet run --project tests/OpenDisNet.PackageSmoke/OpenDisNet.PackageSmoke.csproj --configuration Release --framework net9.0 --no-restore -p:OpenDisNetPackageVersion=${{ env.PACKAGE_VERSION }} - name: Run packed-package consumer on .NET 10 run: dotnet run --project tests/OpenDisNet.PackageSmoke/OpenDisNet.PackageSmoke.csproj --configuration Release --framework net10.0 --no-restore -p:OpenDisNetPackageVersion=${{ env.PACKAGE_VERSION }} + - name: Run packed-package consumer on .NET 11 + run: dotnet run --project tests/OpenDisNet.PackageSmoke/OpenDisNet.PackageSmoke.csproj --configuration Release --framework net11.0 --no-restore -p:OpenDisNetPackageVersion=${{ env.PACKAGE_VERSION }} - name: Create package checksums shell: bash run: | diff --git a/.gitignore b/.gitignore index 179a5f6..1f59855 100644 --- a/.gitignore +++ b/.gitignore @@ -5,5 +5,6 @@ obj/ TestResults/ artifacts/ BenchmarkDotNet.Artifacts/ +.bdn/ *.user *.suo diff --git a/README.md b/README.md index 6c3209a..8ca1520 100644 --- a/README.md +++ b/README.md @@ -173,8 +173,10 @@ dotnet test --configuration Release dotnet pack src/OpenDisNet/OpenDisNet.csproj --configuration Release ``` -The library targets .NET 8, .NET 9, and .NET 10 and uses nullable annotations, -deterministic builds, and symbol packages. +Building the solution requires the .NET 11 SDK. + +The library targets .NET 8, .NET 9, .NET 10, and .NET 11 and uses nullable +annotations, deterministic builds, and symbol packages. The implementation is reviewable in ordinary source files: PDU classes are grouped under [`src/OpenDisNet/Pdus/Families`](src/OpenDisNet/Pdus/Families), @@ -190,14 +192,16 @@ caller-owned serialization across Signal payload sizes and representative fixed, variable, vendor-defined, and malformed PDUs. Run it on any supported runtime: ```shell -dotnet run --project benchmarks/OpenDisNet.Benchmarks -c Release -f net10.0 +dotnet run --project benchmarks/OpenDisNet.Benchmarks -c Release -f net11.0 ``` -Replace `net10.0` with `net8.0` or `net9.0` for runtime comparisons. Benchmark -artifacts are written beneath `BenchmarkDotNet.Artifacts` and are not committed. +Replace `net11.0` with `net8.0`, `net9.0`, or `net10.0` for runtime comparisons. +Benchmark artifacts are written beneath `BenchmarkDotNet.Artifacts` and are not +committed. The harness uses BenchmarkDotNet 0.16 preview for .NET 11 runtime +support; this development dependency is not included in the library package. The [benchmark workflow](https://github.com/RejectKid/OpenDisNet/actions/workflows/benchmarks.yml) -runs a fast BenchmarkDotNet `Dry` smoke test across .NET 8, 9, and 10 for +runs a fast BenchmarkDotNet `Dry` smoke test across .NET 8, 9, 10, and 11 for relevant pull requests. Dry-mode timings only validate the harness; they are not performance measurements. Full cross-runtime measurements run after relevant changes land on `main`, every Monday, and on manual dispatch. The workflow adds diff --git a/benchmarks/OpenDisNet.Benchmarks/OpenDisNet.Benchmarks.csproj b/benchmarks/OpenDisNet.Benchmarks/OpenDisNet.Benchmarks.csproj index 727b120..864547c 100644 --- a/benchmarks/OpenDisNet.Benchmarks/OpenDisNet.Benchmarks.csproj +++ b/benchmarks/OpenDisNet.Benchmarks/OpenDisNet.Benchmarks.csproj @@ -1,11 +1,12 @@ Exe - net8.0;net9.0;net10.0 + net8.0;net9.0;net10.0;net11.0 false - + + diff --git a/benchmarks/OpenDisNet.Benchmarks/packages.lock.json b/benchmarks/OpenDisNet.Benchmarks/packages.lock.json index 0e64c48..6504253 100644 --- a/benchmarks/OpenDisNet.Benchmarks/packages.lock.json +++ b/benchmarks/OpenDisNet.Benchmarks/packages.lock.json @@ -4,32 +4,59 @@ "net10.0": { "BenchmarkDotNet": { "type": "Direct", - "requested": "[0.15.8, )", - "resolved": "0.15.8", - "contentHash": "paCfrWxSeHqn3rUZc0spYXVFnHCF0nzRhG0nOLnyTjZYs8spsimBaaNmb3vwqvALKIplbYq/TF393vYiYSnh/Q==", + "requested": "[0.16.0-preview.2, )", + "resolved": "0.16.0-preview.2", + "contentHash": "5bC59TsJDtEMgRs45rwily6iuFFCkRCFCieGZI9+9lmM+GxFlP3nXVE1/whAC36HisUPPfTnKwBVngA2ZYcTCg==", "dependencies": { - "BenchmarkDotNet.Annotations": "0.15.8", + "BenchmarkDotNet.Annotations": "0.16.0-preview.2", "CommandLineParser": "2.9.1", "Gee.External.Capstone": "2.3.0", "Iced": "1.21.0", - "Microsoft.CodeAnalysis.CSharp": "4.14.0", - "Microsoft.Diagnostics.Runtime": "3.1.512801", - "Microsoft.Diagnostics.Tracing.TraceEvent": "3.1.21", - "Microsoft.DotNet.PlatformAbstractions": "3.1.6", - "Perfolizer": "[0.6.1]", - "System.Management": "9.0.5" + "Microsoft.Bcl.AsyncInterfaces": "10.0.11", + "Microsoft.CodeAnalysis.CSharp": "5.6.0", + "Microsoft.Diagnostics.Runtime": "4.1.745802", + "Microsoft.Diagnostics.Tracing.TraceEvent": "3.2.5", + "Perfolizer": "[0.7.5]", + "deniszykov.WebSocketListener": "4.2.19" + } + }, + "Azure.Core": { + "type": "Transitive", + "resolved": "1.53.0", + "contentHash": "x9c/toFMOtRrlTdFuE7rlGCVAduQzWVfKmLz5juj41zJAXEhYD5hluiUyyAEzJ6OxpBnKtiaBztzwpZITAVjtg==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "10.0.3", + "Microsoft.Extensions.Configuration.Abstractions": "10.0.3", + "Microsoft.Extensions.Hosting.Abstractions": "10.0.3", + "Microsoft.Identity.Client": "4.83.1", + "Microsoft.Identity.Client.Extensions.Msal": "4.83.1", + "System.ClientModel": "1.10.0", + "System.Memory.Data": "10.0.3" + } + }, + "Azure.Identity": { + "type": "Transitive", + "resolved": "1.21.0", + "contentHash": "GeFv8sGwRKvDKwI2WFy8r0mhmlxEVZg24Sit2NogTjiSO8RVjllWM65OT6e1sKjOvG8V74y7hAbaELUUPjZQSw==", + "dependencies": { + "Azure.Core": "1.53.0" } }, "BenchmarkDotNet.Annotations": { "type": "Transitive", - "resolved": "0.15.8", - "contentHash": "hfucY0ycAsB0SsoaZcaAp9oq5wlWBJcylvEJb9pmvdYUx6PD6S4mDiYnZWjdjAlLhIpe/xtGCwzORfzAzPqvzA==" + "resolved": "0.16.0-preview.2", + "contentHash": "V+D1LCrn63UbeG8qQvoJiDTujP5Cb+yE5G4tTCUDqgQq8VxM7gk82+GtZSlF1/fpzQ6Wkt44LK30+RphvUBdWQ==" }, "CommandLineParser": { "type": "Transitive", "resolved": "2.9.1", "contentHash": "OE0sl1/sQ37bjVsPKKtwQlWDgqaxWgtme3xZz7JssWUzg5JpMIyHgCTY9MVMxOg48fJ1AgGT3tgdH5m/kQ5xhA==" }, + "deniszykov.WebSocketListener": { + "type": "Transitive", + "resolved": "4.2.19", + "contentHash": "Mt7/Bs3kyaXIkJrboodz9N3Fe+Ricm5J9S3UNP66UpyECTqYW3a7EJHXJf1qVLjHAIqqHkhpSOJ46U5qI1sUfA==" + }, "Gee.External.Capstone": { "type": "Transitive", "resolved": "2.3.0", @@ -40,132 +67,354 @@ "resolved": "1.21.0", "contentHash": "dv5+81Q1TBQvVMSOOOmRcjJmvWcX3BZPZsIq31+RLc5cNft0IHAyNlkdb7ZarOWG913PyBoFDsDXoCIlKmLclg==" }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Transitive", + "resolved": "10.0.11", + "contentHash": "pUkYI1f99hY9giu/MRaEVN53RO7skXwR7FGtVvFJCK5ezdg5i0W+z1yj/91X5aKv07xGuSB5n1g/Zt2P4Ooq6g==" + }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", - "resolved": "3.11.0", - "contentHash": "v/EW3UE8/lbEYHoC2Qq7AR/DnmvpgdtAMndfQNmpuIMx/Mto8L5JnuCfdBYtgvalQOtfNCnxFejxuRrryvUTsg==" + "resolved": "5.3.0", + "contentHash": "KuLhbZwB0L8JikL86AE5VWEp3RLNjIcp+j8yz9EJ/UBgRz4+qDEjHg/tluRFbpYpD/e37BqaaNFbQ0vqawBwWQ==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", - "resolved": "4.14.0", - "contentHash": "PC3tuwZYnC+idaPuoC/AZpEdwrtX7qFpmnrfQkgobGIWiYmGi5MCRtl5mx6QrfMGQpK78X2lfIEoZDLg/qnuHg==", + "resolved": "5.6.0", + "contentHash": "eWYNB5e92PSdkQ0xcmy2aLtrvBXNydnVi0Hj/VjaAely6XBqA3By+ClGAJaj4d16pzQmrXPLLK9RDVuS1Ec9xQ==", "dependencies": { - "Microsoft.CodeAnalysis.Analyzers": "3.11.0" + "Microsoft.CodeAnalysis.Analyzers": "5.3.0" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", - "resolved": "4.14.0", - "contentHash": "568a6wcTivauIhbeWcCwfWwIn7UV7MeHEBvFB2uzGIpM2OhJ4eM/FZ8KS0yhPoNxnSpjGzz7x7CIjTxhslojQA==", + "resolved": "5.6.0", + "contentHash": "r1DrKQ/L0xTw03wJrLr36AMQNslyaeEKBFyFmQcOKa8HX3YvmhY//JEUafb6IR/m0gmaUVCfBTWitKJRNb7YAA==", "dependencies": { - "Microsoft.CodeAnalysis.Analyzers": "3.11.0", - "Microsoft.CodeAnalysis.Common": "[4.14.0]" + "Microsoft.CodeAnalysis.Analyzers": "5.3.0", + "Microsoft.CodeAnalysis.Common": "[5.6.0]" } }, "Microsoft.Diagnostics.NETCore.Client": { "type": "Transitive", - "resolved": "0.2.510501", - "contentHash": "juoqJYMDs+lRrrZyOkXXMImJHneCF23cuvO4waFRd2Ds7j+ZuGIPbJm0Y/zz34BdeaGiiwGWraMUlln05W1PCQ==", + "resolved": "0.2.661903", + "contentHash": "3ISv5jXar4dHBt/7Rz3YdnR3VpnC94BhSdSvuq8ZuKgCOcVuTdmgRnq0hUzJyL/z8Ge4VekFjhui2aufUXPdvg==", "dependencies": { - "Microsoft.Extensions.Logging": "6.0.0" + "Microsoft.Extensions.Logging.Abstractions": "8.0.3" } }, "Microsoft.Diagnostics.Runtime": { "type": "Transitive", - "resolved": "3.1.512801", - "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==", + "resolved": "4.1.745802", + "contentHash": "2rAGwsWz6eX8T9wXzkfBZH8sKOlq+YKLd7HaEIHn9iK/TL0mNn43ial6Li5VmLl8pzC2OATNPhI3q3ZS9mw9vg==", "dependencies": { - "Microsoft.Diagnostics.NETCore.Client": "0.2.410101" + "Azure.Identity": "1.21.0", + "Microsoft.Diagnostics.NETCore.Client": "0.2.661903" } }, "Microsoft.Diagnostics.Tracing.TraceEvent": { "type": "Transitive", - "resolved": "3.1.21", - "contentHash": "/OrJFKaojSR6TkUKtwh8/qA9XWNtxLrXMqvEb89dBSKCWjaGVTbKMYodIUgF5deCEtmd6GXuRerciXGl5bhZ7Q==", + "resolved": "3.2.5", + "contentHash": "dVHew6DC1WpSrG2fUKg8bLvhr5/9mug41MJtcws4fKLJ4V9Kd2610PYg0mFd837YvJwvwWTYQlGBbWvRZHs2mg==", "dependencies": { "Microsoft.Diagnostics.NETCore.Client": "0.2.510501", "System.Reflection.TypeExtensions": "4.7.0" } }, - "Microsoft.DotNet.PlatformAbstractions": { + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "10.0.3", + "contentHash": "xVDHL0+SIgemfh95fTO9cGLe17TWv/ZP0n7m01z8X6pzt2DmQpucioWR/mYZA1sRlkWnkXzfl0JweLNWmE9WMg==", + "dependencies": { + "Microsoft.Extensions.Primitives": "10.0.3" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { "type": "Transitive", - "resolved": "3.1.6", - "contentHash": "jek4XYaQ/PGUwDKKhwR8K47Uh1189PFzMeLqO83mXrXQVIpARZCcfuDedH50YDTepBkfijCZN5U/vZi++erxtg==" + "resolved": "10.0.3", + "contentHash": "bwGMrRcAMWx2s/RDgja97p27rxSz2pEQW0+rX5cWAUWVETVJ/eyxGfjAl8vuG5a+lckWmPIE+vcuaZNVB5YDdw==" }, - "Microsoft.Extensions.DependencyInjection": { + "Microsoft.Extensions.Diagnostics.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "k6PWQMuoBDGGHOQTtyois2u4AwyVcIwL2LaSLlTZQm2CYcJ1pxbt6jfAnpWmzENA/wfrYRI/X9DTLoUkE4AsLw==", + "resolved": "10.0.3", + "contentHash": "mQiTzAj7PIJ2A9YXR5QhgulS1fTWhmQc3ckd1Mrf3hKW07d03fBDqx8vVaFw+cRTebDOeB6pNqdWdnRxsi1hBA==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3", + "Microsoft.Extensions.Options": "10.0.3" } }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { + "Microsoft.Extensions.FileProviders.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==" + "resolved": "10.0.3", + "contentHash": "4TD9AXDRsipTmaemwnjt/DM5Ri0de2JzHQhvZ4woBTjUtL4XrPNsMrOk5oiLJAx1gTrE6pOIhxv+lEde5F6CZA==", + "dependencies": { + "Microsoft.Extensions.Primitives": "10.0.3" + } }, - "Microsoft.Extensions.Logging": { + "Microsoft.Extensions.Hosting.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", + "resolved": "10.0.3", + "contentHash": "GdMpC10Jf6poxSvUJ4lgYpJ5F/kJeaAoJmrPufjBoPYyCTKKY5Dyl0rZA+LBNvFqTq1cZa/lhlptlUhNvU6xrg==", "dependencies": { - "Microsoft.Extensions.DependencyInjection": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "10.0.3", + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3", + "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.3", + "Microsoft.Extensions.FileProviders.Abstractions": "10.0.3", + "Microsoft.Extensions.Logging.Abstractions": "10.0.3" } }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/HggWBbTwy8TgebGSX5DBZ24ndhzi93sHUBDvP1IxbZD7FDokYzdAr6+vbWGjw2XAfR2EJ1sfKUotpjHnFWPxA==" + "resolved": "10.0.3", + "contentHash": "lxl0WLk7ROgBFAsjcOYjQ8/DVK+VMszxGBzUhgtQmAsTNldLL5pk9NG/cWTsXHq0lUhUEAtZkEE7jOGOA8bGKQ==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3" + } }, "Microsoft.Extensions.Options": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", + "resolved": "10.0.3", + "contentHash": "hU6WzGTPvPoLA2ng1ILvWQb3g0qORdlHNsxI8IcPLumJb3suimYUl+bbDzdo1V4KFsvVhnMWzysHpKbZaoDQPQ==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3", + "Microsoft.Extensions.Primitives": "10.0.3" } }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==" + "resolved": "10.0.3", + "contentHash": "GEcpTwo7sUoLGGNTqV1FZEuL+tTD9m81NX/mh099dqGNna07/UGZShKQNZRw4hv6nlliSUwYQgSYc7OR99Jufg==" }, - "Perfolizer": { + "Microsoft.Identity.Client": { "type": "Transitive", - "resolved": "0.6.1", - "contentHash": "CR1QmWg4XYBd1Pb7WseP+sDmV8nGPwvmowKynExTqr3OuckIGVMhvmN4LC5PGzfXqDlR295+hz/T7syA1CxEqA==", + "resolved": "4.83.1", + "contentHash": "jOLIrZ3cynoqHLLO1cXplFFabrhrMEYs/EuKHvmCyrOm1axqiVFT6nCSnHxk7w5+d2BeQfCdM12Yf/0X7OeS1g==", "dependencies": { - "Pragmastat": "3.2.4" + "Microsoft.IdentityModel.Abstractions": "8.14.0" } }, - "Pragmastat": { + "Microsoft.Identity.Client.Extensions.Msal": { + "type": "Transitive", + "resolved": "4.83.1", + "contentHash": "I3k4J4Hj4KbLEFanjeUzzDOVecukETaTgEkJ7h2pP/Yazs6SLp6TVUTo/Eo+ptPXMwvc+iX7rBFtMSUrA7R+Mg==", + "dependencies": { + "Microsoft.Identity.Client": "4.83.1", + "System.Security.Cryptography.ProtectedData": "4.5.0" + } + }, + "Microsoft.IdentityModel.Abstractions": { + "type": "Transitive", + "resolved": "8.14.0", + "contentHash": "iwbCpSjD3ehfTwBhtSNEtKPK0ICun6ov7Ibx6ISNA9bfwIyzI2Siwyi9eJFCJBwxowK9xcA1mj+jBWiigeqgcQ==" + }, + "Perfolizer": { "type": "Transitive", - "resolved": "3.2.4", - "contentHash": "I5qFifWw/gaTQT52MhzjZpkm/JPlfjSeO/DTZJjO7+hTKI+0aGRgOgZ3NN6D96dDuuqbIAZSeA5RimtHjqrA2A==" + "resolved": "0.7.5", + "contentHash": "UQArE0sehmPulzxUVePEOZFvUwzAC0MLEOy6N1Ihb3ElMRPqBMLolnuYAkVUbldWJjtLjSnGAs/vc9gkORA+kQ==", + "dependencies": { + "Pragmastat": "14.0.1" + } }, - "System.CodeDom": { + "Pragmastat": { "type": "Transitive", - "resolved": "9.0.5", - "contentHash": "cuzLM2MWutf9ZBEMPYYfd0DXwYdvntp7VCT6a/wvbKCa2ZuvGmW74xi+YBa2mrfEieAXqM4TNKlMmSnfAfpUoQ==" + "resolved": "14.0.1", + "contentHash": "CllI2zw44GpE95eN09GSDZIG5pEg1WYp5NYq7eOh7JkGcdcOh9WtwLXK+1KiqQLZ8NJoZSeKd57nSZObObrALA==" }, - "System.Management": { + "System.ClientModel": { "type": "Transitive", - "resolved": "9.0.5", - "contentHash": "n6o9PZm9p25+zAzC3/48K0oHnaPKTInRrxqFq1fi/5TPbMLjuoCm/h//mS3cUmSy+9AO1Z+qsC/Ilt/ZFatv5Q==", + "resolved": "1.10.0", + "contentHash": "lBEWs54F5Y5pZ9hC+8z4S/X76957ex+DPk7WecRHlbIHtrPfbRMMlOgI3iDn4Jpb3bSxvBnKaaHoD59auFjlBA==", "dependencies": { - "System.CodeDom": "9.0.5" + "Microsoft.Extensions.Configuration.Abstractions": "10.0.3", + "Microsoft.Extensions.Hosting.Abstractions": "10.0.3", + "Microsoft.Extensions.Logging.Abstractions": "10.0.3", + "System.Memory.Data": "10.0.3" } }, + "System.Memory.Data": { + "type": "Transitive", + "resolved": "10.0.3", + "contentHash": "MaGhRfGunmrj/nHjtsi9XkhlYJ/ERGWrbA+BiSKNtGnAjc9XlG5EhAvak6VRcX5LYzPF6pBO8nJ613dTgzabig==" + }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "VybpaOQQhqE6siHppMktjfGBw1GCwvCqiufqmP8F1nj7fTUNtW35LOEt3UZTEsECfo+ELAl/9o9nJx3U91i7vA==" }, + "System.Security.Cryptography.ProtectedData": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "wLBKzFnDCxP12VL9ANydSYhk59fC4cvOr9ypYQLPnAj48NQIhqnjdD2yhP8yEKyBJEjERWS9DisKL7rX5eU25Q==" + }, + "opendisnet": { + "type": "Project" + } + }, + "net11.0": { + "BenchmarkDotNet": { + "type": "Direct", + "requested": "[0.16.0-preview.2, )", + "resolved": "0.16.0-preview.2", + "contentHash": "5bC59TsJDtEMgRs45rwily6iuFFCkRCFCieGZI9+9lmM+GxFlP3nXVE1/whAC36HisUPPfTnKwBVngA2ZYcTCg==", + "dependencies": { + "BenchmarkDotNet.Annotations": "0.16.0-preview.2", + "CommandLineParser": "2.9.1", + "Gee.External.Capstone": "2.3.0", + "Iced": "1.21.0", + "Microsoft.Bcl.AsyncInterfaces": "10.0.11", + "Microsoft.CodeAnalysis.CSharp": "5.6.0", + "Microsoft.Diagnostics.Runtime": "4.1.745802", + "Microsoft.Diagnostics.Tracing.TraceEvent": "3.2.5", + "Perfolizer": "[0.7.5]", + "deniszykov.WebSocketListener": "4.2.19" + } + }, + "Azure.Core": { + "type": "Transitive", + "resolved": "1.53.0", + "contentHash": "x9c/toFMOtRrlTdFuE7rlGCVAduQzWVfKmLz5juj41zJAXEhYD5hluiUyyAEzJ6OxpBnKtiaBztzwpZITAVjtg==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "10.0.3", + "Microsoft.Identity.Client": "4.83.1", + "Microsoft.Identity.Client.Extensions.Msal": "4.83.1", + "System.ClientModel": "1.10.0", + "System.Memory.Data": "10.0.3" + } + }, + "Azure.Identity": { + "type": "Transitive", + "resolved": "1.21.0", + "contentHash": "GeFv8sGwRKvDKwI2WFy8r0mhmlxEVZg24Sit2NogTjiSO8RVjllWM65OT6e1sKjOvG8V74y7hAbaELUUPjZQSw==", + "dependencies": { + "Azure.Core": "1.53.0" + } + }, + "BenchmarkDotNet.Annotations": { + "type": "Transitive", + "resolved": "0.16.0-preview.2", + "contentHash": "V+D1LCrn63UbeG8qQvoJiDTujP5Cb+yE5G4tTCUDqgQq8VxM7gk82+GtZSlF1/fpzQ6Wkt44LK30+RphvUBdWQ==" + }, + "CommandLineParser": { + "type": "Transitive", + "resolved": "2.9.1", + "contentHash": "OE0sl1/sQ37bjVsPKKtwQlWDgqaxWgtme3xZz7JssWUzg5JpMIyHgCTY9MVMxOg48fJ1AgGT3tgdH5m/kQ5xhA==" + }, + "deniszykov.WebSocketListener": { + "type": "Transitive", + "resolved": "4.2.19", + "contentHash": "Mt7/Bs3kyaXIkJrboodz9N3Fe+Ricm5J9S3UNP66UpyECTqYW3a7EJHXJf1qVLjHAIqqHkhpSOJ46U5qI1sUfA==" + }, + "Gee.External.Capstone": { + "type": "Transitive", + "resolved": "2.3.0", + "contentHash": "2ap/rYmjtzCOT8hxrnEW/QeiOt+paD8iRrIcdKX0cxVwWLFa1e+JDBNeECakmccXrSFeBQuu5AV8SNkipFMMMw==" + }, + "Iced": { + "type": "Transitive", + "resolved": "1.21.0", + "contentHash": "dv5+81Q1TBQvVMSOOOmRcjJmvWcX3BZPZsIq31+RLc5cNft0IHAyNlkdb7ZarOWG913PyBoFDsDXoCIlKmLclg==" + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Transitive", + "resolved": "10.0.11", + "contentHash": "pUkYI1f99hY9giu/MRaEVN53RO7skXwR7FGtVvFJCK5ezdg5i0W+z1yj/91X5aKv07xGuSB5n1g/Zt2P4Ooq6g==" + }, + "Microsoft.CodeAnalysis.Analyzers": { + "type": "Transitive", + "resolved": "5.3.0", + "contentHash": "KuLhbZwB0L8JikL86AE5VWEp3RLNjIcp+j8yz9EJ/UBgRz4+qDEjHg/tluRFbpYpD/e37BqaaNFbQ0vqawBwWQ==" + }, + "Microsoft.CodeAnalysis.Common": { + "type": "Transitive", + "resolved": "5.6.0", + "contentHash": "eWYNB5e92PSdkQ0xcmy2aLtrvBXNydnVi0Hj/VjaAely6XBqA3By+ClGAJaj4d16pzQmrXPLLK9RDVuS1Ec9xQ==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "5.3.0" + } + }, + "Microsoft.CodeAnalysis.CSharp": { + "type": "Transitive", + "resolved": "5.6.0", + "contentHash": "r1DrKQ/L0xTw03wJrLr36AMQNslyaeEKBFyFmQcOKa8HX3YvmhY//JEUafb6IR/m0gmaUVCfBTWitKJRNb7YAA==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "5.3.0", + "Microsoft.CodeAnalysis.Common": "[5.6.0]" + } + }, + "Microsoft.Diagnostics.NETCore.Client": { + "type": "Transitive", + "resolved": "0.2.661903", + "contentHash": "3ISv5jXar4dHBt/7Rz3YdnR3VpnC94BhSdSvuq8ZuKgCOcVuTdmgRnq0hUzJyL/z8Ge4VekFjhui2aufUXPdvg==" + }, + "Microsoft.Diagnostics.Runtime": { + "type": "Transitive", + "resolved": "4.1.745802", + "contentHash": "2rAGwsWz6eX8T9wXzkfBZH8sKOlq+YKLd7HaEIHn9iK/TL0mNn43ial6Li5VmLl8pzC2OATNPhI3q3ZS9mw9vg==", + "dependencies": { + "Azure.Identity": "1.21.0", + "Microsoft.Diagnostics.NETCore.Client": "0.2.661903" + } + }, + "Microsoft.Diagnostics.Tracing.TraceEvent": { + "type": "Transitive", + "resolved": "3.2.5", + "contentHash": "dVHew6DC1WpSrG2fUKg8bLvhr5/9mug41MJtcws4fKLJ4V9Kd2610PYg0mFd837YvJwvwWTYQlGBbWvRZHs2mg==", + "dependencies": { + "Microsoft.Diagnostics.NETCore.Client": "0.2.510501" + } + }, + "Microsoft.Identity.Client": { + "type": "Transitive", + "resolved": "4.83.1", + "contentHash": "jOLIrZ3cynoqHLLO1cXplFFabrhrMEYs/EuKHvmCyrOm1axqiVFT6nCSnHxk7w5+d2BeQfCdM12Yf/0X7OeS1g==", + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "8.14.0" + } + }, + "Microsoft.Identity.Client.Extensions.Msal": { + "type": "Transitive", + "resolved": "4.83.1", + "contentHash": "I3k4J4Hj4KbLEFanjeUzzDOVecukETaTgEkJ7h2pP/Yazs6SLp6TVUTo/Eo+ptPXMwvc+iX7rBFtMSUrA7R+Mg==", + "dependencies": { + "Microsoft.Identity.Client": "4.83.1", + "System.Security.Cryptography.ProtectedData": "4.5.0" + } + }, + "Microsoft.IdentityModel.Abstractions": { + "type": "Transitive", + "resolved": "8.14.0", + "contentHash": "iwbCpSjD3ehfTwBhtSNEtKPK0ICun6ov7Ibx6ISNA9bfwIyzI2Siwyi9eJFCJBwxowK9xcA1mj+jBWiigeqgcQ==" + }, + "Perfolizer": { + "type": "Transitive", + "resolved": "0.7.5", + "contentHash": "UQArE0sehmPulzxUVePEOZFvUwzAC0MLEOy6N1Ihb3ElMRPqBMLolnuYAkVUbldWJjtLjSnGAs/vc9gkORA+kQ==", + "dependencies": { + "Pragmastat": "14.0.1" + } + }, + "Pragmastat": { + "type": "Transitive", + "resolved": "14.0.1", + "contentHash": "CllI2zw44GpE95eN09GSDZIG5pEg1WYp5NYq7eOh7JkGcdcOh9WtwLXK+1KiqQLZ8NJoZSeKd57nSZObObrALA==" + }, + "System.ClientModel": { + "type": "Transitive", + "resolved": "1.10.0", + "contentHash": "lBEWs54F5Y5pZ9hC+8z4S/X76957ex+DPk7WecRHlbIHtrPfbRMMlOgI3iDn4Jpb3bSxvBnKaaHoD59auFjlBA==", + "dependencies": { + "System.Memory.Data": "10.0.3" + } + }, + "System.Memory.Data": { + "type": "Transitive", + "resolved": "10.0.3", + "contentHash": "MaGhRfGunmrj/nHjtsi9XkhlYJ/ERGWrbA+BiSKNtGnAjc9XlG5EhAvak6VRcX5LYzPF6pBO8nJ613dTgzabig==" + }, + "System.Security.Cryptography.ProtectedData": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "wLBKzFnDCxP12VL9ANydSYhk59fC4cvOr9ypYQLPnAj48NQIhqnjdD2yhP8yEKyBJEjERWS9DisKL7rX5eU25Q==" + }, "opendisnet": { "type": "Project" } @@ -173,32 +422,63 @@ "net8.0": { "BenchmarkDotNet": { "type": "Direct", - "requested": "[0.15.8, )", - "resolved": "0.15.8", - "contentHash": "paCfrWxSeHqn3rUZc0spYXVFnHCF0nzRhG0nOLnyTjZYs8spsimBaaNmb3vwqvALKIplbYq/TF393vYiYSnh/Q==", + "requested": "[0.16.0-preview.2, )", + "resolved": "0.16.0-preview.2", + "contentHash": "5bC59TsJDtEMgRs45rwily6iuFFCkRCFCieGZI9+9lmM+GxFlP3nXVE1/whAC36HisUPPfTnKwBVngA2ZYcTCg==", "dependencies": { - "BenchmarkDotNet.Annotations": "0.15.8", + "BenchmarkDotNet.Annotations": "0.16.0-preview.2", "CommandLineParser": "2.9.1", "Gee.External.Capstone": "2.3.0", "Iced": "1.21.0", - "Microsoft.CodeAnalysis.CSharp": "4.14.0", - "Microsoft.Diagnostics.Runtime": "3.1.512801", - "Microsoft.Diagnostics.Tracing.TraceEvent": "3.1.21", - "Microsoft.DotNet.PlatformAbstractions": "3.1.6", - "Perfolizer": "[0.6.1]", - "System.Management": "9.0.5" + "Microsoft.Bcl.AsyncInterfaces": "10.0.11", + "Microsoft.CodeAnalysis.CSharp": "5.6.0", + "Microsoft.Diagnostics.Runtime": "4.1.745802", + "Microsoft.Diagnostics.Tracing.TraceEvent": "3.2.5", + "Perfolizer": "[0.7.5]", + "System.Text.Json": "10.0.11", + "deniszykov.WebSocketListener": "4.2.19" + } + }, + "Azure.Core": { + "type": "Transitive", + "resolved": "1.53.0", + "contentHash": "x9c/toFMOtRrlTdFuE7rlGCVAduQzWVfKmLz5juj41zJAXEhYD5hluiUyyAEzJ6OxpBnKtiaBztzwpZITAVjtg==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "10.0.3", + "Microsoft.Extensions.Configuration.Abstractions": "10.0.3", + "Microsoft.Extensions.Hosting.Abstractions": "10.0.3", + "Microsoft.Identity.Client": "4.83.1", + "Microsoft.Identity.Client.Extensions.Msal": "4.83.1", + "System.ClientModel": "1.10.0", + "System.Diagnostics.DiagnosticSource": "10.0.3", + "System.Memory.Data": "10.0.3", + "System.Text.Encodings.Web": "10.0.3", + "System.Text.Json": "10.0.3" + } + }, + "Azure.Identity": { + "type": "Transitive", + "resolved": "1.21.0", + "contentHash": "GeFv8sGwRKvDKwI2WFy8r0mhmlxEVZg24Sit2NogTjiSO8RVjllWM65OT6e1sKjOvG8V74y7hAbaELUUPjZQSw==", + "dependencies": { + "Azure.Core": "1.53.0" } }, "BenchmarkDotNet.Annotations": { "type": "Transitive", - "resolved": "0.15.8", - "contentHash": "hfucY0ycAsB0SsoaZcaAp9oq5wlWBJcylvEJb9pmvdYUx6PD6S4mDiYnZWjdjAlLhIpe/xtGCwzORfzAzPqvzA==" + "resolved": "0.16.0-preview.2", + "contentHash": "V+D1LCrn63UbeG8qQvoJiDTujP5Cb+yE5G4tTCUDqgQq8VxM7gk82+GtZSlF1/fpzQ6Wkt44LK30+RphvUBdWQ==" }, "CommandLineParser": { "type": "Transitive", "resolved": "2.9.1", "contentHash": "OE0sl1/sQ37bjVsPKKtwQlWDgqaxWgtme3xZz7JssWUzg5JpMIyHgCTY9MVMxOg48fJ1AgGT3tgdH5m/kQ5xhA==" }, + "deniszykov.WebSocketListener": { + "type": "Transitive", + "resolved": "4.2.19", + "contentHash": "Mt7/Bs3kyaXIkJrboodz9N3Fe+Ricm5J9S3UNP66UpyECTqYW3a7EJHXJf1qVLjHAIqqHkhpSOJ46U5qI1sUfA==" + }, "Gee.External.Capstone": { "type": "Transitive", "resolved": "2.3.0", @@ -209,141 +489,228 @@ "resolved": "1.21.0", "contentHash": "dv5+81Q1TBQvVMSOOOmRcjJmvWcX3BZPZsIq31+RLc5cNft0IHAyNlkdb7ZarOWG913PyBoFDsDXoCIlKmLclg==" }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Transitive", + "resolved": "10.0.11", + "contentHash": "pUkYI1f99hY9giu/MRaEVN53RO7skXwR7FGtVvFJCK5ezdg5i0W+z1yj/91X5aKv07xGuSB5n1g/Zt2P4Ooq6g==" + }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", - "resolved": "3.11.0", - "contentHash": "v/EW3UE8/lbEYHoC2Qq7AR/DnmvpgdtAMndfQNmpuIMx/Mto8L5JnuCfdBYtgvalQOtfNCnxFejxuRrryvUTsg==" + "resolved": "5.3.0", + "contentHash": "KuLhbZwB0L8JikL86AE5VWEp3RLNjIcp+j8yz9EJ/UBgRz4+qDEjHg/tluRFbpYpD/e37BqaaNFbQ0vqawBwWQ==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", - "resolved": "4.14.0", - "contentHash": "PC3tuwZYnC+idaPuoC/AZpEdwrtX7qFpmnrfQkgobGIWiYmGi5MCRtl5mx6QrfMGQpK78X2lfIEoZDLg/qnuHg==", + "resolved": "5.6.0", + "contentHash": "eWYNB5e92PSdkQ0xcmy2aLtrvBXNydnVi0Hj/VjaAely6XBqA3By+ClGAJaj4d16pzQmrXPLLK9RDVuS1Ec9xQ==", "dependencies": { - "Microsoft.CodeAnalysis.Analyzers": "3.11.0", - "System.Collections.Immutable": "9.0.0", - "System.Reflection.Metadata": "9.0.0" + "Microsoft.CodeAnalysis.Analyzers": "5.3.0", + "System.Collections.Immutable": "10.0.1", + "System.Reflection.Metadata": "10.0.1" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", - "resolved": "4.14.0", - "contentHash": "568a6wcTivauIhbeWcCwfWwIn7UV7MeHEBvFB2uzGIpM2OhJ4eM/FZ8KS0yhPoNxnSpjGzz7x7CIjTxhslojQA==", + "resolved": "5.6.0", + "contentHash": "r1DrKQ/L0xTw03wJrLr36AMQNslyaeEKBFyFmQcOKa8HX3YvmhY//JEUafb6IR/m0gmaUVCfBTWitKJRNb7YAA==", "dependencies": { - "Microsoft.CodeAnalysis.Analyzers": "3.11.0", - "Microsoft.CodeAnalysis.Common": "[4.14.0]", - "System.Collections.Immutable": "9.0.0", - "System.Reflection.Metadata": "9.0.0" + "Microsoft.CodeAnalysis.Analyzers": "5.3.0", + "Microsoft.CodeAnalysis.Common": "[5.6.0]", + "System.Collections.Immutable": "10.0.1", + "System.Reflection.Metadata": "10.0.1" } }, "Microsoft.Diagnostics.NETCore.Client": { "type": "Transitive", - "resolved": "0.2.510501", - "contentHash": "juoqJYMDs+lRrrZyOkXXMImJHneCF23cuvO4waFRd2Ds7j+ZuGIPbJm0Y/zz34BdeaGiiwGWraMUlln05W1PCQ==", + "resolved": "0.2.661903", + "contentHash": "3ISv5jXar4dHBt/7Rz3YdnR3VpnC94BhSdSvuq8ZuKgCOcVuTdmgRnq0hUzJyL/z8Ge4VekFjhui2aufUXPdvg==", "dependencies": { - "Microsoft.Extensions.Logging": "6.0.0" + "Microsoft.Extensions.Logging.Abstractions": "8.0.3" } }, "Microsoft.Diagnostics.Runtime": { "type": "Transitive", - "resolved": "3.1.512801", - "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==", + "resolved": "4.1.745802", + "contentHash": "2rAGwsWz6eX8T9wXzkfBZH8sKOlq+YKLd7HaEIHn9iK/TL0mNn43ial6Li5VmLl8pzC2OATNPhI3q3ZS9mw9vg==", "dependencies": { - "Microsoft.Diagnostics.NETCore.Client": "0.2.410101" + "Azure.Identity": "1.21.0", + "Microsoft.Diagnostics.NETCore.Client": "0.2.661903", + "System.Collections.Immutable": "10.0.7" } }, "Microsoft.Diagnostics.Tracing.TraceEvent": { "type": "Transitive", - "resolved": "3.1.21", - "contentHash": "/OrJFKaojSR6TkUKtwh8/qA9XWNtxLrXMqvEb89dBSKCWjaGVTbKMYodIUgF5deCEtmd6GXuRerciXGl5bhZ7Q==", + "resolved": "3.2.5", + "contentHash": "dVHew6DC1WpSrG2fUKg8bLvhr5/9mug41MJtcws4fKLJ4V9Kd2610PYg0mFd837YvJwvwWTYQlGBbWvRZHs2mg==", "dependencies": { - "Microsoft.Diagnostics.NETCore.Client": "0.2.510501" + "Microsoft.Diagnostics.NETCore.Client": "0.2.510501", + "System.Collections.Immutable": "9.0.8", + "System.Reflection.Metadata": "9.0.8", + "System.Text.Json": "9.0.8" } }, - "Microsoft.DotNet.PlatformAbstractions": { + "Microsoft.Extensions.Configuration.Abstractions": { "type": "Transitive", - "resolved": "3.1.6", - "contentHash": "jek4XYaQ/PGUwDKKhwR8K47Uh1189PFzMeLqO83mXrXQVIpARZCcfuDedH50YDTepBkfijCZN5U/vZi++erxtg==" + "resolved": "10.0.3", + "contentHash": "xVDHL0+SIgemfh95fTO9cGLe17TWv/ZP0n7m01z8X6pzt2DmQpucioWR/mYZA1sRlkWnkXzfl0JweLNWmE9WMg==", + "dependencies": { + "Microsoft.Extensions.Primitives": "10.0.3" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "Transitive", + "resolved": "10.0.3", + "contentHash": "bwGMrRcAMWx2s/RDgja97p27rxSz2pEQW0+rX5cWAUWVETVJ/eyxGfjAl8vuG5a+lckWmPIE+vcuaZNVB5YDdw==" }, - "Microsoft.Extensions.DependencyInjection": { + "Microsoft.Extensions.Diagnostics.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "k6PWQMuoBDGGHOQTtyois2u4AwyVcIwL2LaSLlTZQm2CYcJ1pxbt6jfAnpWmzENA/wfrYRI/X9DTLoUkE4AsLw==", + "resolved": "10.0.3", + "contentHash": "mQiTzAj7PIJ2A9YXR5QhgulS1fTWhmQc3ckd1Mrf3hKW07d03fBDqx8vVaFw+cRTebDOeB6pNqdWdnRxsi1hBA==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3", + "Microsoft.Extensions.Options": "10.0.3", + "System.Diagnostics.DiagnosticSource": "10.0.3" } }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { + "Microsoft.Extensions.FileProviders.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==" + "resolved": "10.0.3", + "contentHash": "4TD9AXDRsipTmaemwnjt/DM5Ri0de2JzHQhvZ4woBTjUtL4XrPNsMrOk5oiLJAx1gTrE6pOIhxv+lEde5F6CZA==", + "dependencies": { + "Microsoft.Extensions.Primitives": "10.0.3" + } }, - "Microsoft.Extensions.Logging": { + "Microsoft.Extensions.Hosting.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", + "resolved": "10.0.3", + "contentHash": "GdMpC10Jf6poxSvUJ4lgYpJ5F/kJeaAoJmrPufjBoPYyCTKKY5Dyl0rZA+LBNvFqTq1cZa/lhlptlUhNvU6xrg==", "dependencies": { - "Microsoft.Extensions.DependencyInjection": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "10.0.3", + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3", + "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.3", + "Microsoft.Extensions.FileProviders.Abstractions": "10.0.3", + "Microsoft.Extensions.Logging.Abstractions": "10.0.3" } }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/HggWBbTwy8TgebGSX5DBZ24ndhzi93sHUBDvP1IxbZD7FDokYzdAr6+vbWGjw2XAfR2EJ1sfKUotpjHnFWPxA==" + "resolved": "10.0.3", + "contentHash": "lxl0WLk7ROgBFAsjcOYjQ8/DVK+VMszxGBzUhgtQmAsTNldLL5pk9NG/cWTsXHq0lUhUEAtZkEE7jOGOA8bGKQ==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3", + "System.Diagnostics.DiagnosticSource": "10.0.3" + } }, "Microsoft.Extensions.Options": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", + "resolved": "10.0.3", + "contentHash": "hU6WzGTPvPoLA2ng1ILvWQb3g0qORdlHNsxI8IcPLumJb3suimYUl+bbDzdo1V4KFsvVhnMWzysHpKbZaoDQPQ==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3", + "Microsoft.Extensions.Primitives": "10.0.3" } }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==" + "resolved": "10.0.3", + "contentHash": "GEcpTwo7sUoLGGNTqV1FZEuL+tTD9m81NX/mh099dqGNna07/UGZShKQNZRw4hv6nlliSUwYQgSYc7OR99Jufg==" + }, + "Microsoft.Identity.Client": { + "type": "Transitive", + "resolved": "4.83.1", + "contentHash": "jOLIrZ3cynoqHLLO1cXplFFabrhrMEYs/EuKHvmCyrOm1axqiVFT6nCSnHxk7w5+d2BeQfCdM12Yf/0X7OeS1g==", + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "8.14.0" + } + }, + "Microsoft.Identity.Client.Extensions.Msal": { + "type": "Transitive", + "resolved": "4.83.1", + "contentHash": "I3k4J4Hj4KbLEFanjeUzzDOVecukETaTgEkJ7h2pP/Yazs6SLp6TVUTo/Eo+ptPXMwvc+iX7rBFtMSUrA7R+Mg==", + "dependencies": { + "Microsoft.Identity.Client": "4.83.1", + "System.Security.Cryptography.ProtectedData": "4.5.0" + } + }, + "Microsoft.IdentityModel.Abstractions": { + "type": "Transitive", + "resolved": "8.14.0", + "contentHash": "iwbCpSjD3ehfTwBhtSNEtKPK0ICun6ov7Ibx6ISNA9bfwIyzI2Siwyi9eJFCJBwxowK9xcA1mj+jBWiigeqgcQ==" }, "Perfolizer": { "type": "Transitive", - "resolved": "0.6.1", - "contentHash": "CR1QmWg4XYBd1Pb7WseP+sDmV8nGPwvmowKynExTqr3OuckIGVMhvmN4LC5PGzfXqDlR295+hz/T7syA1CxEqA==", + "resolved": "0.7.5", + "contentHash": "UQArE0sehmPulzxUVePEOZFvUwzAC0MLEOy6N1Ihb3ElMRPqBMLolnuYAkVUbldWJjtLjSnGAs/vc9gkORA+kQ==", "dependencies": { - "Pragmastat": "3.2.4" + "Pragmastat": "14.0.1" } }, "Pragmastat": { "type": "Transitive", - "resolved": "3.2.4", - "contentHash": "I5qFifWw/gaTQT52MhzjZpkm/JPlfjSeO/DTZJjO7+hTKI+0aGRgOgZ3NN6D96dDuuqbIAZSeA5RimtHjqrA2A==" + "resolved": "14.0.1", + "contentHash": "CllI2zw44GpE95eN09GSDZIG5pEg1WYp5NYq7eOh7JkGcdcOh9WtwLXK+1KiqQLZ8NJoZSeKd57nSZObObrALA==" }, - "System.CodeDom": { + "System.ClientModel": { "type": "Transitive", - "resolved": "9.0.5", - "contentHash": "cuzLM2MWutf9ZBEMPYYfd0DXwYdvntp7VCT6a/wvbKCa2ZuvGmW74xi+YBa2mrfEieAXqM4TNKlMmSnfAfpUoQ==" + "resolved": "1.10.0", + "contentHash": "lBEWs54F5Y5pZ9hC+8z4S/X76957ex+DPk7WecRHlbIHtrPfbRMMlOgI3iDn4Jpb3bSxvBnKaaHoD59auFjlBA==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "10.0.3", + "Microsoft.Extensions.Hosting.Abstractions": "10.0.3", + "Microsoft.Extensions.Logging.Abstractions": "10.0.3", + "System.Diagnostics.DiagnosticSource": "10.0.3", + "System.Memory.Data": "10.0.3", + "System.Text.Json": "10.0.3" + } }, "System.Collections.Immutable": { "type": "Transitive", - "resolved": "9.0.0", - "contentHash": "QhkXUl2gNrQtvPmtBTQHb0YsUrDiDQ2QS09YbtTTiSjGcf7NBqtYbrG/BE06zcBPCKEwQGzIv13IVdXNOSub2w==" + "resolved": "10.0.7", + "contentHash": "0Ti4Jv1ga3eurH5HaCVsPybcBl+08YfzM9smqAJzHvqV494xK+0pSbytGrMTWhph+zsyKIaoGNiR5u3by5bj+A==" }, - "System.Management": { + "System.Diagnostics.DiagnosticSource": { "type": "Transitive", - "resolved": "9.0.5", - "contentHash": "n6o9PZm9p25+zAzC3/48K0oHnaPKTInRrxqFq1fi/5TPbMLjuoCm/h//mS3cUmSy+9AO1Z+qsC/Ilt/ZFatv5Q==", + "resolved": "10.0.3", + "contentHash": "IuZXyF3K5X+mCsBKIQ87Cn/V4Nyb39vyCbzfH/AkoneSWNV/ExGQ/I0m4CEaVAeFh9fW6kp2NVObkmevd1Ys7A==" + }, + "System.IO.Pipelines": { + "type": "Transitive", + "resolved": "10.0.11", + "contentHash": "rg8LPOZ62quw3aTnsQNh9rssncaMs69WEM1DiJdDkV+o4Llb2s5Pasy5Bulfm8zL+pE4gDcSQo7V2zW2jvxwYg==" + }, + "System.Memory.Data": { + "type": "Transitive", + "resolved": "10.0.3", + "contentHash": "MaGhRfGunmrj/nHjtsi9XkhlYJ/ERGWrbA+BiSKNtGnAjc9XlG5EhAvak6VRcX5LYzPF6pBO8nJ613dTgzabig==", "dependencies": { - "System.CodeDom": "9.0.5" + "System.Text.Json": "10.0.3" } }, "System.Reflection.Metadata": { "type": "Transitive", - "resolved": "9.0.0", - "contentHash": "ANiqLu3DxW9kol/hMmTWbt3414t9ftdIuiIU7j80okq2YzAueo120M442xk1kDJWtmZTqWQn7wHDvMRipVOEOQ==", + "resolved": "10.0.1", + "contentHash": "zpcfT/wacPPhE17zcudozlxQtWN/84qyiMyZNGLnK4cj2IMBtLsZYwYjVnALUhPliwyUVj/P7kaZvBWYBCnf2Q==", "dependencies": { - "System.Collections.Immutable": "9.0.0" + "System.Collections.Immutable": "10.0.1" + } + }, + "System.Security.Cryptography.ProtectedData": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "wLBKzFnDCxP12VL9ANydSYhk59fC4cvOr9ypYQLPnAj48NQIhqnjdD2yhP8yEKyBJEjERWS9DisKL7rX5eU25Q==" + }, + "System.Text.Encodings.Web": { + "type": "Transitive", + "resolved": "10.0.11", + "contentHash": "R7H2/Oqr3onFff/JKDpfRjwxcQZlocF/eQ0ce8go/OTjqz+6LEp/fZK8j1YnDobtysChATEg7krVq4hQJ3IoeQ==" + }, + "System.Text.Json": { + "type": "Transitive", + "resolved": "10.0.11", + "contentHash": "X2rXQy7g8KEUvWVbAz6vOk6byI1eMgmzFeXbKxq4BfZCfFy5S91K+K+hd4ZBlSp0wL1Y8FyGRXs6+hvABTjwQw==", + "dependencies": { + "System.IO.Pipelines": "10.0.11", + "System.Text.Encodings.Web": "10.0.11" } }, "opendisnet": { @@ -353,32 +720,63 @@ "net9.0": { "BenchmarkDotNet": { "type": "Direct", - "requested": "[0.15.8, )", - "resolved": "0.15.8", - "contentHash": "paCfrWxSeHqn3rUZc0spYXVFnHCF0nzRhG0nOLnyTjZYs8spsimBaaNmb3vwqvALKIplbYq/TF393vYiYSnh/Q==", + "requested": "[0.16.0-preview.2, )", + "resolved": "0.16.0-preview.2", + "contentHash": "5bC59TsJDtEMgRs45rwily6iuFFCkRCFCieGZI9+9lmM+GxFlP3nXVE1/whAC36HisUPPfTnKwBVngA2ZYcTCg==", "dependencies": { - "BenchmarkDotNet.Annotations": "0.15.8", + "BenchmarkDotNet.Annotations": "0.16.0-preview.2", "CommandLineParser": "2.9.1", "Gee.External.Capstone": "2.3.0", "Iced": "1.21.0", - "Microsoft.CodeAnalysis.CSharp": "4.14.0", - "Microsoft.Diagnostics.Runtime": "3.1.512801", - "Microsoft.Diagnostics.Tracing.TraceEvent": "3.1.21", - "Microsoft.DotNet.PlatformAbstractions": "3.1.6", - "Perfolizer": "[0.6.1]", - "System.Management": "9.0.5" + "Microsoft.Bcl.AsyncInterfaces": "10.0.11", + "Microsoft.CodeAnalysis.CSharp": "5.6.0", + "Microsoft.Diagnostics.Runtime": "4.1.745802", + "Microsoft.Diagnostics.Tracing.TraceEvent": "3.2.5", + "Perfolizer": "[0.7.5]", + "System.Text.Json": "10.0.11", + "deniszykov.WebSocketListener": "4.2.19" + } + }, + "Azure.Core": { + "type": "Transitive", + "resolved": "1.53.0", + "contentHash": "x9c/toFMOtRrlTdFuE7rlGCVAduQzWVfKmLz5juj41zJAXEhYD5hluiUyyAEzJ6OxpBnKtiaBztzwpZITAVjtg==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "10.0.3", + "Microsoft.Extensions.Configuration.Abstractions": "10.0.3", + "Microsoft.Extensions.Hosting.Abstractions": "10.0.3", + "Microsoft.Identity.Client": "4.83.1", + "Microsoft.Identity.Client.Extensions.Msal": "4.83.1", + "System.ClientModel": "1.10.0", + "System.Diagnostics.DiagnosticSource": "10.0.3", + "System.Memory.Data": "10.0.3", + "System.Text.Encodings.Web": "10.0.3", + "System.Text.Json": "10.0.3" + } + }, + "Azure.Identity": { + "type": "Transitive", + "resolved": "1.21.0", + "contentHash": "GeFv8sGwRKvDKwI2WFy8r0mhmlxEVZg24Sit2NogTjiSO8RVjllWM65OT6e1sKjOvG8V74y7hAbaELUUPjZQSw==", + "dependencies": { + "Azure.Core": "1.53.0" } }, "BenchmarkDotNet.Annotations": { "type": "Transitive", - "resolved": "0.15.8", - "contentHash": "hfucY0ycAsB0SsoaZcaAp9oq5wlWBJcylvEJb9pmvdYUx6PD6S4mDiYnZWjdjAlLhIpe/xtGCwzORfzAzPqvzA==" + "resolved": "0.16.0-preview.2", + "contentHash": "V+D1LCrn63UbeG8qQvoJiDTujP5Cb+yE5G4tTCUDqgQq8VxM7gk82+GtZSlF1/fpzQ6Wkt44LK30+RphvUBdWQ==" }, "CommandLineParser": { "type": "Transitive", "resolved": "2.9.1", "contentHash": "OE0sl1/sQ37bjVsPKKtwQlWDgqaxWgtme3xZz7JssWUzg5JpMIyHgCTY9MVMxOg48fJ1AgGT3tgdH5m/kQ5xhA==" }, + "deniszykov.WebSocketListener": { + "type": "Transitive", + "resolved": "4.2.19", + "contentHash": "Mt7/Bs3kyaXIkJrboodz9N3Fe+Ricm5J9S3UNP66UpyECTqYW3a7EJHXJf1qVLjHAIqqHkhpSOJ46U5qI1sUfA==" + }, "Gee.External.Capstone": { "type": "Transitive", "resolved": "2.3.0", @@ -389,124 +787,225 @@ "resolved": "1.21.0", "contentHash": "dv5+81Q1TBQvVMSOOOmRcjJmvWcX3BZPZsIq31+RLc5cNft0IHAyNlkdb7ZarOWG913PyBoFDsDXoCIlKmLclg==" }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Transitive", + "resolved": "10.0.11", + "contentHash": "pUkYI1f99hY9giu/MRaEVN53RO7skXwR7FGtVvFJCK5ezdg5i0W+z1yj/91X5aKv07xGuSB5n1g/Zt2P4Ooq6g==" + }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", - "resolved": "3.11.0", - "contentHash": "v/EW3UE8/lbEYHoC2Qq7AR/DnmvpgdtAMndfQNmpuIMx/Mto8L5JnuCfdBYtgvalQOtfNCnxFejxuRrryvUTsg==" + "resolved": "5.3.0", + "contentHash": "KuLhbZwB0L8JikL86AE5VWEp3RLNjIcp+j8yz9EJ/UBgRz4+qDEjHg/tluRFbpYpD/e37BqaaNFbQ0vqawBwWQ==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", - "resolved": "4.14.0", - "contentHash": "PC3tuwZYnC+idaPuoC/AZpEdwrtX7qFpmnrfQkgobGIWiYmGi5MCRtl5mx6QrfMGQpK78X2lfIEoZDLg/qnuHg==", + "resolved": "5.6.0", + "contentHash": "eWYNB5e92PSdkQ0xcmy2aLtrvBXNydnVi0Hj/VjaAely6XBqA3By+ClGAJaj4d16pzQmrXPLLK9RDVuS1Ec9xQ==", "dependencies": { - "Microsoft.CodeAnalysis.Analyzers": "3.11.0" + "Microsoft.CodeAnalysis.Analyzers": "5.3.0", + "System.Collections.Immutable": "10.0.1", + "System.Reflection.Metadata": "10.0.1" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", - "resolved": "4.14.0", - "contentHash": "568a6wcTivauIhbeWcCwfWwIn7UV7MeHEBvFB2uzGIpM2OhJ4eM/FZ8KS0yhPoNxnSpjGzz7x7CIjTxhslojQA==", + "resolved": "5.6.0", + "contentHash": "r1DrKQ/L0xTw03wJrLr36AMQNslyaeEKBFyFmQcOKa8HX3YvmhY//JEUafb6IR/m0gmaUVCfBTWitKJRNb7YAA==", "dependencies": { - "Microsoft.CodeAnalysis.Analyzers": "3.11.0", - "Microsoft.CodeAnalysis.Common": "[4.14.0]" + "Microsoft.CodeAnalysis.Analyzers": "5.3.0", + "Microsoft.CodeAnalysis.Common": "[5.6.0]", + "System.Collections.Immutable": "10.0.1", + "System.Reflection.Metadata": "10.0.1" } }, "Microsoft.Diagnostics.NETCore.Client": { "type": "Transitive", - "resolved": "0.2.510501", - "contentHash": "juoqJYMDs+lRrrZyOkXXMImJHneCF23cuvO4waFRd2Ds7j+ZuGIPbJm0Y/zz34BdeaGiiwGWraMUlln05W1PCQ==", + "resolved": "0.2.661903", + "contentHash": "3ISv5jXar4dHBt/7Rz3YdnR3VpnC94BhSdSvuq8ZuKgCOcVuTdmgRnq0hUzJyL/z8Ge4VekFjhui2aufUXPdvg==", "dependencies": { - "Microsoft.Extensions.Logging": "6.0.0" + "Microsoft.Extensions.Logging.Abstractions": "8.0.3" } }, "Microsoft.Diagnostics.Runtime": { "type": "Transitive", - "resolved": "3.1.512801", - "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==", + "resolved": "4.1.745802", + "contentHash": "2rAGwsWz6eX8T9wXzkfBZH8sKOlq+YKLd7HaEIHn9iK/TL0mNn43ial6Li5VmLl8pzC2OATNPhI3q3ZS9mw9vg==", "dependencies": { - "Microsoft.Diagnostics.NETCore.Client": "0.2.410101" + "Azure.Identity": "1.21.0", + "Microsoft.Diagnostics.NETCore.Client": "0.2.661903", + "System.Collections.Immutable": "10.0.7" } }, "Microsoft.Diagnostics.Tracing.TraceEvent": { "type": "Transitive", - "resolved": "3.1.21", - "contentHash": "/OrJFKaojSR6TkUKtwh8/qA9XWNtxLrXMqvEb89dBSKCWjaGVTbKMYodIUgF5deCEtmd6GXuRerciXGl5bhZ7Q==", + "resolved": "3.2.5", + "contentHash": "dVHew6DC1WpSrG2fUKg8bLvhr5/9mug41MJtcws4fKLJ4V9Kd2610PYg0mFd837YvJwvwWTYQlGBbWvRZHs2mg==", "dependencies": { "Microsoft.Diagnostics.NETCore.Client": "0.2.510501" } }, - "Microsoft.DotNet.PlatformAbstractions": { + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "10.0.3", + "contentHash": "xVDHL0+SIgemfh95fTO9cGLe17TWv/ZP0n7m01z8X6pzt2DmQpucioWR/mYZA1sRlkWnkXzfl0JweLNWmE9WMg==", + "dependencies": { + "Microsoft.Extensions.Primitives": "10.0.3" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { "type": "Transitive", - "resolved": "3.1.6", - "contentHash": "jek4XYaQ/PGUwDKKhwR8K47Uh1189PFzMeLqO83mXrXQVIpARZCcfuDedH50YDTepBkfijCZN5U/vZi++erxtg==" + "resolved": "10.0.3", + "contentHash": "bwGMrRcAMWx2s/RDgja97p27rxSz2pEQW0+rX5cWAUWVETVJ/eyxGfjAl8vuG5a+lckWmPIE+vcuaZNVB5YDdw==" }, - "Microsoft.Extensions.DependencyInjection": { + "Microsoft.Extensions.Diagnostics.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "k6PWQMuoBDGGHOQTtyois2u4AwyVcIwL2LaSLlTZQm2CYcJ1pxbt6jfAnpWmzENA/wfrYRI/X9DTLoUkE4AsLw==", + "resolved": "10.0.3", + "contentHash": "mQiTzAj7PIJ2A9YXR5QhgulS1fTWhmQc3ckd1Mrf3hKW07d03fBDqx8vVaFw+cRTebDOeB6pNqdWdnRxsi1hBA==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3", + "Microsoft.Extensions.Options": "10.0.3", + "System.Diagnostics.DiagnosticSource": "10.0.3" } }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { + "Microsoft.Extensions.FileProviders.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==" + "resolved": "10.0.3", + "contentHash": "4TD9AXDRsipTmaemwnjt/DM5Ri0de2JzHQhvZ4woBTjUtL4XrPNsMrOk5oiLJAx1gTrE6pOIhxv+lEde5F6CZA==", + "dependencies": { + "Microsoft.Extensions.Primitives": "10.0.3" + } }, - "Microsoft.Extensions.Logging": { + "Microsoft.Extensions.Hosting.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", + "resolved": "10.0.3", + "contentHash": "GdMpC10Jf6poxSvUJ4lgYpJ5F/kJeaAoJmrPufjBoPYyCTKKY5Dyl0rZA+LBNvFqTq1cZa/lhlptlUhNvU6xrg==", "dependencies": { - "Microsoft.Extensions.DependencyInjection": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "10.0.3", + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3", + "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.3", + "Microsoft.Extensions.FileProviders.Abstractions": "10.0.3", + "Microsoft.Extensions.Logging.Abstractions": "10.0.3" } }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/HggWBbTwy8TgebGSX5DBZ24ndhzi93sHUBDvP1IxbZD7FDokYzdAr6+vbWGjw2XAfR2EJ1sfKUotpjHnFWPxA==" + "resolved": "10.0.3", + "contentHash": "lxl0WLk7ROgBFAsjcOYjQ8/DVK+VMszxGBzUhgtQmAsTNldLL5pk9NG/cWTsXHq0lUhUEAtZkEE7jOGOA8bGKQ==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3", + "System.Diagnostics.DiagnosticSource": "10.0.3" + } }, "Microsoft.Extensions.Options": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", + "resolved": "10.0.3", + "contentHash": "hU6WzGTPvPoLA2ng1ILvWQb3g0qORdlHNsxI8IcPLumJb3suimYUl+bbDzdo1V4KFsvVhnMWzysHpKbZaoDQPQ==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3", + "Microsoft.Extensions.Primitives": "10.0.3" } }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==" + "resolved": "10.0.3", + "contentHash": "GEcpTwo7sUoLGGNTqV1FZEuL+tTD9m81NX/mh099dqGNna07/UGZShKQNZRw4hv6nlliSUwYQgSYc7OR99Jufg==" + }, + "Microsoft.Identity.Client": { + "type": "Transitive", + "resolved": "4.83.1", + "contentHash": "jOLIrZ3cynoqHLLO1cXplFFabrhrMEYs/EuKHvmCyrOm1axqiVFT6nCSnHxk7w5+d2BeQfCdM12Yf/0X7OeS1g==", + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "8.14.0" + } + }, + "Microsoft.Identity.Client.Extensions.Msal": { + "type": "Transitive", + "resolved": "4.83.1", + "contentHash": "I3k4J4Hj4KbLEFanjeUzzDOVecukETaTgEkJ7h2pP/Yazs6SLp6TVUTo/Eo+ptPXMwvc+iX7rBFtMSUrA7R+Mg==", + "dependencies": { + "Microsoft.Identity.Client": "4.83.1", + "System.Security.Cryptography.ProtectedData": "4.5.0" + } + }, + "Microsoft.IdentityModel.Abstractions": { + "type": "Transitive", + "resolved": "8.14.0", + "contentHash": "iwbCpSjD3ehfTwBhtSNEtKPK0ICun6ov7Ibx6ISNA9bfwIyzI2Siwyi9eJFCJBwxowK9xcA1mj+jBWiigeqgcQ==" }, "Perfolizer": { "type": "Transitive", - "resolved": "0.6.1", - "contentHash": "CR1QmWg4XYBd1Pb7WseP+sDmV8nGPwvmowKynExTqr3OuckIGVMhvmN4LC5PGzfXqDlR295+hz/T7syA1CxEqA==", + "resolved": "0.7.5", + "contentHash": "UQArE0sehmPulzxUVePEOZFvUwzAC0MLEOy6N1Ihb3ElMRPqBMLolnuYAkVUbldWJjtLjSnGAs/vc9gkORA+kQ==", "dependencies": { - "Pragmastat": "3.2.4" + "Pragmastat": "14.0.1" } }, "Pragmastat": { "type": "Transitive", - "resolved": "3.2.4", - "contentHash": "I5qFifWw/gaTQT52MhzjZpkm/JPlfjSeO/DTZJjO7+hTKI+0aGRgOgZ3NN6D96dDuuqbIAZSeA5RimtHjqrA2A==" + "resolved": "14.0.1", + "contentHash": "CllI2zw44GpE95eN09GSDZIG5pEg1WYp5NYq7eOh7JkGcdcOh9WtwLXK+1KiqQLZ8NJoZSeKd57nSZObObrALA==" + }, + "System.ClientModel": { + "type": "Transitive", + "resolved": "1.10.0", + "contentHash": "lBEWs54F5Y5pZ9hC+8z4S/X76957ex+DPk7WecRHlbIHtrPfbRMMlOgI3iDn4Jpb3bSxvBnKaaHoD59auFjlBA==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "10.0.3", + "Microsoft.Extensions.Hosting.Abstractions": "10.0.3", + "Microsoft.Extensions.Logging.Abstractions": "10.0.3", + "System.Diagnostics.DiagnosticSource": "10.0.3", + "System.Memory.Data": "10.0.3", + "System.Text.Json": "10.0.3" + } + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "10.0.7", + "contentHash": "0Ti4Jv1ga3eurH5HaCVsPybcBl+08YfzM9smqAJzHvqV494xK+0pSbytGrMTWhph+zsyKIaoGNiR5u3by5bj+A==" + }, + "System.Diagnostics.DiagnosticSource": { + "type": "Transitive", + "resolved": "10.0.3", + "contentHash": "IuZXyF3K5X+mCsBKIQ87Cn/V4Nyb39vyCbzfH/AkoneSWNV/ExGQ/I0m4CEaVAeFh9fW6kp2NVObkmevd1Ys7A==" + }, + "System.IO.Pipelines": { + "type": "Transitive", + "resolved": "10.0.11", + "contentHash": "rg8LPOZ62quw3aTnsQNh9rssncaMs69WEM1DiJdDkV+o4Llb2s5Pasy5Bulfm8zL+pE4gDcSQo7V2zW2jvxwYg==" + }, + "System.Memory.Data": { + "type": "Transitive", + "resolved": "10.0.3", + "contentHash": "MaGhRfGunmrj/nHjtsi9XkhlYJ/ERGWrbA+BiSKNtGnAjc9XlG5EhAvak6VRcX5LYzPF6pBO8nJ613dTgzabig==", + "dependencies": { + "System.Text.Json": "10.0.3" + } + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "10.0.1", + "contentHash": "zpcfT/wacPPhE17zcudozlxQtWN/84qyiMyZNGLnK4cj2IMBtLsZYwYjVnALUhPliwyUVj/P7kaZvBWYBCnf2Q==", + "dependencies": { + "System.Collections.Immutable": "10.0.1" + } + }, + "System.Security.Cryptography.ProtectedData": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "wLBKzFnDCxP12VL9ANydSYhk59fC4cvOr9ypYQLPnAj48NQIhqnjdD2yhP8yEKyBJEjERWS9DisKL7rX5eU25Q==" }, - "System.CodeDom": { + "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "9.0.5", - "contentHash": "cuzLM2MWutf9ZBEMPYYfd0DXwYdvntp7VCT6a/wvbKCa2ZuvGmW74xi+YBa2mrfEieAXqM4TNKlMmSnfAfpUoQ==" + "resolved": "10.0.11", + "contentHash": "R7H2/Oqr3onFff/JKDpfRjwxcQZlocF/eQ0ce8go/OTjqz+6LEp/fZK8j1YnDobtysChATEg7krVq4hQJ3IoeQ==" }, - "System.Management": { + "System.Text.Json": { "type": "Transitive", - "resolved": "9.0.5", - "contentHash": "n6o9PZm9p25+zAzC3/48K0oHnaPKTInRrxqFq1fi/5TPbMLjuoCm/h//mS3cUmSy+9AO1Z+qsC/Ilt/ZFatv5Q==", + "resolved": "10.0.11", + "contentHash": "X2rXQy7g8KEUvWVbAz6vOk6byI1eMgmzFeXbKxq4BfZCfFy5S91K+K+hd4ZBlSp0wL1Y8FyGRXs6+hvABTjwQw==", "dependencies": { - "System.CodeDom": "9.0.5" + "System.IO.Pipelines": "10.0.11", + "System.Text.Encodings.Web": "10.0.11" } }, "opendisnet": { diff --git a/docs/conformance.md b/docs/conformance.md index 130116e..2d7feaa 100644 --- a/docs/conformance.md +++ b/docs/conformance.md @@ -42,7 +42,7 @@ input tests, and round-trip tests. - [x] Frozen, compiler-enforced public C# API baseline - [x] NuGet package compatibility validation against 0.8.0 -- [x] Packed-package consumer validation on .NET 8, .NET 9, and .NET 10 +- [x] Packed-package consumer validation on .NET 8, .NET 9, .NET 10, and .NET 11 - [x] Prerelease-aware GitHub and NuGet publishing workflow - [x] External RC validation checklist and structured feedback form - [x] External RC feedback channel reviewed; no high-impact finding remains open diff --git a/docs/release-candidate.md b/docs/release-candidate.md index f567b7c..a8cbcd5 100644 --- a/docs/release-candidate.md +++ b/docs/release-candidate.md @@ -45,7 +45,7 @@ performance, or documentation. ## Stable-release exit criteria - Public API analyzer and stable-baseline package-compatibility validation remain clean. -- The packed-package consumer passes on .NET 8, .NET 9, and .NET 10. +- The packed-package consumer passes on .NET 8, .NET 9, .NET 10, and .NET 11. - No unresolved high-impact wire-correctness or data-loss defect remains. - External testing covers real application workflows without relying on sensitive captures. diff --git a/docs/releasing.md b/docs/releasing.md index ea12ec1..790daf4 100644 --- a/docs/releasing.md +++ b/docs/releasing.md @@ -9,8 +9,8 @@ Prerelease tags use SemVer identifiers such as `vX.Y.Z-rc.1`. The workflow derives the package version from the tag and marks the GitHub release as a prerelease automatically. Before publishing any tag, the workflow validates the public API, compares the package with the 1.0.0 compatibility baseline, and runs -an external-style consumer against the packed artifact on .NET 8, .NET 9, and -.NET 10. +an external-style consumer against the packed artifact on .NET 8, .NET 9, +.NET 10, and .NET 11. The RC testing contract and feedback process are documented in [`release-candidate.md`](release-candidate.md). Promote an RC to a stable tag diff --git a/eng/Validate-Package.ps1 b/eng/Validate-Package.ps1 index 1f9c5de..a46c35f 100644 --- a/eng/Validate-Package.ps1 +++ b/eng/Validate-Package.ps1 @@ -22,7 +22,8 @@ try { 'opendisnet-icon.png', 'lib/net8.0/OpenDisNet.dll', 'lib/net9.0/OpenDisNet.dll', - 'lib/net10.0/OpenDisNet.dll' + 'lib/net10.0/OpenDisNet.dll', + 'lib/net11.0/OpenDisNet.dll' ) foreach ($entry in $requiredEntries) { @@ -63,7 +64,8 @@ try { $assemblyEntries = @( 'lib/net8.0/OpenDisNet.dll', 'lib/net9.0/OpenDisNet.dll', - 'lib/net10.0/OpenDisNet.dll' + 'lib/net10.0/OpenDisNet.dll', + 'lib/net11.0/OpenDisNet.dll' ) $temporaryDirectory = Join-Path ([System.IO.Path]::GetTempPath()) ( 'opendisnet-package-validation-' + [System.Guid]::NewGuid().ToString('N')) diff --git a/src/OpenDisNet/OpenDisNet.csproj b/src/OpenDisNet/OpenDisNet.csproj index 98ae5ae..a66c6f3 100644 --- a/src/OpenDisNet/OpenDisNet.csproj +++ b/src/OpenDisNet/OpenDisNet.csproj @@ -1,6 +1,6 @@ - net8.0;net9.0;net10.0 + net8.0;net9.0;net10.0;net11.0 OpenDisNet OpenDisNet OpenDisNet diff --git a/src/OpenDisNet/packages.lock.json b/src/OpenDisNet/packages.lock.json index 8b74455..6f76204 100644 --- a/src/OpenDisNet/packages.lock.json +++ b/src/OpenDisNet/packages.lock.json @@ -9,6 +9,14 @@ "contentHash": "W4kJGezNIKLzo0Ak5FAQDFvkMf2U7DtGL4THmHyRSApfKsKt5V+eX/bU0ZLKAt/uf9Bb2o1bi0YDKj/GRB/vYQ==" } }, + "net11.0": { + "Microsoft.CodeAnalysis.PublicApiAnalyzers": { + "type": "Direct", + "requested": "[5.6.0, )", + "resolved": "5.6.0", + "contentHash": "W4kJGezNIKLzo0Ak5FAQDFvkMf2U7DtGL4THmHyRSApfKsKt5V+eX/bU0ZLKAt/uf9Bb2o1bi0YDKj/GRB/vYQ==" + } + }, "net8.0": { "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", diff --git a/tests/OpenDisNet.PackageSmoke/OpenDisNet.PackageSmoke.csproj b/tests/OpenDisNet.PackageSmoke/OpenDisNet.PackageSmoke.csproj index 940ab77..4fb7dfa 100644 --- a/tests/OpenDisNet.PackageSmoke/OpenDisNet.PackageSmoke.csproj +++ b/tests/OpenDisNet.PackageSmoke/OpenDisNet.PackageSmoke.csproj @@ -4,7 +4,7 @@ false false - net8.0;net9.0;net10.0 + net8.0;net9.0;net10.0;net11.0 1.0.0 true diff --git a/tests/OpenDisNet.Tests/OpenDisNet.Tests.csproj b/tests/OpenDisNet.Tests/OpenDisNet.Tests.csproj index a2e41b8..8a5b665 100644 --- a/tests/OpenDisNet.Tests/OpenDisNet.Tests.csproj +++ b/tests/OpenDisNet.Tests/OpenDisNet.Tests.csproj @@ -1,7 +1,7 @@  - net8.0;net9.0;net10.0 + net8.0;net9.0;net10.0;net11.0 enable enable false diff --git a/tests/OpenDisNet.Tests/packages.lock.json b/tests/OpenDisNet.Tests/packages.lock.json index 83d5988..87e3244 100644 --- a/tests/OpenDisNet.Tests/packages.lock.json +++ b/tests/OpenDisNet.Tests/packages.lock.json @@ -105,6 +105,110 @@ "type": "Project" } }, + "net11.0": { + "Microsoft.NET.Test.Sdk": { + "type": "Direct", + "requested": "[18.8.1, )", + "resolved": "18.8.1", + "contentHash": "dknJL3/9Y3t4XuCBqnc0PevPxgLsUMmVhjwup/b1HNovA8zWcj3XsfIf7c6p05363DWcqL7X/YhDL9B+Zymv1w==", + "dependencies": { + "Microsoft.CodeCoverage": "18.8.1", + "Microsoft.TestPlatform.TestHost": "18.8.1" + } + }, + "MSTest.TestAdapter": { + "type": "Direct", + "requested": "[4.3.3, )", + "resolved": "4.3.3", + "contentHash": "YxXA1YGqwcZ1UjZXHgeu65AWDR25PQ2lN5N5CYOhxftqOQh/FcgQk0Vz0nfHqLhqOGFI6g9uIfOWqAdobSNKSg==", + "dependencies": { + "MSTest.TestFramework": "4.3.3", + "Microsoft.Testing.Extensions.VSTestBridge": "2.3.3", + "Microsoft.Testing.Platform.MSBuild": "2.3.3" + } + }, + "MSTest.TestFramework": { + "type": "Direct", + "requested": "[4.3.3, )", + "resolved": "4.3.3", + "contentHash": "Y4OSRh7VKV3nW+/vIqvfJ3sdLWfVJ9G11KpzynFAq3Bh/fpMaXt73v8GfL4mTz6pJ/ix3hcep4iy6qQNXt408w==", + "dependencies": { + "MSTest.Analyzers": "4.3.3" + } + }, + "Microsoft.ApplicationInsights": { + "type": "Transitive", + "resolved": "2.23.0", + "contentHash": "nWArUZTdU7iqZLycLKWe0TDms48KKGE6pONH2terYNa8REXiqixrMOkf1sk5DHGMaUTqONU2YkS4SAXBhLStgw==" + }, + "Microsoft.CodeCoverage": { + "type": "Transitive", + "resolved": "18.8.1", + "contentHash": "Eclse/ZZjr4lmWzZFNN9h/OluhKL+SK/QbUyKUewgX139aGeyMEO/DkMPwuFs2MixvanTnz6891rF8UHDg+W4Q==" + }, + "Microsoft.Testing.Extensions.Telemetry": { + "type": "Transitive", + "resolved": "2.3.3", + "contentHash": "nY8ceQyPWB9TRE1WE5Oe/sks2e10SxgPv61vBHsFYpgCeDtNwhpMZwmL29GklO3/etTdOsLdrCmNr4zJWaR2fg==", + "dependencies": { + "Microsoft.ApplicationInsights": "2.23.0", + "Microsoft.Testing.Platform": "2.3.3" + } + }, + "Microsoft.Testing.Extensions.TrxReport.Abstractions": { + "type": "Transitive", + "resolved": "2.3.3", + "contentHash": "dceVNxnfTEjKnrIreLcMfkgrzzBY8kgCCJX5NAv7Lq/6vPlTP4VB5zxKeuYy0yfCoBtWuPkLjUG6qtOBMfpypA==", + "dependencies": { + "Microsoft.Testing.Platform": "2.3.3" + } + }, + "Microsoft.Testing.Extensions.VSTestBridge": { + "type": "Transitive", + "resolved": "2.3.3", + "contentHash": "JLovZjH6K10YiHO/BcidsaSHo/M2DfOe9FDjxjFdV6aoHO6VYTTYlLBNcyLJSo20q5gDTmNvmxYVH39A942aJA==", + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "18.4.0", + "Microsoft.Testing.Extensions.Telemetry": "2.3.3", + "Microsoft.Testing.Extensions.TrxReport.Abstractions": "2.3.3", + "Microsoft.Testing.Platform": "2.3.3" + } + }, + "Microsoft.Testing.Platform": { + "type": "Transitive", + "resolved": "2.3.3", + "contentHash": "ENbH4BQh9riXtOKc25KKITfiGGWhWMBJA7pZuNaF9zxzzSaVkp5AMeZxGQ6sXYaR6xb724NLz985Is6XIYqLSg==" + }, + "Microsoft.Testing.Platform.MSBuild": { + "type": "Transitive", + "resolved": "2.3.3", + "contentHash": "iVAvNbZ5JPDZSrTcIrCDoCsAkzjDxwDEt2mDuMd8ng1P6e2P2NCd0g0BsoBVG+nJLSmK//V+yeEvjCa3E2fxHw==", + "dependencies": { + "Microsoft.Testing.Platform": "2.3.3" + } + }, + "Microsoft.TestPlatform.ObjectModel": { + "type": "Transitive", + "resolved": "18.8.1", + "contentHash": "qLbktNB1+b1XZLNJBTzaWVVJAd6PEzD7cgD406geMb6PcFZhp3EDNa1tctWx1+mtMU6MP/6ozVvFPC9vs2a9rw==" + }, + "Microsoft.TestPlatform.TestHost": { + "type": "Transitive", + "resolved": "18.8.1", + "contentHash": "FaQHPDTUOcE+SFTjssNPfrub2lT9Zyon4J2W/KLHt/efLJACb1TCeWXyOgh0D/4Q1e4n+S3E6mOKud+9nLZlEA==", + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "18.8.1" + } + }, + "MSTest.Analyzers": { + "type": "Transitive", + "resolved": "4.3.3", + "contentHash": "cTcdSPIZ8WvchbC5DFmfHxrvVNZCtops+2W94le+Q+mx110Y9L9mqNVVc9flF35lFeL5GsY+rxGBylsjDk4+zg==" + }, + "opendisnet": { + "type": "Project" + } + }, "net8.0": { "Microsoft.NET.Test.Sdk": { "type": "Direct",