ScriptCS v0.15.0 Release Notes

Release Date: 2015-08-03 // over 8 years ago
  • 📦 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