Cake v4.0.0 released

Published
Saturday, 18 November 2023
Category
Release Notes
Author
devlead

Version 4.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 both Cake Scripting and Cake Frosting since the Cake v3.2.0 release! 🚀 🍰

Highlights of this release

  • .NET 8 support & C# 12 support
  • Improved file APIs
  • Addin recommended Cake version set to 4.0.0

.NET 8 Support & C# 12 Support

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

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

Runner .NET 8 .NET 7 .NET 6
Cake .NET Tool
Cake Frosting

Breaking changes

IFile has added methods for setting timestamps (see #4132), while the interface has default implementations it can still break ABI which is why we've marked this change as breaking.

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

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

The assembly 'Cake.Twitter, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null'
is referencing an older version of Cake.Core (3.0.0).
For best compatibility it should target Cake.Core version 4.0.0.

The recommended target framework monikers for addins are now

  • net8.0
  • net7.0
  • net6.0

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 15 issues closed.

Breaking change

  • #4266 Update LatestPotentialBreakingChange to 4.0.0.
  • #4132 Add File APIs for setting timestamps (creation time, last write time, last access time).

Feature

  • #4250 Update System.Collections.Immutable to 8.0.0.

Improvement

  • #4260 Unzip alias should support overwrite files.
  • #4251 Update System.Reflection.Metadata 8.0.0.
  • #4249 Update Microsoft.Extensions.DependencyInjection to 8.0.0.

Bug

  • #4197 Execution of Cake script fails if an addin defines an alias that uses nullable reference types in its signature.
  • #4150 Cake script is contributing unactionable diagnostics in VS Code Problems pane.