All Versions
Latest Version
Avg Release Cycle
268 days
Latest Release
1412 days ago

Changelog History

  • v3.0.0-beta Changes

    April 12, 2020

    First actually usable release after Nake was migrated to .NET Core.

    ๐Ÿ†• New Features

    • ๐Ÿณ The easiest way to invoke the command line via await "docker ps -a" with automatic cross-platform escaping of arguments. The underlying execution is done via MedallionShell package
    • Since MedallionShell operates on a string array for arguments, which is verbose, the Nake introduces special syntax to construct app invocation strings similar to existing shells: await "app {arg1} {arg2}".Use spaces to delimit arguments. If an argument contains spaces use single quotes 'arg with space'. If it contains single quote - just double it 'contains '' quote'. The Nake will split the string into a string array and then MedallionShelll will properly quote the arguments in a platform-dependent syntax
    • ๐Ÿ‘ Backslash () is now supported as a line continuation symbol for verbatim command strings
    • ๐Ÿ“ฆ Full IntelliSense support in VSCode (thanks for plain C# compatibility, dotnetscript VSCode extension and distribution of Nake.Meta and Nake.Utility libraries as nuget packages)
    • ๐Ÿ‘Œ Support for referencing Nuget packages in scripts, thanks to dotnet-script project dependency package
    • ๐Ÿ‘ Async task support. Including safe concurrent execution with run-once guarantee for Steps
    • Environment variables inlining (%VAR%) is now dependent on scope: inlined at compile time for constants and live bound to the environment for variable scopes
    • The NakeScriptDirectory variable is now inlined according to a script location
    • ๐Ÿ— As a consequence of building on top of MedallionShell package, piping and standard streams redirects are supported when command line invocations are created via Run(cmd)
    • ๐Ÿ–จ Tee helper class when you want to both print to std out and capture output

      var tee = new Tee(Log.Out); var result = await Run($"docker images list").With(tee); Assert.That(result.Success); Assert.That(tee.StandardError().Count, Is.EqualTo(0)); Assert.That(tee.StandardOutput().Count, Is.GreaterThan(0));

    ๐Ÿ’ฅ Breaking Changes

    • Nake.Run -> Nake.Shell
    • Nake.Exec(MsBuildTask) -> MsBuildTask.Exec() - as extension method
    • MSBuildExtensions -> MsBuildExtensions
    • ๐Ÿ— Microsoft.Build.Tasks and Microsoft.Build.Utilities are not imported by default
    • ๐Ÿ“ฆ Meta and Utility are now published as separate packages and need to be nuget imported

    Known Issues

    • โช We don't yet support multi-level caching (script references vs script code) which leads to unnecessary nuget restores when only the script code changed
    • ๐Ÿ“ฆ Not all of the script compilation hacks were backported from dotnet-script so referencing some of the nuget packages will not work as expected (ie packages with native libraries)
    • ๐Ÿ“š The automatic quoting of variables in string interpolations advertised in documentation is not yet implemented
    • ๐Ÿš€ The syntax for calling nested tasks is still dot-based (ie dotnet.tool list) instead of space-based (dotnet tool list). That will be resolved in next release
  • v2.3.0 Changes

    September 05, 2014

    ๐Ÿ†• New feature:

    • ๐Ÿ‘Œ Support for Enum parameters
  • v2.2.0 Changes

    September 05, 2014

    ๐Ÿ›  Fixes:

    • ๐Ÿ”ฆ Exposed extension methods to deal with MSBuild task conversions
    • App.Fail now shows error message in red color

    ๐Ÿ’ฅ Breaking change:

    • โš™ Run.MSBuild was renamed to Run.Exec
  • v2.1.1 Changes

    August 20, 2014
    • ๐Ÿ›  Fixed ambigious FS overloads and inconvenient env var in-lining behavior
    • ๐Ÿ‘ Get rid of MSBuild engine. Just using cmd-line is much better
    • Introduced new Exec function to run cmd-line executables
    • ๐Ÿ‘‰ Make explicit conversion to string with ToString() overload and to array of TaskItem
  • v2.0.19 Changes

    August 13, 2014

    ๐Ÿš€ Standalone release 2.0.19

  • v2.0.12 Changes

    June 22, 2014

    V2 went gold!

  • v2.0.11-beta Changes

    May 30, 2014

    ๐Ÿš€ Standalone release 2.0.11-beta

  • v2.0.10-beta Changes

    May 30, 2014

    ๐Ÿš€ Standalone release 2.0.10-beta

  • v2.0.8-beta Changes

    May 28, 2014

    ๐Ÿš€ Standalone release 2.0.8-beta