diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 777e86bf..f88bae60 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,14 +3,14 @@ "isRoot": true, "tools": { "powershell": { - "version": "7.6.1", + "version": "7.6.2", "commands": [ "pwsh" ], "rollForward": false }, "dotnet-coverage": { - "version": "18.6.2", + "version": "18.8.0", "commands": [ "dotnet-coverage" ], @@ -31,7 +31,7 @@ "rollForward": false }, "nerdbank.dotnetrepotools": { - "version": "1.4.1", + "version": "1.5.15", "commands": [ "repo" ], diff --git a/.github/skills/bundle-dependency-prs/SKILL.md b/.github/skills/bundle-dependency-prs/SKILL.md new file mode 100644 index 00000000..a147e81e --- /dev/null +++ b/.github/skills/bundle-dependency-prs/SKILL.md @@ -0,0 +1,45 @@ +--- +name: bundle-dependency-prs +description: Fix broken dependency update PRs and aggregate the ones that work into one PR. +disable-model-invocation: true +--- + +# Instructions + +You have two goals: + +1. Get all dependency PRs to a state where their PR checks pass. +2. Aggregate dependency PRs with passing checks into just one PR. + +You can identify dependency update PRs by those authored by `dependabot` or `renovate`. + +You'll find instructions for building and validating the repo in the [CONTRIBUTING.md](../../../CONTRIBUTING.md) doc. +Always validate your changes locally before pushing them to the remote repository. + +When writing PR bodies or comments, avoid unmatched markdown code fences. Keep markdown well-formed. + +For purposes of assessing PR readiness by its PR checks, consider docfx related checks to be irrelevant. +If a docfx check fails but all other checks succeed, then that is a 'successful' dependency update PR. + +## Fix up dependency PRs with failing checks + +Before aggregating PRs, first try to fix any individual dependency update PRs with failing build/test checks. + +1. For the dependency PRs with failing build or test PR checks, check out their source branch and fix any issues. +2. Push your fixes as fresh commits to the individual dependency PRs. +3. If you can't fix a particular PR, add a comment to the PR describing your attempt and outcome. + +## Group dependency PRs that are ready to go + +Your next goal is to collect all the dependency updates that are ready to go into a single PR. + +1. Prepare a local branch called `bulkDepUpdates`. + 1. Consider that a remote branch by the same name may already exist. If it does, base your local branch on it. + 2. Merge `origin/main` into this branch. + 3. Resolve any conflicts. +2. For the dependency PRs whose build and test PR checks already pass, merge them into the `bulkDepUpdates` branch. + Consider that your local branch may have already merged an equivalent PR in the past (from a past run). If so, you should skip merging that PR. + Resolve any conflicts. + Build and run tests to validate your branch. +3. Push the branch. +4. Create a PR, if one does not already exist. diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index 3c032fae..d933871a 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -26,7 +26,7 @@ jobs: # You can define any steps you want, and they will run before the agent starts. # If you do not check out your code, Copilot will do this for you. steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: fetch-depth: 0 # avoid shallow clone so nbgv can do its work. - name: ⚙ Install prerequisites diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index fbfcd144..99b3c058 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -24,7 +24,7 @@ jobs: url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: fetch-depth: 0 # avoid shallow clone so nbgv can do its work. - name: ⚙ Install prerequisites diff --git a/.github/workflows/libtemplate-update.yml b/.github/workflows/libtemplate-update.yml index 62a6417d..fc8a631f 100644 --- a/.github/workflows/libtemplate-update.yml +++ b/.github/workflows/libtemplate-update.yml @@ -17,7 +17,7 @@ jobs: contents: write pull-requests: write steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: fetch-depth: 0 # avoid shallow clone so nbgv can do its work. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1b5c7c8d..5667f3c8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -37,7 +37,11 @@ to the feeds that packages for this repo come from, if any. Building, testing, and packing this repository can be done by using the standard dotnet CLI commands (e.g. `dotnet build`, `dotnet test`, `dotnet pack`, etc.). -[pwsh]: https://learn.microsoft.com/powershell/scripting/install/installing-powershell +## Testing + +You can use `dotnet test` to build and/or test the repo. + +There may be tests that are known to be unstable or have special requirements. These can be avoided by running tests using the [dotnet-test-cloud.ps1](tools/dotnet-test-cloud.ps1) script *after* running `dotnet build`. ## Bug reports @@ -101,3 +105,5 @@ git checkout origin/main # resolve any conflicts, then commit the merge commit. git push origin -u HEAD ``` + +[pwsh]: https://learn.microsoft.com/powershell/scripting/install/installing-powershell diff --git a/Directory.Packages.props b/Directory.Packages.props index 9e4946d4..437d7319 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -4,7 +4,7 @@ true true - 2.2.2 + 2.2.3 2.0.226 5.3.0 1.1.2 @@ -32,7 +32,7 @@ - + @@ -48,7 +48,7 @@ - + diff --git a/global.json b/global.json index cd6acada..b12435dc 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "10.0.300", + "version": "10.0.301", "rollForward": "patch", "allowPrerelease": false }, diff --git a/tools/Install-DotNetSdk.ps1 b/tools/Install-DotNetSdk.ps1 index 590581e2..d9d35bb1 100755 --- a/tools/Install-DotNetSdk.ps1 +++ b/tools/Install-DotNetSdk.ps1 @@ -59,7 +59,10 @@ $runtimeVersions = @() $windowsDesktopRuntimeVersions = @() $aspnetRuntimeVersions = @() if (!$SdkOnly) { - Get-ChildItem "$PSScriptRoot\..\src\*.*proj", "$PSScriptRoot\..\test\*.*proj", "$PSScriptRoot\..\Directory.Build.props" -Recurse | % { + $projFiles = Get-ChildItem "$PSScriptRoot\..\src\*.*proj", "$PSScriptRoot\..\test\*.*proj" -Recurse + $projFiles += Get-ChildItem "$PSScriptRoot\..\src\Directory.Build.props", "$PSScriptRoot\..\test\Directory.Build.props" -Recurse + $projFiles += Get-Item -LiteralPath "$PSScriptRoot\..\Directory.Build.props" + $projFiles | % { $projXml = [xml](Get-Content -LiteralPath $_) $pg = $projXml.Project.PropertyGroup if ($pg) {