Skip to content

Releases: PSModule/Process-PSModule

v5.4.7

05 Apr 16:54
3ed96da

Choose a tag to compare

🩹 [Patch]: Framework-generated code coverage no longer penalizes module authors (#310)

Framework-generated boilerplate — type accelerator registration and OnRemove cleanup — is now tested and covered by updated action versions referenced in this workflow. The obsolete $IsWindows PS 5.1 shim is no longer injected into built modules. Coverage from the framework test step and the module test step is already aggregated by Get-CodeCoverage, so module authors' coverage percentages now reflect only the code they wrote.

Changed: Build-PSModule updated to v4.0.14

Built modules no longer include the $IsWindows = $true Desktop edition shim or its PSScriptAnalyzer suppression attributes. PSModule targets PowerShell LTS (7.6+), where $IsWindows is a built-in automatic variable.

See PSModule/Build-PSModule#132 for details.

Changed: Test-PSModule updated to v3.0.10

The framework module tests now validate that every public class and enum is registered as a type accelerator after import, and that the OnRemove hook cleans them up when the module is removed. These tests produce coverage artifacts that are aggregated with module author test coverage, so framework-generated boilerplate no longer counts against the module author's coverage target.

See PSModule/Test-PSModule#113 for details.

Changed: README documents the framework testing design

The README now explains:

  • Why framework-generated code is tested by the framework itself
  • How coverage from both the framework test step and the module test step is aggregated
  • That module authors do not need to test framework-generated code themselves

Technical Details

  • .github/workflows/Build-Module.yml: Updated Build-PSModule from v4.0.13 to v4.0.14 (345728124d201f371a8b0f1aacb98f89000a06dc)
  • .github/workflows/Test-Module.yml: Updated Test-PSModule from v3.0.8 to v3.0.10 (8c3337136dc7cf320da39eeb50e776d04bc9ac73)
  • .github/workflows/Test-SourceCode.yml: Updated Test-PSModule from v3.0.8 to v3.0.10
  • README.md: Added "Code coverage for framework-generated code" paragraph under the Framework test section; added coverage aggregation details under the Get code coverage section; removed reference to the $IsWindows shim
  • No workflow structure changes — code coverage was already enabled in Test-Module.yml and Get-PesterCodeCoverage already aggregates all *-CodeCoverage artifacts

v5.4.6

05 Apr 00:29
205d193

Choose a tag to compare

🪲 [Fix]: Super-linter can now post PR comment summaries (#308)

Super-linter's inline PR comment summaries now appear when lint errors are found. Previously, the linter detected issues but silently failed to post the summary comment, requiring developers to navigate to the Actions log to see what went wrong.

Fixed: Lint error summaries now visible directly on PRs

When super-linter detects markdown, YAML, or other linting issues, it posts a summary comment on the pull request for quick feedback. This was failing with a 403 error because the Lint-Repository.yml reusable workflow's permissions: block only granted contents: read and statuses: write, omitting the pull-requests: write permission needed by the GitHub Issues API to create comments.

The error looked like this in the Actions log:

[WARN] Failed to call GitHub API: curl: (22) The requested URL returned error: 403
[WARN] Failed to create GitHub issue comment
[WARN] Error while posting pull request summary

Lint failures are still correctly reported — only the inline PR comment was missing.

Technical Details

  • Added pull-requests: write to the permissions: block in .github/workflows/Lint-Repository.yml.
  • When a reusable workflow defines its own permissions: block, it overrides (not inherits) the calling workflow's permissions. The parent workflows (workflow.yml and consumer repos) already grant pull-requests: write, but Lint-Repository.yml was restricting the GITHUB_TOKEN to a narrower scope.
  • No other workflows or jobs are affected — the permission is scoped to the lint job only.

v5.4.5

27 Mar 22:33
4343d76

Choose a tag to compare

🩹 [Patch]: Setup/teardown jobs no longer waste runner time when scripts are absent (#300)

The BeforeAll-ModuleLocal and AfterAll-ModuleLocal workflow jobs no longer allocate runners when the corresponding tests/BeforeAll.ps1 or tests/AfterAll.ps1 scripts do not exist in the repository. Repositories without setup/teardown scripts now skip these jobs entirely, saving runner time on every workflow run.

Changed: Runner allocation for setup/teardown jobs

With the Get-PSModuleSettings v1.4.4 update, repositories without tests/BeforeAll.ps1 or tests/AfterAll.ps1 no longer allocate runners for the BeforeAll-ModuleLocal and AfterAll-ModuleLocal jobs. These jobs are now skipped entirely at the settings evaluation stage, before any runner is provisioned.

Previously, both jobs always spun up a runner — even when there was nothing to execute. The runner would check out the repo, invoke the GitHub-Script action, find no script, and exit gracefully. This wasted runner time on every workflow run for the majority of repositories.

Additionally, AfterAllModuleLocal was previously set to $true unconditionally. It now uses the same base conditions as BeforeAllModuleLocal combined with the script existence check. The workflow-level always() condition remains as an additional safeguard for cleanup-after-failure scenarios.

Technical Details

  • Bumps PSModule/Get-PSModuleSettings from v1.4.3 (3d53e12) to v1.4.4 (21c88f4) in Get-Settings.yml.
  • The action change (PSModule/Get-PSModuleSettings#18) adds Test-Path checks for the setup/teardown scripts and sets the Run.BeforeAllModuleLocal / Run.AfterAllModuleLocal flags accordingly, which the existing workflow if: conditions already respect.
  • No structural changes to any reusable workflow files — only a SHA pin update.

v5.4.4

27 Mar 20:37
645cb19

Choose a tag to compare

🩹 [Patch]: Workflow dependencies updated to latest versions (#298)

Reusable workflows now reference the latest versions of all action dependencies, picking up upstream bug fixes and improvements.

Changed: Dependency versions in workflows

The following dependencies have been bumped across all workflow files:

Dependency Previous New
actions/download-artifact v7.0.0 v8.0.0
actions/upload-artifact v6.0.0 v7.0.0
PSModule/Build-PSModule v4.0.12 v4.0.13
PSModule/Invoke-Pester v4.2.3 v4.2.4
PSModule/Publish-PSModule v2.2.2 v2.2.3

Affected workflows:

  • Build-Docs.yml
  • Build-Module.yml
  • Build-Site.yml
  • Publish-Module.yml
  • Test-Module.yml
  • Test-ModuleLocal.yml

Technical Details

All references use pinned commit SHAs with version comments. No workflow logic or input/output changes — only the pinned SHAs and version comments were updated.

v5.4.3

18 Feb 00:46
60bdf8a

Choose a tag to compare

Bump super-linter/super-linter from 8.3.2 to 8.5.0 (#284)

Bumps super-linter/super-linter from 8.3.2 to 8.5.0.

Release notes

Sourced from super-linter/super-linter's releases.

v8.5.0

8.5.0 (2026-02-06)

🚀 Features

  • update codespell skip patterns for go modules (#7465) (ff76a00)

🐛 Bugfixes

⬆️ Dependency updates

  • bundler: bump rubocop in /dependencies in the rubocop group (#7480) (c0b4a56)
  • docker: bump the docker group across 1 directory with 3 updates (#7474) (b8cb189)
  • docker: bump the docker group across 1 directory with 3 updates (#7490) (147e829)
  • docker: bump the docker group with 2 updates (#7463) (adc2836)
  • docker: bump the docker group with 3 updates (#7455) (a1b44ab)
  • java: bump com.google.googlejavaformat:google-java-format (#7489) (8758d94)
  • java: bump com.puppycrawl.tools:checkstyle (#7475) (929cd66)
  • java: bump com.puppycrawl.tools:checkstyle (#7498) (c285101)
  • npm: bump @​isaacs/brace-expansion in /dependencies (#7482) (c15b8ac)
  • npm: bump @​modelcontextprotocol/sdk in /dependencies (#7488) (675cbf6)
  • npm: bump fast-xml-parser and @​aws-sdk/xml-builder (#7491) (7012368)
  • npm: bump the npm group across 1 directory with 2 updates (#7457) (962a22b)
  • npm: bump the npm group across 1 directory with 2 updates (#7501) (ae44688)
  • npm: bump the npm group across 1 directory with 5 updates (#7487) (9be025d)
  • npm: bump the npm group across 1 directory with 6 updates (#7477) (b44fb3f)
  • python: bump ruff (#7486) (7e9df59)
  • python: bump snakemake (#7456) (5989994)
  • python: bump the pip group across 1 directory with 2 updates (#7476) (6b3b830)
  • python: bump the pip group across 1 directory with 2 updates (#7500) (4452db3)

🧰 Maintenance

v8.4.0

8.4.0 (2026-01-28)

🚀 Features

... (truncated)

Changelog

Sourced from super-linter/super-linter's changelog.

Changelog

8.5.0 (2026-02-06)

🚀 Features

  • update codespell skip patterns for go modules (#7465) (ff76a00)

🐛 Bugfixes

⬆️ Dependency updates

  • bundler: bump rubocop in /dependencies in the rubocop group (
Read more

v5.4.2

28 Jan 16:54
a152498

Choose a tag to compare

🩹 [Patch]: Update workflow action versions and rename release action (#275)

This release updates all workflow action dependencies to their latest versions and completes the migration from Auto-Release to Release-GHRepository.

Summary

  • Updated workflow action dependencies to latest versions for improved stability and features
  • Migrated release action from deprecated PSModule/Auto-Release to PSModule/Release-GHRepository
  • Added workflow permission for PR label management
  • Cleaned up deprecated configuration files
  • Important file change detection now determines whether a release should be created

What's Changed for Module Developers

Updated Workflow Dependencies

All reusable workflow files have been updated to use the latest action versions. This ensures your module CI/CD pipeline benefits from recent bug fixes and improvements across the PSModule action ecosystem.

Action Previous New
actions/checkout v6.0.1 v6.0.2
PSModule/GitHub-Script v1.7.8 v1.7.10
PSModule/Build-PSModule v4.0.9 v4.0.12
PSModule/Document-PSModule v1.0.14 v1.0.16
PSModule/Get-PSModuleSettings v1.4.0 v1.4.3
PSModule/Get-PesterCodeCoverage v1.0.3 v1.0.4
PSModule/Get-PesterTestResults v1.0.7 v1.0.8
PSModule/Install-PSModuleHelpers v1.0.6 v1.0.7
PSModule/Invoke-ScriptAnalyzer v4.1.1 v4.1.2
PSModule/Invoke-Pester v4.2.2 v4.2.3
PSModule/Publish-PSModule v2.2.0 v2.2.2
PSModule/Test-PSModule v3.0.7 v3.0.8

Release Action Migration

The deprecated PSModule/Auto-Release action has been replaced with PSModule/Release-GHRepository@v2.0.2. This is a direct replacement that provides the same release functionality with improved maintainability.

No action required by module developers - the reusable workflow handles this internally.

Important File Change Detection

The Get-PSModuleSettings action now automatically detects whether a PR contains changes to "important" files that warrant a new release. This addresses the long-standing request (#85) to only publish when meaningful changes occur.

Files that trigger releases:

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

Files that do NOT trigger releases:

  • .github/workflows/* (workflow configurations)
  • .github/linters/* (linter configs)
  • tests/** (test files)
  • examples/** (example scripts)
  • .gitignore, .editorconfig, etc.

When no important files are changed:

  • A comment is automatically added to the PR explaining why
  • ReleaseType is set to None
  • Build, test, and publish stages are skipped
  • The PR can still be merged for non-release changes

Label-Based Release Control

Module developers can also explicitly control releases via labels:

Change Type Label Release Behavior
Breaking changes Major Creates major version release
New features Minor Creates minor version release
Bug fixes Patch Creates patch version release
Documentation only NoRelease No release created
CI/CD maintenance NoRelease No release created

Workflow Permissions Update

The Get-Settings workflow now requests pull-requests: write permission. This enables:

  • Automatic label management on PRs
  • Adding comments when no important files changed

No action required by module developers - repos using this workflow already grant the necessary permissions via the main workflow file.

Configuration Cleanup

Removed unused configuration files from the repository:

  • .github/linters/.jscpd.json - JSCPD linter config (not used in current linting setup)
  • .github/release.yml - GitHub auto-generated release notes config (release notes are now fully managed by the Release-GHRepository action)

Upgrade Impact

Impact Description
Breaking Changes None - all changes are backward compatible
Required Actions None - updates are automatically applied when using the reusable workflow
Behavior Change PRs without important file changes will no longer trigger releases

Related

  • Part of ongoing workflow modernization efforts
  • Foundation for future smart release detection enhancements (tracked in #184)

v5.4.1

22 Jan 13:00
be7d5dc

Choose a tag to compare

🩹 [Patch]: Update Document-PSModule action to v1.0.14 (#267)

Updates the PSModule/Document-PSModule action to version 1.0.14, which includes compatibility fixes for Node.js 24 runtime and incorporates the latest dependency updates. This ensures the documentation generation step runs on the latest supported runtime.

Updated Action

Action Old Version New Version
PSModule/Document-PSModule v1.0.12 v1.0.14

Notable Changes

Node.js 24 Compatibility

  • The updated action uses actions/upload-artifact@v6.0.0 internally, which requires Node.js 24

No Breaking Changes

This is a routine patch update with no user-facing changes required.

v5.4.0

20 Jan 00:34
7c92b2f

Choose a tag to compare

🚀 [Feature]: Add PR Title and Description as Configurable Release Notes (#264)

Your pull request title and description are now automatically used as release notes when publishing modules. By default, merging a PR creates a GitHub release with your PR title as a heading and your PR description as the release notes content. Additionally, when a PR is closed without merging, the workflow now automatically cleans up any prerelease versions and tags, preventing orphaned prereleases in the PowerShell Gallery.

PR-based release notes are now the default

Release notes are now automatically generated from your pull request content. When you merge a PR, the workflow creates a GitHub release with:

  • Your PR title as an H1 heading with a link to the PR (e.g., # Add retry logic (#123))
  • Your PR description as the release notes body

No configuration needed—just write meaningful PR descriptions and they become your release notes.

Customizing release notes behavior

Three settings in PSModule.yml control this behavior:

Setting Default Description
Publish.Module.UsePRTitleAsReleaseName false Use the PR title as the GitHub release name instead of version string
Publish.Module.UsePRBodyAsReleaseNotes true Use the PR description as the release notes content
Publish.Module.UsePRTitleAsNotesHeading true Prepend PR title as H1 heading with PR number link in release notes

To disable PR-based release notes and use GitHub's auto-generated notes instead:

Publish:
  Module:
    UsePRBodyAsReleaseNotes: false
    UsePRTitleAsNotesHeading: false

Abandoned PR cleanup

When a PR is closed without merging (abandoned), the workflow now:

  1. Skips all test and build jobs entirely
  2. Proceeds directly to cleanup
  3. Removes any prerelease versions and tags created for that PR

This saves CI resources and ensures abandoned work doesn't leave orphaned prereleases. Controlled by Publish.Module.AutoCleanup (enabled by default).

Action version pinning

All GitHub Actions references now use commit SHAs with version comments for improved security and reproducibility:

  • actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5.0.0
  • actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5
  • PSModule/GitHub-Script@2010983167dc7a41bcd84cb88e698ec18eccb7ca # v1.7.8
  • PSModule/Publish-PSModule@e1b338d1266dee28c6d6218756979597c8a77b7a # v2.2.0
  • PSModule/Get-PSModuleSettings@28c1805d689dc5bfcfba7489e76c34a6d33d7da8 # v1.4.0

v5.3.20

17 Jan 17:52
3d14498

Choose a tag to compare

🪲[Fix]: Fix permissions to allow commenting on pull requests and make releases (#262)

This release fixes a bug to the GitHub Actions workflow permissions. The change grants write access to pull requests, which will allow the workflow to:

  • comment on PRs
  • manage releases

v5.3.19

17 Jan 17:21
6388a88

Choose a tag to compare

🩹 [Patch]: Update Get-PSModuleSettings action to version 1.0.3 (#261)

This pull request updates the Get-PSModuleSettings GitHub Action to a newer version in the workflow configuration file. This ensures the workflow uses the latest improvements and bug fixes from the action's upstream repository.

Workflow update:

  • Updated the Get-PSModuleSettings action in .github/workflows/Get-Settings.yml from version v1.0.2 to v1.0.3 to incorporate the latest changes and fixes.