⚙️ [Maintenance]: Adopt Process-PSModule v6.1.4 and require Pester 6.x in tests - #31
⚙️ [Maintenance]: Adopt Process-PSModule v6.1.4 and require Pester 6.x in tests#31Marius Storhaug (MariusStorhaug) wants to merge 3 commits into
Conversation
No Significant Changes DetectedThis PR does not contain changes to files that would trigger a new release:
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. |
There was a problem hiding this comment.
Pull request overview
This PR tightens the test dependency contract by adding a PowerShell #Requires -Modules directive so the module’s tests run only with Pester 6.x, aligning test discovery/execution with the module ecosystem’s major-version expectations.
Changes:
- Add
#Requires -Modulesto require Pester>= 6.0.0and< 7.0.0(viaMaximumVersion = '6.*'). - Pin the required module identity using Pester’s module
GUID.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Super-linter summary
All files and directories linted successfully For more information, see the GitHub Actions workflow run Powered by Super-linter |
The GUID pins module identity (precise pinning), a stricter control than the lock-to-major risk appetite. Keep only the version range.
No Significant Changes DetectedThis PR does not contain changes to files that would trigger a new release:
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. |
Super-linter summary
All files and directories linted successfully For more information, see the GitHub Actions workflow run Powered by Super-linter |
No Significant Changes DetectedThis PR does not contain changes to files that would trigger a new release:
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. |
Super-linter summary
All files and directories linted successfully For more information, see the GitHub Actions workflow run Powered by Super-linter |
## Description This PR bumps the reusable workflow to `Process-PSModule` v6.1.4, pulls in the open maintenance/docs changes that make sense, and adds one previously-closed test improvement. ### Changes - Bumped `PSModule/Process-PSModule/.github/workflows/workflow.yml` from `205d193` (v5.4.6) to `da180ba` (v6.1.4). - Added a `#Requires -Modules` statement to `tests/Hashtable.Tests.ps1` to lock test execution to **Pester 6.x**, matching the version used by the new workflow. - Standardized the README landing page to the format used across PSModule repositories. - Added the test from #13 for merging into an empty hashtable. ### Quality check - Ran the test suite locally with Pester 6.0.1 after dot-sourcing the public functions. - Result: **27 passed, 0 failed**. ### Related PRs - Closes #31 (adopt Process-PSModule v6.1.4 + require Pester 6.x). - Closes #30 (README standardization). - Closes #29 (Process-PSModule 5.5.7 bump — superseded by v6.1.4). - Includes the test from #13 (merging into an empty hashtable). ## How has this been tested? - `Invoke-Pester -Path tests/Hashtable.Tests.ps1` executed locally with Pester 6.0.1. --- Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This module now runs on the latest Process-PSModule automation (v6.1.4) and pins its test suite to Pester 6, so continuous integration uses the current build, test, and publish pipeline and the tests fail fast if Pester 6 is ever missing.
Changed: CI runs on Process-PSModule v6.1.4
The reusable workflow pin moves to v6.1.4 from the module's previously pinned v5 release, adopting the current pipeline, including the Pester 6 test runner and the consolidated
TestDatasecret model. No caller changes are required — the existingsecretswiring keeps passing everything the pipeline needs.Changed: Tests require Pester 6.x
Every test file now declares the Pester 6 requirement, so the suite always resolves Pester 6 and fails with a clear message if only an older Pester is available, instead of silently running on it.
Technical Details
.github/workflows/Process-PSModule.yml: pin bumped toworkflow.yml@da180bac16b13bfbcdf08b2e4e221b5b49e5ff28 # v6.1.4.tests/*.Tests.ps1: added#Requires -Modules @{ ModuleName = 'Pester'; ModuleVersion = '6.0.0'; MaximumVersion = '6.*' }.Shouldassertions are left unchanged. Pester 6 is backward-compatible, so converting to the newShould-*syntax is intentionally out of scope for this maintenance change.