You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All new tests target Pester 6.0.0, pinned to an exact version in requirements.psd1 (Pester 5 entered maintenance mode with the 6.0.0 release on 2026-07-07 — see decision comment below)
Use the classic Should -Be assertion syntax (valid in both Pester 5 and 6), not the new Should-* assertion family, so tests remain trivially backportable to Pester 5.9 if needed
This decision affects only this repository's own test suite. The shipped module's Pester support contract (Test-PSBuildPester minimum of 5.0.0, manifest RequiredModules) is unchanged
Shared fixture module lives at tests/fixtures/TestModule/
Build-PSBuildUpdatableHelp requires Windows (skip on Linux CI runners)
Decision (2026-07-07): This issue and its sub-issues (#94–#96, #98–#103) previously said "use Pester 5 syntax." The bodies have been updated to target Pester 6.0.0, which was released as stable today; Pester 5 simultaneously moved to maintenance mode (critical/security fixes only).
Rationale and guardrails:
Scope: this affects only this repository's own test suite (the framework used to run tests/). The shipped module's compatibility contract — Test-PSBuildPester importing Pester with -MinimumVersion 5.0.0 and the manifest's RequiredModules floor — is unchanged. Consumers on Pester 5 remain fully supported.
Pinning: Pester will be pinned to exactly 6.0.0 in requirements.psd1 (not a floating minimum) and bumped deliberately as 6.0.x patches land, since the release is brand new.
Syntax: new tests use the classic Should -Be assertion syntax, which is valid in both Pester 5 and 6, rather than the new Should-* assertion family. This keeps every new file trivially backportable to Pester 5.9 if 6.0.0 proves too raw.
Tests: Test-PSBuildPester #102 special case:Test-PSBuildPester tests are Pester-testing-Pester, so the inner Invoke-Pester runs in a subprocess and is matrixed across Pester 5.x and 6.x to continuously verify the Pester 5 consumer contract. Details in that issue's body.
No code has been started yet; this records the targeting decision before work begins on #97 (shared fixture module) and the rest of the batch.
Closing this — not because the work is unwanted, but because an umbrella like this cannot ever be finished, and leaving it open makes it look like test coverage is untracked when it is being actively worked.
Test coverage is now tracked concretely, per function, on the v1.0.0 project board and through issues that can actually close:
Those two are the last public functions without coverage of their own, and as of today the release cannot cut until they have it.
The reason a per-function issue beats an umbrella here is that each one produced findings a general "more tests needed" ticket never would have: mocks that never reached the module so tests passed against broken code, 22 signing tests that silently skipped on Windows PowerShell 5.1 (#197), and a compile-mode test that passes over a module exporting nothing (#201).
If you have a specific gap in mind that is not covered by the issues above, please open it as its own issue — it will get worked. This one has no closing condition, so it can only ever be a reminder, and the board is a better reminder.
Activity
tablackburn commentedon Jul 7, 2026
Decision (2026-07-07): This issue and its sub-issues (#94–#96, #98–#103) previously said "use Pester 5 syntax." The bodies have been updated to target Pester 6.0.0, which was released as stable today; Pester 5 simultaneously moved to maintenance mode (critical/security fixes only).
Rationale and guardrails:
tests/). The shipped module's compatibility contract —Test-PSBuildPesterimporting Pester with-MinimumVersion 5.0.0and the manifest'sRequiredModulesfloor — is unchanged. Consumers on Pester 5 remain fully supported.6.0.0inrequirements.psd1(not a floating minimum) and bumped deliberately as 6.0.x patches land, since the release is brand new.Should -Beassertion syntax, which is valid in both Pester 5 and 6, rather than the newShould-*assertion family. This keeps every new file trivially backportable to Pester 5.9 if 6.0.0 proves too raw.Test-PSBuildPestertests are Pester-testing-Pester, so the innerInvoke-Pesterruns in a subprocess and is matrixed across Pester 5.x and 6.x to continuously verify the Pester 5 consumer contract. Details in that issue's body.No code has been started yet; this records the targeting decision before work begins on #97 (shared fixture module) and the rest of the batch.
Generated by Claude Code
docs: Drop changelog entry for the dev-only Pester pin
chore: Pin Pester 6.0.0 for the repository test suite (#132)
test: Add PSBuildTestFixture shared fixture module
test: Add PSBuildTestFixture shared fixture module (#135)
chore: Track code coverage of the built module in the Pester task (#140)
tablackburn commentedon Aug 28, 2026
Closing this — not because the work is unwanted, but because an umbrella like this cannot ever be finished, and leaving it open makes it look like test coverage is untracked when it is being actively worked.
Test coverage is now tracked concretely, per function, on the v1.0.0 project board and through issues that can actually close:
Closed during the 1.0.0 cycle
tests/fixtures/PSBuildTestFixture/Test-PSBuildPesterintegration testsClear-PSBuildOutputFolderInitialize-PSBuild, a first outside contribution from @pttydouBuild-PSBuildUpdatableHelphad never worked at all (Build-PSBuildUpdatableHelp cannot succeed: missing landing page, undefined $moduleOutDir, unbound Module #169)Open and blocking 1.0.0
Build-PSBuildModulePublish-PSBuildModuleThose two are the last public functions without coverage of their own, and as of today the release cannot cut until they have it.
The reason a per-function issue beats an umbrella here is that each one produced findings a general "more tests needed" ticket never would have: mocks that never reached the module so tests passed against broken code, 22 signing tests that silently skipped on Windows PowerShell 5.1 (#197), and a compile-mode test that passes over a module exporting nothing (#201).
If you have a specific gap in mind that is not covered by the issues above, please open it as its own issue — it will get worked. This one has no closing condition, so it can only ever be a reminder, and the board is a better reminder.