All Versions
Latest Version
Avg Release Cycle
83 days
Latest Release
2614 days ago

Changelog History

  • v0.17.1 Changes

    February 22, 2017

    ๐Ÿ“ฆ Get it via svm, Chocolatey! or Homebrew.

    ๐Ÿš€ This Release

    ๐Ÿš€ This patch release fixes a bug with NuGet that was causing .NET Standard packages to get installed for .NET 4.5 framework assemblies.

    Issue Details

    ๐Ÿ›  Fixes

    • ๐Ÿ“ฆ scriptcs now detects the current framework version and ensures only packages for that version are installed. (#1213) - by @glennblock
  • v0.17.0 Changes

    February 12, 2017

    ๐Ÿ“ฆ Get it via svm, Chocolatey! or Homebrew.

    ๐Ÿš€ Special thanks to: @BlackFrog1, @gregoryyoung, @aarondandy, and @rickardp for their contributions to this release.

    ๐Ÿš€ This Release

    ๐Ÿš€ This is the first release in a while for scriptcs. It includes some great new features such as Pretty Printing, Support for NuGet credentials, enrichment to the execution environment and more!

    ๐Ÿ“ฆ For API users (hosting or other programmatic usage), there is one major change, the removal of members exposing Common.Logging types (#1189) from the public API. These were deprecated in version 0.15.0. As a result, the ScriptCs.Core NuGet package no longer takes a dependency on the Common.Logging package.

    ๐Ÿ’ฅ Breaking API Changes

    High impact : Common.Logging types have been removed from the scriptcs public API.

    Medium impact : The ScriptCs.Core NuGet package no longer takes a dependency on the Common.Logging package. If you are using Common.Logging for other purposes, after upgrading your project to ScriptCs.Core 0.17.0 you should check to see if NuGet has removed Common.Logging. If so, you will have to reinstall it yourself.

    Low impact :

    Affects hosters / module authors only

    • The IConsole interface has a new Width parameter.
    • ๐Ÿ–จ The IScriptEnvironment interface has new members AddCustomPrinter<T>), Print<T>(), ScriptPath, LoadedScripts, ScriptAssembly, and Initialize().
    • ๐Ÿ“œ The FileParserContext and FilePreProcessResult classes have a new member: ScriptPath

    Issue Details

    ๐Ÿ†• New Features

    • ๐ŸŒฒ Common Logging is gone! (#1190) - by @glennblock. Kudos to @adamralph for getting everything in place to allow the surgical removal.
    • ๐Ÿ–จ Pretty printing support has now been added to the REPL (#1156) - by @gregoryyoung

    ๐Ÿฑ [screen shot 2017-02-11 at 10 46 24 pm] (

    You can now access the main script and any loaded script paths using the new Env.ScriptPath and Env.LoadedScripts properties (#225) - by @glennblock

    You can access the compiled script assembly from within a script using the new Env.ScriptAssembly property. This alleviates having to use reflection or jump through hoops to get the script assembly (#244) - by @glennblock

    #load child.csxConsole.WriteLine("Main script:" + Env.ScriptPath); Console.WriteLine("Loaded scripts:");Console.WriteLine("\t" + String.Join(Environment.NewLine + "\t", Env.LoadedScripts.ToArray())); Console.WriteLine("Assembly:" + Env.ScriptAssembly);

    ๐Ÿฑ screen shot 2017-02-11 at 10 56 50 pm

    โž• Added a ScriptCs Nuget package which has all the binaries. This allows running scripts like on a CI server simply by installing the package from NuGet. Also makes it easy to include ScriptCs binaries in a project. (#1061) - by @glennblock

    โž• Added new -e and --eval options for allowing execution of code passed at the command line. (Currently does not work with svm due to a bug) (#1085) - by @glennblock

    ๐Ÿฑ screen shot 2017-02-12 at 10 22 12 am

    Global Credential provider can now be set for NuGet. (#1018) - by @aarondandy

    ๐Ÿ›  Fixes

    REPL command help displays formatted to the width of the terminal. (#1047) -by @BlackFrog1

    ๐Ÿฑ replformatting

    Char literals are properly handled if they have escape chars. (#1143) - by @rickardp

    Compilation into cache no longer throws a ScriptCompilationException (#1153) - by @filipw

    ๐Ÿ’… Stylecop removed from test projects, LibLog and Mono LineEditor (#1191) - by @glennblock

    ๐Ÿ”„ Changed errors to always show in Red as opposed to Dark Red to address readability (#1198) - by @glennblock

    ๐Ÿฑ errors

    Comments can now be before directives. (#1185) - by @glennblock

    Relative paths are now handled properly (#1193) - by @glennblock

    โšก๏ธ Updated to Nuget.core 2.14.0 fixes error with ScriptCs.OctopusClient script pack (#1208) - by @glennblock

  • v0.16.1 Changes

    April 07, 2016

    ๐Ÿš‘ This hotfix addresses an issue we found with the ScriptCs.Engine.Roslyn module that affects hosters of scriptcs who are using that package.

    โฌ†๏ธ The issue does not affect direct users of scriptcs, so it is not necessary to upgrade unless you are hosting.

  • v0.16.0 Changes

    April 03, 2016

    0.16.0 is here!

    ๐Ÿ“ฆ Go get it via svm, Chocolatey or Homebrew!

    This release brings a MAJOR upgrade to scriptcs.

    ๐Ÿ†• New Roslyn!

    The most prominent feature is we've upgraded to newer Roslyn 1.0.0-rc2 bits! This is a big deal as we've been on the same bits for 3+ years and this brings some major enhancements. The new Roslyn finally brings async/await and dynamic to scripts running on .NET. Not only that, it includes awesome new language enhancements of C# 6.0, like Auto-Property initializers!

    Note - We are updating to Roslyn 1.0.0-rc2 and not the latest Roslyn 1.2.1 as the newer bits require .NET 4.6+ and this allows us to keep .NET 4.5 compat.

    ๐Ÿ Look below and see dynamic and Auto-Property initializers in action (On Windows)!

    ๐Ÿฑ screen shot 2016-04-02 at 9 41 49 am

    And here is an example using async/await!

    ๐Ÿฑ screen shot 2016-04-02 at 12 30 25 pm

    REPL enhancements from Mono

    ๐Ÿš€ This release includes enhancements in our REPL to make it behave similar to the Bash shell. This includes Emacs keybindings, history, searching, etc. Special thanks to @migueldeicaza for this contribution.

    ๐Ÿ‘€ Below you can see I have pressed ctrl+R to use reverse-search to find the code that I had entered with a. As it is reverse it found the last line that I had entered.

    ๐Ÿฑ screen shot 2016-04-02 at 9 45 18 am

    Debugging in Visual Studio

    ๐Ÿš€ A long sought after feature for scriptcs has been to enable debugging in Visual Studio. In this release we introduce the :openvs command. From the repl, you can type :openvs "[filename]" and it will create a solution for you including all the files and subdirectories in the same folder. It will then launch Visual Studio where you can execute the script and debug! You can add breakpoints, watches, etc.

    ๐Ÿ‘€ Below you can see a screenshot:

    ๐Ÿฑ debugging

    ๐Ÿ’ฅ Breaking API Changes

    Low Impact - The IConsole.ReadLine method signature has changed to string ReadLine(string prompt). This was necessary to properly support the latest REPL enhancements. This change will impact custom hosters who have provided their own IConsole implementation and it will need to get updated to support the new signature.

    Issue Details

    ๐Ÿ†• New: Upgrade to Roslyn packages 1.0.0 rc2 #1059
    ๐Ÿ†• New: OpenVS #1109
    ๐Ÿ†• New: Provide editing capabilities using Mono.Terminal.GetLine. #1118 / #1119

    ๐Ÿ›  Fixed: Cannot use array initializers #1070
    ๐Ÿ›  Fixed: Error on double handling in REPL #864
    ๐Ÿ›  Fixed: Support the dynamic keyword in the Roslyn engine #1057
    ๐Ÿ›  Fixed: v0.9.0 - Using Generic Method Call Results In "ERROR: Unable to change after type..." #580
    ๐Ÿ›  Fixed: Stack overflow in Roslyn when local variable is used before declared #691
    ๐Ÿ›  Fixed: Cannot call external methods with params args #1066
    ๐Ÿ›  Fixed: Change cache folder to being script-local #1086
    ๐Ÿ›  Fixed: NullReferenceException running script (x86 Win10, .NET 4.6) #1095
    ๐Ÿ›  Fixed: Compilation error using dynamic #1110
    ๐Ÿ›  Fixed: scriptcs -install gives a very verbose error for package not found #1114

    Thanks to our contributors!!!

    ๐Ÿš€ Thank you to the following people outside of our core team who contributed filing issues and sending PRs to this release:

    @aikeru, @ClockEndGooner, @ChrSteinert, @migueldeicaza, @nesteruk, @olagjo and @sapiens

    Thanks to Microsoft and the Roslyn team!

    ๐Ÿš€ This release would not have been possible without the support of the Roslyn team and their awesome move of releasing Roslyn under OSS!

    โšก๏ธ Look for an update in the future that will move on to the latest Roslyn bits!

  • v0.15.0 Changes

    August 03, 2015

    ๐Ÿ“ฆ Get it via svm, Chocolatey or Homebrew!

    ๐Ÿš€ This release, our first for a while, introduces a new :scriptpacks REPL command, fixes a bug which prevented else from being used in Mono and many other small enhancements, bug fixes and performance improvements as well as a significant API change. See 'Issue Details' below for more details.

    ๐Ÿš€ For API users (hosting or other programmatic usage), there is one major change, the deprecation of Common.Logging (#847). This has been replaced by LibLog, but this is an internal implementation detail, since LibLog is a source code package. The end effect for scriptcs API users is that the members which use Common.Logging types have been obsoleted in the public API and replaced with new members which use types under the ScriptCs.Contracts namespace. Support for the Common.Logging types will be removed completely in a later release and the dependency on Common.Logging will be removed entirely, so you are encouraged to switch to the new API as soon as possible.

    ๐Ÿ“ฆ All script packs, script libraries, modules, hosts and other code which uses the scriptcs NuGet packages should be changed to switch from using the Common.Logging members to the new API members as soon as possible to prevent breakage when Common.Logging is removed. For more details, see the related blog post.

    For users of ScriptCs.Hosting there is also a further minor change to make the API a little more friendly (#998).

    ๐Ÿ’ฅ Breaking API Changes

    Low impact : The ScriptCs.Hosting.IScriptServicesBuilder interface has a new method, LoadScriptPacks(bool load = true). Given there is little utility for API users in implementing this interface, it is extremely unlikely that this will cause any breakages. Indeed, this interface may even be removed in future.

    Issue Details

    ๐Ÿ†• New: Added :scriptpacks REPL command #1005
    ๐Ÿ†• New: Print exception stack traces to console when logging at debug level #987
    ๐Ÿ†• New: Warn on scriptcs -save when packages directory does not exist #989
    ๐Ÿ†• New: Better console output when script not found #1010
    ๐Ÿ†• New: Show logger name at debug and trace level #1008
    ๐Ÿ†• New: Update to Mono.CSharp 4.0.0 and NRefactory 5.5.1 #1046
    ๐Ÿ†• New: Upgrade to NuGet 2.8.6 #1072

    ๐Ÿ†• New (API): Deprecate Common.Logging usage in favour of our own logging API #847
    ๐Ÿ†• New (API): Add LoadScriptPacks method to ScriptServicesBuilder #998 (breaking - see above)
    ๐Ÿ†• New (API): Make ScriptExecutor references methods virtual #1036

    ๐Ÿ›  Fixed: else keyword not correctly parsed in Mono #1060
    ๐Ÿ›  Fixed: Namespaces and references are not properly imported within Script Libraries #1025
    ๐Ÿ›  Fixed: scriptcs -debug without -repl does not configure REPL correctly. #990
    ๐Ÿ›  Fixed: Namespace aliasing causes an exception to be thrown #826
    ๐Ÿ›  Fixed: Script pack usings don't appear in :usings #992
    ๐Ÿ›  Fixed: Command alias not shown in :help #985
    ๐Ÿ›  Fixed: Extra line breaks in scriptcs -help #962

    ๐ŸŽ Performance: Fix profile optimization #945
    ๐ŸŽ Performance: Speed up -help and -version #963

  • v0.14.1 Changes

    April 12, 2015

    ๐Ÿ“ฆ Get it via svm, Chocolatey or Homebrew!

    ๐Ÿ›  Fixed: Hotfix NuGet.Core package reference #1020

  • v0.14.0 Changes

    March 23, 2015

    ๐Ÿ“ฆ Get it on Chocolatey!

    ๐Ÿ‘€ For more information see the blog!

    ๐Ÿ†• New: Script Libraries #909
    ๐Ÿ†• New: Remove redundant $id from JSON strings in REPL #700
    ๐Ÿ†• New: Add an ":exit" command to the REPL. #427
    ๐Ÿ†• New: Ignore shebang on *nix platforms #956
    ๐Ÿ†• New: Include binstub for *nix in build artifacts #675
    ๐Ÿ†• New: Better REPL greeting message #932

    ๐Ÿ›  Fixed: Duplicate references cause script execution to fail #953

    ๐ŸŽ Performance: Only scan for modules when -m is specified #964

  • v0.13.3 Changes

    February 24, 2015

    ๐Ÿš€ This is a bug fix release.

    ๐Ÿ›  Fixed: Unable to install Script CS v0.13.2 - Get-EnvironmentVariable not recognized - #936

  • v0.13.2 Changes

    February 07, 2015

    ๐Ÿš€ This is a bug fix release.

    ๐Ÿ›  Fixed: scriptcs 0.13.1 crashes when a package has a framework assembly reference - #922

  • v0.13.1 Changes

    February 05, 2015

    ๐Ÿš€ This is a bug fix release.

    ๐Ÿ›  Fixed: Implicit installation fails in scriptcs 0.13 in a legacy folder - #912
    ๐Ÿ›  Fixed: scriptcs crashes when native DLL's are present - #913