Skip to content

⚙️ [Maintenance]: Build now targets .NET 10 LTS with PowerShell 7.6.1#62

Draft
Marius Storhaug (MariusStorhaug) wants to merge 3 commits into
mainfrom
feature/61-upgrade-dotnet10-ps761
Draft

⚙️ [Maintenance]: Build now targets .NET 10 LTS with PowerShell 7.6.1#62
Marius Storhaug (MariusStorhaug) wants to merge 3 commits into
mainfrom
feature/61-upgrade-dotnet10-ps761

Conversation

@MariusStorhaug
Copy link
Copy Markdown
Member

@MariusStorhaug Marius Storhaug (MariusStorhaug) commented May 17, 2026

Sodium now builds against the latest stable .NET 10 LTS runtime and PowerShell SDK 7.6.1, aligning the module toolchain with current platform baselines for ongoing interop hardening and future release validation. The CI pipeline is also updated to recognise the native interop project directory as an important path so that changes there correctly trigger the build, test, and publish stages.

Changed: Build toolchain baseline

The PSModule.Sodium project now targets .NET 10.0, and the System.Management.Automation dependency is updated to 7.6.1. This keeps the module aligned with current PowerShell runtime expectations and removes the prior fallback to .NET 8-era SDK references.

Changed: CI build trigger now includes PSModule/

The PSModule/ directory (which contains Sodium.csproj and build.ps1) is now listed in ImportantFilePatterns in .github/PSModule.yml. Previously, changes to the native interop project files were classified as non-important by the workflow defaults (^src/ and ^README\.md$), causing the build and test stages to be skipped entirely. Adding ^PSModule/ ensures those changes are treated as release-relevant and trigger the full pipeline.

Technical Details

  • Updated PSModule/Sodium.csproj:
    • TargetFramework changed from net8.0 to net10.0
    • System.Management.Automation changed from 7.4.7 to 7.6.1
  • Updated PSModule/build.ps1 to copy published artifacts from bin/Release/net10.0/<rid>/publish.
  • Added ImportantFilePatterns to .github/PSModule.yml with the two default patterns (^src/, ^README\.md$) plus the new ^PSModule/ pattern.
  • Implementation plan progress for Upgrade to .NET 10 LTS and System.Management.Automation 7.6.1 #61:
    • Completed: project framework and package version updates, CI trigger configuration.
    • Pending: cross-platform test validation and performance comparison against .NET 8 baseline in CI.

@github-actions
Copy link
Copy Markdown

No Significant Changes Detected

This PR does not contain changes to files that would trigger a new release:

Path Description
src/** Module source code
README.md Documentation

Build, test, and publish stages will be skipped for this PR.

If you believe this is incorrect, please verify that your changes are in the correct locations.

@github-actions
Copy link
Copy Markdown

Super-linter summary

Language Validation result
CHECKOV Pass ✅
CSHARP Pass ✅
GITHUB_ACTIONS Pass ✅
GITLEAKS Pass ✅
GIT_MERGE_CONFLICT_MARKERS Pass ✅
MARKDOWN Pass ✅
NATURAL_LANGUAGE Pass ✅
POWERSHELL Pass ✅
PRE_COMMIT Pass ✅
SPELL_CODESPELL Pass ✅
TRIVY Pass ✅
YAML Pass ✅

All files and directories linted successfully

For more information, see the GitHub Actions workflow run

Powered by Super-linter

@github-actions
Copy link
Copy Markdown

No Significant Changes Detected

This PR does not contain changes to files that would trigger a new release:

Path Description
src/** Module source code
README.md Documentation

Build, test, and publish stages will be skipped for this PR.

If you believe this is incorrect, please verify that your changes are in the correct locations.

@github-actions
Copy link
Copy Markdown

Super-linter summary

Language Validation result
CHECKOV Pass ✅
CSHARP Pass ✅
GITHUB_ACTIONS Pass ✅
GITLEAKS Pass ✅
GIT_MERGE_CONFLICT_MARKERS Pass ✅
MARKDOWN Pass ✅
NATURAL_LANGUAGE Pass ✅
POWERSHELL Pass ✅
PRE_COMMIT Pass ✅
SPELL_CODESPELL Pass ✅
TRIVY Pass ✅
YAML Pass ✅

All files and directories linted successfully

For more information, see the GitHub Actions workflow run

Powered by Super-linter

@github-actions
Copy link
Copy Markdown

Super-linter summary

Language Validation result
CHECKOV Pass ✅
CSHARP Pass ✅
GITHUB_ACTIONS Pass ✅
GITLEAKS Pass ✅
GIT_MERGE_CONFLICT_MARKERS Pass ✅
MARKDOWN Pass ✅
NATURAL_LANGUAGE Pass ✅
POWERSHELL Pass ✅
PRE_COMMIT Pass ✅
SPELL_CODESPELL Pass ✅
TRIVY Pass ✅
YAML Pass ✅

All files and directories linted successfully

For more information, see the GitHub Actions workflow run

Powered by Super-linter

@MariusStorhaug Marius Storhaug (MariusStorhaug) added the Blocked Work is blocked by an external dependency or platform limitation label May 17, 2026
@MariusStorhaug
Copy link
Copy Markdown
Member Author

Blocking this PR pending GitHub-hosted runner image updates to PowerShell 7.6 LTS. Current runner images provide PowerShell 7.4.x, which cannot load the net10.0-targeted module assembly (System.Runtime, Version=10.0.0.0) during import/test/doc jobs.

@github-actions
Copy link
Copy Markdown

Super-linter summary

Language Validation result
CHECKOV Pass ✅
CSHARP Pass ✅
GITHUB_ACTIONS Pass ✅
GITLEAKS Pass ✅
GIT_MERGE_CONFLICT_MARKERS Pass ✅
MARKDOWN Pass ✅
NATURAL_LANGUAGE Pass ✅
POWERSHELL Pass ✅
PRE_COMMIT Pass ✅
SPELL_CODESPELL Pass ✅
TRIVY Pass ✅
YAML Pass ✅

All files and directories linted successfully

For more information, see the GitHub Actions workflow run

Powered by Super-linter

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Blocked Work is blocked by an external dependency or platform limitation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Upgrade to .NET 10 LTS and System.Management.Automation 7.6.1

1 participant