Part of #120 (Phase 2 — psake 5.x bump).
Question
What actually breaks under psake 5.x, and does the damage stay inside this repository or reach consumers?
Two psake files are in play and they carry very different risk:
psakeFile.ps1 at the repo root — this repo's own build. Breakage here is ours to fix.PowerShellBuild/psakeFile.ps1 — the consumer-facing task definitions that every downstream build.ps1 dot-sources. Breakage here is a breaking change for everyone.
Scope
Keep this spike clean. requirements.psd1 currently pins psake = '4.9.0'; PSGallery is at 5.0.4. Bump the pin, run the build, record what happens.
Explicitly out of scope for the spike — these are what sank the previous attempt (#117, closed): task caching via Inputs/Outputs, LLM-mode Pester output, external PesterConfiguration file support, and the new public Format-PSBuildResult function. Those are 1.1.0 features, not a dependency bump.
Known reproducer
psake 5.0.4 installed side by side with the pinned 4.9.0 already shadows it on at least one maintainer machine and fails Manifest.tests.ps1. That failure is a starting point, not necessarily the whole story — confirm whether it is a genuine 5.x incompatibility or an artifact of two psake versions being visible at once.
Abort criterion (agreed before the spike, deliberately)
- Migrate if the consumer-facing
PowerShellBuild/psakeFile.ps1 survives 5.x with only mechanical changes. - Cut psake 5.x to 1.1.0 and ship 1.0.0 on psake 4.9.0 if 5.x forces a change to the task names or the
$PSBPreference contract that consumers' build.ps1 files depend on.
This criterion is fixed in advance so the call is made on the findings rather than on sunk cost. Record which side the spike landed on, with evidence, as the resolution comment.
Done when
The findings are posted here and the migrate/cut call is made. Migration PR(s) are then created as follow-ups — their number and shape depend on what this spike finds, so they are deliberately not charted yet.
Part of #120 (Phase 2 — psake 5.x bump).
Question
What actually breaks under psake 5.x, and does the damage stay inside this repository or reach consumers?
Two psake files are in play and they carry very different risk:
psakeFile.ps1at the repo root — this repo's own build. Breakage here is ours to fix.PowerShellBuild/psakeFile.ps1— the consumer-facing task definitions that every downstreambuild.ps1dot-sources. Breakage here is a breaking change for everyone.Scope
Keep this spike clean.
requirements.psd1currently pinspsake = '4.9.0'; PSGallery is at 5.0.4. Bump the pin, run the build, record what happens.Explicitly out of scope for the spike — these are what sank the previous attempt (#117, closed): task caching via
Inputs/Outputs, LLM-mode Pester output, externalPesterConfigurationfile support, and the new publicFormat-PSBuildResultfunction. Those are 1.1.0 features, not a dependency bump.Known reproducer
psake 5.0.4 installed side by side with the pinned 4.9.0 already shadows it on at least one maintainer machine and fails
Manifest.tests.ps1. That failure is a starting point, not necessarily the whole story — confirm whether it is a genuine 5.x incompatibility or an artifact of two psake versions being visible at once.Abort criterion (agreed before the spike, deliberately)
PowerShellBuild/psakeFile.ps1survives 5.x with only mechanical changes.$PSBPreferencecontract that consumers'build.ps1files depend on.This criterion is fixed in advance so the call is made on the findings rather than on sunk cost. Record which side the spike landed on, with evidence, as the resolution comment.
Done when
The findings are posted here and the migrate/cut call is made. Migration PR(s) are then created as follow-ups — their number and shape depend on what this spike finds, so they are deliberately not charted yet.