diff --git a/.claude/settings.json b/.claude/settings.json index 1cdbced..4658567 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -9,7 +9,10 @@ "Bash(git diff*)", "Bash(git status*)", "Bash(git show*)", - "Bash(git branch*)" + "Bash(git branch*)", + "mcp__claude_ai_Microsoft_Learn__microsoft_docs_search", + "mcp__claude_ai_Microsoft_Learn__microsoft_docs_fetch", + "mcp__claude_ai_Microsoft_Learn__microsoft_code_sample_search" ] }, "enabledPlugins": { diff --git a/.github/dependabot.yml b/.github/dependabot.yml index ddf9453..4ce47f2 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -40,7 +40,7 @@ updates: prefix: "dependencies(nuget): " labels: - "dependencies" - open-pull-requests-limit: 5 + open-pull-requests-limit: 10 allow: - dependency-type: direct - dependency-type: indirect @@ -54,7 +54,6 @@ updates: testing: patterns: - "AwesomeAssertions*" - - "coverlet*" - "GitHubActionsTestLogger" - "xunit*" update-types: ["minor", "patch"] @@ -67,7 +66,7 @@ updates: prefix: "dependencies(nuget): " labels: - "dependencies" - open-pull-requests-limit: 5 + open-pull-requests-limit: 10 allow: - dependency-type: direct - dependency-type: indirect @@ -81,7 +80,6 @@ updates: testing: patterns: - "AwesomeAssertions*" - - "coverlet*" - "GitHubActionsTestLogger" - "xunit*" update-types: ["minor", "patch"] diff --git a/.github/workflows/_dotnet-build-and-test.yml b/.github/workflows/_dotnet-build-and-test.yml index 90c6046..c7aabad 100644 --- a/.github/workflows/_dotnet-build-and-test.yml +++ b/.github/workflows/_dotnet-build-and-test.yml @@ -26,8 +26,8 @@ on: required: false type: string default: 10.0.x - codecov-slug: - description: "Slug to upload code coverage results for Codecov. e.g. saan800/saansoft-correlationId" + codecov-name: + description: "Name to upload code coverage results for Codecov. e.g. saansoft-correlationId" required: false type: string codecov-flag: @@ -97,7 +97,7 @@ jobs: auth.docker.io:443 builds.dotnet.microsoft.com:443 cli.codecov.io:443 - ingest.codecov.io:433 + ingest.codecov.io:443 dotnetcli.azureedge.net:443 cognito-identity.us-east-1.amazonaws.com:443 crl.sectigo.com:443 @@ -105,12 +105,14 @@ jobs: crl4.digicert.com:443 dc.services.visualstudio.com:443 github.com:443 + keybase.io:443 ocsp.digicert.com:443 ocsp.sectigo.com:443 pinpoint.us-east-1.amazonaws.com:443 production.cloudflare.docker.com:443 registry-1.docker.io:443 s.symcb.com:443 + storage.googleapis.com:443 ts-crl.ws.symantec.com:443 ts-ocsp.ws.symantec.com:443 www.microsoft.com:443 @@ -173,7 +175,18 @@ jobs: --configuration Release \ $FRAMEWORK_ARG \ --report-github \ - /p:CollectCoverage=true + --coverage \ + --coverage-output-format cobertura \ + --results-directory ./reports/coverage/ + + # MTP names coverage files ".cobertura.xml", which Codecov's + # file auto-discovery does not recognize (it only matches exactly + # "cobertura.xml" or filenames containing "coverage"). Rename in place so + # the upload step's `directory:` search actually finds them. + for f in ./reports/coverage/*.cobertura.xml; do + [ -e "$f" ] || continue + mv "$f" "$(dirname "$f")/coverage.$(basename "$f")" + done ;; *) dotnet test \ @@ -187,10 +200,10 @@ jobs: - name: Upload coverage reports to Codecov uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0 - if: inputs.codecov-slug != '' + if: inputs.codecov-name != '' with: + fail_ci_if_error: true token: ${{ secrets.CODECOV_TOKEN }} - directory: ./reports/coverage/ - fail_ci_if_error: false + directory: ${{ inputs.working-directory }}/reports/coverage/ flags: ${{ inputs.codecov-flag }}, ${{ matrix.dotnet-version }}, ${{ inputs.os }} - slug: ${{ inputs.codecov-slug }} + name: ${{ inputs.codecov-name }} diff --git a/.github/workflows/_dotnet-build-test-pack-publish-nuget.yml b/.github/workflows/_dotnet-build-test-pack-publish-nuget.yml index 42afc7a..6d09656 100644 --- a/.github/workflows/_dotnet-build-test-pack-publish-nuget.yml +++ b/.github/workflows/_dotnet-build-test-pack-publish-nuget.yml @@ -32,8 +32,8 @@ on: type: number required: false default: 50 - codecov-slug: - description: "Slug to upload code coverage results for Codecov. e.g. saan800/saansoft-correlationId" + codecov-name: + description: "Name to upload code coverage results for Codecov. e.g. saansoft-correlationId" required: false type: string codecov-flag: @@ -55,7 +55,7 @@ on: description: "API key for nuget.org. Required if upload-to-nuget is true" required: false CODECOV_TOKEN: - description: "Token for CodeCov. Required if codecov-slug is set" + description: "Token for CodeCov. Required if codecov-name is set" required: false permissions: @@ -89,7 +89,7 @@ jobs: os: ${{ inputs.os }} dotnet-version-matrix: ${{ inputs.dotnet-version-matrix }} dotnet-version: ${{ inputs.dotnet-version }} - codecov-slug: ${{ inputs.codecov-slug }} + codecov-name: ${{ inputs.codecov-name }} codecov-flag: ${{ inputs.codecov-flag }} secrets: inherit diff --git a/.github/workflows/dotnet-package-pr.yml b/.github/workflows/dotnet-package-pr.yml index 7eb2216..88380cc 100644 --- a/.github/workflows/dotnet-package-pr.yml +++ b/.github/workflows/dotnet-package-pr.yml @@ -40,8 +40,8 @@ on: type: number required: false default: 50 - codecov-slug: - description: "Slug to upload code coverage results for Codecov. e.g. saan800/saansoft-correlationId" + codecov-name: + description: "Name to upload code coverage results for Codecov. e.g. saansoft-correlationId" required: false type: string codecov-flag: @@ -54,7 +54,7 @@ on: description: "API key for nuget.org. Required if upload-to-nuget is true" required: false CODECOV_TOKEN: - description: "Token for CodeCov. Required if codecov-slug is set" + description: "Token for CodeCov. Required if codecov-name is set" required: false permissions: @@ -76,7 +76,7 @@ jobs: dotnet-version-matrix: ${{ inputs.dotnet-version-matrix }} dotnet-version: ${{ inputs.dotnet-version }} num-github-prerelease-packages-to-keep: ${{ inputs.num-github-prerelease-packages-to-keep }} - codecov-slug: ${{ inputs.codecov-slug }} + codecov-name: ${{ inputs.codecov-name }} codecov-flag: ${{ inputs.codecov-flag }} is-release-branch: false force-release: false diff --git a/.github/workflows/dotnet-package-release.yml b/.github/workflows/dotnet-package-release.yml index 57fab11..cade91a 100644 --- a/.github/workflows/dotnet-package-release.yml +++ b/.github/workflows/dotnet-package-release.yml @@ -32,8 +32,8 @@ on: type: number required: false default: 50 - codecov-slug: - description: "Slug to upload code coverage results for Codecov. e.g. saan800/saansoft-correlationId" + codecov-name: + description: "Name to upload code coverage results for Codecov. e.g. saansoft-correlationId" required: false type: string codecov-flag: @@ -55,7 +55,7 @@ on: description: "API key for nuget.org. Required if upload-to-nuget is true" required: false CODECOV_TOKEN: - description: "Token for CodeCov. Required if codecov-slug is set" + description: "Token for CodeCov. Required if codecov-name is set" required: false permissions: @@ -77,7 +77,7 @@ jobs: dotnet-version-matrix: ${{ inputs.dotnet-version-matrix }} dotnet-version: ${{ inputs.dotnet-version }} num-github-prerelease-packages-to-keep: ${{ inputs.num-github-prerelease-packages-to-keep }} - codecov-slug: ${{ inputs.codecov-slug }} + codecov-name: ${{ inputs.codecov-name }} codecov-flag: ${{ inputs.codecov-flag }} is-release-branch: ${{ inputs.is-release-branch }} force-release: ${{ inputs.force-release }} diff --git a/.github/workflows/dotnet-pr.yml b/.github/workflows/dotnet-pr.yml index 377832c..5863a3e 100644 --- a/.github/workflows/dotnet-pr.yml +++ b/.github/workflows/dotnet-pr.yml @@ -40,8 +40,8 @@ on: type: number required: false default: 50 - codecov-slug: - description: "Slug to upload code coverage results for Codecov. e.g. saan800/saansoft-correlationId" + codecov-name: + description: "Name to upload code coverage results for Codecov. e.g. saansoft-correlationId" required: false type: string codecov-flag: @@ -54,7 +54,7 @@ on: description: "API key for nuget.org. Required if upload-to-nuget is true" required: false CODECOV_TOKEN: - description: "Token for CodeCov. Required if codecov-slug is set" + description: "Token for CodeCov. Required if codecov-name is set" required: false permissions: @@ -72,8 +72,9 @@ jobs: os: ${{ inputs.os }} dotnet-version-matrix: ${{ inputs.dotnet-version-matrix }} dotnet-version: ${{ inputs.dotnet-version }} - codecov-slug: ${{ inputs.codecov-slug }} + codecov-name: ${{ inputs.codecov-name }} codecov-flag: ${{ inputs.codecov-flag }} + secrets: inherit pr-labels: permissions: diff --git a/.github/workflows/example-pr.yml b/.github/workflows/example-pr.yml index 29fc04f..7f34ffe 100644 --- a/.github/workflows/example-pr.yml +++ b/.github/workflows/example-pr.yml @@ -2,13 +2,6 @@ name: example-pr on: pull_request: - workflow_dispatch: # 👈 manual trigger here to release - should only be on "release" workflows, not "pr" workflows - inputs: - force-release: - description: "Force a release regardless of PR labels or branch" - type: boolean - required: false - default: false permissions: actions: read @@ -30,8 +23,7 @@ jobs: working-directory: "./examples/NugetPackages" os: ubuntu-latest dotnet-version: 10.0.x - # is-release-branch: ${{ github.ref == 'refs/heads/main' }} for "release" workflows only - # force-release: ${{ github.event.inputs.force-release || false }} for "release" workflows only + codecov-name: "example-dotnet-package" secrets: inherit dotnet-minimal-web-api-pr: @@ -45,4 +37,5 @@ jobs: working-directory: "./examples/MinimalWebApi" os: "ubuntu-latest" dotnet-version: "10.0.x" + codecov-name: "example-minimal-web-api" secrets: inherit diff --git a/README.md b/README.md index 32970f4..5b3cfdc 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ # github +[![codecov](https://codecov.io/gh/saan800/github/graph/badge.svg?token=WWF9NNOGJ0)](https://codecov.io/gh/saan800/github) + + Reusable GitHub Actions workflow templates for .NET projects, with reference example implementations. ## Reusable Workflow Templates @@ -18,7 +21,7 @@ Restores, builds, and runs tests with optional framework matrix and Codecov uplo | `dotnet-version` | | `10.0.x` | SDK version (single build) | | `dotnet-version-matrix` | | | JSON array of `{dotnet-version, framework}` pairs for matrix builds | | `os` | | `ubuntu-latest` | Runner OS | -| `codecov-slug` | | | Repo slug for Codecov upload (skipped if empty) | +| `codecov-name` | | | Repo name for Codecov upload (skipped if empty) | | `codecov-flag` | | `unittests` | Codecov flag | | Secret | Required | Description | @@ -116,7 +119,7 @@ get-version ─┬─ check-release-eligibility | `dotnet-version` | | `10.0.x` | SDK version for pack/publish jobs | | `dotnet-version-matrix` | | | JSON matrix for the build-and-test job | | `os` | | `ubuntu-latest` | Runner OS | -| `codecov-slug` | | | Codecov repo slug | +| `codecov-name` | | | Codecov repo name | | `codecov-flag` | | `unittests` | Codecov flag | | `num-github-prerelease-packages-to-keep` | | `50` | GPR cleanup retention count | diff --git a/examples/MinimalWebApi/Directory.Build.props b/examples/MinimalWebApi/Directory.Build.props index 3ca8cb8..104ad3f 100644 --- a/examples/MinimalWebApi/Directory.Build.props +++ b/examples/MinimalWebApi/Directory.Build.props @@ -24,11 +24,6 @@ CS1591;CS8602;CS8625;CS8618 - true - $([System.IO.Path]::Combine($(MSBuildProjectDirectory), "../../", 'reports', 'coverage'))/ - opencover,json - $(CoverletOutput)/coverage.json - [*.Tests.*]*,[xunit.*]* diff --git a/examples/MinimalWebApi/Directory.Packages.props b/examples/MinimalWebApi/Directory.Packages.props index bb87c25..86851e0 100644 --- a/examples/MinimalWebApi/Directory.Packages.props +++ b/examples/MinimalWebApi/Directory.Packages.props @@ -1,13 +1,12 @@ - - - + + @@ -15,15 +14,9 @@ - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - + + all @@ -31,4 +24,4 @@ - \ No newline at end of file + diff --git a/examples/MinimalWebApi/tests/MinimalWebApi.Tests.Api/MinimalWebApi.Tests.Api.csproj b/examples/MinimalWebApi/tests/MinimalWebApi.Tests.Api/MinimalWebApi.Tests.Api.csproj index 8360536..cf9025b 100644 --- a/examples/MinimalWebApi/tests/MinimalWebApi.Tests.Api/MinimalWebApi.Tests.Api.csproj +++ b/examples/MinimalWebApi/tests/MinimalWebApi.Tests.Api/MinimalWebApi.Tests.Api.csproj @@ -4,10 +4,6 @@ true - - - - diff --git a/examples/MinimalWebApi/tests/MinimalWebApi.Tests.Api/packages.lock.json b/examples/MinimalWebApi/tests/MinimalWebApi.Tests.Api/packages.lock.json index d6a5787..8c226d3 100644 --- a/examples/MinimalWebApi/tests/MinimalWebApi.Tests.Api/packages.lock.json +++ b/examples/MinimalWebApi/tests/MinimalWebApi.Tests.Api/packages.lock.json @@ -8,18 +8,6 @@ "resolved": "9.4.0", "contentHash": "dJxkWiQ8D+xT6Gr2sSL83+Mar+Vpy2JTcUPxFcckpPJ8VYBfSgnk+zqpS6t7kcGnjz8NLyF14qfuoL4bKzzoew==" }, - "coverlet.collector": { - "type": "Direct", - "requested": "[8.0.1, )", - "resolved": "8.0.1", - "contentHash": "heVQl5tKYnnIDYlR1QMVGueYH6iriZTcZB6AjDczQNwZzxkjDIt9C84Pt4cCiZYrbo7jkZOYGWbs6Lo9wAtVLg==" - }, - "coverlet.msbuild": { - "type": "Direct", - "requested": "[8.0.1, )", - "resolved": "8.0.1", - "contentHash": "YkP5ZQBSwDno2uUdND/x0tmyLOacCxvKwSN2iEvndpw7OzBaH7STi2xeA06KKkyYHN0m76qDK8Pdz1CVdAPoeg==" - }, "GitHubActionsTestLogger": { "type": "Direct", "requested": "[3.0.4, )", @@ -28,12 +16,23 @@ }, "Microsoft.NET.Test.Sdk": { "type": "Direct", - "requested": "[18.6.0, )", - "resolved": "18.6.0", - "contentHash": "kAIBt0MsYR0o2RULmlW5BhQ1ha50aGEgLKG4f1p0kePBGLJCprqs3S+NxRrYN8UH7mSQRPKpeiH9mwPMEKUObQ==", + "requested": "[18.7.0, )", + "resolved": "18.7.0", + "contentHash": "49xH9j4UzCh2hMohJp53g3wUTvyycECw7CtVht4gfCz5ykudB1uBcF6D0TtgJPjCtP76UPW53bQElKdCeX+dUg==", + "dependencies": { + "Microsoft.CodeCoverage": "18.7.0", + "Microsoft.TestPlatform.TestHost": "18.7.0" + } + }, + "Microsoft.Testing.Extensions.CodeCoverage": { + "type": "Direct", + "requested": "[18.7.0, )", + "resolved": "18.7.0", + "contentHash": "i7ifcFK6lzM5BHaROS4O7SAkk7L/gAeOwZxs3pyhn8hW73ZDTwQppovXNJL1bm1JBXL69HuI4DO5NzU8rhzIiA==", "dependencies": { - "Microsoft.CodeCoverage": "18.6.0", - "Microsoft.TestPlatform.TestHost": "18.6.0" + "Microsoft.DiaSymReader": "2.2.6", + "Microsoft.Extensions.DependencyModel": "8.0.2", + "Microsoft.Testing.Platform": "2.2.1" } }, "Microsoft.Testing.Platform": { @@ -71,8 +70,18 @@ }, "Microsoft.CodeCoverage": { "type": "Transitive", - "resolved": "18.6.0", - "contentHash": "bkmCXn/65Cd0LdO2zTb/ValGAJ1H8y/CgYOiBb3jsDyHI3Y1ljKx6RBvhvn3e5D/4R4I00RRwLf+Bd2Sn6bJjA==" + "resolved": "18.7.0", + "contentHash": "+wFfx9s7D9wegM0RziXMj2kvYDT4qcqXXtyjiQwSZOGQ2wwcOAJQcD6eQXk02jt0MvRNawtp8TJxTrV+wD8X1g==" + }, + "Microsoft.DiaSymReader": { + "type": "Transitive", + "resolved": "2.2.6", + "contentHash": "UitZ43WYJQYmcuScLEDTR95EGulBwk2R4N2zLBhaka8frXGVioa6Bkcbc5Fib8UkHIdrnN1lyzOublenrfpgxA==" + }, + "Microsoft.Extensions.DependencyModel": { + "type": "Transitive", + "resolved": "8.0.2", + "contentHash": "mUBDZZRgZrSyFOsJ2qJJ9fXfqd/kXJwf3AiDoqLD9m6TjY5OO/vLNOb9fb4juC0487eq4hcGN/M2Rh/CKS7QYw==" }, "Microsoft.Testing.Extensions.Telemetry": { "type": "Transitive", @@ -101,15 +110,15 @@ }, "Microsoft.TestPlatform.ObjectModel": { "type": "Transitive", - "resolved": "18.6.0", - "contentHash": "gQTW4BIfM2ZLxixo9ITXoulLKjn20FiiHtqTsx9PENqTrX7368ZeJ5L0QZJyReXDWORPRV8jXwZR6Aar8JOyaA==" + "resolved": "18.7.0", + "contentHash": "6rmgU4q3/WOpOPcncI0YW0Q/QpcQtwR2TTEXDR5+4TfSimPBAk6Z/BgKLeGgp1SOun0ROVUCCafXhRLwsHaPpA==" }, "Microsoft.TestPlatform.TestHost": { "type": "Transitive", - "resolved": "18.6.0", - "contentHash": "em1eLz5Q46+hsCtAXdXggWAPd9gQyT4ngdsQ7k1eWvQgpsjtS/wAOJ/5TteieFdiAvrEq1iVn00LtusAxRaVmQ==", + "resolved": "18.7.0", + "contentHash": "kYwfmebCs8992zaxEDkvG7S+YEouTeKfYVKUFEkwh1W2dIoOaevBt80XSKVXCUFEhusjOIm1sFfHBnoJgygrRA==", "dependencies": { - "Microsoft.TestPlatform.ObjectModel": "18.6.0", + "Microsoft.TestPlatform.ObjectModel": "18.7.0", "Newtonsoft.Json": "13.0.3" } }, diff --git a/examples/MinimalWebApi/tests/MinimalWebApi.Tests.Integration.Api/MinimalWebApi.Tests.Integration.Api.csproj b/examples/MinimalWebApi/tests/MinimalWebApi.Tests.Integration.Api/MinimalWebApi.Tests.Integration.Api.csproj index e472728..6ce10e7 100644 --- a/examples/MinimalWebApi/tests/MinimalWebApi.Tests.Integration.Api/MinimalWebApi.Tests.Integration.Api.csproj +++ b/examples/MinimalWebApi/tests/MinimalWebApi.Tests.Integration.Api/MinimalWebApi.Tests.Integration.Api.csproj @@ -5,7 +5,6 @@ - diff --git a/examples/MinimalWebApi/tests/MinimalWebApi.Tests.Integration.Api/packages.lock.json b/examples/MinimalWebApi/tests/MinimalWebApi.Tests.Integration.Api/packages.lock.json index 7ff6dc7..4ea32a6 100644 --- a/examples/MinimalWebApi/tests/MinimalWebApi.Tests.Integration.Api/packages.lock.json +++ b/examples/MinimalWebApi/tests/MinimalWebApi.Tests.Integration.Api/packages.lock.json @@ -8,18 +8,6 @@ "resolved": "9.4.0", "contentHash": "dJxkWiQ8D+xT6Gr2sSL83+Mar+Vpy2JTcUPxFcckpPJ8VYBfSgnk+zqpS6t7kcGnjz8NLyF14qfuoL4bKzzoew==" }, - "coverlet.collector": { - "type": "Direct", - "requested": "[8.0.1, )", - "resolved": "8.0.1", - "contentHash": "heVQl5tKYnnIDYlR1QMVGueYH6iriZTcZB6AjDczQNwZzxkjDIt9C84Pt4cCiZYrbo7jkZOYGWbs6Lo9wAtVLg==" - }, - "coverlet.msbuild": { - "type": "Direct", - "requested": "[8.0.1, )", - "resolved": "8.0.1", - "contentHash": "YkP5ZQBSwDno2uUdND/x0tmyLOacCxvKwSN2iEvndpw7OzBaH7STi2xeA06KKkyYHN0m76qDK8Pdz1CVdAPoeg==" - }, "GitHubActionsTestLogger": { "type": "Direct", "requested": "[3.0.4, )", @@ -39,12 +27,23 @@ }, "Microsoft.NET.Test.Sdk": { "type": "Direct", - "requested": "[18.6.0, )", - "resolved": "18.6.0", - "contentHash": "kAIBt0MsYR0o2RULmlW5BhQ1ha50aGEgLKG4f1p0kePBGLJCprqs3S+NxRrYN8UH7mSQRPKpeiH9mwPMEKUObQ==", + "requested": "[18.7.0, )", + "resolved": "18.7.0", + "contentHash": "49xH9j4UzCh2hMohJp53g3wUTvyycECw7CtVht4gfCz5ykudB1uBcF6D0TtgJPjCtP76UPW53bQElKdCeX+dUg==", + "dependencies": { + "Microsoft.CodeCoverage": "18.7.0", + "Microsoft.TestPlatform.TestHost": "18.7.0" + } + }, + "Microsoft.Testing.Extensions.CodeCoverage": { + "type": "Direct", + "requested": "[18.7.0, )", + "resolved": "18.7.0", + "contentHash": "i7ifcFK6lzM5BHaROS4O7SAkk7L/gAeOwZxs3pyhn8hW73ZDTwQppovXNJL1bm1JBXL69HuI4DO5NzU8rhzIiA==", "dependencies": { - "Microsoft.CodeCoverage": "18.6.0", - "Microsoft.TestPlatform.TestHost": "18.6.0" + "Microsoft.DiaSymReader": "2.2.6", + "Microsoft.Extensions.DependencyModel": "8.0.2", + "Microsoft.Testing.Platform": "2.2.1" } }, "Microsoft.Testing.Platform": { @@ -87,8 +86,13 @@ }, "Microsoft.CodeCoverage": { "type": "Transitive", - "resolved": "18.6.0", - "contentHash": "bkmCXn/65Cd0LdO2zTb/ValGAJ1H8y/CgYOiBb3jsDyHI3Y1ljKx6RBvhvn3e5D/4R4I00RRwLf+Bd2Sn6bJjA==" + "resolved": "18.7.0", + "contentHash": "+wFfx9s7D9wegM0RziXMj2kvYDT4qcqXXtyjiQwSZOGQ2wwcOAJQcD6eQXk02jt0MvRNawtp8TJxTrV+wD8X1g==" + }, + "Microsoft.DiaSymReader": { + "type": "Transitive", + "resolved": "2.2.6", + "contentHash": "UitZ43WYJQYmcuScLEDTR95EGulBwk2R4N2zLBhaka8frXGVioa6Bkcbc5Fib8UkHIdrnN1lyzOublenrfpgxA==" }, "Microsoft.Extensions.Configuration": { "type": "Transitive", @@ -401,15 +405,15 @@ }, "Microsoft.TestPlatform.ObjectModel": { "type": "Transitive", - "resolved": "18.6.0", - "contentHash": "gQTW4BIfM2ZLxixo9ITXoulLKjn20FiiHtqTsx9PENqTrX7368ZeJ5L0QZJyReXDWORPRV8jXwZR6Aar8JOyaA==" + "resolved": "18.7.0", + "contentHash": "6rmgU4q3/WOpOPcncI0YW0Q/QpcQtwR2TTEXDR5+4TfSimPBAk6Z/BgKLeGgp1SOun0ROVUCCafXhRLwsHaPpA==" }, "Microsoft.TestPlatform.TestHost": { "type": "Transitive", - "resolved": "18.6.0", - "contentHash": "em1eLz5Q46+hsCtAXdXggWAPd9gQyT4ngdsQ7k1eWvQgpsjtS/wAOJ/5TteieFdiAvrEq1iVn00LtusAxRaVmQ==", + "resolved": "18.7.0", + "contentHash": "kYwfmebCs8992zaxEDkvG7S+YEouTeKfYVKUFEkwh1W2dIoOaevBt80XSKVXCUFEhusjOIm1sFfHBnoJgygrRA==", "dependencies": { - "Microsoft.TestPlatform.ObjectModel": "18.6.0", + "Microsoft.TestPlatform.ObjectModel": "18.7.0", "Newtonsoft.Json": "13.0.3" } }, diff --git a/examples/NugetPackages/Directory.Build.props b/examples/NugetPackages/Directory.Build.props index f9f5f99..547a37e 100644 --- a/examples/NugetPackages/Directory.Build.props +++ b/examples/NugetPackages/Directory.Build.props @@ -41,11 +41,6 @@ CS1591;CS8602;CS8625;CS8618 - true - $([System.IO.Path]::Combine($(MSBuildProjectDirectory), "../../", 'reports', 'coverage'))/ - opencover,json - $(CoverletOutput)/coverage.json - [NugetPackages.Tests.*]*,[xunit.*]* diff --git a/examples/NugetPackages/Directory.Packages.props b/examples/NugetPackages/Directory.Packages.props index 9cd4ac2..de94447 100644 --- a/examples/NugetPackages/Directory.Packages.props +++ b/examples/NugetPackages/Directory.Packages.props @@ -1,25 +1,18 @@ - - - + + - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/examples/NugetPackages/NugetPackages.slnx b/examples/NugetPackages/NugetPackages.slnx index 6dff004..04a2deb 100644 --- a/examples/NugetPackages/NugetPackages.slnx +++ b/examples/NugetPackages/NugetPackages.slnx @@ -4,7 +4,6 @@ - diff --git a/examples/NugetPackages/tests/NugetPackages.Tests.Alpha/NugetPackages.Tests.Alpha.csproj b/examples/NugetPackages/tests/NugetPackages.Tests.Alpha/NugetPackages.Tests.Alpha.csproj index a9c480a..5d5fd4a 100644 --- a/examples/NugetPackages/tests/NugetPackages.Tests.Alpha/NugetPackages.Tests.Alpha.csproj +++ b/examples/NugetPackages/tests/NugetPackages.Tests.Alpha/NugetPackages.Tests.Alpha.csproj @@ -4,10 +4,6 @@ true - - - - diff --git a/examples/NugetPackages/tests/NugetPackages.Tests.Alpha/packages.lock.json b/examples/NugetPackages/tests/NugetPackages.Tests.Alpha/packages.lock.json index e750237..3bf2cb6 100644 --- a/examples/NugetPackages/tests/NugetPackages.Tests.Alpha/packages.lock.json +++ b/examples/NugetPackages/tests/NugetPackages.Tests.Alpha/packages.lock.json @@ -8,18 +8,6 @@ "resolved": "9.4.0", "contentHash": "dJxkWiQ8D+xT6Gr2sSL83+Mar+Vpy2JTcUPxFcckpPJ8VYBfSgnk+zqpS6t7kcGnjz8NLyF14qfuoL4bKzzoew==" }, - "coverlet.collector": { - "type": "Direct", - "requested": "[8.0.1, )", - "resolved": "8.0.1", - "contentHash": "heVQl5tKYnnIDYlR1QMVGueYH6iriZTcZB6AjDczQNwZzxkjDIt9C84Pt4cCiZYrbo7jkZOYGWbs6Lo9wAtVLg==" - }, - "coverlet.msbuild": { - "type": "Direct", - "requested": "[8.0.1, )", - "resolved": "8.0.1", - "contentHash": "YkP5ZQBSwDno2uUdND/x0tmyLOacCxvKwSN2iEvndpw7OzBaH7STi2xeA06KKkyYHN0m76qDK8Pdz1CVdAPoeg==" - }, "GitHubActionsTestLogger": { "type": "Direct", "requested": "[3.0.4, )", @@ -36,6 +24,17 @@ "Microsoft.TestPlatform.TestHost": "18.7.0" } }, + "Microsoft.Testing.Extensions.CodeCoverage": { + "type": "Direct", + "requested": "[18.7.0, )", + "resolved": "18.7.0", + "contentHash": "i7ifcFK6lzM5BHaROS4O7SAkk7L/gAeOwZxs3pyhn8hW73ZDTwQppovXNJL1bm1JBXL69HuI4DO5NzU8rhzIiA==", + "dependencies": { + "Microsoft.DiaSymReader": "2.2.6", + "Microsoft.Extensions.DependencyModel": "8.0.2", + "Microsoft.Testing.Platform": "2.2.1" + } + }, "xunit.runner.visualstudio": { "type": "Direct", "requested": "[3.1.5, )", @@ -68,6 +67,16 @@ "resolved": "18.7.0", "contentHash": "+wFfx9s7D9wegM0RziXMj2kvYDT4qcqXXtyjiQwSZOGQ2wwcOAJQcD6eQXk02jt0MvRNawtp8TJxTrV+wD8X1g==" }, + "Microsoft.DiaSymReader": { + "type": "Transitive", + "resolved": "2.2.6", + "contentHash": "UitZ43WYJQYmcuScLEDTR95EGulBwk2R4N2zLBhaka8frXGVioa6Bkcbc5Fib8UkHIdrnN1lyzOublenrfpgxA==" + }, + "Microsoft.Extensions.DependencyModel": { + "type": "Transitive", + "resolved": "8.0.2", + "contentHash": "mUBDZZRgZrSyFOsJ2qJJ9fXfqd/kXJwf3AiDoqLD9m6TjY5OO/vLNOb9fb4juC0487eq4hcGN/M2Rh/CKS7QYw==" + }, "Microsoft.Testing.Extensions.Telemetry": { "type": "Transitive", "resolved": "2.0.2", @@ -179,9 +188,9 @@ }, "Microsoft.Testing.Platform": { "type": "CentralTransitive", - "requested": "[2.1.0, )", - "resolved": "2.0.2", - "contentHash": "43NCOTEENtdc9fmlzX9KHQR14AZEYek5r4jOJlWPhTyV1+aYAQYl4x773nYXU5TKxV6+rMuniJ7wcj9C9qrP1A==" + "requested": "[2.2.3, )", + "resolved": "2.2.1", + "contentHash": "9bbPuls/b6/vUFzxbSjJLZlJHyKBfOZE5kjIY+ITI2ASqlFPJhR83BdLydJeQOCLEZhEbrEcz5xtt1B69nwSVg==" } } } diff --git a/examples/NugetPackages/tests/NugetPackages.Tests.Bravo/NugetPackages.Tests.Bravo.csproj b/examples/NugetPackages/tests/NugetPackages.Tests.Bravo/NugetPackages.Tests.Bravo.csproj index 84347b6..bd3c10d 100644 --- a/examples/NugetPackages/tests/NugetPackages.Tests.Bravo/NugetPackages.Tests.Bravo.csproj +++ b/examples/NugetPackages/tests/NugetPackages.Tests.Bravo/NugetPackages.Tests.Bravo.csproj @@ -4,10 +4,6 @@ true - - - - diff --git a/examples/NugetPackages/tests/NugetPackages.Tests.Bravo/packages.lock.json b/examples/NugetPackages/tests/NugetPackages.Tests.Bravo/packages.lock.json index 649b84e..22f74e7 100644 --- a/examples/NugetPackages/tests/NugetPackages.Tests.Bravo/packages.lock.json +++ b/examples/NugetPackages/tests/NugetPackages.Tests.Bravo/packages.lock.json @@ -8,18 +8,6 @@ "resolved": "9.4.0", "contentHash": "dJxkWiQ8D+xT6Gr2sSL83+Mar+Vpy2JTcUPxFcckpPJ8VYBfSgnk+zqpS6t7kcGnjz8NLyF14qfuoL4bKzzoew==" }, - "coverlet.collector": { - "type": "Direct", - "requested": "[8.0.1, )", - "resolved": "8.0.1", - "contentHash": "heVQl5tKYnnIDYlR1QMVGueYH6iriZTcZB6AjDczQNwZzxkjDIt9C84Pt4cCiZYrbo7jkZOYGWbs6Lo9wAtVLg==" - }, - "coverlet.msbuild": { - "type": "Direct", - "requested": "[8.0.1, )", - "resolved": "8.0.1", - "contentHash": "YkP5ZQBSwDno2uUdND/x0tmyLOacCxvKwSN2iEvndpw7OzBaH7STi2xeA06KKkyYHN0m76qDK8Pdz1CVdAPoeg==" - }, "GitHubActionsTestLogger": { "type": "Direct", "requested": "[3.0.4, )", @@ -36,6 +24,17 @@ "Microsoft.TestPlatform.TestHost": "18.7.0" } }, + "Microsoft.Testing.Extensions.CodeCoverage": { + "type": "Direct", + "requested": "[18.7.0, )", + "resolved": "18.7.0", + "contentHash": "i7ifcFK6lzM5BHaROS4O7SAkk7L/gAeOwZxs3pyhn8hW73ZDTwQppovXNJL1bm1JBXL69HuI4DO5NzU8rhzIiA==", + "dependencies": { + "Microsoft.DiaSymReader": "2.2.6", + "Microsoft.Extensions.DependencyModel": "8.0.2", + "Microsoft.Testing.Platform": "2.2.1" + } + }, "xunit.runner.visualstudio": { "type": "Direct", "requested": "[3.1.5, )", @@ -68,6 +67,16 @@ "resolved": "18.7.0", "contentHash": "+wFfx9s7D9wegM0RziXMj2kvYDT4qcqXXtyjiQwSZOGQ2wwcOAJQcD6eQXk02jt0MvRNawtp8TJxTrV+wD8X1g==" }, + "Microsoft.DiaSymReader": { + "type": "Transitive", + "resolved": "2.2.6", + "contentHash": "UitZ43WYJQYmcuScLEDTR95EGulBwk2R4N2zLBhaka8frXGVioa6Bkcbc5Fib8UkHIdrnN1lyzOublenrfpgxA==" + }, + "Microsoft.Extensions.DependencyModel": { + "type": "Transitive", + "resolved": "8.0.2", + "contentHash": "mUBDZZRgZrSyFOsJ2qJJ9fXfqd/kXJwf3AiDoqLD9m6TjY5OO/vLNOb9fb4juC0487eq4hcGN/M2Rh/CKS7QYw==" + }, "Microsoft.Testing.Extensions.Telemetry": { "type": "Transitive", "resolved": "2.0.2", @@ -179,9 +188,9 @@ }, "Microsoft.Testing.Platform": { "type": "CentralTransitive", - "requested": "[2.1.0, )", - "resolved": "2.0.2", - "contentHash": "43NCOTEENtdc9fmlzX9KHQR14AZEYek5r4jOJlWPhTyV1+aYAQYl4x773nYXU5TKxV6+rMuniJ7wcj9C9qrP1A==" + "requested": "[2.2.3, )", + "resolved": "2.2.1", + "contentHash": "9bbPuls/b6/vUFzxbSjJLZlJHyKBfOZE5kjIY+ITI2ASqlFPJhR83BdLydJeQOCLEZhEbrEcz5xtt1B69nwSVg==" } } }