From b3a34c94e174b705f1d019aaf422336f2b4fbf36 Mon Sep 17 00:00:00 2001 From: Trent Blackburn Date: Fri, 3 Jul 2026 11:13:44 -0400 Subject: [PATCH 1/3] chore: Pin Pester 5.8.0 and update PSScriptAnalyzer to 1.25.0 Pester previously floated via MinimumVersion 5.6.1, so CI installed whatever the newest release was at bootstrap time. Pinning to 5.8.0 (current stable) makes CI deterministic. PSScriptAnalyzer moves from 1.24.0 to 1.25.0, the latest stable release (2026-03-20). The consumer-facing minimum in PowerShellBuild.psd1 (Pester >= 5.6.1) is intentionally unchanged; this only affects building this repo. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01JHgRWPi4D2aun7CEtwLz7T --- instructions/repository-specific.instructions.md | 4 ++-- requirements.psd1 | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/instructions/repository-specific.instructions.md b/instructions/repository-specific.instructions.md index f805c82..1759ef6 100644 --- a/instructions/repository-specific.instructions.md +++ b/instructions/repository-specific.instructions.md @@ -225,9 +225,9 @@ Defined in `requirements.psd1`, installed via **PSDepend** when `./build.ps1 -Bo | Module | Version | | ---------------- | -------- | | BuildHelpers | 2.0.16 | -| Pester | ≥ 5.6.1 | +| Pester | 5.8.0 | | psake | 4.9.0 | -| PSScriptAnalyzer | 1.24.0 | +| PSScriptAnalyzer | 1.25.0 | | InvokeBuild | 5.8.1 | | platyPS | 0.14.2 | diff --git a/requirements.psd1 b/requirements.psd1 index 5e22bd3..7b6fd47 100755 --- a/requirements.psd1 +++ b/requirements.psd1 @@ -4,13 +4,13 @@ } BuildHelpers = '2.0.16' Pester = @{ - MinimumVersion = '5.6.1' - Parameters = @{ + Version = '5.8.0' + Parameters = @{ SkipPublisherCheck = $true } } psake = '4.9.0' - PSScriptAnalyzer = '1.24.0' + PSScriptAnalyzer = '1.25.0' InvokeBuild = '5.8.1' platyPS = '0.14.2' } From 446663e594137520884ee821e75046db02c7de6e Mon Sep 17 00:00:00 2001 From: Trent Blackburn Date: Fri, 3 Jul 2026 11:16:42 -0400 Subject: [PATCH 2/3] docs: Reference requirements.psd1 instead of duplicating versions The dependency table in the repository-specific instructions duplicated the pinned versions from requirements.psd1 and drifted whenever they changed. Replace the version column with each module's purpose and point to requirements.psd1 as the source of truth. Also drop the hardcoded module version and task-runner version numbers for the same reason. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01JHgRWPi4D2aun7CEtwLz7T --- .../repository-specific.instructions.md | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/instructions/repository-specific.instructions.md b/instructions/repository-specific.instructions.md index 1759ef6..905af73 100644 --- a/instructions/repository-specific.instructions.md +++ b/instructions/repository-specific.instructions.md @@ -14,10 +14,10 @@ file only adds repo-specific concepts. **PowerShellBuild** is a PowerShell module that provides standardized build, test, and publish tasks for other PowerShell module projects. It supports two task-runner frameworks: -- **psake** (4.9.0+) -- **Invoke-Build** (5.8.1+) +- **psake** +- **Invoke-Build** -- Current version: **0.8.1** (see `PowerShellBuild/PowerShellBuild.psd1`) +- Current version: see `ModuleVersion` in `PowerShellBuild/PowerShellBuild.psd1` - `PowerShellVersion` in the manifest is currently `'3.0'` — almost certainly wrong; under review in the v1.0.0 roadmap (psake/PowerShellBuild#120) - Cross-platform: Windows, Linux, macOS (CI matrix in `.github/workflows/test.yml`) @@ -220,16 +220,17 @@ no-ops on non-Windows. ## Dependencies -Defined in `requirements.psd1`, installed via **PSDepend** when `./build.ps1 -Bootstrap` runs: - -| Module | Version | -| ---------------- | -------- | -| BuildHelpers | 2.0.16 | -| Pester | 5.8.0 | -| psake | 4.9.0 | -| PSScriptAnalyzer | 1.25.0 | -| InvokeBuild | 5.8.1 | -| platyPS | 0.14.2 | +Defined in `requirements.psd1` — the source of truth for build-dependency names and pinned +versions — and installed via **PSDepend** when `./build.ps1 -Bootstrap` runs: + +| Module | Purpose | +| ---------------- | ---------------------------------------------------------- | +| BuildHelpers | Populates the `BH*` build environment variables | +| Pester | Test framework | +| psake | Task runner for this repo's own build | +| PSScriptAnalyzer | Static analysis of the built module | +| InvokeBuild | Alternate task runner (consumer-facing `IB.tasks.ps1`) | +| platyPS | Help and documentation generation | ## Testing From fd210c53d6f101988a93731d35993137a11939be Mon Sep 17 00:00:00 2001 From: Trent Blackburn Date: Fri, 3 Jul 2026 11:16:42 -0400 Subject: [PATCH 3/3] chore: Ignore tests/out/ generated test results The Pester task writes tests/out/testResults.xml on every test run for the CI artifact upload, leaving untracked clutter after local runs. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01JHgRWPi4D2aun7CEtwLz7T --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 2fe317a..1a69a40 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ Output/ +tests/out/