Skip to content

Releases: dotnet/orleans

v2.0.5

29 Aug 17:51
Compare
Choose a tag to compare
  • Non-breaking bug fixes
    • Use netcoreapp2.0 for msbuild target dll if using dotnet core msbuild but targeting full .net (#4895)

v2.1.0-beta1

28 Aug 23:16
Compare
Choose a tag to compare
v2.1.0-beta1 Pre-release
Pre-release
  • Major changes

  • Breaking changes

    • None
  • Non-breaking improvements

    • Test clustering: minor fixups (#4342)
    • TestCluster: wait for cluster stabilization before starting tests (#4343)
    • Avoid continuation in synchronous case (#4422)
    • Improve Dictionary allocation in RequestContext (#4435)
    • Copy elements in-place in InvokeMethodAsync (#4463)
    • Azure blob storage provider: respect UseJson setting (#4455)
    • Fix orleans integration with third party DI solution which requires public constructor (#4453)
    • Remove unused Stopwatch in Grain.OnSetupState (#4403) (#4472)
    • Add validator for ClusterOptions (#4450)
    • Non-static statistics: Round 1 (#4515)
    • Remove saving of minidumps because that functionality is platform specific. (#4558)
    • Fix Dependency Injection without changing Abstractions project (#4573)
    • Sanitize "." from azure queue name (#4582)
    • Add Client/SiloHost builder delegate to legacy GrainClient and Silo/AzureSilo (#4552)
    • Support of ValueTask as a grain method return type (#4562)
    • Convert IMembershipTableGrain into a SystemTarget (#4479)
    • Convert counter values before calling ITelemetryProducer.TrackMetric (#4623)
    • Optimize removing consumed buffers from read buffer (#4629)
    • Remove unused settings MaxPendingWorkItemsHardLimit in SchedulingOptions (#4672)
    • Udpate reference links in sql files (#4684)
    • Use netcoreapp2.0 for msbuild target dll if using dotnet core msbuild but targeting full .net (#4689)
    • Make AzureBasedReminderTable public to allow reuse in extensions (#4699)
    • Remove per-call timer (#4399)
    • Make LifecycleSubject logging less verbose (#4660)
    • Do not use ip address from interface not operational (#4713)
    • Updated Ignore(this Task) method (#4729)
    • Make azure queue name configurable (#4762)
    • Auto-installing grain extensions (#4815)
    • Allow implicit subscription attribute to be inheritable (#4824)
    • Do not place stateless worker locally if the silo is stopping (#4853)
    • When deactivating a grain, do not stop timers if there are running requests (#4830)
    • No default grains storage added to container if one is not configured. (#4861)
    • Revisit silo stop/shutdown timeout (#4875)
    • Add timeout mechanism for grain deactivation (#4883)
  • Non-breaking bug fixes

    • Fix telemetry consumer construction (#4392)
    • Fix client connection retry (#4429)
    • Fix routing in Silo Gateway (#4483)
    • Don't generate serializers for foreign types in Orleans.Streaming.EventHubs (#4487)
    • Fix NRE on AWS DynamoDB storage provider. #4482 (#4513)
    • Fix Exception thrown in MembershipOracle.TryToSuspectOrKill (#4508)
    • Fix logging level check on Grain exception (#451
    • Assign Issue property in RecordedConnectionIssue.Record(...) (#4598)
    • Fix (or workaround?) for codegen using netcore/netstandard 2.1 (#4673)
    • Don't enforce reentrancy for one way requests (#4382)
    • Cleanup Reminders PartitionKey (#4749)
    • Fix NullReferenceException in ExecutingWorkItemsTracker (#4850)
    • Fix NullReferenceException in LocalGrainDirectory when trace logging is enabled (#4854)
    • Fix dependency injection cycle when OrleansJsonSerializer is used as a serialization provider (#4876)

v2.0.4

07 Aug 21:54
Compare
Choose a tag to compare

Improvements and bug fixes since 2.0.3.

  • Non-breaking bug fixes
    • Workaround for CoreFx/#30781 when running on .NET Core (#4736)
    • Fix for .NET Core 2.1 build-time code generation (#4673)

v1.5.4

13 Jun 21:01
Compare
Choose a tag to compare

Improvements and bug fixes since 1.5.3.

  • Non-breaking bug fixes
    • Fixing codegen when a type's name contains comma (#3639)
    • Set a timeout value for the synchronous socket read operations (#3716)
  • Non-breaking improvements
    • Add MaxSocketAge to OrleansConfiguration.xsd (#3721)
    • Avoid overload checks for response messages (#3743)
    • Expedite gateway retries when gateway list is exhausted (#3758)

v2.0.3

14 May 20:18
Compare
Choose a tag to compare

This is a first patch release with a partial build -- only 9 NuGet packages got updated:

  • Microsoft.Orleans.OrleansRuntime
  • Microsoft.Orleans.OrleansServiceBus
  • Microsoft.Orleans.Runtime.Legacy
  • Microsoft.Orleans.OrleansCodeGenerator.Build
  • Microsoft.Orleans.Core.Legacy
  • Microsoft.Orleans.Transactions
  • Microsoft.Orleans.OrleansCodeGenerator
  • Microsoft.Orleans.Core
  • Microsoft.Orleans.TestingHost

The rest of the packages stayed unchanged at 2.0.0, except for the
Microsoft.Orleans.ServiceFabric meta-package which is at 2.0.2.

  • Non-breaking improvements

    • Test clustering: minor fixups (#4342)
    • TestCluster: wait for cluster stabilization before starting tests (#4343)
    • Avoid continuation in synchronous case (#4422)
    • Improve Dictionary allocation in RequestContext (#4435)
    • Copy elements in-place in InvokeMethodAsync (#4463)
    • Fix orleans integration with third party DI solution which requires public constructor (#4453, #4573)
    • Remove unused Stopwatch in Grain.OnSetupState (#4472)
    • Increase diagnostic logging in code generator (#4481)
    • Clarify UseDevelopmentClustering and UseLocalhostClustering (#4438)
  • Non-breaking bug fixes

    • fix telemetry consumer construction (#4392)
    • Fix client connection retry (#4429)
    • Azure blob storage provider: respect UseJson setting (#4455)
    • Fix routing in Silo Gateway (#4483)
    • Don't generate serializers for foreign types in Orleans.Streaming.EventHubs (#4487)
    • Fix NRE on AWS DynamoDB storage provider. (#4513)
    • Fix Exception thrown in MembershipOracle.TryToSuspectOrKill (#4508)
    • Fix logging level check on Grain exception (#4511)
    • Add validator for ClusterOptions (#4450)
    • Remove saving of minidumps because that functionality is platform specific. (#4558)

v2.0.0

28 Mar 18:26
Compare
Choose a tag to compare

v2.0.0 is the first major release of Orleans since it went open source. There is a number of major changes and improvements in it. Please refer to the documentation for more details.

Changes since 2.0.0-rc2

  • Major changes

    • All included providers obtain ServiceId and ClusterId from the global ClusterOptions and do not have those properties on their own options classes (#4235, #4277, 4290). More details in the migration guide.
    • Use string for ServiceId instead of Guid (#4262)
  • Breaking changes

    • WithCodeGeneration: accept ILoggerFactory instead of ILogger (#4204)
    • Remove Service Fabric configuration helpers & update sample (#4234)
    • Disable packaging of Orleans.Clustering.ServiceFabric (#4259)
    • Stop packaging Microsoft.Orleans.OrleansGCPUtils (#4330)
  • Non-breaking improvements

    • Add serialization methods to RulesViolationException (#4215)
    • CodeGen: only filter out generated types where the generator is Orleans (#4249)
    • Add simple retry functionality to IClusterClient.Connect(...) (#4161)
    • Grain call filters: add distinction between InterfaceMethod and ImplementationMethod (#4216)
    • Improves ADO.NET script finding by moving them to project directory (#4243)
    • protobuf-net serializer (#4170)
    • Improve startup time for localhost cluster. (#4245)
    • Client typemap refresh (#4257)
    • Conditionally include @(Compile) cache file (#4258)
    • Enable SystemTarget routing in the Gateway (#4254)
    • Add config option to override MessagingOptions.ResponseTimeout when the debugger is attached (#4193, #4307)
    • Remove [Obsolete] attributes from most legacy types (#4255)
    • Orleans.TestingHost: support for .NET Standard (#4223)
    • Add validation for pubsubstore when using persistent streams (#4273)
    • Clean up EH checkpointing (#4271)
    • Improve error message when attempting to use reminders without configuring a reminder table (#4287)
    • Ported log consistency providers from IProvider. (#4292)
    • Remove inconsistent sub builder pattern in streaming (#4289)
    • DynamoDB transaction log (#4056)
  • Non-breaking bug fixes

    • PerfCounterEnvironmentStatistics never reports CpuUsage (#4219)
    • Fix ADO.NET Reminder configuration & re-enable tests (#4214)
    • Register SiloClusteringValidator later so other validator will be called before (#4211)
    • Fixes for Multi-Cluster Support (#3974)
    • Change SQL parameter casing for Turkish parameter binding support on ODP .Net Managed (#4246)
    • Fix race condition (#4269)
    • Lease based queue balancer fixes (#4267)
    • Fixed bug in custom storage log consistency provider factory. (#4323)

v2.0.0-rc2

13 Mar 03:15
Compare
Choose a tag to compare
  • Know Issue
    If you are using the ADO.NET provider for reminders, there is a bug in the configuration extension method UseAdoNetReminderService that prevents it from working properly. The workaround is to explicitly configure the settings as in the following example:
.UseAdoNetReminderService((AdoNetReminderTableOptions options) => { })
.Configure<AdoNetReminderTableOptions>(options =>
{
  options.ConnectionString = ConnectionString;
  options.Invariant = "System.Data.SqlClient";
})
  • Major changes (since 2.0.0-rc1)

    • A new "facade" API for easier configuration of various aspects of stream providers: Persistent stream configurators (#4164)
  • Breaking changes

    • Align IClientBuilder APIs with ISiloHostBuilder (#4079)
    • Rename MembershipOptions to ClusterMembershipOptions (#4145)
    • Normalize cluster config & simplify binding IConfiguration to TOptions (#4136)
  • Non-breaking improvements

    • Improve usability of dev cluster (#4090)
    • Extensions should add their own application parts (#4091)
    • Moved IStartupTask to Runtime.Abstractions package. Address #4106 (#4108)
    • Improve configuration validators for ADO.NET configuration (#4097)
    • In ActivationCountPlacementDirector, place locally if the cache is not populated yet (#4130)
    • Improve usability of custom grain placement configuration (#4102)
    • Remove legacy configuration requirement from Service Fabric hosting (#4138)
    • Fix #4123: use List instead of IList in StaticGatewayListProviderOptions (#4147)
    • Support treating all descendants of a base class as [Serializable] (#4133)
    • Improve how grain services are registered (#4155)
    • Do not call ResolveIPAddress in EndpointOptions constructor (#4171)
    • When the silo shutdown, deactivate grain activations at an earlier stage (#4177)
    • Improved transparancy and timing of silo lifecycle. (#4175)
    • Set GrainService.Status to Started in the base implementation of StartInBackground(). (#4180)
    • Validate that a ClusterId has been specified (#4160)
  • Non-breaking bug fixes

    • ADO.NET: Fix formatting of generic class names in storage provider (#4140)
    • Fix for PerfCounterEnvironmentStatistics never reports CpuUsage (#4148)
    • Fix silo startup (#4135)

v2.0.0-rc1

27 Feb 19:26
Compare
Choose a tag to compare
  • Major changes (since 2.0.0-beta3)

  • Known issues

    • AddMemoryGrainStorage() and AddMemoryGrainStorageAsDefault() do not ensure that OrleansProviders.dll is added and inspected for grain types. In a non-default case, when silo configuration code explicitly adds application assemblies (via ConfigureApplicationParts) but doesn't include OrleansProviders.dll in the list, the memory grain storage provider will not function. The workaround is to add OrleansProviders.dll to the list via ConfigureApplicationParts. The default case, when ConfigureApplicationParts isn't explicitly called and all assemblies in the silo folder are scanned, works as expeted.
  • Breaking changes

    • Allow reentrancy within a grain call chain (#3185, #3958). Enabled by default.
    • Move legacy logging methods to legacy package (#3808)
    • Rename "SQL" to "AdoNet" everywhere (#3990)
    • Move ObserverSubscriptionManager to legacy (#3999)
    • Remove metrics publishers (#3988)
    • Make most methods of Grain class non-virtual. (#4004)
    • Refactor EndpointOptions to allow listening on an address that is different from the externally reachable address (#4005)
    • Remove statistics table publishers (#4023)
    • Add startup tasks to replace deprecated bootstrap providers (#4026)
    • Remove FastKillOnCancel setting, add ProcessExitHandlingOptions (#4036)
    • Configure default application parts if no assemblies have been added (#4058)
  • Non-breaking improvements

    • Add processing time measure on silo start up sequence and code gen (#3788)
    • Make buffer size bounded when reading connection preamble (#3818)
    • Make UnObservedExceptionHandler optional (#3829)
    • Display GrainId/type of SystemGrain and SystemTarget in GrainId.ToStringImpl (#3849)
    • Disable debug context usage (#3861)
    • Allow for null access/secret for EC2 provisioned credentials. (#3870)
    • Bring back PerfCounterEnvironmentStatistics (#3891)
    • Expose RequestContextData in PlacementTarget (#3899)
    • Mark all created threads as background & name all threads (#3902)
    • Remove Newtonsoft.JSON dependency from core abstractions (#3926)
    • Update Service Fabric to support .NET Standard (#3931)
    • Dispose InboundMessageQueue during MessageCenter disposal (#3938)
    • Removed uncessesary lock in LocalGrainDirectory (#3961)
    • Add exception msg to WithTimeout method. Refactor MembershipTableFactory (#3962)
    • Allow OrleansJsonSerializer to be used as an external serialization provider (#3960)
    • Sanitize azure queue name (#4001)
    • Outgoing grain call filters (#3842)
  • Non-breaking bug fixes

    • Fix read lock on FileLogger & FileLogConsumer. and switch to UTF8 (#3856)
    • Return the Cluster GrainInterfaceMap instead of the local one in InsideRuntimeClient (#3875)
    • Remove locks in LoadedProviderTypeLoaders and ProviderTypeLoader that appear unnecessary and caused occasional deadlocks in tests. (#3914)
    • TestCluster: set instance number for new Silo handles (#3939)
    • Use UriBuilder in ToGatewayUri() (#3937)
    • Fix deadlocks in AdoNet provider and tests caused by AdoNet driver implementations (#3163)
    • Fix FastKillOnCancelKeyPress not stopping the process. (#3935)
    • Fix logger exceptions (#3916)
    • Sort list of silos in HashBasedPlacementDirector (#3964)
    • Fix leasebasedbalancer bug (#4072)

v2.0.0-beta3

21 Dec 21:17
Compare
Choose a tag to compare
v2.0.0-beta3 Pre-release
Pre-release
  • Breaking changes

    • Remove legacy initialization from Silo class (#3795)
  • Non-breaking improvements

    • Move ServiceId to SiloOptions (#3779)
    • Do not generate serializers for classes which require the use of serialization hooks. (#3790)
    • CodeGen: reduce aggressiveness of serializer generation (#3789)
    • CodeGen: avoid potential confusion between overridden properties in a type hierarchy (#3791)
    • Fix Exception serialization on .NET Core (#3794)
    • Fix shutdown sequence in linuxcontainer (#3796)
    • Fix potential dependency cycles with user-supplied IGrainCallFilter implementations (#3798)
    • Include required provider name in GetStorageProvider exception message. (#3797)
    • Strongly typed endpoint options (#3799)
    • Fix wrong config usages (#3800)
    • Split AWSUtils into separate packages, keep original as meta package (#3720)
    • Add ClusterClientOptions to configure ClusterId (#3801)
    • Refactor transaction abstractions to enable injection of alternate protocols (#3785)
    • Wrap the connection preamble read check in a task (#3729)
    • Split OrleansSQLUtils into separate packages (#3793)

v2.0.0-beta2

12 Dec 22:48
0aa92f3
Compare
Choose a tag to compare
v2.0.0-beta2 Pre-release
Pre-release
  • Known issues

    • Code generation is too aggressive in generating serializers for most available types instead of just those that are directly used in grain methods (#3771). This causes excessive code being generated and compiled.
  • Breaking changes

    • Remove IGrainInvokeInterceptor that got replaced with IGrainCallFilter (#3647)
    • Migrate more configuration settings to typed options (#3492, #3736)
    • Replace DeploymentId with ClusterId and collapse them where both are defined (#3728)
  • Non-breaking improvements

    • Better align silo hosting APIs with the future generic Microsoft.Extensions.Hosting.HostBuilder (#3631, #3634, #3696, #3697)
    • Multiple improvements to code generation (#3639, #3643, #3649, #3645, #3666, #3682, #3717)
    • Throw an exception when trying to build a silo with no application assemblies specified (#3644)
    • Multiple improvements to transactions (#3672, #3677, #3730, #3731)
    • Integrate Service Fabric clustering provider with SiloHostBuilder (#3638)
    • Split Service Fabric support assembly and NuGet package into two: for silo hosting and clustering (#3638, #3766)
    • Split OrleansAzureUtils assembly and NuGet package into more granular assemblies and packages (#3668, #3719)
    • Support for non-static serializers (#3595)
    • Add a timeout for synchronous socket read operations (#3716)
    • Support for multiple fallback serializers (#3688)
    • Enable TCP FastPath support (#3710)
    • Re-introduce run time code generation that can be enabled at silo host build time (#3669)
    • Support for Oracle in AdoNet (SQL) clustering provider (#3576)
    • Disallow creating an observer reference via CreateObjectReference from within a grain (#3757)
    • Expedite gateway retries when gateway list is exhausted (#3758)
    • Support for serialization life cycle methods that re-enables serialization of F# types and other such types (#3749)