Cake v1.0.0-rc0003 released

Published
Friday, 29 January 2021
Category
Release Notes
Author
augustoproiete

Version 1.0.0-rc0003 of Cake has been released 🎉.

This is the third and last pre-release version of Cake 1.0. This release includes improvements and bug fixes to both Cake Scripting and Cake Frosting.

See also:

Highlights of this release

  • Migration from Spectre.Cli to Spectre.Console
    • Spectre.Console brings additional console features, which will be leveraged in future releases to bring new experiences that are either not possible today, or require addins
  • Preserve Console Mode when executing external processes on Windows
    • Some processes modify the Console Mode, in some cases disabling features such as ANSI escape codes support. Cake now ensures that the Console Mode is restored to its original state after an external process ends
  • Align command-line switches between Cake Script runners and Cake Frosting
  • Addin recommended Cake version set to 1.0
  • Bug fixes

Why Release Candidate?

We've chosen to release 1.0 as a pre-release to NuGet and Chocolatey, so we and the community can more easily test and ensure that our 1.0 release will be as stable as possible. It will also enable us to see if there are any steps you need to take to adapt your scripts for 1.0, and for us to see if there're any unintended breaking changes, by testing as many addins, modules, and recipes as possible.

Breaking changes in Cake Frosting

In this release the UseTool extension has been renamed to InstallTool. In our prior release candidate we also noted that CakeHostBuilder has been removed and CakeHost can be used directly.

With Cake.Frosting 0.38.x:

// Create the host.
var host =
    new CakeHostBuilder()
        .WithArguments(args)
        .UseStartup<Program>()
        .UseTool(new Uri("nuget:?package=ReportGenerator&version=4.8.1"))
        .Build();

// Run the host.
return host.Run();

With Cake.Frosting 1.0:

// Create and run the host.
return
    new CakeHost()
        .UseContext<BuildContext>()
        .InstallTool(new Uri("nuget:?package=ReportGenerator&version=4.8.1"))
        .Run(args);

In preparation for the 1.0 release, we've now set the recommended version of Cake.Core for addins to target to 1.0.

This won't break the build but you might see warnings like below when Addins/Modules are loaded.

The assembly 'Cake.DotNetTool.Module, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null'
is referencing an older version of Cake.Core (0.33.0).

Addin authors can start preparing for the 1.0 release by starting to build against Cake.Core version 1.0.0-rc0003.

Upgrading

See Upgrade instructions for documentation about breaking changes in this release.

Contributors

Contributions were included from:

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

Issues

As part of this release we had 9 issues closed.

Breaking change

  • #3050 Frosting: Rename CakeHost extension from UseTool to InstallTool

Feature

  • #3020 Migrate to Spectre.Console

Improvement

  • #3018 Cake displays raw ANSI output after running specific executables
  • #3029 Add ICakeArguments.GetArgument extension
  • #3009 Make Cake Core CakeDataService Public

Bug

  • #3007 Different arguments between script runner and Frosting
  • #3032 Frosting project fails on Linux
  • #2961 Update dotnet cake usage instructions (dotnet cake --help)
  • #2066 cake.coreclr help information error