All Versions
9
Latest Version
Avg Release Cycle
268 days
Latest Release
1668 days ago
Changelog History
Changelog History
-
v3.0.0-beta Changes
April 12, 2020First 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
andNake.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 outputvar 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 methodMSBuildExtensions
->MsBuildExtensions
- ๐
Microsoft.Build.Tasks
andMicrosoft.Build.Utilities
are not imported by default - ๐ฆ
Meta
andUtility
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
- ๐ณ The easiest way to invoke the command line via
-
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, 2014V2 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