What's Changed
- 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
New Contributors
- @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
Full Changelog: v4.0.0-preview1...v4.0.0-preview2