Skip to content

psake 5.x spike: assess breakage under psake 5.0.4 (clean bump, no extras) #155

Description

@tablackburn

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.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestwayfinder:taskWayfinder ticket: manual work that unblocks a decision

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions