Blog

Cake v6.2.0 released

Published
Friday, 22 May 2026
Category
Release Notes
Author
devlead

Version 6.2.0 of Cake has been released. Take it for a spin and give us feedback on our discussion board.

This release includes new features, improvements, and bug fixes to Cake Scripting, Cake Frosting, and Cake.Sdk since the Cake v6.1.0 release! 🚀 🍰

Highlights of this release

  • RWX build provider — Detect RWX CI runs with BuildSystem.Rwx and read documented environment variables; see RWX integration.
  • Multi-target scheduling — Shared dependencies are no longer executed twice when you run multiple targets, and SetupContext.TasksToExecute reflects every target when using RunTargets.
  • Quiet builds — The task summary report is suppressed when verbosity is Quiet; Cake.Sdk generator projects can skip the report printer via configuration.
  • dotnet & Frosting fixes — Empty MSBuild properties in DotNetBuild, correct DotNetMSBuild verbosity, package version lists from DotNetSearchPackage, and combined DirectoryPath / ConvertableFilePath values in Frosting.
  • GlobGetFiles() with curly-brace glob patterns returns the expected files.
  • .NET 9 & 10 tool installdotnet tool install uses --source instead of the removed --add-source switch.
  • NuGet security — Direct NuGet.* dependency updates to reduce transitive vulnerable-package warnings.
  • Dependency and SDK updates

RWX build provider

Cake now includes an RWX build provider (#4840), alongside GitHub Actions, GitLab CI, Azure Pipelines, and the other supported systems listed under build system integrations. Documentation is available on the RWX integration page. When your build runs on RWX, scripts get the same IsLocalBuild / provider detection pattern you already use elsewhere—for example:

if (BuildSystem.Rwx.IsRunningOnRwx)
{
    Information(
        "RWX run {0}: {1}",
        BuildSystem.Rwx.Environment.Run.Id,
        BuildSystem.Rwx.Environment.Run.Title);
}
else
{
    Information("Not running on RWX");
}

See IRwxProvider for run, task, git, and runtime metadata, plus BuildSystem.Rwx.Commands for output values and artifacts.

Running Cake on RWX

Below is an example of an RWX YAML configuration that runs on Ubuntu 26.04, checks out your code, installs the .NET SDK using global.json, and then shows the three ways to invoke Cake on CI—Cake.Sdk file script, Cake .NET Tool, and Cake Frosting. See Running Cake on RWX for more examples.

on:
  github:
    pull_request:
      init:
        commit-sha: ${{ event.git.sha }}
    push:
      - if: ${{ event.git.branch == 'develop' || event.git.branch == 'main' || starts-with(event.git.branch, 'hotfix/') }}
        init:
          commit-sha: ${{ event.git.sha }}
  cli:
    init:
      commit-sha: ${{ event.git.sha }}

base:
  image: ubuntu:26.04
  config: rwx/base 1.1.1

tasks:
  - key: code
    call: git/clone 2.0.7
    with:
      repository: https://github.com/your-org/your-repo.git
      ref: ${{ init.commit-sha }}
      fetch-full-depth: true
      preserve-git-dir: true

  - key: install-dotnet
    use: code
    call: dotnet/install 1.0.0
    with:
      global-json-file: global.json
    filter:
      - global.json

  - key: build
    use: [code, install-dotnet]
    run: |
      # Cake Sdk
      dotnet cake.cs

      # Cake Tool
      dotnet tool restore
      dotnet cake

      # Cake Frosting
      dotnet run --project cake.csproj

For a single runner in your own repo, keep only the dotnet commands you need.

Cake itself builds on RWX too

Cake.Tool and Cake.Sdk integration tests and pull requests now build continuously on RWX as well. Thank you to RWX for sponsoring the project with a build instance.

Contributors

This release was made possible thanks to the Cake team and the contribution of these awesome members of the Cake community listed below:

Full details of everything that was included in this release can be seen below.

Issues

As part of this release we had 36 issues closed.

Feature

  • #4840 Add RWX as a build provider.

Improvement

  • #4832 Update Microsoft.Extensions.DependencyInjection to 9.0.16 (net9.0) & 10.0.8 (net10.0).
  • #4830 Update Microsoft.IdentityModel.JsonWebTokens to 8.18.0.
  • #4822 Update Spectre.Console to 0.55.2.
  • #4820 Update Basic.Reference.Assemblies.* to 1.8.8.
  • #4794 Update NuGet.* packages dependencies to avoid transitive package vulnerable warnings.
  • #4784 Update Spectre.Console.* to 0.55.0.
  • #4776 Microsoft.IdentityModel.JsonWebTokens to 8.17.0.
  • #4771 Update System.Security.Cryptography.Pkcs to 9.0.14 & 10.0.5 (net9.0&net10.0).
  • #4769 Update Microsoft.Extensions.DependencyInjection to 9.0.14 & 10.0.5 (net9.0&net10.0).
  • #4765 Update Autofac to 9.1.0.
  • #4763 Update Microsoft.CodeAnalysis.CSharp.Scripting to 5.3.0.
  • #4442 Frosting DirectoryPath + ConvertableFilePath combines strings instead of paths.
  • #4158 Cannot specify empty properties when using DotNetBuild.
  • #2101 CakeReportPrinter should be disabled in Verbosity = Quiet.

Bug

  • #4834 .NET Tool installer switch from --add-source to --source for .NET 9 & 10.
  • #4456 DotNetMSBuild alias generates extra verbosity argument.
  • #4454 Impossible to retrieve package versions list with DotNetSearchPackage.
  • #4324 When running multiple targets, common dependent tasks are executed twice.
  • #4066 SetupContext.TasksToExecute only lists tasks related to first target when calling RunTargets.
  • #2666 GetFiles() using Glob curly braces gives empty result.

Cake v6.1.0 released

Published
Sunday, 1 March 2026
Category
Release Notes
Author
devlead

Version 6.1.0 of Cake has been released. Take it for a spin and give us feedback on our discussion board.

This release includes new features, improvements, and bug fixes to both Cake Scripting, Cake Frosting, and Cake Sdk since the Cake v6.0.0 release! 🚀 🍰

Update: Cake.Sdk 6.1.1 has been released to address a dependency issue. If you use Cake.Sdk, we recommend updating to 6.1.1.

You can now pass interpolated strings directly to the logging aliases, so formatting is clear, and the cost of building the message is only paid when the log level is active.

Using a FormattableString (interpolated string):

Using FormattableLogAction for lazy evaluation (the message is only formatted if the current verbosity allows it):

All of Error, Warning, Information, Verbose, and Debug support both overloads.

Cake.Sdk now goes beyond .NET tools: you can install and run any NuGet package with #tool / InstallTool, just like Cake.Tool already does. That makes it easy to pull in platform-specific packages (e.g. Bicep CLI) and invoke them with Command or the tool aliases.

Example: installing the Bicep CLI for the current OS and architecture, then running it:

This release was made possible thanks to the Cake team and the contribution of these awesome members of the Cake community listed below:

Full details of everything that was included in this release can be seen below.

Read more...

Cake v6.0.0 released

Published
Tuesday, 11 November 2025
Category
Release Notes
Author
devlead

Version 6.0.0 of Cake has been released. Take it for a spin and give us feedback on our discussion board.

This release includes new features, improvements and bug fixes to Cake Scripting, Cake Frosting, and the new Cake.Sdk runner since the Cake v5.1.0 release! 🚀 🍰

Cake now fully supports running on .NET 10, and with this C# 14, which means you can take advantage of the latest framework, runtime, and language improvements.

The supported platform matrix for Cake 6.0.0 will look like this:

We're excited to announce Cake.Sdk as a new official runner for Cake! Cake.Sdk provides a modern way to get the Cake tool scripting experience in regular .NET console applications. This brings you the stellar experience of the new "dotnet run app.cs" feature (requires .NET 10), while also working seamlessly with .NET 8 and 9 for regular csproj projects.

Here's the minimal example:

Cake.Sdk is a custom SDK that provides a convenient way to create Cake projects with minimal configuration. It automatically sets up common properties and provides a streamlined development experience for Cake-based build automation projects, whether you're using the new file-based approach or traditional project-based builds.

Key features include:

The easiest way to get started with Cake.Sdk is using the Cake.Template package, which provides several templates for different scenarios:

First, install the template package:

Create a new Cake file-based project:

For the simplest possible setup, you can use the minimal template:

For larger projects, you can organize your code across multiple files:

For traditional project-based approach:

We've now set the recommended version of Cake.Core for addins to target to 6.0.0.

This won't break the build, but you might see warnings like the one below when addins or modules are loaded.

The recommended target framework monikers for addins are now:

This release was made possible thanks to the Cake team and the contribution of these awesome members of the Cake community listed below:

Full details of everything that was included in this release can be seen below.

Read more...

Cake v5.1.0 released

Published
Saturday, 4 October 2025
Category
Release Notes
Author
devlead

Version 5.1.0 of Cake has been released. Take it for a spin and give us feedback on our discussion board.

This release includes new features, improvements and bug fixes to both Cake Scripting and Cake Frosting since the Cake v5.0.0 release! 🚀 🍰

This release was made possible thanks to the Cake team and the contribution of these awesome members of the Cake community listed below:

Full details of everything that was included in this release can be seen below.

Read more...

Cake.Sdk 5.0.25257.82-beta released

Published
Monday, 15 September 2025
Category
Announcement
Author
devlead

We're excited to announce the release of Cake.Sdk 5.0.25257.82-beta, a minor preview release that brings improvements to performance, the debugging experience, and native .NET CLI publish support.

The biggest improvement in this release is that dotnet publish now works with Cake.Sdk. This means you can now create self-contained precompiled binaries and containers, which can provide substantial performance gains when the same code is executed multiple times across different stages.

Read more...