Cake v0.18.0 released

Published
Tuesday, 7 March 2017
Category
Release Notes
Author
devlead

Version 0.18.0 of Cake has been released.

This release of Cake sees a number of new features added, as well as some bug fixes, however, most importantly, there's a couple of breaking changes.

The minor breaking changes involve the old obsoleted DNU alias have been removed and WiXHeat had an incorrect signature which have been corrected.

The bigger breaking change is that with this release addins must target at least Cake.Core version 0.16.2 or later, addins targeting older versions will abort script execution. Many addins have already been updated and the many of those who have not yet upgraded, have pull requests ready for them. If any of the addins you use should be affected by this, please raise an issue in that addins repository. We've tried to reach out to all authors, but with hundreds of addins we've surely missed one or two. We do recommend you pin your builds to the version of Cake you using, that way you reduce the risk of builds failing because breaking changes. Instead you can do a controlled upgrade and take your time to sort any issues.

Amongst the more notable new features is MSBuild / Visual Studio 2017 support and support for loading scripts from NuGet.

We're also pleased to announce that from this release and forward all official Cake binaries will be signed with a .NET Foundation certificate, this isn't strong naming, so it won't affect addins in any way, just ensure the authenticity of the binaries. image

Worth noting in a near future release we will update to and unify around latest stable version Roslyn scripting - this means Mono scripting engine will be removed, we will still run on Mono, but we will require a newer version of Mono than we do today. This will bring a lot of benefit for Cake as we will be able to support the latest C# features and reduce the maintenance burden and error process of maintaining multiple scripting engines.

Please let us know if you run into any issues with this latest release.

Once again, the Cake Team have been overwhelmed by the number of contributions from our Community Members. Simply put... THANK 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 59 issues closed.

Breaking changes

  • #1396 Remove obsoleted DNU aliases
  • #1276 WiXHeat misleading signature- no mode operates on file list

Features

  • #1518 Add "build tools" path for MSBuild 2017 to MSBuildResolver
  • #1492 Add ChocolateyNew Alias
  • #1481 Add support for NuGet Init and Add commands
  • #1466 NUnitSettings does not have X86 property
  • #1416 Enhance TeamCity provider
  • #1399 Support for TF Build Commands
  • #1381 Provide ability to add Custom attributes when creating AssemblyInfo
  • #1377 Support for uninstall packages using Chocolatey
  • #1374 Provide ability to specify name for xunit report
  • #1369 MSBuild support for Visual Studio 2017 (aka "15")
  • #1352 Add support for importing namespaces at the assembly level
  • #1301 Add DotCover Merge
  • #1249 Allow modules to listen for script lifecycle events
  • #1166 Support optional parameters on alias methods
  • #1053 Support downloadable .cake script directive
  • #887 Extending the Sign command
  • #600 ParseAssemblyInfo does not work .vb

Bugs

  • #1483 Duplicate depedencies references in project.json for Cake.Testing.XUnit
  • #1448 Cake.Testing package depends on xunit.core package
  • #1441 Optional parameter codegen not invariant
  • #1427 XBuildRunner#GetToolExecutableNames returning wrong executables
  • #1426 Space in Reference Preprocessor Directive Throws Illegal characters in path
  • #1389 Spaces in #load path will cause an Illegal characters in path error.
  • #1386 Add CakeNamespaceImport for BuildSystem Aliases
  • #1363 HeatSettings.OutputGroup is unusable
  • #1349 OctoPack not passing --format to octo.exe
  • #1342 Error: Unknown Token when directory contains @ character.
  • #1260 Using reserved name for parameter name causes a parser failure

Improvements

  • #1513 signtool.exe should be called only once when signing multiple files
  • #1510 Missing MSBuild15 on enum NuGetMSBuildVersion for VS 2017
  • #1504 Add ChocoPush alias for an IEnumerable
  • #1503 Add ChocoPack alias for an IEnumerable
  • #1487 Usage of -NoCache on installing tools and addins
  • #1469 Mac OSX is not properly detected when running on Mono
  • #1463 NuGet Tool Locator system paths on mac need updating
  • #1455 Logging throws exception when there are curly braces in the string
  • #1439 CopyDirectory - Missing Log information
  • #1438 Teach XmlPeek to silence warnings, if needed
  • #1424 Http call in unit test
  • #1403 Add optional Go.CD Server URL Parameter to GetHistory
  • #1379 Add RedirectStandardError to ProcessRunner
  • #1344 Cake's default tools / addins / modules paths are not so default as they seem.
  • #1338 ArgumentException with illegal character information
  • #1293 Add mechanism to validate addins
  • #670 Support XUnit's x86 .exe runner
  • #568 Add Gitter and Twitter Notifications

Documentation

  • #1501 DownloadFile typo in docs
  • #1495 Typo in SignTool docs
  • #1489 Fix typos in GitVersion documentation
  • #1472 Correct issue with GitLink Alias Category
  • #1434 Fix commented example for DotNetCoreTest
  • #1388 Fix doc comments in InnoSetupAliases
  • #1373 Fix typo in comment
  • #1372 Fixed Spelling Mistake.