github dotnet/orleans v7.0.0

latest releases: v8.2.0-preview1, v3.7.2, v8.1.0...
20 months ago

Release announcement post: https://devblogs.microsoft.com/dotnet/whats-new-in-orleans-7/
Migration notes: https://learn.microsoft.com/en-us/dotnet/orleans/whats-new-in-orleans

What's Changed

  • Update changelog for final 3.0.0 by @sergeybykov in #6068
  • Azure table grain storage inconsistent state on not found by @jason-bragg in #6071
  • Removed silo status check before cleaing up system targets from… by @jason-bragg in #6072
  • Fix spelling error. by @fatkenny in #6081
  • README spelling fix. by @fatkenny in #6082
  • Update Program.cs by @dustout in #6083
  • fix typo by @JTOne123 in #6086
  • Update OneBoxDeployment to .NET Core 3 by @veikkoeeva in #6092
  • Fixed typo in exception by @shawnallen85 in #6091
  • Consul: support extended membership protocol by @ReubenBond in #6095
  • Fix small typo in readme by @fdbeirao in #6100
  • Add note about Visual Studio Community Edition by @fdbeirao in #6101
  • Migrate HelloWorld sample to 3.0 by @sergeybykov in #6106
  • Add a change missed in #6106 by @sergeybykov in #6119
  • Do not include grain identifier in the ILogger category name by @sehra in #6122
  • Fix routing of gateway count changed events to registered servi… by @mindlink in #6102
  • Allow negative values in TypeCodeAttribute. Fixes #6114 by @yevhen in #6127
  • DynamoDB: support extended membership protocol by @jsteinich in #6126
  • Redact logged connection string in ADO storage provider during init by @benjaminpetit in #6139
  • Fixed CodeGenerator.MSBuild cannot ResolveAssembly in .NetCore 3.0 by @bluexo in #6143
  • Update changelog for 2.4.4. by @sergeybykov in #6147
  • Update changelog for 3.0.1 by @sergeybykov in #6148
  • Specify endpoint AddressFamily in Socket constructor by @ReubenBond in #6168
  • Make IFatalErrorHandler public so that it can be replaced by users by @ReubenBond in #6170
  • CodeGen: fix ambiguous reference to Orleans namespace by @ReubenBond in #6171
  • Update changelog for 3.0.2 by @sergeybykov in #6175
  • Switch to .NET Core SDK 3.1.100 by @sergeybykov in #6159
  • Initial cross-platform build unification by @ReubenBond in #6183
  • Avoid potential NullReferenceException when re-initializing statistics by @ReubenBond in #6179
  • Fix 'dotnet pack --no-build' by @ReubenBond in #6184
  • Migrate 'src' subdirectory to new code generator by @ReubenBond in #6188
  • Allow MayInterleaveAttribute on base grains. Fix for issue #6189 by @cjenp in #6192
  • Multi-target Orleans sln and tests by @ReubenBond in #6190
  • Update changelog for 2.4.5 by @sergeybykov in #6201
  • Updated Presence Sample added to Samples/3.0 folder by @thelaughingman in #6205
  • Serialization optimizations for .NET Core 3.1 by @ReubenBond in #6207
  • Updated Blazor Sample (both Server and Client working) added to Sampl… by @thelaughingman in #6204
  • Shorten ConcurrentPing_SiloToSilo by @ReubenBond in #6211
  • refactor(blazor sample): use asp.net core hosting like the webapi template by @ElderJames in #6208
  • Add OrleansDebuggerHelper.GetGrainInstance to aid in local debugging by @ReubenBond in #6221
  • Added ASP.NET Core co-hosting sample by @mxplusb in #6130
  • Improve logging and tracing, part 1 by @ReubenBond in #6226
  • Remove accidental commit of ASPNetCoreHostedServices folder by @ReubenBond in #6233
  • Close ConnectionManager later in shutdown stage by @benjaminpetit in #6217
  • Obsolete IGatewayListProvider.IsUpdatable by @ReubenBond in #6236
  • Avoid capturing ExecutionContext in GrainTimer and other timers by @ReubenBond in #6234
  • Allow TestTargetFrameworks property to be specified by environment by @ReubenBond in #6222
  • Expose IClusterMembershipService publicly by @ReubenBond in #6243
  • Remove defunct *nix build scripts by @ReubenBond in #6242
  • Minor perf tweak for RequestContext when removing last item by @ReubenBond in #6216
  • Change duplicate activation to a debug-level message by @OracPrime in #6246
  • Add support Microsoft.Data.SqlClient provider, fix #6229 by @voronov-maxim in #6238
  • Contributing: fixed some typos by @MaherJendoubi in #6254
  • TestCluster: support configurators for IHostBuilder & ISiloBuilder by @ReubenBond in #6250
  • Adds reading material to resilient CPS scenarios by @veikkoeeva in #6252
  • Adds MySqlConnector library using invariant MySql.Data.MySqlConnector by @veikkoeeva in #6251
  • Enable remaining test suites by @ReubenBond in #6241
  • Expose exception when initializing PerfCounterEnvironmentStatistics by @JorgeCandeias in #6260
  • Skip flaky EHStatistics_MonitorCalledAccordingly test by @ReubenBond in #6259
  • Minor serialization perf improvements for .NET Core by @ReubenBond in #6212
  • Implement mTLS support for .NET Standard 2.0 by @juyuz in #6154
  • Fix codegen incremental rebuild by @ReubenBond in #6258
  • CodeGen: combine cache file with args file and fix incremental rebuild by @ReubenBond in #6266
  • Avoid lookup when getting WorkItemGroup for SchedulingContext by @ReubenBond in #6265
  • Membership: allow a minimum grace period during ungraceful shutdown by @ReubenBond in #6267
  • Provide exception to FailFast in FatalErrorHandler by @pentp in #6272
  • Add support for DynamoDB Pay Per Request Billing Mode by @icanhasjonas in #6268
  • Use RegionEndpoint.GetBySystemName() to resolve AWS region by @icanhasjonas in #6269
  • Add missing reference to Microsoft.Orleans.Persistence.AzureStorage package by @sergeybykov in #6284
  • Support Grain Persistency TTL On dynamo DB by @AmirSasson in #6275
  • Fixing code gen for ValueTask by @jsteinich in #6285
  • Change TTL Dynamo DB Persistenecy Attribute name, as it is reserved attribute name of DynamoDB by @AmirSasson in #6287
  • Replaced throwing Exception to Logger.Warn by @JohnDebono in #6286
  • Add missing dependency to Orleans.CodeGenerator by @benjaminpetit in #6297
  • Add System.Threading.Tasks.Extensions dependency to Abstractions by @benjaminpetit in #6301
  • Added ability to skip client TLS authentication. by @Ilchert in #6302
  • Update changelog for 3.1.0-rc1 - 3.1.0-rc3 by @sergeybykov in #6295
  • Use current element for SimpleQueueCacheCursor.Element by @KevinCathcart in #6299
  • Manual stats dump #6310 by @OracPrime in #6311
  • Remove current multicluster implementation by @benjaminpetit in #6305
  • Fix SQL Server connection string by @veikkoeeva in #6320
  • Schedule Tasks and WorkItems on .NET ThreadPool by @ReubenBond in #6261
  • Schedule received messages onto .NET ThreadPool by @ReubenBond in #6263
  • Remove Message.DebugContext and related code by @ReubenBond in #6323
  • Remove GrainId clusterId constructor parameter and associated code by @ReubenBond in #6322
  • Remove AsynchAgent, Executor, and related by @ReubenBond in #6264
  • Fix GatewayPerSilo setting in TestClusterOptions by @benjaminpetit in #6326
  • Avoid registering Gateway in DI since it can be null by @benjaminpetit in #6312
  • [AWS:DynamoDB] Don't set ServiceUrl when region is provided. by @icanhasjonas in #6327
  • [AWS:DynamoDB] Explicit setting for UseProvisionedThroughput by @icanhasjonas in #6328
  • Fix build warnings by @sergeybykov in #6329
  • Change NETSTANDARD2_1 preprocessor directives to NETCOREAPP by @ReubenBond in #6332
  • Implement CleanupDefunctSiloEntries for DynamoDB membership provider by @pipermatt in #6333
  • Update changelog for 3.1.0 by @sergeybykov in #6337
  • Fix CleanupDefunctSiloMembership & MembershipTableTests by @pipermatt in #6344
  • Schedule IMembershipTable.CleanupDefunctSiloEntries more frequently by @ReubenBond in #6346
  • Fix deadlocks with MySQL Storage by @srollinet in #6331
  • AdoNet: Rename Storage table to OrleansStorage for consistency with other tables. by @alexrp in #6336
  • Basic support for pluggable grain directory by @benjaminpetit in #6340
  • CodeGenerator fixes by @pentp in #6347
  • Fix DependencyInjectionSiloStartsUsingAutofac.ClusterStart by @benjaminpetit in #6348
  • Remove new() constraint for grain persistence by @ReubenBond in #6351
  • Improve TLS troubleshooting experience by @ReubenBond in #6352
  • Avoid destructuring in log templates by @ReubenBond in #6356
  • Clear RequestContext after use by @ReubenBond in #6358
  • Undo unnecessary RequestContext.Clear in networking by @ReubenBond in #6357
  • Cleanup GrainBasedReminderTable by @ReubenBond in #6355
  • Avoid using GrainTimer in non-grain contexts by @ReubenBond in #6342
  • Add UnregisterMany to IGrainDirectory to support batch unregistrations by @sergeybykov in #6354
  • Remove test code referencing GeoCluster by @ReubenBond in #6361
  • Remove unnecessary provider runtime members by @ReubenBond in #6362
  • Remove ClientInvokeCallback by @ReubenBond in #6364
  • Remove ProcessExitHandlingOptions by @ReubenBond in #6369
  • Reorient RuntimeContext around IGrainContext by @ReubenBond in #6365
  • Simplify OrleansTaskScheduler by @ReubenBond in #6370
  • Remove IServiceProvider from IGrainContext by @ReubenBond in #6372
  • Streamline MemoryStorage and InMemoryReminderTable by @pentp in #6315
  • Fix test glitch in PersistenceProvider_Memory_FixedLatency_WriteRead by @jthelin in #6378
  • Basic implementation of IGrainDirectory using the Azure Table API by @benjaminpetit in #6366
  • Amended LinuxEnvironmentStatistics registration to register services on Linux only by @xontab in #6375
  • Fix errors reported by GitHub Semmle code analysis tools. by @jthelin in #6374
  • Omit assembly name for all types from System namespace during codegen by @ReubenBond in #6394
  • Fix System namespace classification in Orleans.CodeGenerator by @ReubenBond in #6396
  • Update performance counter dependencies by @ReubenBond in #6397
  • Update changelog for 3.1.2 by @sergeybykov in #6379
  • Remove unused legacy XML configuration files by @ReubenBond in #6400
  • Reminders period overflow issue in ADO.NET Reminders Table by @xontab in #6390
  • Reduce port clashes in TestCluster by @ReubenBond in #6399
  • Update changelog for 3.1.3 by @sergeybykov in #6407
  • Fix log message by @oleggolovkovuss in #6408
  • Use the overload of ConcurrentDictionary.GetOrAdd that takes a method by @abe545 in #6409
  • Update DotNetCore sdk to 3.1.200 by @jason-bragg in #6411
  • Read only the body segment from EventData by @jason-bragg in #6412
  • Make GrainLocator listen to cluster changes by @benjaminpetit in #6385
  • Avoid prematurely releasing mutex in TestClusterPortAllocator by @ReubenBond in #6413
  • Fix flaky locator tests by @benjaminpetit in #6421
  • Ignore not foud exception when clearing azure queues by @jason-bragg in #6419
  • MembershipTableCleanupAgent: dispose timer if cleanup is unsupported by @ReubenBond in #6415
  • Allow grain call filters to retry calls by @ReubenBond in #6414
  • Skip SiloGracefulShutdown_ForwardPendingRequest for now by @benjaminpetit in #6425
  • Avoid most cases of loggers with non-static category names by @ReubenBond in #6430
  • Remove Microsoft prefix from logging categories by @ReubenBond in #6431
  • Free SerializationContext and DeserializationContext between calls by @ReubenBond in #6433
  • Update changelog for 3.1.4 by @sergeybykov in #6435
  • Dont use iowait in cpu calcs on linux by @mchandler-manticore in #6444
  • Expose timeouts for Azure Table Storage by @govenkat-ms in #6432
  • Revert "Expose timeouts for Azure Table Storage (#6432)" by @sergeybykov in #6452
  • TLS: specify an application protocol to satisfy ALPN by @ReubenBond in #6455
  • Change the error about not supported membership table cleanup functionality into a warning by @sergeybykov in #6447
  • Improves adaptive and complex systems literature by @veikkoeeva in #6454
  • Link Code of Conduct by @terrajobst in #6457
  • Update obsoletion warning for ISiloBuilderConfigurator by @ReubenBond in #6461
  • Allow GatewayManager initialization to be retried by @ReubenBond in #6459
  • Consistently sanitize properties for Azure Table Storage reminders implementation by @ReubenBond in #6460
  • Streamline Dictionary use and remove some dead code by @pentp in #6439
  • make methods on AiTelemetryConsumer virtual; clean-up by @johnazariah in #6469
  • Setting eventIndex by @adyada in #6467
  • Expose timeouts for Azure Table Storage (part 2) by @ReubenBond in #6462
  • Update changelog for 3.1.5 by @sergeybykov in #6472
  • Do not try to group grain directory unregistration calls. by @benjaminpetit in #6473
  • Send rejections for messages enqueued on stopped outbound queue by @ReubenBond in #6474
  • Fix links to Code of Conduct by @terrajobst in #6476
  • Simplified grain identity by @ReubenBond in #6468
  • Gossip that the silo is dead before the outbound queue gets closed by @benjaminpetit in #6480
  • Stopped WorkItemGroup logging enhanchement by @pentp in #6483
  • Streamline LINQ/Enumerable use by @pentp in #6482
  • Fix a race condition in LifecycleSubject by @pentp in #6481
  • Remove IHostedClient abstraction by @ReubenBond in #6475
  • Reduce duplication within GrainFactory by @ReubenBond in #6484
  • Per grain type directory by @benjaminpetit in #6485
  • Clean up some parts of IGrainTypeResolver and related by @ReubenBond in #6479
  • Encode SiloAddress into GrainId for SystemTarget by @ReubenBond in #6487
  • Update changelog for 3.1.6 by @sergeybykov in #6490
  • Remove ObserverId from GrainReference, and add ClientGrainId & ObserverGraindId by @ReubenBond in #6491
  • Less allocations on serialization manager by @ThiagoT1 in #6493
  • Fix typo in Adventure sample by @atifaziz in #6496
  • Fix unquoted members in adventure map JSON by @atifaziz in #6497
  • Fix flakiness in Azure Storage providers introduced by #6462 by @ReubenBond in #6509
  • Support ValueTask as [OneWay] Methods Return Type by @ThiagoT1 in #6521
  • Do not reject rejection messages locally. Drop them instead by @benjaminpetit in #6525
  • Update changelog for 3.2.0-rc1 and 3.1.7 by @sergeybykov in #6538
  • New type metadata system by @ReubenBond in #6503
  • Fix MSBuild code generator support for HashSet and some other system types by @ReubenBond in #6544
  • Fix netstandard2.0 compatibility by @pentp in #6549
  • Grain Directory Redis implementation by @benjaminpetit in #6543
  • Remove unused AppDomainTestHooks type by @ReubenBond in #6563
  • Made ShouldPurge protected and virtual in eviction strategy. by @adyada in #6560
  • More graceful termination of network connections by @ReubenBond in #6557
  • Remove Message.TargetObserverId by @ReubenBond in #6492
  • Remove reflection-based code generator by @ReubenBond in #6545
  • Implement CLR type name parser and rewriter by @ReubenBond in #6546
  • Port pluggable directory fixes from 3.2.0 by @benjaminpetit in #6582
  • Adding reference parameter analyzer by @miker1423 in #6567
  • Use TaskCompletionSource.RunContinuationsAsynchronously by @ReubenBond in #6573
  • Update changelog for 3.2.0 by @sergeybykov in #6579
  • Observe discarded ping task results by @pentp in #6577
  • Constrain work done under a lock in BatchWorker by @pentp in #6586
  • Make sure LocalGrainDirectory.UnregisterManyAsync is not called from a Grain context by @benjaminpetit in #6590
  • GrainId: Activations & References by @ReubenBond in #6585
  • Support deterministic builds with CodeGenerator by @rikbosch in #6592
  • Make stuck activation unregistration more reliable by @benjaminpetit in #6593
  • Fix some xUnit test discovery issues by @ReubenBond in #6584
  • Improve ClusterClient disposal by @ReubenBond in #6583
  • Spelling error then => them by @ElanHasson in #6611
  • Update OneBoxDeployment libraries and fix fault injection test by @veikkoeeva in #6602
  • Update .NET Core SDK to 3.1.301 by @sergeybykov in #6616
  • Delete old Joining records as part of cleanup of defunct entries by @sergeybykov in #6601
  • Propagate additional transaction abort exceptions by @ReubenBond in #6615
  • Use stable hash in GrainId by @ReubenBond in #6618
  • Fix SequenceNumber for MemoryStream by @benjaminpetit in #6622
  • Fix defunct silo cleanup for Azure Table Storage by @ReubenBond in #6624
  • Fix call pattern that throws. by @rrector in #6626
  • Avoid NullReferenceException in Message.TargetAddress by @ReubenBond in #6635
  • Added 'RecordExists' flag to perisistent store so that grains can det… by @zeus82 in #6580
  • Update changelog for 3.2.1 by @sergeybykov in #6636
  • Fix named tuples in codegen by @benjaminpetit in #6641
  • Fix unobserved ArgumentOutOfRangeException from Task.Delay by @pentp in #6640
  • Remove redundant NuGet package references, particularly for .NET Core. by @teo-tsirpanis in #6638
  • SocketConnectionListener: allow address reuse by @ReubenBond in #6653
  • Update changelog for 3.2.2 by @sergeybykov in #6658
  • Avoid race in GatewaySender.Send by @ReubenBond in #6657
  • AAD authentication for Azure providers (blob, queue & table) by @aelij in #6648
  • Reduce package dependencies by @pentp in #6673
  • Use "static" client observer to notify from the gateway when the silo is shutting down by @benjaminpetit in #6643
  • Analyze running activations and report back status to callers for long-running and blocked requests by @ReubenBond in #6672
  • Fixes #6675: Update IEventHubDataAdapter to support StreamId to partition mapping by @alexmg in #6676
  • Make delay after GW shutdown notification configurable by @benjaminpetit in #6679
  • StreamId v2 by @benjaminpetit in #6660
  • Implement == and != operators in StreamId and InternalStreamId by @benjaminpetit in #6681
  • Pluggable StreamId to GrainId mapper by @benjaminpetit in #6682
  • Avoid closing known-masked connections on client by @ReubenBond in #6683
  • Set longer timeout for ASP.NET core example to match modern versions by @highlyunavailable in #6689
  • Tweak shutdown completion signalling by @ReubenBond in #6685
  • Update Newtonsoft.Json to 11.0.1 and remove redundant/unused dependencies by @pentp in #6678
  • Close some kinds of misbehaving connections during shutdown by @ReubenBond in #6684
  • Fix ordering in ASP.NET Co-hosting sample by @ReubenBond in #6693
  • Force System.Net.NameResolution version in project with Azure dependencies by @benjaminpetit in #6698
  • Update changelog for 3.3.0-rc1 by @sergeybykov in #6700
  • update dependencies for the blazor sample by @ElderJames in #6706
  • Disable flaky SiloGracefulShutdown_ForwardPendingRequest test by @ReubenBond in #6713
  • AAD authentication for Azure Event Hub by @aelij in #6667
  • Ensure that only only instance of IncomingRequestMonitor is created by @ReubenBond in #6715
  • Reduce log noise from Catalog and SiloConnectionMaintainer by @ReubenBond in #6705
  • Kubernetes hosting integration by @ReubenBond in #6707
  • Add initial workflow file for GitHub PR builds by @ReubenBond in #6692
  • Add workflow to build docs without publishing them by @ReubenBond in #6691
  • Update release notes for 3.3.0 to reflect the fact that addition of RecordExists is a potentially breaking change by @sergeybykov in #6725
  • Initial message scheduling reorganization by @ReubenBond in #6621
  • Removed filtering from streaming infrastructure by @benjaminpetit in #6711
  • Update changelog for 3.3.0-rc2 by @sergeybykov in #6727
  • Fix handling of requests to invalid activation by @ReubenBond in #6728
  • Update changelog for 3.3.0 by @sergeybykov in #6738
  • Reintroduce a simpler stream filter mechanism by @benjaminpetit in #6739
  • Point README to new nightly build feed by @ReubenBond in #6773
  • 2359 Update GenericHost to dotnet core 3.1 by @kashifsoofi in #6769
  • Update IHostEnvironmentStatistics.cs by @Kritner in #6780
  • Fix GitHub Actions ci.yml by @ReubenBond in #6788
  • Fix race in shutdown WorkItemGroups by @ReubenBond in #6785
  • Update README.md by @jingeno in #6771
  • Fix ActivationData.ToString() and SystemTarget.ToString() output by @ReubenBond in #6789
  • 2359 Upgrade HelloWorld to 3.3 by @kashifsoofi in #6768
  • 2359 upgrade chirper to 3.3 by @kashifsoofi in #6770
  • Add two samples that use Event Hub streaming by @benjaminpetit in #6760
  • Update OrleansServiceListener.cs by @danvanderboom in #6750
  • Perform self-health checks before suspecting other nodes by @ReubenBond in #6745
  • [CI] Build & publish docs on push to docs branch by @ReubenBond in #6791
  • Avoid race for stateless worker grains with activation limit #6795 by @EdeMeijer in #6796
  • Mark Kubernetes hosting package as stable by @ReubenBond in #6804
  • Fixing GrainReference.GetUniformHashCode() so that it produces uniform hashes again by @icanhasjonas in #6807
  • Format generic type parameters from generic type definition to have consistent grain interface ids for grains and interface by @Ilchert in #6777
  • Probe silos indirectly before submitting a vote by @ReubenBond in #6800
  • Fix for half and nested generics. by @Ilchert in #6810
  • Fix typo by @ReubenBond in #6814
  • Fix broken links as per #6821 by @ReubenBond in #6825
  • Fix broken link in README.md by @ChaosEx in #6824
  • Add IManagementGrain.GetActivationAddress() by @galvesribeiro in #6816
  • Support EventHubsTransportType on EventHub streams by @fuocor in #6813
  • Reduce allocations when parsing/comparing/formatting SiloAddresses, IDs, etc. by @pentp in #6823
  • Avoid disposing uncompleted task in LinuxEnvironmentStatistics by @galvesribeiro in #6842
  • Fix ToGatewayUri after #6823 by @ReubenBond in #6851
  • Fix typo in nuget package description of Microsoft.Orleans.GrainDirectory.Redis by @benjaminpetit in #6859
  • fix: genericmethodinvoker now correctly handles generic methods with overloads by @oising in #6844
  • Added ability to configure reminder period by @Chrishayes94 in #6854
  • Add ADO.NET Provider support MySqlConector 0.x and 1.x. by @buzzers in #6831
  • Improve performance of LRU.Add() by @jaslawinMs in #6870
  • Update OneBoxDeployment libraries and code and fix annoyances by @veikkoeeva in #6737
  • Remove IGatewayListListener and IGatewayListObservable by @ReubenBond in #6878
  • Flush test log output before process termination by @ReubenBond in #6876
  • Correctly log silo and client shutdown initiation and completion by @ReubenBond in #6875
  • Remove unused multicluster directory components by @ReubenBond in #6882
  • Improve output of GrainId.ToString(), InvokeMethodRequest.ToString() and Message.ToString() by @benjaminpetit in #6792
  • Close connections asynchronously and improve gracefulness by @JohnMorman in #6762
  • Remove unnecessary variable assignments by @ReubenBond in #6881
  • Ensure proper closure of file logging output by @ReubenBond in #6890
  • [Dispatcher] Moving the forwarding message by @maryammadzadeh in #6892
  • Avoid registering client observers during shutdown by @ReubenBond in #6879
  • Do not hand off grain directory during shutdown by @ReubenBond in #6883
  • Update NuGet.Config by @ReubenBond in #6873
  • Try to limit forwarding when a grain activation throws an exception in OnActivateAsync() by @benjaminpetit in #6891
  • Do not retry to send streaming events if the pulling agent has been stopped by @benjaminpetit in #6897
  • Throw an exception when trying to register an activation on an invalid silo by @benjaminpetit in #6896
  • Cleanup Kubernetes hosting package for stable release by @ReubenBond in #6902
  • Client directory by @ReubenBond in #6884
  • Update CI NuGet feed URL by @ReubenBond in #6906
  • Use TLS 1.2 when using Azure in tests by @benjaminpetit in #6909
  • Hack to force TLS 1.2 when using AppDomain based test silo by @benjaminpetit in #6916
  • Implement ISerializable fallback serializer by @ReubenBond in #6917
  • Fixing potential oversight of immutable code call by @berdon in #6923
  • Remove BinaryFormatter altogether by @ReubenBond in #6922
  • Updating Orleans.CodeGenerator.MSBuild with better documentation by @berdon in #6914
  • Update samples directory NuGet.config files by @ReubenBond in #6927
  • Added a base class to IStorage that is not generic by @zeus82 in #6928
  • Update tooling & targets to .NET 5 by @ReubenBond in #6924
  • EventHubs: Force latest version of Microsoft.Azure.Amqp by @benjaminpetit in #6935
  • Remove AssemblyLoader by @ReubenBond in #6939
  • Replace SafeRandom instances with a static ThreadSafeRandom by @pentp in #6938
  • Optimize and cleanup RingRange handling by @pentp in #6818
  • Adding analyzer to notify user classes that implement IGrain should inherit from Grain by @QueenCitySmitty in #6941
  • Only send a rejection if the message is a request by @benjaminpetit in #6946
  • Avoid Message.Id collision in the message callback dictionary lookup by @benjaminpetit in #6945
  • Fix .NET 5 CI build by @ReubenBond in #6947
  • Fix codegen NuGet package by @ReubenBond in #6949
  • Refactor Orleans.Streaming into separate packages by @ReubenBond in #6942
  • Event Hubs: Update to the latest GA package by @jsquire in #6951
  • Fix distributed load test depending on internals by @ReubenBond in #6953
  • Fix LRU race conditions and remove dead code by @pentp in #6952
  • Move all event sourcing code into Orleans.EventSourcing by @ReubenBond in #6940
  • Project and package dependencies cleanup by @pentp in #6956
  • Avoid exceptions from AsyncTimer cancellation by @pentp in #6697
  • Reduce global lock use for ConcurrentDictionary by @pentp in #6955
  • Implement C# Source Generator by @ReubenBond in #6925
  • Remove dead code in Message class by @chwarr in #6970
  • Rename Microsoft.Orleans.OrleansServiceBus package to Microsoft.Orleans.Streaming.EventHubs by @QueenCitySmitty in #6966
  • Return zero elapsed time for unstarted Messages by @chwarr in #6969
  • Add test for concurrent GrainCancellationTokens by @enewnham in #6967
  • Improve error message for OpenConnectionTimeout by @pentp in #6716
  • Fix breaking of outstanding messages when a silo shuts down by @ReubenBond in #6977
  • GrainId.ToString(): use Type if GetGrainTypeName returns null by @ReubenBond in #6965
  • Populate application parts from generated code by @ReubenBond in #6971
  • Remove dependence on AppDomain from tests by @ReubenBond in #6937
  • Call ScheduleCollection before starting processing requests by @benjaminpetit in #6975
  • Fix retry logic in PersistentStreamPullingAgent.RunConsumerCursor by @benjaminpetit in #6982
  • Code cleanup in Task Scheduler by @andrew-kuzovov in #6981
  • Remove Performance Counters package by @ReubenBond in #6972
  • Remove .NET Standard 2.0 target and set .NET Core 3.1 as the minimum by @ReubenBond in #6984
  • Fix count check when trying to create new stateless workers by @benjaminpetit in #6988
  • Remove code obsoleted by TargetFramework change by @ReubenBond in #6986
  • Remove unused code in TaskSchedulerAgent by @ReubenBond in #6995
  • Configure MemoryGrainStorageOptionsValidator by @ReubenBond in #6993
  • Remove SimpleAzureQueueAdapter by @benjaminpetit in #6998
  • Remove more unused code by @ReubenBond in #6996
  • Prevent source generator from running during design time by @ReubenBond in #7000
  • Fix a typo in AnalyzeWorkload by @linluxiang in #7009
  • TickStatus constructor access modifier changed to public by @syberside in #7038
  • Add GrainStorage.AdoNet benchmark along with concurency and larger payloads by @enewnham in #7010
  • Remove support for multiple activations in grain directory by @ReubenBond in #7047
  • Refactor PlacementService and reduce allocations by @ReubenBond in #7048
  • Catch potential exceptions in AddOnDeactivate calls by @ReubenBond in #6994
  • Do not retry handshake with consumer if agent is shutting down by @benjaminpetit in #7068
  • In PooledQueueCache, avoid cache miss if we know that we didn't missed any event by @benjaminpetit in #7101
  • Consolidated DynamoDBClientOptions by @PiotrJustyna in #7083
  • Add c#9 record support to serializer by @oising in #7108
  • Overhaul samples by @ReubenBond in #7114
  • Add Orleans.Serialization library as a high-fidelity, version-tolerant serializer by @ReubenBond in #7070
  • Fix how README files are linked within samples by @ReubenBond in #7115
  • Added token to DynamoDB client configuration. by @PiotrJustyna in #7104
  • Fix SQL Server connection string by @veikkoeeva in #7079
  • Fix SonarQube's "Any() should be used to test for emptiness" / Code S… by @marodev in #7080
  • Remove SiloHostBuilder by @ReubenBond in #7117
  • In GrainId, use concrete types instead of string and store the MembershipVersion by @benjaminpetit in #7118
  • Add Silo RoleName based placement by @Mazurkevichkv in #7061
  • EditorConfig - prefix private fields with '_' by @ReubenBond in #7125
  • Remove logging noise from MemoryStorageGrain by @ReubenBond in #7123
  • Updated AzureBlobStorage to use state type during JSON deserialization by @benthepoet in #7147
  • Fix summary reference on GrainCallFilterExtensions by @Arithmomaniac in #7163
  • Make OnStop observer optional by @pentp in #7173
  • Fix unhandled exception on k8s watcher background task by @hami89 in #7168
  • Fix streaming caching tests by @benjaminpetit in #7137
  • Clean up Counters logging by @ReubenBond in #7149
  • Fix SimpleQueueCache log calls - one of them had a broken log string by @ReubenBond in #7150
  • Added AWS profile name support to DynamoDBStorage. by @PiotrJustyna in #7159
  • Move OnexBoxDeployment to another location by @veikkoeeva in #7129
  • Cleanup dependencies by @pentp in #7178
  • Improve code generator editor experience by @ReubenBond in #7152
  • Avoid excessive locking on grainBucketUpdateLock in ClientMessageCenter by @ReubenBond in #7151
  • Set a default ClusterId and ServiceId by @ReubenBond in #7122
  • #6908 - change the ETag options when writing to Azure Blob Storage Provider by @richorama in #7187
  • Prevent exceptions from participating in reference cycles by @ReubenBond in #7196
  • Add selector for the client by @andyatwork in #7144
  • VirtualBucketsRingProvider.RemoveServer: check if removed buckets belonged to removed silo by @Horusiath in #7200
  • Initial support to CodeSpaces and Dev Container by @galvesribeiro in #7209
  • Add VSCode launch settings by @galvesribeiro in #7211
  • Add ActivationWorkingSet to monitor recently active activations by @ReubenBond in #7127
  • Refactor activation message flow by @ReubenBond in #7153
  • Fix [KeepAlive] for MemoryStorageGrain & ReminderTableGrain by @ReubenBond in #7214
  • PlacementService: improve performance, reduce directory requests, improve consistency of decisions by @ReubenBond in #7154
  • ExceptionCodec: use Activator, not ActivatorUtilities, to instantiate exceptions by @ReubenBond in #7217
  • Remove IGrainLocator.TryLocalLookup and rename TryCacheOnlyLookup by @ReubenBond in #7215
  • Reduce allocations in IOQueue by @ReubenBond in #7219
  • [CodeGen] Avoid calling GetInvokable for empty-constructable types by @ReubenBond in #7220
  • Fix ResponseCompletionSource.SetResult for exception results by @ReubenBond in #7221
  • Clean up noisy logging in DeploymentLoadPublisher by @ReubenBond in #7218
  • Fix incremental rebuild for MSBuild codegen package by @ReubenBond in #7224
  • Improved Exception serialization by @ReubenBond in #7225
  • Use more appropriate logger names for lifecycle types by @ReubenBond in #7226
  • Remove superfluous IGrainRuntime.ServiceId by @ReubenBond in #7229
  • Avoid accessing ActivationData.ActivationId in tests by @ReubenBond in #7230
  • Support custom grain directory cache implementations by @ReubenBond in #7232
  • More fix to avoid shutdown pulling agent sending messages by @benjaminpetit in #7223
  • Add IManagementGrain method to get all active grains of a given type & improve SMSDeactivation test with it by @ReubenBond in #7216
  • Fix shutdown race condition in GrainTimer by @benjaminpetit in #7233
  • Add ObjectSerializer to support serialization of known types without generics by @ReubenBond in #7235
  • Remove multi-activation grains from Catalog and ActivationDirectory by @ReubenBond in #7231
  • Remove unneccessary GrainReference method and async state machine by @ReubenBond in #7239
  • Reduce indirection in RuntimeContext by @ReubenBond in #7240
  • Change equality for IdSpan so that empty and null values are identical by @ReubenBond in #7241
  • Remove irrelevant message serialization benchmark by @ReubenBond in #7242
  • Make ActivationId a struct backed by a Guid by @ReubenBond in #7243
  • Merge HeadersContainer into Message by @ReubenBond in #7245
  • LocalGrainDirectory: reduce lookup contention by consulting cache before partition by @ReubenBond in #7244
  • Add CoarseStopwatch using Environment.TickCount64 and use on hot paths by @ReubenBond in #7246
  • Add and use ConcurrentObjectPool instead of DefaultObjectPool by @ReubenBond in #7247
  • Added distributed tracing support: activity and diagnostic listener. by @Ilchert in #6853
  • Fix break to LRU.RemoveExpired() by @ReubenBond in #7252
  • Remove NewGrainReference by @ReubenBond in #7249
  • Improve performance for ValueTask methods by @ReubenBond in #7250
  • Remove unused code in MemoryStreamBufferWriter by @ReubenBond in #7270
  • Avoid unregistering PersistentStreamPullingAgent instances by @ReubenBond in #7263
  • #7189 Updated Newtonsoft JSON library by @dpbevin in #7272
  • [Dependencies] Updating Event Hubs SDK by @jsquire in #7281
  • Add TelemetryConfiguration support for AITelemetryConsumer by @xinyi-joffre in #7278
  • [Dependencies] Updating Azure Storage Versions by @jsquire in #7288
  • Fix: wrong parameter used when throwing QueueCacheMissException by @benjaminpetit in #7295
  • Make IGrainState and IGrainStorage methods generic by @benjaminpetit in #7265
  • Remove unnecessary xml configuration files by @ReubenBond in #7297
  • Fix Response.ToString() by @ReubenBond in #7296
  • Remove ISerializableSupport namespace segment by @ReubenBond in #7298
  • Simplify IMemoryGrainStorage by @benjaminpetit in #7269
  • Fix token comparison in SetCursor (#7308) by @benjaminpetit in #7315
  • Add Google.Protobuf to benchmarks by @JamesNK in #7329
  • #6662 New UseOrleansClient for generic HostBuilder by @dpbevin in #7276
  • Rename the Consul package to Microsoft.Orleans.Clustering.Consul and clean up package metadata by @bjorkstromm in #7331
  • Rename the ZooKeeper package to Microsoft.Orleans.Clustering.ZooKeeper and clean up metadata by @bjorkstromm in #7332
  • [Perf] SerializerSessionPool should use SerializerSession constructor directly by @ReubenBond in #7334
  • Migrate to Azure.Data.Tables SDK for Azure Table Storage by @ReubenBond in #7300
  • Fix well-known static copier implementations by @ReubenBond in #7343
  • Remove unused Request types from Orleans.Serialization by @ReubenBond in #7347
  • Fix: Orleans.Hosting.KubernetesHosting: System.MissingMethodException by @highlyunavailable in #7346
  • Make Silo.WaitForMessageToBeQueuedForOutbound configurable. Fixes #7350 by @notanaverageman in #7354
  • Fix minor typo in comment in Postgres persistence setup by @nycdotnet in #7356
  • Rewrite batch build script in powershell by @benjaminpetit in #7379
  • Support additional authentication options for Azure Event Hub streams provider by @ReubenBond in #7383
  • Do not register IGrainStorage in DI unless there is a provider named "Default" by @ReubenBond in #7409
  • Fix Discord server status button link by @ReubenBond in #7413
  • Use Ordinal comparisons instead of culture sensitive comparisons by @meziantou in #7426
  • Remove closures when using ConcurrentDictionary by @meziantou in #7425
  • Flow CancellationToken in Roslyn Analyzers by @meziantou in #7428
  • Replace First and Last with indexer and FirstOrDefault with Find when available by @meziantou in #7427
  • Remove FrameworkPartAttribute by @ReubenBond in #7422
  • Fix equality comparer used in ReferencedObjectCollection's overflow dictionary by @ReubenBond in #7433
  • Support serialization of manual (non-auto) properties by @ReubenBond in #7435
  • Replace ActivationAddress by GrainAddress by @benjaminpetit in #7372
  • Initial commit for distributed tests using crank by @benjaminpetit in #7323
  • Options formatter should not format obsolete or inaccessible properties by @ReubenBond in #7432
  • Fix in Redis GrainDirectory: when deleting, check only the ActivationId by @benjaminpetit in #7378
  • Porting IOQueue lock free implementation by @brunolins16 in #7449
  • Rename CheapStopwatch.cs to CoarseStopwatch.cs by @davidelettieri in #7452
  • Fix some test code crashes caused by logging from unawaited background tasks by @ReubenBond in #7446
  • AdoNet - be more explicit when extracting DateTime from IDataRecord by @mjameson-se in #6968
  • Use DistributedContextPropagator to propagate Activities by @suraciii in #7443
  • Adding a default value to EndpointOptions.AdvertisedIPAddress by @brunolins16 in #7457
  • Create PostgreSQL migrations for version 3.5.2 by @EdeMeijer in #7490
  • Configure grain state serializer per storage provider by @benjaminpetit in #7416
  • Add a catch block in Azure DeleteQueueMessage for 404 error (#7461) by @rmt2021 in #7508
  • Small telemetry correlation fix by @Vlad-Stryapko in #7506
  • Expose deactivation reason to user code and flow timeouts for activation/deactivation by @ReubenBond in #7503
  • Upgrade to .NET 6.0.101 SDK, add .NET 6.0 target, fix packaging by @ReubenBond in #7511
  • Move RequestContext to end of message headers by @ReubenBond in #7512
  • Use ExceptionDispatchInfo.SetRemoteStackTrace API in .NET 6.0 builds by @ReubenBond in #7513
  • Add support for POCO grains by @ReubenBond in #7360
  • Fix serialization of exceptions with a null stack trace by @ReubenBond in #7533
  • Upgrade to .NET 6 and modernize by @IEvangelist in #7537
  • Use Orleans.Serialization for the default IGrainStorageSerializer by @ReubenBond in #7542
  • Facilitate attaching debugger to Orleans.TestingHost by @ReubenBond in #7541
  • Fix potential NullReferenceException during GatewayManager initialization by @ReubenBond in #7540
  • Remove last reference to gitter. by @ElanHasson in #7550
  • Add the Microsoft prefix for newly added packages by @ReubenBond in #7549
  • Don't set CpuLimit if deltaTotalTime is zero in LinuxEnvironmentStatistics by @ElanHasson in #7526
  • Fix build.cmd and test.cmd by @ElanHasson in #7527
  • Adding Road to Orleans and end to end F# Example to samples README by @AmedeoV in #7534
  • Upgrade BankAccount sample to .NET 6 by @IEvangelist in #7543
  • Upgrade the Chirper sample source code to .NET 6 by @IEvangelist in #7547
  • Fix parameter misspelling from servideId -> serviceId by @khalidabuhakmeh in #7559
  • Fix Spectre.Console format and color spelling. by @khalidabuhakmeh in #7557
  • Upgrade the ChatRoom sample to .NET 6 by @IEvangelist in #7546
  • Upgrade BlazorServer sample to .NET 6 by @IEvangelist in #7545
  • Improve StringComparer serialization for well-known comparers by @ReubenBond in #7514
  • Refuse connections with different ClusterId by @captainsafia in #7535
  • Add description element to Orleans.Sdk.csproj by @ElanHasson in #7562
  • Streaming: make PubSubStore configurable per provider by @benjaminpetit in #7551
  • In CachedGrainLocator.Unregister, remove from cache using the address by @benjaminpetit in #7568
  • Make IGrainFactory.CreateObjectReference and IGrainFactory.DeleteObjectReference synchronous by @benjaminpetit in #7552
  • Fix vote counting bug where clock skew can incorrectly cause crashes in unstable clusters by @ReubenBond in #7519
  • Improve API documentation by @ReubenBond in #7532
  • Fix some folder names by @ReubenBond in #7581
  • Enable skipped exception serializer test & apply DebuggerHidden to methods by @ReubenBond in #7585
  • Enable lifeguard improvements by default by @ReubenBond in #7580
  • Remove PerformanceTuningOptions by @ReubenBond in #7586
  • Support unmanaged and notnull constraints for grain interfaces by @ReubenBond in #7587
  • Merge Orleans.Streaming.Abstractions into Orleans.Streaming by @ReubenBond in #7583
  • Merge Orleans.Runtime.Abstractions into Orleans.Runtime by @ReubenBond in #7582
  • Analyze grain interfaces to find types which are missing serializers by @ReubenBond in #7601
  • Plumb HostBuilderContext into IHostBuilder extension methods by @ReubenBond in #7576
  • Throw exception when Binding StreamExtensions to Stateless Workers by @brunolins16 in #7574
  • Initial yaml pipeline for PR build/tests by @benjaminpetit in #7611
  • Add in-memory transport and use it by default in tests by @ReubenBond in #7609
  • Add task to explicitly use the correct SDK version by @benjaminpetit in #7615
  • Fix grain level call filter not invoked without global filters by @jbockle in #7619
  • Upgrade BlazorWasm sample to .NET 6 by @IEvangelist in #7544
  • Expand LRU acronym in LRU.cs by @pdekkers in #7622
  • Upgrade remaining samples by @IEvangelist in #7624
  • Do not forward messages while an activation is deactivating by @ReubenBond in #7637
  • Avoid rejecting pending messages when an InconsistentStateException occurs by @ReubenBond in #7640
  • [Tests] Increase leeway in ReminderTests from 100ms to 500ms by @ReubenBond in #7639
  • Protect grain against failures in MayInterleave predicate by @ReubenBond in #7638
  • Upgrade SDK to 6.0.200 and latestFeature by @ElanHasson in #7590
  • Fix cluster configuration in PingBenchmark by @ReubenBond in #7650
  • DhtGrainLocator: limit deregistration batch size by @ReubenBond in #7659
  • Issue #7626 Option to inject ConsulClient by @DerHulk in #7632
  • Distributed tests: Add rolling and reliability scenarios by @benjaminpetit in #7663
  • Simplify SiloConnection by @ReubenBond in #7669
  • Enhance IGrainCallContext for distributed tracing by @ReubenBond in #7646
  • Fix Source Link build for CI by @ReubenBond in #7674
  • Allow LocalGrainDirectory calls while shutting down by @ReubenBond in #7670
  • Simplify Gateway by @ReubenBond in #7668
  • Changing IReminderRegistry to accept GrainId by @brunolins16 in #7677
  • Update README.md and add CONTRIBUTING.md by @IEvangelist in #7680
  • Enhance distributed tracing support by @ReubenBond in #7647
  • Add an Orleans shopping cart sample app by @IEvangelist in #7694
  • Remove exception from IsPrimaryKeyBasedOnLong when key is not integer by @Dred95 in #7704
  • Remove ValidateInitialConnectivity by @benjaminpetit in #7701
  • Fix Redis directory by implementing JSON serializers by @ReubenBond in #7712
  • DynamoDB Reminders load using GSI (#7437) by @ReubenBond in #7717
  • Orleans.Reminders.DynamoDB use the Query operation for ReadRows (#7658) by @ReubenBond in #7718
  • Fix ADO.NET providers and tests by @ReubenBond in #7714
  • DynamoDB optional table create / update and update corner cases (#7681) by @ReubenBond in #7719
  • Fix ZooKeeper tests by @ReubenBond in #7715
  • Unify configuration for Consul tests by @ReubenBond in #7716
  • Minor fixes and reorganization of Azure Storage tests by @ReubenBond in #7720
  • Skip Consul tests when a connection string has not been specified by @ReubenBond in #7722
  • Allow configuring exception types for basic (no custom properties) serialization by @ReubenBond in #7299
  • Fix DynamoDB provider and tests by @ReubenBond in #7721
  • Reduce logging noise on VirtualBucketsRingProvider by @MarkNickeson in #7728
  • Skip some AzureGrainDirectory and AzureTableDataManager tests in emulator by @ReubenBond in #7729
  • Regarding issue #7099: fixes "Logging noise: Gateway refresh notifications on client" by @MarkNickeson in #7725
  • Allow multiple GenerateCodeForDeclaringAssemblyAttributes per assembly by @dave-b-code in #7731
  • Fix build.ps1 not suffixing local package builds with date by @ReubenBond in #7732
  • Enable test suites for most dependencies in GitHub Actions by @ReubenBond in #7736
  • Add Unix socket support to TestingHost by @benjaminpetit in #7748
  • Remove unreferenced Service Fabric Hosting package by @ReubenBond in #7737
  • Fix papercuts issue #7099 - silo spew on shutdown by @MarkNickeson in #7733
  • add exception to ServiceCollectionExtensions.AddFromExisting when ... by @ElanHasson in #7724
  • Account for non-determinism in ClusterHealthMonitor_NoIndirectProbes by @ReubenBond in #7754
  • Copy request arguments efficiently, in-place. by @ReubenBond in #7741
  • Code Generator: sanitize assembly name when generating target namespace by @ReubenBond in #7753
  • Update hello word sample to .Net6 by @behroozbc in #7761
  • Fix Null Reference exception in call filters by @wired010 in #7763
  • Suppress CredScan warnings for ci.yml file by @ReubenBond in #7771
  • Fix typo by @ElanHasson in #7775
  • Migrate to new pool by @benjaminpetit in #7783
  • Force installation of 3.1 and 5.0 sdk by @benjaminpetit in #7786
  • Replace bootstrap in Blazor app with MudBlazor by @IEvangelist in #7698
  • First pass at Structured Logging updates by @wired010 in #7767
  • Remove leaky cache in IdSpanCodec by @ReubenBond in #7768
  • Prefer is not null over is object by @ReubenBond in #7779
  • Performance and behavior improvements for serializations buffers by @ReubenBond in #7778
  • Add ITypeFilter interface for opting-in/out of allowing CLR types by @ReubenBond in #7781
  • Add support for serialization converters/surrogates by @ReubenBond in #7776
  • Implement call-chain reentrancy by @ReubenBond in #7770
  • Add Microsoft.Orleans.Sdk as a dependency to Client & Server metapackages by @ReubenBond in #7759
  • Remove Service Fabric tests by @ReubenBond in #7787
  • Correctly identify default grain type for an interface by @ReubenBond in #7788
  • Orleans.Core: Added checks for period >= maximum period of internal timer in SafeTimerBase. by @SeppPenner in #7782
  • Remove netcoreapp3.1 and net5.0 support in main by @benjaminpetit in #7794
  • Align namespaces for hosting extension methods by @ReubenBond in #7801
  • Suppress flow of ExecutionContext when interacting with reminders by @ReubenBond in #7789
  • Add support for serializing types using System.Text.Json by @ReubenBond in #7756
  • Broadcast channel to replace SMS by @benjaminpetit in #7735
  • Migrate to structured logging by @ReubenBond in #7803
  • Migrate FabricBot Tasks to Config-as-Code by @msftbot in #7820
  • Improve PooledArrayBufferWriter efficiency by @ReubenBond in #7815
  • Use CoarseStopwatch in CallbackData by @ReubenBond in #7809
  • Reduce lock contention in ClientState by using async send loop by @ReubenBond in #7806
  • Specify dictionary comparer in CodecProvider by @ReubenBond in #7811
  • Serialization: cache serialized SiloAddress on a per-connection basis by @ReubenBond in #7816
  • Remove TestServiceFabric from Test.cmd by @ReubenBond in #7822
  • Make package titles and descriptions consistent by @ReubenBond in #7823
  • Added support for transaction client by @jan-johansson-mr in #7805
  • Messaging: cache encoded GrainType and GrainInterfaceType by @ReubenBond in #7821
  • Remove LRU assert statements which rightly don't hold under concurrency by @ReubenBond in #7829
  • Attempt to fix CredScan by @ReubenBond in #7826
  • Change default idle activation collection age to 15 minutes by @ReubenBond in #7825
  • Reduce transcoding and allocations for JSON serializer by @pentp in #7835
  • Cleanup some unnecessary structs by @pentp in #7838
  • Remove SMS provider by @benjaminpetit in #7818
  • Migrate to use the System.Diagnostics.Metrics API to track internal metrics by @suraciii in #7814
  • Cleanup Dictionary.Remove uses by @pentp in #7840
  • Remove GrainAddress and ActivationId from Message to reduce overhead by @ReubenBond in #7813
  • Fix issues flagged by PVS Studio by @ReubenBond in #7839
  • Increase warning/analysis level and fix warnings by @ReubenBond in #7843
  • Remove incompatible activations from cache by @ReubenBond in #7846
  • IConsistentRingProvider implementations should notify immediately on subscribe by @ReubenBond in #7847
  • Use preferred exception logging pattern by @ReubenBond in #7845
  • Split Reminders out into Orleans.Reminders package by @ElanHasson in #7603
  • GrainDirectory simplification by @pentp in #7842
  • Use ISpanFormattable to reduce allocations by @pentp in #7853
  • Fix reminder providers, LocalReminderService, and tests by @ReubenBond in #7855
  • Remove TelemetryConsumers packages and port remaining statistics to metrics by @ReubenBond in #7854
  • Codegen: Auto include primary constructor parameters by @koenbeuk in #7852
  • Enable #nullable for ISpanFormattable types. by @pentp in #7859
  • Move gps tracker sample to WebApplicationBuilder by @behroozbc in #7869
  • Fix typo in ShoppingCart sample README by @windperson in #7879
  • Avoid accessing Assembly file path when publishing as a single file by @carlcamilleri in #7841
  • Fix: GrainDirectoryPartition should allow overwriting an invalid entry by @benjaminpetit in #7903
  • Fix typo in MessageFactory by @MeladKamari in #7901
  • Trim the correct queue on Chirper account state by @andreaskromann in #7890
  • Rename Microsoft.Orleans.OrleansRuntime package to Microsoft.Orleans.Runtime by @ReubenBond in #7912
  • Remove grain directory hand-off entirely by @ReubenBond in #7911
  • Optimize hashing by @pentp in #7864
  • Remove GrainReference from IGrainStorage contract by @pentp in #7870
  • Remove PlatformAbstractions on .NET 6 by @seniorquico in #7889
  • Migrate some samples to WebApplicationBuilder by @MeladKamari in #7906
  • Remove ThreadSafeRandom by @pentp in #7871
  • Optimize SiloAddress creation by @pentp in #7886
  • Change QueueId to a struct by @pentp in #7887
  • Remove GrainReference from IReminderTable contract by @pentp in #7885
  • Added ObserverManager Implementation by @j0nimost in #7863
  • Support serialization of record types in hierarchies with empty layers by @ReubenBond in #7925
  • Add diagnostic for non-settable properties by @ReubenBond in #7926
  • Add build-time analyzer for unsupported grain interface method return types by @ReubenBond in #7930
  • Fix build warnings by @ReubenBond in #7860
  • Remove unnecessary properties on Message object by @ReubenBond in #7857
  • Reduce SystemTarget-specific logic by @ReubenBond in #7856
  • [4.0] Implement cleanup defunct silo entries ado net clustering by @ElanHasson in #7928
  • Fix AzureQueueAdapterFactory.Create constructor arguments by @ReubenBond in #7942
  • Fix duplicate streaming event on resume by @benjaminpetit in #7699
  • Enable codegen on Orleans.Streaming.SQS by @benjaminpetit in #7947
  • Use explicit C# LangVersion by @pentp in #7946
  • Avoid passing Spans by reference by @pentp in #7950
  • Fix FieldOffset for PackedHeaders by @ReubenBond in #7948
  • Use XxHash32/XxHash64 by @pentp in #7949
  • Don't use MethodImplOptions.NoInlining on throw-helpers by @pentp in #7951
  • Remove obsolete net48 & netcoreapp3.1 code by @pentp in #7954
  • Target netstandard2.0 for Orleans.Serialization.Abstractions by @jsteinich in #7965
  • Optimize serializer generated code by @pentp in #7960
  • Make serializable types immutable by @pentp in #7955
  • Fix net7.0 compilation by @EgorBo in #7934
  • Rename InternalStreamId to QualifiedStreamId and make it public by @benjaminpetit in #7971
  • Improved support for implicit field ids and immutable properties by @mnmr in #7958
  • Change the activation strategy for StatelessWorkers from round-robin to on-demand by @COCPORN in #7969
  • Move grain components into ActivationDataExtra to reduce overhead by @ReubenBond in #7976
  • Fix StatelessWorkerGrainContext.GetComponent implementation. by @ReubenBond in #7975
  • In PubSub: replace extension with GrainId by @benjaminpetit in #7983
  • Remove TLS 1.1 from defaults, since it's deprecated by @ReubenBond in #7988
  • Fix compilation on C# 11 (scoped refs) & migrate to .NET 7.0 by @ReubenBond in #7987
  • Add large struct array serialization benchmark by @ReubenBond in #7984
  • Migrate all builds to single yaml pipeline by @benjaminpetit in #7994
  • Various fixes in build.yaml by @benjaminpetit in #7997
  • Delete docs.yml by @IEvangelist in #8000
  • Don't generate activators for simple invokables by @pentp in #8001
  • Interlocked MultiTaskCompletionSource by @Scooletz in #8003
  • Bump version to 7 by @benjaminpetit in #8007
  • Switch DyanamoDB provider to use IGrainStorageSerializer by @benjaminpetit in #8009
  • Cleanup code generation for [Immutable] types and members by @pentp in #7998
  • Fix immutable collections copiers by @pentp in #8002
  • Update package refs and fix build issues by @benjaminpetit in #8016
  • Modify Voting sample to use Blazor and support misuse prevention by @ReubenBond in #8013
  • Stop publishing Microsoft.Orleans.CodeGenerator.MSBuild package by @ReubenBond in #8017
  • Optimize serializer generated code (p2) by @pentp in #7995
  • Generate less code for abstract type codecs by @pentp in #8014
  • Use compound type aliases for generated classes by @ReubenBond in #7943
  • In PubSubRendezvousGrain, initialize storage before logging by @christiansparre in #8022
  • Allow configuration of OrleansJsonSerializer settings by @benjaminpetit in #8018
  • Increase default TurnWarningLengthThreshold from 200ms to 1s by @ReubenBond in #8024
  • Add new SerializerTransparentAttribute for abstract classes by @pentp in #8015
  • Make Json the default serializer for grain state by @benjaminpetit in #8019
  • Change substrings to spans by @vboltsis in #8026
  • Update packages to .NET 7 RC2 by @ReubenBond in #8027
  • Require opt-in to call chain reentrancy on a per-call-chain basis by @ReubenBond in #8023
  • Make StreamImpl and StreamSubscriptionHandleImpl Json.NET friendly by @benjaminpetit in #8028
  • Update build SDK to .NET 7.0.0-rc2 by @ReubenBond in #8031
  • Update build.yaml to perform CI build by @ReubenBond in #8032
  • Enable CodeQL on Azure DevOps Pipeline by @ReubenBond in #8033
  • Add overloads to hosting extensions which do not include HostBuilderContext by @ReubenBond in #8034
  • Fix casing on CodeQL enablement variable by @ReubenBond in #8036
  • Update Microsoft.Orleans.Sdk.targets by @IEvangelist in #8041
  • Remove ServiceBus reference from EventHub streaming project by @benjaminpetit in #8046
  • Codegen: Bind to global namespace by @koenbeuk in #8054
  • Analyzers: add explicit support for record types by @koenbeuk in #8055
  • Implement SchemaType.Referenced by @pentp in #8052
  • Reduce logging noise from OutsideRuntimeClient on shutdown by @ReubenBond in #8049
  • Activity source split for User/Runtime grain calls by @rwkarg in #8043
  • Optimize type encoding by @pentp in #8053
  • Message serialization hierarchy cleanup by @pentp in #8051
  • Fix typo and add comments in Broadcast Channel by @benjaminpetit in #8039
  • Make NullableCodec and UriCodec well-known. by @pentp in #8058
  • Make ArrayCodec and ExceptionCodec well-known by @pentp in #8057
  • Fix F# codecs and some array codecs. by @pentp in #8056
  • Use default interface methods for untyped IDeepCopier by @pentp in #8063
  • Add a test to ensure records can be serialized identically to classes by @ReubenBond in #8062
  • Support DateOnly and TimeOnly by @ReubenBond in #8064
  • Remove IBaseCodec adapters by @pentp in #8067
  • Upgrade Blazor sample to rc2 by @benjaminpetit in #8040
  • Upgrade Streaming samples to rc2 by @benjaminpetit in #8045
  • Use default interface methods for untyped IFieldCodec by @pentp in #8069
  • Fix some EventSourcing serializable types by @pentp in #8068
  • Fix SDK packaging by @ReubenBond in #8071
  • Fix regression where CodecProvider.TryGetCodec never stores the result by @ReubenBond in #8074
  • Optimize message header encoding by @pentp in #8073
  • Do not skip tests if the connection to the storage provider cannot be created by @benjaminpetit in #8082
  • Implement analyzers for grain interfaces with properties and methods with unsupported return types by @ReubenBond in #8086
  • Add diagnostic for unexpected codegen exceptions and known user errors by @ReubenBond in #8087
  • Optimize message body encoding by @pentp in #8085
  • Verify WireType in all codecs by @pentp in #8089
  • Replace ContainsKey with TryGetValue by @vboltsis in #8088
  • Introduce new helper methods for GetStream by @benjaminpetit in #8079
  • Partially revert Optimize message body encoding (#8085) by @ReubenBond in #8093
  • Add configuration methods for memory stream by @benjaminpetit in #8095
  • Add version prefix option in build.yaml by @benjaminpetit in #8094
  • Update fields IDs to zero-based for all types. by @pentp in #8090
  • Fix MultipleSubscribersOneBadActorChannelTest by @benjaminpetit in #8098
  • Pass purgeMetadataInterval in MemoryPooledCache by @benjaminpetit in #8097
  • Do not use grainType in IGrainStorage by @benjaminpetit in #8084
  • Add overloads for GrainServiceClient.GetGrainService with uint and Si… by @buzzers in #8092
  • Improve SingleWaiterAutoResetEvent implementation by @ReubenBond in #8105
  • AsyncTimer monitoring: measure overshoot only when waiting for timer by @ReubenBond in #8103
  • Migrate AdoGrainStorage to the new grain serializer by @benjaminpetit in #8081
  • Change meter name to Microsoft.Orleans by @ReubenBond in #8107
  • Optimize raw message body encoding by @pentp in #8106
  • Add codecs for Int128, UInt128, and Half by @ReubenBond in #8100
  • Update to .NET 7.0.0 by @ReubenBond in #8108
  • Remove default version suffix for Azure DevOps pipeline by @ReubenBond in #8109

New Contributors

  • @fatkenny made their first contribution in #6081
  • @dustout made their first contribution in #6083
  • @JTOne123 made their first contribution in #6086
  • @shawnallen85 made their first contribution in #6091
  • @fdbeirao made their first contribution in #6100
  • @sehra made their first contribution in #6122
  • @mindlink made their first contribution in #6102
  • @cjenp made their first contribution in #6192
  • @thelaughingman made their first contribution in #6205
  • @ElderJames made their first contribution in #6208
  • @voronov-maxim made their first contribution in #6238
  • @MaherJendoubi made their first contribution in #6254
  • @juyuz made their first contribution in #6154
  • @icanhasjonas made their first contribution in #6268
  • @AmirSasson made their first contribution in #6275
  • @JohnDebono made their first contribution in #6286
  • @Ilchert made their first contribution in #6302
  • @pipermatt made their first contribution in #6333
  • @oleggolovkovuss made their first contribution in #6408
  • @abe545 made their first contribution in #6409
  • @mchandler-manticore made their first contribution in #6444
  • @govenkat-ms made their first contribution in #6432
  • @terrajobst made their first contribution in #6457
  • @johnazariah made their first contribution in #6469
  • @adyada made their first contribution in #6467
  • @atifaziz made their first contribution in #6496
  • @teo-tsirpanis made their first contribution in #6638
  • @aelij made their first contribution in #6648
  • @jingeno made their first contribution in #6771
  • @danvanderboom made their first contribution in #6750
  • @ChaosEx made their first contribution in #6824
  • @fuocor made their first contribution in #6813
  • @Chrishayes94 made their first contribution in #6854
  • @jaslawinMs made their first contribution in #6870
  • @maryammadzadeh made their first contribution in #6892
  • @QueenCitySmitty made their first contribution in #6941
  • @jsquire made their first contribution in #6951
  • @chwarr made their first contribution in #6970
  • @enewnham made their first contribution in #6967
  • @andrew-kuzovov made their first contribution in #6981
  • @linluxiang made their first contribution in #7009
  • @syberside made their first contribution in #7038
  • @PiotrJustyna made their first contribution in #7083
  • @marodev made their first contribution in #7080
  • @benthepoet made their first contribution in #7147
  • @Arithmomaniac made their first contribution in #7163
  • @hami89 made their first contribution in #7168
  • @andyatwork made their first contribution in #7144
  • @Horusiath made their first contribution in #7200
  • @dpbevin made their first contribution in #7272
  • @xinyi-joffre made their first contribution in #7278
  • @JamesNK made their first contribution in #7329
  • @notanaverageman made their first contribution in #7354
  • @nycdotnet made their first contribution in #7356
  • @meziantou made their first contribution in #7426
  • @brunolins16 made their first contribution in #7449
  • @davidelettieri made their first contribution in #7452
  • @mjameson-se made their first contribution in #6968
  • @rmt2021 made their first contribution in #7508
  • @Vlad-Stryapko made their first contribution in #7506
  • @IEvangelist made their first contribution in #7537
  • @AmedeoV made their first contribution in #7534
  • @khalidabuhakmeh made their first contribution in #7559
  • @captainsafia made their first contribution in #7535
  • @jbockle made their first contribution in #7619
  • @pdekkers made their first contribution in #7622
  • @DerHulk made their first contribution in #7632
  • @Dred95 made their first contribution in #7704
  • @MarkNickeson made their first contribution in #7728
  • @dave-b-code made their first contribution in #7731
  • @behroozbc made their first contribution in #7761
  • @wired010 made their first contribution in #7763
  • @SeppPenner made their first contribution in #7782
  • @msftbot made their first contribution in #7820
  • @jan-johansson-mr made their first contribution in #7805
  • @koenbeuk made their first contribution in #7852
  • @windperson made their first contribution in #7879
  • @carlcamilleri made their first contribution in #7841
  • @MeladKamari made their first contribution in #7901
  • @andreaskromann made their first contribution in #7890
  • @j0nimost made their first contribution in #7863
  • @EgorBo made their first contribution in #7934
  • @mnmr made their first contribution in #7958
  • @Scooletz made their first contribution in #8003
  • @christiansparre made their first contribution in #8022
  • @vboltsis made their first contribution in #8026
  • @rwkarg made their first contribution in #8043

Full Changelog: v3.0.0...v7.0.0

Don't miss a new orleans release

NewReleases is sending notifications on new releases.