mholo65

Cake v0.27.0 released

Published
Thursday, April 19, 2018
Category
Release Notes
Author
mholo65

Version 0.27.0 of Cake has been released.

The third release of 2018 is here! It contains mostly improvements and bug fixes. While this release doesn't contain any known breaking changes, we would like to take this opportunity to inform you that the next release will. The next release will introduce typed contexts to Cake, this will really improve the flexibility of Cake scripts, read more about this here.

The most notable bug fixes in 0.27.0 were made around addin installation. We updated the internals of Cake to use v4.6.0 of the NuGet Client libraries, which comes with performance improvements. Cake now also supports "offline" builds when using in-process NuGet, this was kind of a regression since it used to work with the old nuget.exe based installer. Another enhancement is that we've added a runtime assembly resolver for assembly versions that can't be found. This tackles most of the issues experienced around addin loading and dependency resolution. Last but not least, in-process NuGet now also supports specifying multiple NuGet sources through config. This can be achieved by separating sources using semicolon (;) when setting the NuGet Download Url configuration value. Below is an example using cake.config:

Last but not least, a friendly reminder that if you haven't pinned to a specific version of Cake, you should do it now :-) More information about pinning to a specific version can be found here.

Contributions were included from:

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

Read more...

Cake v0.26.0 released

Published
Tuesday, February 27, 2018
Category
Release Notes
Author
mholo65

Version 0.26.0 of Cake has been released.

The second release of 2018 is here! This release brings you the long awaited .NET Core 2 support. A special thanks goes to Adam Hathcock for all the hard work with the contribution.

One of the benefits in moving to .NET Core 2 is that addin authors should no longer need to target both net46 and netstandard1.6 in order to support Cake and Cake.CoreCLR. Instead addins should now be able to target netstandard2.0 only and still be compatible with both Cake and Cake.CoreCLR. At the time of writing, we are experiencing an issue with loading netstandard2.0 assemblies when running Cake on mono. We are currently investigating this and will provide a hotfix once the issue is resolved.

While working on this release, we introduced a breaking change in one of the interfaces in Cake.Core. Because of that, we bumped the latest breaking change version number to 0.26.0. In practice this means that Cake will not load addins targeting a lower version than 0.26.0 of Cake.Core. This is by design and for your protection. Even though the breaking change should be compatible with the majority of the addins out there. one can never be sure. However, if you really need to use an incompatible addin and have verified that the breaking change introduced doesn't concern the addin directly, we'll allow you to temporarily opt-out of the assembly verification until addin author has released a version of the assembly targeting the minimum required version of Cake.Core. See the skip verification configuration value for more details.

Contributions were included from:

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

Read more...

Intellisense improvements in Visual Studio Code

Published
Wednesday, February 21, 2018
Category
Announcement
Author
mholo65

In case you missed it, intellisense support for Cake files in Visual Studio Code was announced a couple of months ago. Since then, we have actively been working on improving it, and the v1.14.0 release of C# for Visual Studio Code comes with some Cake specific improvements we'd like to share with you. In the v1.28.0 release notes for Omnisharp-Roslyn we can read the following:

Read more...

Intellisense in Visual Studio Code

Published
Wednesday, November 8, 2017
Category
Announcement
Author
mholo65

As some of you might have noticed, we have been working on getting intellisense working for Cake files in Visual Studio Code. Today we are happy to announce that the OmniSharp project have merged our pull requests (#932 and #1681) and released v1.13.0 of the C# extension for Visual Studio Code, which includes support for Cake. In addition to this, we have released a new tool, called bakery, which is the script analysis and code generation engine making this possible. More information about bakery and how everything works behind the scenes are coming in an upcoming blog.

Read more...

Cake v0.22.0 released

Published
Wednesday, September 13, 2017
Category
Release Notes
Author
mholo65

Version 0.22.0 of Cake has been released.

So, let's be clear, this release will break things - but it is all intentional!

This release was initially about updating Roslyn, unifying scripting engines, and targeting .NET 4.6. But one thing led to another which resulted in better support for tool and addin versioning when using preprocessor directives, and an optional in-process NuGet client.

Updating Roslyn and unifying scripting engines has been a long-awaited improvement for many of you. This brings you C# 7 features (without need for --experimental switch), debugging with Mono (as we completely removed the old Mono scripting engine), and much, much more. It also allows us to ship Roslyn with Cake, so there's no need for Cake to actually download Roslyn anymore. In order for us to update Roslyn, we also needed to change target framework to .NET 4.6.

Tool and addin versioning when using preprocessor directives has been an issue, which has caused many questions. E.g. you may have noted that when changing version for a tool or addin, the old version was still used. Prior to this release, the only solution was to delete the tool/addin from the tools folder. This is now fixed as Cake supports side-by-side downloading of different versions of tools and addins.

Due to unpredictable results when downloading packages using nuget.exe, tool/addin versioning was solved by adding a intermediate directory containing the version number. This intermediate directory can however cause MAX_PATH issues when downloading some specific packages. To address this issue, we implemented functionality in Cake.NuGet to allow Cake to download tools and addins without the need for nuget.exe. This functionality is currently optional through configuration, and is the first step towards removing need for nuget.exe in Cake. Example usage to opt-in for the in-process NuGet client:

The in-process NuGet client also gives the possibility to load assemblies from NuGet dependencies. This behaviour can be enabled either via configuration or directive. Example usage for loading dependencies:

or

As 0.22.0 has several breaking changes, it will require addins to reference Cake.Core 0.22.0 or newer to be loaded, there's a "you're on your own anything can happen" setting to skip verification but we recommend to start targeting the newer version as soon as possible. Example usage to skip verification:

We have said it before, but here it comes again. Regardless of intentional or unintentional breaking changes, the possibility of new releases breaking something is why we always recommend you pin the version of Cake you're running, thus avoiding any unplanned broken builds. You can read more about pinning Cake version here. We always try to avoid breaking changes, but we think these new features and improvements justify the friction, and we hope you will too!

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.

Read more...