Cake v0.24.0 released

Published
Friday, 29 December 2017
Category
Release Notes
Author
devlead

Version 0.24.0 of Cake has been released.

As a little holiday gift from the Cake team and contributors, the last version for 2017 just shipped! This release shouldn't have any breaking changes, but it does have several improvements, bug fixes, and a couple new features.

A notable new feature is module bootstrapping built into the Cake script runner, which lets you download and install modules from NuGet with a #module preprocessor directive in your build script, similar to what you've previously already been able to do with #tool and #addin.

#module nuget:?package=Cake.UrlLoadDirective.Module&version=1.0.2

The only caveat is that as modules can change and extend the internals of Cake, this bootstrapping needs to be done before Cake executes. This is solved by bootrapping being it's own step by invoking Cake with a --bootstrap argument before you execute the script normally.

./cake.exe build.cake --bootstrap
./cake.exe build.cake

Notable amongst the improvements is that we've upgraded to Roslyn 2.6.1 which gives you C# 7.2 support in your Cake scripts.

And as always thanks to all Cake contributors and users, Cake wouldn't have been possible without you!

Contributions were included from:

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

As part of this release we had 33 issues closed.

Features

  • #1950 Allow Cake modules to be bootstrapped by Cake in a pre-processing phase
  • #1833 NUnit: Add support for /labels
  • #1653 Add Before and After options to NUnit3Labels enum
  • #74 MSpec support

Bugs

  • #1957 Use working directory instead if initial script path for resolving tools directory in NuGetLoadDirectiveProvider
  • #1939 Bug - TypeExtensions.GetFullName doesn't handle nested types correctly
  • #1933 NuGetPackSettings.Properties does not support whitespaces.
  • #1930 The "out" parameters are not compiled properly.
  • #1915 Only set working directory on process runner if set in settings
  • #1889 XmlPoke ignores BOM encoding settings
  • #1874 NuGet script load: Do not add include for all cake scripts when include already specified

Improvements

  • #1968 Add interface for AssemblyVerifier so that it can be mocked
  • #1960 Update Roslyn to 2.6.1
  • #1955 ResultsDirectory is missing from DotNetCoreTestSettings
  • #1952 Add support for class/namespace/method arguments for XUnit2
  • #1946 Add option to pack files into the NuGet tool directory
  • #1943 Chocolatey package dependencies cannot be set using the ChocolateyPackSettings
  • #1936 Move to signing service v2
  • #1931 Allow passing a nuget.config as environment variable or in cake.config
  • #1924 Set UserAgent for in process nuget
  • #1922 GitVersion is missing AssemblySemFileVer
  • #1912 Support for DotCover Process Filter
  • #1910 MSBuild property values should escape carriage return and line feed
  • #1855 SignTool is not found with latest windows 10 SDK
  • #1796 Obsolete DotNetBuild and ultimately remove it
  • #1692 Log script compilation warnings and other diagnostics
  • #1522 The MSTest tool doesn't pick up the mstest.exe from Visual Studio 2017

Documentation

  • #1811 Add code sample to build system properties