Skip to content

Releases: psake/psake

[5.0.0] - 2026-03-21 Alpha

22 Mar 02:33
0a02727

Choose a tag to compare

Pre-release

Added

  • Declarative Task syntax: Task 'Build' @{ DependsOn = 'Clean'; Action = { ... } } with validated keys (typos throw errors)
  • Version declaration: Version 5 at the top of a build file enforces the required psake major version
  • Hashtable Properties syntax: Properties @{ Config = 'Release' } as alternative to scriptblock
  • Two-phase compile/run model: dependency graph is validated via topological sort before any task executes; circular dependencies and missing tasks are caught at compile time
  • -CompileOnly parameter on Invoke-psake: returns the build plan without executing tasks (for tooling/testing)
  • Local file-based caching: tasks with Inputs/Outputs (glob patterns or scriptblocks) are content-addressed cached in .psake/cache/; unchanged tasks are skipped
  • -NoCache parameter on Invoke-psake: bypass caching for a single run
  • Structured output: Invoke-psake returns a PsakeBuildResult with per-task PsakeTaskResult (status, duration, cached flag)
  • -OutputFormat JSON|GitHubActions parameter on Invoke-psake for CI integration; GitHubActions emits ::error::, ::warning::, ::debug:: workflow annotations
  • -Quiet parameter on Invoke-psake: suppress all console output while still returning structured results
  • Get-PsakeBuildPlan function: testability API to compile a build file and inspect the plan without executing
  • Test-PsakeTask function: testability API to execute a single task in isolation without triggering dependencies
  • Clear-PsakeCache function: clear the local task cache
  • Cached column in Build Time Report showing which tasks were served from cache
  • Inputs, Outputs, InputHash, Cached, Executed properties on PsakeTask class
  • PsakeBuildPlan class for compile-phase build plan representation
  • PsakeBuildResult and PsakeTaskResult classes for structured output
  • Migration guide at docs/migration-v4-to-v5.md

Changed

  • Minimum PowerShell version raised to 5.1 (was 3.0)
  • Default .NET Framework version changed from 4.0 to 4.7.2
  • Invoke-psake now returns a PsakeBuildResult object (previously returned nothing); $psake.build_success is retained for backward compatibility
  • New-Object PSObject replaced with [PSCustomObject] in module internals
  • Console output uses Write-BuildMessage with $env:NO_COLOR support; colored output is disabled automatically when NO_COLOR is set

Removed

  • default.ps1 fallback: build files must be named psakefile.ps1 (or specified explicitly via -BuildFile)
  • Standalone runner scripts psake.ps1 and psake.cmd: use Import-Module psake; Invoke-psake instead
  • .NET Framework versions 1.0, 1.1, 2.0, 3.0, 3.5: only 4.0 and above are supported
  • Deprecated $framework global variable: use the Framework function or psake-config.ps1 instead
  • PowerShell 2.0 compatibility code
  • LegacyBuildFileName configuration option
  • OutputHandler, OutputHandlers, and ColoredOutput configuration properties: output is now handled by Write-BuildMessage with format-based routing (-OutputFormat GitHubActions for CI annotations)
  • Write-PsakeOutput and Write-ColoredOutput internal functions
  • psake-config.ps1 output handler override examples

[4.9.1] 2024-10-06

31 Jul 01:20

Choose a tag to compare

Fixed

  • #296 Fix -ContinueOnError
    functionality (via @UberDoodles)
  • Required variables set on a task are now validated even if the task has no
    action defined.

Improvements

  • #297 Enable type conversion
    when passing properties (via @whut)
  • #303 Add alias wd for
    workingDirectory on the exec command (via
    @SeidChr)
  • #326 Add support for MS Build
    17 support (included with Visual Studio 2022). (via
    Thorarin)
  • Parameters are now PascalCase instead of camelCase (via
    Splaxi)

[4.9.0] 2019-09-21

29 Aug 12:33
96e4796

Choose a tag to compare

Fixed

  • Fix hashtable references so strict mode works when set in the psakeFile.
  • #283 Fix path issue for msbuild is VS 2019. (via @jaymclain)
  • #287 In Exec function, always rerun command in specified location (via @tiksn and @UberDoodles)

Added

  • #281 Support for .Net 4.8 in Framework function (via @granit1986)
  • #285 Add BuildSetup and BuildTearDown functions that are executed at the beginning of the build (before the first task), and at the end of the build (after either all tasks have completed, or a task has failed). (via @UberDoodles)

[4.8.0] 2019-04-23

29 Aug 12:32
343092a

Choose a tag to compare

Features

  • Add support for loading in tasks contained in PowerShell modules

Improvements

  • #267 Add wrapper script for Linux and macOS. (via @dermeister0)

  • #268 Allow more granularity when specifying versions of modules to load when referencing shared tasks (via @RandomNoun7)

  • #274 Add support for Visual Studio 2019 and MSBuild 16.0. (via @petedavis)

  • #276 Pass task detail including error information into TaskSetup and TaskTearDown. (via @davidalpert)

v4.7.4

08 Sep 04:06

Choose a tag to compare

[4.7.4] 2018-09-07

Fixed

  • #260 Change the build time report to show individual task durations instead of cumulative (via @sideproject)

  • #261 Use $global:lastexitcode instead of $lastexitcode in Exec (via @gpetrou)

Improvements

  • #259 Add $psake.error_message property which contains the error message that cause the build to fail (via @sideproject)

v4.7.3

11 Aug 20:11
5ae52ac

Choose a tag to compare

[4.7.3] 2018-08-11

Fixed

  • Re-apply changes from PR #257 as they apparently were not committed correctly.

v4.7.2

29 Aug 12:31
5ae52ac

Choose a tag to compare

[4.7.2] 2018-08-09

Improvements

v4.7.1

11 Aug 20:11
4d9fee4

Choose a tag to compare

[4.7.1] 2018-07-03

Improvements

Fixed

  • #236 Change check for $IsWindows so it doesn't generate an error record (via @rkeithhill)

v4.7.0

21 Nov 21:29
2ac9c3f

Choose a tag to compare

[4.7.0] 2017-11-21

As part of this release we had 13 issues closed.

Features

  • #198 Add support for PowerShell Core on macOS and Linux. (via @dbroeglin)

  • #196 Deprecate default build script name default.ps1 in favor of psakefile.ps1. (via @glennsarti)

  • Remove legacy PowerShell v2 support. PSake now supports v3 and above.

Improvements

  • #228 Project structure refactor (via @devblackops)

  • #227 Ensure postAction and taskTeardown tasks get called after action failure (via @stephan-dowding)

  • #222 Add support for .Net frameworks 4.6.2, 4.7, and 4.7.1. (via @rkeithhill)

  • #218 Improve Build Time Report by using custom FormatTaskName value for header and display task timing at millisecond accuracy instead of microsecond. (via @theunrepentantgeek)

  • #200 Add WorkingDirectory parameter to Exec function. (via @DaveSenn)

  • #190 Use WriteColoredOutput for all task headers. (via @damianpowell)

v4.6.0

20 Mar 16:23

Choose a tag to compare

As part of this release we had 6 issues closed.

Bug

  • #149 Using ErrorAction Ignore in PSv3+

Features

  • #153 Invoke-psake with option to return documentation should return objects instead of formated string
  • #147 Added an option '-notr' to disable output of time report.
  • #143 Publish Psake on PowerShellGallery

Improvements

  • #155 Move wiki content to readthedocs
  • #152 Adding an example for a parallel task
  • #138 Cleanup MaxRetries and RetryTriggerErrorPattern in the context of Task. (#117 and #103)