mcpbeat

Update Ps SDK

azure/update-ps-sdk

Upgrade the PowerShell SDK version in the Azure Functions PowerShell language worker. Use when: updating PowerShell SDK, upgrading PS version, bumping Microsoft.PowerShell.SDK, updating bundled modules, new PowerShell release.

1k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
215
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/Azure/azure-functions-powershell-worker --skill update-ps-sdk

The instruction itself

12 sections, as written by the author

Upgrade PowerShell SDK Version

Upgrades the PowerShell language worker to reference a new PowerShell SDK release.

When to Use

  • A new PowerShell SDK version is released on GitHub
  • You need to bump the Microsoft.PowerShell.SDK package version

Inputs

The user must provide (or you must confirm):

  • Target PS SDK version — e.g., 7.6.0-preview.5, 7.4.7
  • Release tag — typically v<version>, e.g., v7.6.0-preview.5

Procedure

1. Check the .NET SDK Requirement

Look up the .NET SDK version required by the target PowerShell SDK. The release notes at https://github.com/PowerShell/PowerShell/releases/tag/<releaseTag> list the exact .NET SDK version under Build and Packaging Improvements (e.g., "Update .NET SDK to 8.0.419").

  • Update the <TargetFramework> in both .csproj files if the .NET major version has changed:
  • src/Microsoft.Azure.Functions.PowerShellWorker.csproj
  • test/Unit/Microsoft.Azure.Functions.PowerShellWorker.Test.csproj
  • Update MinimalPatch and DefaultPatch in tools/helper.psm1 ($DotnetSDKVersionRequirements) to match the .NET SDK patch version from the release notes. For example, if the release requires .NET SDK 8.0.419, set both values to '419'.

2. Update the PowerShell SDK Package Version

Update the Microsoft.PowerShell.SDK <PackageReference> version in both project files:

  • src/Microsoft.Azure.Functions.PowerShellWorker.csproj
  • test/Unit/Microsoft.Azure.Functions.PowerShellWorker.Test.csproj

3. Update SDK Dependencies

Check the PowerShell release notes for any new or updated dependencies required by the SDK. For example, certain releases require a specific Microsoft.CodeAnalysis.CSharp version. Update these in both .csproj files as needed.

4. Remove Temporarily Pinned Transitives

Review both .csproj files for <PackageReference> entries that were pinned to work around transitive dependency issues (e.g., a vulnerable transitive that was pinned until the parent package updated it). If the new PowerShell SDK now pulls in a sufficiently new version of that transitive, remove the explicit pin rather than bumping it. Only keep explicit pins that are still necessary.

5. Update Bundled Module Versions

Update module versions in src/requirements.psd1 to match the versions shipped with the target release. The authoritative source for bundled module versions is:

https://github.com/PowerShell/PowerShell/blob/<releaseTag>/src/Modules/PSGalleryModules.csproj

Replace <releaseTag> with the actual tag (e.g., v7.6.0-preview.5).

The modules to check are listed in src/requirements.psd1 (e.g., Microsoft.PowerShell.Archive, ThreadJob, PowerShellGet, PackageManagement).

6. Build and Test

Run a clean build with tests:

pwsh -c "./build.ps1 -Clean -Test"

Address all build warnings. Common warnings to fix:

  • NU1605 (package downgrade) — update the pinned version or remove the pin if the SDK now provides a newer transitive.
  • NU1510 (unnecessary pinned package) — remove the <PackageReference> since the package is no longer needed as a direct dependency.
  • CS8632 and other code warnings — fix the underlying code issue.

Re-run the build until it completes with zero warnings and all tests passing.

7. Check for Vulnerable Packages

Run the vulnerability checker against the solution:

pwsh -c "./Check-CsprojVulnerabilities.ps1 -PrintReport"

If vulnerabilities are found, update or pin the affected packages to non-vulnerable versions, then re-run steps 6 and 7.

8. Submit PR

Submit a pull request to the dev branch. The dev branch always tracks the latest PowerShell version.

How to use it

Copy the folder

Take azure/update-ps-sdk from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.