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
andActivationDirectory
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
usingEnvironment.TickCount64
and use on hot paths by @ReubenBond in #7246 - Add and use
ConcurrentObjectPool
instead ofDefaultObjectPool
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
ifdeltaTotalTime
is zero inLinuxEnvironmentStatistics
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
andIGrainFactory.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
andAzureTableDataManager
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
overis 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
andGrainInterfaceType
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 toMicrosoft.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
andTimeOnly
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