Releases: PSModule/Process-PSModule
v5.4.2
🩹 [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-ReleasetoPSModule/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
ReleaseTypeis set toNone- 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
🩹 [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.0internally, which requires Node.js 24
No Breaking Changes
This is a routine patch update with no user-facing changes required.
v5.4.0
🚀 [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: falseAbandoned PR cleanup
When a PR is closed without merging (abandoned), the workflow now:
- Skips all test and build jobs entirely
- Proceeds directly to cleanup
- 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.0actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5PSModule/GitHub-Script@2010983167dc7a41bcd84cb88e698ec18eccb7ca # v1.7.8PSModule/Publish-PSModule@e1b338d1266dee28c6d6218756979597c8a77b7a # v2.2.0PSModule/Get-PSModuleSettings@28c1805d689dc5bfcfba7489e76c34a6d33d7da8 # v1.4.0
v5.3.20
v5.3.19
🩹 [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.
- Fixes #260
Workflow update:
- Updated the
Get-PSModuleSettingsaction in.github/workflows/Get-Settings.ymlfrom versionv1.0.2tov1.0.3to incorporate the latest changes and fixes.
v5.3.18
v5.3.17
Bump super-linter/super-linter from 8.3.1 to 8.3.2 (#253)
Bumps super-linter/super-linter from 8.3.1 to 8.3.2.
Release notes
Sourced from super-linter/super-linter's releases.
v8.3.2
8.3.2 (2025-12-24)
🐛 Bugfixes
- centralize file array additions and fix type (#7323) (ce80cf6), closes #7302
- create log groups for enabled languages only (#7329) (7c85bf3), closes #7307
- initialize github_before_sha (#7120) (a93b722), closes #7118 #7275
⬆️ Dependency updates
- bundler: bump rubocop in /dependencies in the rubocop group (#7313) (7fab96c)
- docker: bump clj-kondo/clj-kondo in the docker group (#7325) (fa23c54)
- docker: bump the docker group with 4 updates (#7318) (dc49a6d)
- java: bump com.puppycrawl.tools:checkstyle (#7312) (ab58437)
- npm: bump next from 16.0.10 to 16.1.0 in /dependencies (#7316) (a8572e2)
- npm: bump renovate (#7300) (191338a)
- npm: bump the npm group across 1 directory with 10 updates (#7322) (24d9e00)
- npm: bump the npm group across 1 directory with 2 updates (#7296) (0697485)
- npm: bump the npm group across 1 directory with 2 updates (#7301) (4b2bf76)
- npm: bump the npm group across 1 directory with 4 updates (#7327) (07e73d6)
- python: bump ansible-lint (#7326) (47962ea)
- python: bump snakemake (#7295) (3f92589)
- python: bump the pip group across 1 directory with 2 updates (#7299) (0ca0315)
- python: bump the pip group across 1 directory with 6 updates (#7317) (ae7e8d8)
🧰 Maintenance
Changelog
Sourced from super-linter/super-linter's changelog.
Changelog
8.3.2 (2025-12-24)
🐛 Bugfixes
- centralize file array additions and fix type (#7323) (ce80cf6), closes #7302
- create log groups for enabled languages only (#7329) (7c85bf3), closes #7307
- initialize github_before_sha (#7120) (a93b722), closes #7118 #7275
⬆️ Dependency updates
- bundler: bump rubocop in /dependencies in the rubocop group (#7313) (7fab96c)
- docker: bump clj-kondo/clj-kondo in the docker group (#7325) (fa23c54)
- docker: bump the docker group with 4 updates (#7318) (dc49a6d)
- java: bump com.puppycrawl.tools:checkstyle (#7312) (ab58437)
- npm: bump next from 16.0.10 to 16.1.0 in /dependencies (#7316) (a8572e2)
- npm: bump renovate (#7300) (191338a)
- npm:
v5.3.16
🩹 [Patch]: Bump Get-PSModuleSettings action to version 1.0.1 (#257)
Fixed
- Bumped
PSModule/Get-PSModuleSettingsto v1.0.1. - Super-linter summary now reads
super-linteroutcome via an environment variable to avoid expression parsing quirks. - Workflow tests now pass explicit secrets instead of using
secrets: inherit.
Changed
- Dependabot update cadence is now daily with a 7-day cooldown.
- Auto-Release now runs on
pull_requestand checks out withpersist-credentials: false. - Removed unused linter env toggles for Biome lint and enabled Zizmor for GitHub Actions.
v5.3.15
🩹 [Patch]: Make secrets available in BeforeAll and AfterAll jobs (#254)
This patch release makes test secrets available in the BeforeAll-ModuleLocal and AfterAll-ModuleLocal workflow jobs, enabling proper test setup and teardown operations that require authentication credentials.
Changes
- Updated workflow files to pass test secrets through reusable workflow calls:
- .github/workflows/BeforeAll-ModuleLocal.yml - Added secrets input and environment variable mapping
- .github/workflows/AfterAll-ModuleLocal.yml - Added secrets input and environment variable mapping
- .github/workflows/workflow.yml - Configured secret passing to BeforeAll and AfterAll jobs
v5.3.14
🩹 [Patch]: Establish Settings as integration channel (#233)
This release refactors the internal GitHub Actions workflow architecture to improve maintainability and consistency. No user-facing changes or breaking changes are included.
What Changed
All major workflows (Build-Docs.yml, Build-Module.yml, Build-Site.yml, Get-CodeCoverage.yml) have been refactored to use a unified configuration approach:
- Unified Configuration: Workflows now accept a single
SettingsJSON object instead of multiple individual parameters, reducing complexity and potential configuration errors - Streamlined Access Patterns: All workflow steps and environment variables now extract values from the centralized
Settingsobject usingfromJson - Code Maintenance: Removed redundant output definitions from the
Get-Settings.ymlworkflow - Consistency: Standardized configuration access patterns across all workflows
Technical Details
This is a purely internal refactoring focused on improving the workflow infrastructure. The changes make future workflow modifications easier to implement and maintain while ensuring consistency across the entire automation pipeline.