Orleans v3.1.0 Release Notes
Release Date: 2020-02-23 // about 4 years ago-
Known issue:
🚀 We discovered a partial backward compatibility regression in this release. If your application targets .NET Core 3.1, a rolling upgrade from previous versions to 3.1.0 will fail. See #6392 for more details. The regression is fixed in 3.1.3.👌 Improvements and bug fixes since 3.0.0.
🚀 In this release we enabled multi-targeting,
nestandard2.0
andnetcoreapp3.1
, forMicrosoft.Orleans.Core
,Microsoft.Orleans.OrleansRuntime
, andMicrosoft.Orleans.Connections.Security
packages to leverage some performance features available innetcoreapp3.1
.🚀
Microsoft.Orleans.OrleansCodeGenerator.Build
package has been marked as deprecated in favor ofMicrosoft.Orleans.CodeGenerator.MSBuild
. We don't plan future releases ofMicrosoft.Orleans.OrleansCodeGenerator.Build
.Non-breaking improvements
- Azure table grain storage inconsistent state on not found (#6071)
- Removed silo status check before cleaing up system targets from… (#6072)
- Do not include grain identifier in the ILogger category name (#6122)
- Specify endpoint AddressFamily in Socket constructor (#6168)
- Make IFatalErrorHandler public so that it can be replaced by users (#6170)
- Initial cross-platform build unification (#6183)
- Fix 'dotnet pack --no-build' (#6184)
- Migrate 'src' subdirectory to new code generator (#6188)
- Allow MayInterleaveAttribute on base grains. Fix for issue #6189 (#6192)
- Multi-target Orleans sln and tests (#6190)
- Serialization optimizations for .NET Core 3.1 (#6207)
- Shorten ConcurrentPing_SiloToSilo (#6211)
- Add OrleansDebuggerHelper.GetGrainInstance to aid in local debugging (#6221)
- Improve logging and tracing, part 1 (#6226)
- Mark IGatewayListProvider.IsUpdatable obsolete and avoid blocking refresh calls when possible (#6236)
- Expose IClusterMembershipService publicly (#6243)
- Minor perf tweak for RequestContext when removing last item (#6216)
- Change duplicate activation to a debug-level message (#6246)
- Add support Microsoft.Data.SqlClient provider, fix #6229 (#6238)
- TestCluster: support configurators for IHostBuilder & ISiloBuilder (#6250)
- Adds MySqlConnector library using invariant MySql.Data.MySqlConnector (#6251)
- Expose exception when initializing PerfCounterEnvironmentStatistics (#6260)
- Minor serialization perf improvements for .NET Core (#6212)
- Multi-target TLS connection middleware to netcoreapp3.1 and netstandard2.0 (#6154)
- Fix codegen incremental rebuild (#6258)
- CodeGen: combine cache file with args file and fix incremental rebuild (#6266)
- Avoid performing a lookup when getting WorkItemGroup for SchedulingContext (#6265)
- Membership: require a minimum grace period during ungraceful shutdown (#6267)
- Provide exception to FailFast in FatalErrorHandler (#6272)
- Added support for PAY_PER_REQUEST BillingMode (#6268)
- Use RegionEndpoint.GetBySystemName() to resolve AWS region (#6269)
- Support Grain Persistency TTL On dynamo DB (#6275, #6287)
- Replaced throwing Exception to Logger.LogWarning (#6286)
- Added ability to skip client TLS authentication. (#6302)
- Use current element for SimpleQueueCacheCursor.Element (#6299)
- Manual stats dump #6310 (#6311)
- Fix SQL Server connection string (#6320)
- Don't set ServiceUrl when region is provided. (#6327)
- Explicit setting for UseProvisionedThroughput (#6328)
- Add explicit references to System.Diagnostics.EventLog and System.Security.Cryptography.Cng to fix build warnings. (#6329)
- Change NETSTANDARD2_1 preprocessor directives to NETCOREAPP (#6332)
- Implement CleanupDefunctSiloEntries for DynamoDB membership provider (#6333)
🛠 Non-breaking bug fixes
- Consul: support extended membership protocol (#6095)
- Fix routing of gateway count changed events to registered servi… (#6102)
- Allow negative values in TypeCodeAttribute. Fixes #6114 (#6127)
- DynamoDB: support extended membership protocol (#6126)
- Redact logged connection string in ADO storage provider during init (#6139)
- Fixed CodeGenerator.MSBuild cannot ResolveAssembly in .NetCore 3.0 (#6143)
- CodeGen: fix ambiguous reference to Orleans namespace (#6171)
- Avoid potential NullReferenceException when re-initializing statistics (#6179)
- Close ConnectionManager later in shutdown stage (#6217)
- Avoid capturing ExecutionContext in GrainTimer and other timers (#6234)
- Fix code gen for ValueTask (#6285)
- Add missing dependency to Orleans.CodeGenerator (#6297)
- Add System.Threading.Tasks.Extensions dependency to Abstractions (#6301)
- Propagate TestClusterOptions.GatewayPerSilo value in TestClusterOptions.ToDictionary() (#6326)
- Avoid registering Gateway in DI since it can be null (#6312)