Cake v0.30.0 released

Published
Wednesday, August 22, 2018
Category
Release Notes
Author
devlead

Version 0.30.0 of Cake has been released.

With this release we've got several improvements and bug fixes contributed from the community, so firstly big thanks to all for your continued support! In this post we would like to highlight a few of those.

Global Tool

Cake is now available as a global .NET CLI tool. This means you can easily install Cake and have it globally available in your environment using the dotnet tool command.

dotnet tool install -g Cake.Tool --version 0.30.0

Once installed, you can launch cake from anywhere using the .NET CLI

dotnet cake build.cake

Which means you can now easily bootstrap the installation of Cake, if you have .NET Core SDK version 2.1.400 or newer installed. Existing boostrappers will still work as we created a new NuGet package for the tool, which means we now have the following packages for Cake:

  • Cake - compiled for .NET 4.6.1 / Mono
  • Cake.CoreCLR - compiled for .NET Core 2.0
  • Cake.Tool - .NET tool compiled for .NET Core 2.1

Updated NuGet client

NuGet client assemblies have been updated to latest stable, this resolves issues with signed NuGet packages which could cause Cake to hang while acquiring tools and addins from NuGet.org.

Collection initializers

Setting classes collection properties have been overhauled and refactored to enable initializer syntax. Might seem small, but it's really convenient, it makes

new FooToolSettings
{
   EnvironmentVariables = new Dictionary<string, string> { ["FOO"] = "foo" }
}

become

new FooToolSettings
{
    EnvironmentVariables = { ["FOO"] = "foo" }
}

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

Feature

  • #2067 Publish as .NET Core Global Tool.

Improvement

  • #2238 Add repository metadata to NuGet packages.
  • #2234 Remove mono argument from Argument Parser.
  • #2211 DotNetCorePublishSettings doesn't contain --no-build flag support introduced in .NET Core SDK 2.1.
  • #2146 Enabling initializer syntax for all collection properties.
  • #1401 Support for dotCover configuration file.

Documentation

  • #2233 Add bootstrap argument to Help Command.
  • #2232 Add exclusive argument to Help Command.
  • #2220 Incorrect documentation for InnoSetup Alias.

Bug

  • #2228 CakeTaskExtensions are no longer accessible.
  • #2224 Add option for ProcessSettings to opt out of working directory magic.
  • #2214 Cake.CoreCLR can't handle whitespace in path.
  • #2208 WithCriteria does not work with 'DryRun' (WhatIf flag).
  • #2207 NuGet hang due to bug in NuGet 4.6.0.