@adamralph adamralph released this Aug 3, 2015 · 194 commits to master since this release

Assets 2

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