Releases: dotnet/orleans
v7.2.5
What's Changed
- Avoid resending unchanged ClusterManifest to clients by @ReubenBond in #8772
- Fix
PooledBuffer
serialization & initialize ActivationMigrationManager on startup by @ReubenBond in #8861 - Always reset RuntimeContext to previous value after use (#8864) by @ReubenBond in #8870
Full Changelog: v7.2.4...v7.2.5
v8.1.0-preview1
New features
Integration with Aspire
This release includes initial integration with Aspire Preview 3 and later, allowing you to configure an Orleans cluster in your Aspire app host, specifying the resources the cluster uses. For example, you can specify that an Azure Table will be used for cluster membership, an Azure Redis resource will be used for the grain directory, and an Azure Blob Storage resource will be used to store grain state. The integration currently support Redis and Azure Table & Blob storage resources. Support for other resources will be added later.
In the app host project, an Orleans cluster can be declared using the AddOrleans
method, and then configured with clustering, grain storage, grain directory, and other providers using methods on the returned builder:
var storage = builder.AddAzureStorage("storage");
var clusteringTable = storage.AddTables("clustering");
var defaultStorage = storage.AddBlobs("grainstate");
var cartStorage = builder.AddRedis("redis-cart");
var orleans = builder.AddOrleans("my-app")
.WithClustering(clusteringTable)
.WithGrainStorage("Default", grainStorage)
.WithGrainStorage("cart", cartStorage);
// Add a server project (also called "silo")
builder.AddProject<Projects.OrleansServer>("silo")
.WithReference(orleans);
// Add a project with a reference to the Orleans client
builder.AddProject<Projects.FrontEnd>("frontend")
.WithReference(orleans);
In the client and server projects, add Orleans to the host builder as usual.
// For an Orleans server:
builder.UseOrleans();
// Or, for an Orleans client:
builder.UseOrleansClient();
Orleans will read configuration created by your Aspire app host project and configure the providers specified therein. To allow Orleans to access the configured resources, add them as keyed services using the corresponding Aspire component:
builder.AddKeyedAzureTableService("clustering");
builder.AddKeyedAzureBlobService("grainstate");
builder.AddKeyedRedis("redis-cart");
Resource-optimized placement
Resource-optimized placement, enabled via the [ResourceOptimizedPlacement]
attribute on a grain class, balances grains across hosts based on available memory and CPU usage. For more details, see the PR: #8815.
What's Changed
- Clarify [AlwaysInterleave] interleaves with anything, including itself by @ReubenBond in #8804
- Adds
LinearBackoffClientConnectionRetryFilter
in the default client services by @ledjon-behluli in #8793 - Microsoft.Extensions.Configuration support by @ReubenBond in #8764
- Avoid constant try/catch on a non-existing gateway for external cluster client by @ledjon-behluli in #8792
- Add Analyzer and CodeFix for duplicate method aliases (ORLEANS0011) by @ledjon-behluli in #8662
- Adds code fixer for: Report error on duplicate [Id(x)] (ORLEANS0012) by @ledjon-behluli in #8808
- Make repeatable the execution of SQLServer Ado scripts without errors by @m3nax in #8799
GenerateAliasAttribtuesAnalyzer
needs to account for file-scoped namespaces by @ledjon-behluli in #8809- Add nightly feed publishing by @ReubenBond in #8810
- Update README.md to include new nightly build feed details by @ReubenBond in #8814
- Resource optimized placement strategy by @ledjon-behluli in #8815
- Upgrade
System.Data.SqlClient
by @ledjon-behluli in #8821 - Provide cross-platform environment statistics collection + Modify
OverloadDetector
to account for memory too by @ledjon-behluli in #8820 - Centralize environment statistics filtering by @ledjon-behluli in #8827
- Add support for enabling distributed tracing via configuration switch by @ReubenBond in #8829
- Add default Redis options when Redis is configured via keyed service by @ReubenBond in #8847
- Fix insert condition check in
RedisMembershipTable
by @ReubenBond in #8848 - Downgrade Microsoft.CodeAnalyis to v4.5.0 by @ReubenBond in #8849
New Contributors
Full Changelog: v8.0.0...v8.1.0-preview1
v8.0.0
What's Changed Since v7.0.0
- Fix version suffix in build.yaml by @benjaminpetit in #8113
- Exclude samples folder from PR trigger by @benjaminpetit in #8118
- Upgrading 'Hello World' sample by @IEvangelist in #8116
- Upgrade 'Bank Account' sample by @IEvangelist in #8119
- Enable 3.x scheduled builds by @benjaminpetit in #8005
- Upgraded 'Adventure' samples by @IEvangelist in #8120
- Upgrade 'Blazor Server' sample by @IEvangelist in #8121
- Upgrade 'Blazor Wasm' sample by @IEvangelist in #8122
- Upgrade 'F# Hello World' sample by @IEvangelist in #8129
- Upgrade 'VB Hello World' sample by @IEvangelist in #8137
- Upgrade 'Tic Tac Toe' sample by @IEvangelist in #8135
- Upgrade 'TLS' sample by @IEvangelist in #8136
- Fix a typo by @m-sadegh-sh in #8143
- Add MembershipVersion to GrainDirectoryEntity by @benjaminpetit in #8151
- Fix configuration of BroadcastChannel by @benjaminpetit in #8150
- Fix a typo by @m-sadegh-sh in #8144
- Guard and check for GenerateCodeForDeclaringAssembly when type has no declaring assembly by @ReubenBond in #8156
- Fix packaging of CodeGenerator to accept project properties by @ReubenBond in #8155
- Upgrade 'Streaming' samples by @IEvangelist in #8134
- Upgrade 'Chat Room' sample by @IEvangelist in #8126
- Upgrade 'Stocks' sample by @IEvangelist in #8133
- Upgrade 'Shopping Cart' sample by @IEvangelist in #8132
- Upgrade 'GPS Tracker' sample by @IEvangelist in #8130
- Use code generated or compiled regular expressions where possible by @SukharevAndrey in #8141
- Upgrade 'Chirper' sample by @IEvangelist in #8128
- Upgrade 'Presence' sample by @IEvangelist in #8131
- [main] Add CodeQL3000 tasks by @dougbu in #8160
- Fix the bug in the Chirper sample code by @IEvangelist in #8194
- Delete empty statements as they are treated as errors by some analyzers by @SukharevAndrey in #8192
- Upgrade 'Voting' sample by @IEvangelist in #8138
- Delete samples and update README.md by @IEvangelist in #8154
- Use NuGet Central Package Management to handle dependencies' versions by @SukharevAndrey in #8191
- Optimize message serialization by @pentp in #8185
- Add TransactionFaultInjectionTests to Functional runs by @ReubenBond in #8168
- Fix images, use raw URLs from dependent repo by @IEvangelist in #8202
- Fix mariadb tests by @benjaminpetit in #8198
- Bumped KubernetesClient to v9.0.38 by @EPinci in #8199
- Optimize static codec serialization by @pentp in #8206
- Update
EndpointOptions
by @IEvangelist in #8209 - Update BroadcastChannelProvider.cs by @IEvangelist in #8225
- Remove default parameter values for
AddJsonSerializer
by @ReubenBond in #8228 - Incorporate Orleans.Redis providers by @EPinci in #8212
- Fix diagnostic for invalid grain method return types by @ReubenBond in #8234
- Add
Collection<T>
serialization codec by @ReubenBond in #8238 - Fixed bug where RedisGrainStorage would ignore GrainStorageSerializer option by @willg1983 in #8260
- correct code documentation which incorrectly refers to azure blob storage by @willg1983 in #8258
- Support
IGrainStorageSerializer
for memory grain storage by @shoneefd in #8250 - netstandard 2.1 support for Orleans.Serialization by @jsteinich in #8222
- Various improvements to Redis providers by @ReubenBond in #8261
- Add Redis storage tests based on CommonStorageTests by @willg1983 in #8265
- [Maintenance] Bumping version of some external dependencies by @EPinci in #8272
- Always run scheduled build by @benjaminpetit in #8294
- Fix serialization for records which have no properties of their own by @ReubenBond in #8289
- Expose activation working set as a metric by @ahydrax in #8291
- Implement
DeleteStateOnClear
for Redis grain storage. by @ReubenBond in #8296 - Fix
PooledArrayBufferWriter.AsMemory
by @ReubenBond in #8300 - Fix
IGrainFactory.GetGrain<T>
for unimplemented generic interfaces by @ReubenBond in #8301 - Report GC pause duration when heartbeat is stalled by @adityamandaleeka in #8281
- Set VersionPrefix in nuget pack step by @benjaminpetit in #8304
- Fix Issue #8325 redis options-validators unable to resolve options by @zeinali0 in #8326
- Fix Benchmark map Reduce by @byzworld in #8332
- Improve doc comments for ITypeFilter and ITypeNameFilter by @ReubenBond in #8328
- Improve accuracy and stability of
ActivationWorkingSet
by @ReubenBond in #8321 - Update Orleans.Reminders.csproj by @IEvangelist in #8342
- Fix type parsing of type names with generic array parameter by @ReubenBond in #8337
- Fix assembly name sanitization in code generator by @ReubenBond in #8336
- Update Protobuf Serializer by @larsfjerm in #8334
- Fix for Issue #8322 Questionable test/cast pair in OrleansJsonSerializer.cs by @Jens-G in #8329
- Adds support to Orleans.Analyzers for generic attributes by @michaelmccord in #8352
- Remove inaccurate note on observer method return types by @ReubenBond in #8344
- Prevent analyzer exception on aliased attribute names by @tboby in #8355
- ObserverManager: Guard against
null
in constructor by @bradygaster in #8358 - Allows System Target's to receive one way messages by @jsteinich in #8364
- Migrate from
FormatterServices
toRuntimeHelpers
in preparation for .NET 8 by @ReubenBond in #8362 - Don't overstep on IMessage serialization by @jsteinich in #8363
- Fix type constraints on
DefaultOptionsFormatter
andDefaultOptionsFormatterResolver
by @ReubenBond in #8384 - Code generator respects scoped usage by language version by @jsteinich in #8370
- Fix long key parsing in
DefaultStreamIdMapper
by @nichvolodov in #8378 - Protobuf copiers/codecs for data types by @jsteinich in #8359
- Add a blob container client factory for customisation by @Romanx in #7849
- Use .NextInt64() when computing random TimeSpan. by @henricj in #8382
- Fix: ORLEANS0009 - Skip Static Interface Methods by @cmeyertons in #8389
- Make ManagementGrain a reentrant, stateless worker by @ReubenBond in #8394
- Fix construction of AzureBlobGrainStorage by @ReubenBond in #8395
- Update samples README by @WesleySkeen in #8398
- Adding missing display character by @rwkarg in #8407
- Support custom grain call return types by @ReubenBond in #8415
- Fix parameter null check in RegexStreamNamespacePredicate by @scalablecory in #8429
- Documentation fix by @bill-poole in #8435
- Moving RuntimeContext check inside ReminderRegistry by @cmeyertons in #8436
- Automate more of the Kubernetes hosting experience by @ReubenBond in #8426
- MySQL migration script: Remove modi...
v8.0.0-rc2
Changes from v8.0.0-rc1
- Prevent PlacementWorker.ProcessLoop from running on foreign schedulers by @ReubenBond in #8760
- Fix stack deserialization order by @ReubenBond in #8768
- Ensure that all in-built codecs and copiers have corresponding tests, fix issues found by @ReubenBond in #8769
- Prevent external codecs from serializing types which are abstract, generated, or from the framework itself by @ReubenBond in #8765
- Avoid generating IActivator for abstract types by @ledjon-behluli in #8777
- Avoid sending cluster manifest to client if client already has the latest version by @453873 in #8728
- ClientClusterManifestProvider: fix case where gateway returns no update by @HermesNew in #8782
- Use UpDownCounter for grain and system target counts by @Costo in #8781
- Reduce logging noise from MemoryStorage, InsideRuntimeClient, and LocalGrainDirectory by @ReubenBond in #8780
- Fix proxy class type name violation on code-gen by @ledjon-behluli in #8785
- Fixes duplicate code-gen for
CompoundTypeAliasTree
with isolated base interface(s) by @ledjon-behluli in #8788
New Contributors
- @453873 made their first contribution in #8728
- @HermesNew made their first contribution in #8782
- @Costo made their first contribution in #8781
Full Changelog: v8.0.0-rc1...v8.0.0-rc2
v8.0.0-rc1
Changes from 7.0.0
- Fix version suffix in build.yaml by @benjaminpetit in #8113
- Exclude samples folder from PR trigger by @benjaminpetit in #8118
- Upgrading 'Hello World' sample by @IEvangelist in #8116
- Upgrade 'Bank Account' sample by @IEvangelist in #8119
- Enable 3.x scheduled builds by @benjaminpetit in #8005
- Upgraded 'Adventure' samples by @IEvangelist in #8120
- Upgrade 'Blazor Server' sample by @IEvangelist in #8121
- Upgrade 'Blazor Wasm' sample by @IEvangelist in #8122
- Upgrade 'F# Hello World' sample by @IEvangelist in #8129
- Upgrade 'VB Hello World' sample by @IEvangelist in #8137
- Upgrade 'Tic Tac Toe' sample by @IEvangelist in #8135
- Upgrade 'TLS' sample by @IEvangelist in #8136
- Fix a typo by @m-sadegh-sh in #8143
- Add MembershipVersion to GrainDirectoryEntity by @benjaminpetit in #8151
- Fix configuration of BroadcastChannel by @benjaminpetit in #8150
- Fix a typo by @m-sadegh-sh in #8144
- Guard and check for GenerateCodeForDeclaringAssembly when type has no declaring assembly by @ReubenBond in #8156
- Fix packaging of CodeGenerator to accept project properties by @ReubenBond in #8155
- Upgrade 'Streaming' samples by @IEvangelist in #8134
- Upgrade 'Chat Room' sample by @IEvangelist in #8126
- Upgrade 'Stocks' sample by @IEvangelist in #8133
- Upgrade 'Shopping Cart' sample by @IEvangelist in #8132
- Upgrade 'GPS Tracker' sample by @IEvangelist in #8130
- Use code generated or compiled regular expressions where possible by @SukharevAndrey in #8141
- Upgrade 'Chirper' sample by @IEvangelist in #8128
- Upgrade 'Presence' sample by @IEvangelist in #8131
- [main] Add CodeQL3000 tasks by @dougbu in #8160
- Fix the bug in the Chirper sample code by @IEvangelist in #8194
- Delete empty statements as they are treated as errors by some analyzers by @SukharevAndrey in #8192
- Upgrade 'Voting' sample by @IEvangelist in #8138
- Delete samples and update README.md by @IEvangelist in #8154
- Use NuGet Central Package Management to handle dependencies' versions by @SukharevAndrey in #8191
- Optimize message serialization by @pentp in #8185
- Add TransactionFaultInjectionTests to Functional runs by @ReubenBond in #8168
- Fix images, use raw URLs from dependent repo by @IEvangelist in #8202
- Fix mariadb tests by @benjaminpetit in #8198
- Bumped KubernetesClient to v9.0.38 by @EPinci in #8199
- Optimize static codec serialization by @pentp in #8206
- Update
EndpointOptions
by @IEvangelist in #8209 - Update BroadcastChannelProvider.cs by @IEvangelist in #8225
- Remove default parameter values for
AddJsonSerializer
by @ReubenBond in #8228 - Incorporate Orleans.Redis providers by @EPinci in #8212
- Fix diagnostic for invalid grain method return types by @ReubenBond in #8234
- Add
Collection<T>
serialization codec by @ReubenBond in #8238 - Fixed bug where RedisGrainStorage would ignore GrainStorageSerializer option by @willg1983 in #8260
- correct code documentation which incorrectly refers to azure blob storage by @willg1983 in #8258
- Support
IGrainStorageSerializer
for memory grain storage by @shoneefd in #8250 - netstandard 2.1 support for Orleans.Serialization by @jsteinich in #8222
- Various improvements to Redis providers by @ReubenBond in #8261
- Add Redis storage tests based on CommonStorageTests by @willg1983 in #8265
- [Maintenance] Bumping version of some external dependencies by @EPinci in #8272
- Always run scheduled build by @benjaminpetit in #8294
- Fix serialization for records which have no properties of their own by @ReubenBond in #8289
- Expose activation working set as a metric by @ahydrax in #8291
- Implement
DeleteStateOnClear
for Redis grain storage. by @ReubenBond in #8296 - Fix
PooledArrayBufferWriter.AsMemory
by @ReubenBond in #8300 - Fix
IGrainFactory.GetGrain<T>
for unimplemented generic interfaces by @ReubenBond in #8301 - Report GC pause duration when heartbeat is stalled by @adityamandaleeka in #8281
- Set VersionPrefix in nuget pack step by @benjaminpetit in #8304
- Fix Issue #8325 redis options-validators unable to resolve options by @zeinali0 in #8326
- Fix Benchmark map Reduce by @byzworld in #8332
- Improve doc comments for ITypeFilter and ITypeNameFilter by @ReubenBond in #8328
- Improve accuracy and stability of
ActivationWorkingSet
by @ReubenBond in #8321 - Update Orleans.Reminders.csproj by @IEvangelist in #8342
- Fix type parsing of type names with generic array parameter by @ReubenBond in #8337
- Fix assembly name sanitization in code generator by @ReubenBond in #8336
- Update Protobuf Serializer by @larsfjerm in #8334
- Fix for Issue #8322 Questionable test/cast pair in OrleansJsonSerializer.cs by @Jens-G in #8329
- Adds support to Orleans.Analyzers for generic attributes by @michaelmccord in #8352
- Remove inaccurate note on observer method return types by @ReubenBond in #8344
- Prevent analyzer exception on aliased attribute names by @tboby in #8355
- ObserverManager: Guard against
null
in constructor by @bradygaster in #8358 - Allows System Target's to receive one way messages by @jsteinich in #8364
- Migrate from
FormatterServices
toRuntimeHelpers
in preparation for .NET 8 by @ReubenBond in #8362 - Don't overstep on IMessage serialization by @jsteinich in #8363
- Fix type constraints on
DefaultOptionsFormatter
andDefaultOptionsFormatterResolver
by @ReubenBond in #8384 - Code generator respects scoped usage by language version by @jsteinich in #8370
- Fix long key parsing in
DefaultStreamIdMapper
by @nichvolodov in #8378 - Protobuf copiers/codecs for data types by @jsteinich in #8359
- Add a blob container client factory for customisation by @Romanx in #7849
- Use .NextInt64() when computing random TimeSpan. by @henricj in #8382
- Fix: ORLEANS0009 - Skip Static Interface Methods by @cmeyertons in #8389
- Make ManagementGrain a reentrant, stateless worker by @ReubenBond in #8394
- Fix construction of AzureBlobGrainStorage by @ReubenBond in #8395
- Update samples README by @WesleySkeen in #8398
- Adding missing display character by @rwkarg in #8407
- Support custom grain call return types by @ReubenBond in #8415
- Fix parameter null check in RegexStreamNamespacePredicate by @scalablecory in #8429
- Documentation fix by @bill-poole in #8435
- Moving RuntimeContext check inside ReminderRegistry by @cmeyertons in #8436
- Automate more of the Kubernetes hosting experience by @ReubenBond in #8426
- MySQL migration script: Remove modification fo...
v7.2.4
What's Changed
- Avoid hiding the stack of exceptions thrown from user code by @ReubenBond in #8706
- Improve error checking around constructing and parsing generic grain types and clean up tests by @ReubenBond in #8705
- Fix overread bug in Reader Skip by @JohnMorman in #8709
- Support Timeout.InfiniteTimeSpan in grain delay deactivation by @nichvolodov in #8711
- Do not retry membership updates during shutdown with dev clustering by @ReubenBond in #8719
- Throw if PersistentStateAttribute.StateName is null (#8708) by @ReubenBond in #8718
- Enable enumeration of the keys and entries in RequestContext (#8674) by @ReubenBond in #8720
- Fix flaky OneWay_Deactivation_CacheInvalidated test by @ReubenBond in #8721
- Throw when deserializing Exceptions by reference, and avoid reference tracking for all Exception-derived types (#8628) by @david-obee in #8698
- Correctly count number of items in LRU by @koenbeuk in #8742
- Fix exception while collecting activations by @nichvolodov in #8740
- Identify F# single case discriminated unions as SumType by @gfix in #8739
- Fix "System.InvalidOperationException: Unable to extract integer key from grain id" at Silo.OnActiveStop (#8558) by @peter-perot in #8701
New Contributors
- @gfix made their first contribution in #8739
- @jeffhandley made their first contribution in #8750
Full Changelog: v7.2.3...v7.2.4
v7.2.3
What's Changed
- Add value type support to IActivator #8682 by @AdrianoAE in #8683
- Ensure that
ClusterMembershipOptions.NumVotesForDeathDeclaration
is not greater thanNumProbedSilos
on startup by @ReubenBond in #8679 - Fix regression in
CollectionAgeLimitAttribute
by @ReubenBond in #8681 - Prevent progress reversal in cluster membership by @ReubenBond in #8673
- Ensure that exceptions thrown from Connection tasks are observed by @ReubenBond in #8691
- Add ILogConsistencyProtocolServices factory for all log consistency providers (#8157) by @ikkentim in #8677
- Close connection when invalid framing is detected by @ReubenBond in #8692
- Cosmos DB: allow customization of retry logic by @ReubenBond in #8693
- Cosmos DB: support custom partition key value providers by @ReubenBond in #8694
- Improve grain directory cache consistency by @ReubenBond in #8696
- Cosmos DB: perform read for consistency when deleting state which is expected to not exist by @ReubenBond in #8700
- Nullify directory entries of defunct local predecessors during grain activation by @ReubenBond in #8704
New Contributors
Full Changelog: v7.2.2...v7.2.3
v7.2.2
What's Changed
- Added support for instanced versions of
MayInterleave
predicates by @blazknuplez in #8548 - Add test for serializing types derived from
Dictionary<K,V>
by @ReubenBond in #8552 - Expose
DefaultGrainActivator
andGrainConstructorArgumentFactory
for customization by @ReubenBond in #8550 - Added SUPPORT.md by @bradygaster in #8559
- Update GrainAttributeConcurrency.cs by @IEvangelist in #8560
- Un-Skip
ValueTuple
tests by @Romanx in #8566 - Add
ISpanParsable
on toGrainId
by @Romanx in #8565 - Fix
UsingDirective
insertion in[NonSerialized]
codefix by @ReubenBond in #8557 - Fix a problem storing real binary data (like protobuf format) by @Serekh in #8538
- Update nullability on
IGrainDirectory
and implementers. by @Romanx in #8570 - [Dependencies] Bump Event Hubs version by @jsquire in #8545
- Fixes nullability of returned
IGrainReminder
inGrainReminderExtensions
by @JRWinter1 in #8544 CachedGrainLocator
Unregister Ordering by @JohnMorman in #8547- Add helper for long
StreamId
keys by @AdrianoAE in #8578 - Update the KubernetesClient NuGet package. by @henric-root in #8576
- Update CollectionAgeLimitAttribute.cs by @IEvangelist in #8585
- Make Field & Tag members
readonly
where applicable by @ReubenBond in #8587 - Fix wire break for
IRemoteGrainDirectory
API by @ReubenBond in #8593 - Add serializer support for
required
members by @ReubenBond in #8595 - Fix capitalization and formatting for
PubSubPublisherState
by @ReubenBond in #8594 - Support specifying grain collection period using
TimeSpan
string syntax by @ReubenBond in #8596 - Highlight regex syntax in
[RegexImplicitChannelSubscription(...)]
and[RegexImplicitStreamSubscription(...)]
by @ReubenBond in #8597 - Allow
ImplicitStreamSubscriptionAttribute.StreamIdMapper
to be initialized by subclasses by @ReubenBond in #8592 - Fix nullability compiler warning on new SDKs by @ReubenBond in #8598
- Fix code generation for serializers with auto generated property ids by @ReubenBond in #8586
- Support specifying timeouts on a per-grain-call basis by @ReubenBond in #8599
- Update InstrumentNames.cs by @IEvangelist in #8602
- Remove all unused usings by @IEvangelist in #8603
- Replace all out of date links, and remove locale segment by @IEvangelist in #8604
- Address all IDE0044. Readonly fields where applicable. by @IEvangelist in #8615
- Fix all IDE0039 warnings, prefer local functions by @IEvangelist in #8605
- Address all IDE0040 warnings. Explicitly provide access modifiers. by @IEvangelist in #8609
- Address all IDE0057, use range operator - simplify slice. by @IEvangelist in #8618
- Address all IDE0034 warnings. Simplify default expressions by @IEvangelist in #8607
- Address all IDE0049. Use language keywords instead by @IEvangelist in #8613
- Address all IDE0251 warnings and naming inconsistencies. by @IEvangelist in #8617
- Ensure reminder services are added when adding Redis reminders by @ReubenBond in #8629
- Do not override deactivation reason when activation registration fails due to existing activation by @ReubenBond in #8651
- Update state storage to use
IActivator<T>
instead ofActivator.CreateInstance
to handle unserializable types by @AdrianoAE in #8626 - ORLEANS0005 message arg fix by @ledjon-behluli in #8642
- In
GrainDirectoryResolver
, replaceHasNonDefaultDirectory
withIsUsingDhtDirectory
by @benjaminpetit in #8660
New Contributors
- @blazknuplez made their first contribution in #8548
- @Serekh made their first contribution in #8538
- @JRWinter1 made their first contribution in #8544
- @AdrianoAE made their first contribution in #8578
- @henric-root made their first contribution in #8576
- @ledjon-behluli made their first contribution in #8642
Full Changelog: v7.2.1...v7.2.2
v7.2.1
What's Changed
- Fix Cosmos DB grain storage constructor for DI by @ReubenBond in #8539
Full Changelog: v7.2.0...v7.2.1
v7.2.0
Release Highlights
- Redis providers are now marked as stable. Note that there is a breaking change in Redis grain state storage from the beta releases. The break can be avoided using configuration (PRs #8467 & #8487)
- Cosmos DB providers are now available, special thanks to @galvesribeiro (PR: #7848)
- Grain methods can now return
IAsyncEnumerable<T>
(PR: #8416) - Grains can migrate from host-to-host atomically, without needing to reload state from the database (PR: #8452)
- Many other fixes and improvements
What's Changed
- Adding missing display character by @rwkarg in #8407
- Support custom grain call return types by @ReubenBond in #8415
- Fix parameter null check in RegexStreamNamespacePredicate by @scalablecory in #8429
- Documentation fix by @bill-poole in #8435
- Moving RuntimeContext check inside ReminderRegistry by @cmeyertons in #8436
- Automate more of the Kubernetes hosting experience by @ReubenBond in #8426
- MySQL migration script: Remove modification for column that no longer exists in Orleans 7 by @david-obee in #8314
- Add initial
IAsyncEnumerable<T>
support for grain calls by @ReubenBond in #8416 - In TransactionQueue, ensure readyTask failures are recovered from by @ReubenBond in #8444
- Make
PooledArrayBufferWriter
more versatile, rename by @ReubenBond in #8453 - Improve : throw TypeLoadException on failing to load a type by @kwemou in #8463
- Fix debug assert added for
void
methods:VoidRequest
impliesOneWay
by @ReubenBond in #8468 - Added
HostApplicationBuilder
extensions by @IEvangelist in #8466 - ObserverManager: nits by @ScarletKuro in #8460
- TestHost - Client ability to use IHostConfigurator to align w/ Silo functionality by @cmeyertons in #8454
- Mark Redis providers as stable by @ReubenBond in #8467
- Live grain migration (#7692) by @ReubenBond in #8452
- Clean up doc comments for placement strategies by @ReubenBond in #8473
- Add missing configuration validators for Azure Table Storage providers by @ReubenBond in #8484
- Improve DeploymentLoadPublisher logic and cleanup by @ReubenBond in #8472
- Add ActivationMigrationManager to batch grain activation migrations by @ReubenBond in #8474
- Fix for possible false-positive GC delays by @ntovas in #8483
- Deduplicate generated type manifest providers added via DI by @ReubenBond in #8489
- Add Azure Cosmos DB providers for clustering, grain storage, and reminders by @galvesribeiro in #7848
- Incorporate state name into key for Redis grain storage by @ReubenBond in #8487
- Make discord links more prominent by @ReubenBond in #8496
- Add regression test for #8503 by @ReubenBond in #8504
- Fix double-free when returning pooled buffers by @ReubenBond in #8508
- Relax diagnostic analyzers for static members of grain interfaces by @minichma in #8506
- Expose Writer<>.Output directly instead of via property by @ReubenBond in #8509
- Small, targeted refactor: Address CA1517 (use nameof) by @cybertyche in #8516
- Security: Upgrade two NuGets (and one dependency) that have been flagged by @cybertyche in #8517
- Wait for migrating activations to become active or terminated by @ReubenBond in #8527
- Avoid static members in generic types by @pentp in #8526
- Lift typeof(T) to an instance field where possible by @pentp in #8528
- Apply readonly modifier when possible by @cybertyche in #8531
- Move CancellationToken arguments to the end by @cybertyche in #8525
New Contributors
- @scalablecory made their first contribution in #8429
- @bill-poole made their first contribution in #8435
- @david-obee made their first contribution in #8314
- @kwemou made their first contribution in #8463
- @ScarletKuro made their first contribution in #8460
- @ntovas made their first contribution in #8483
- @minichma made their first contribution in #8506
- @cybertyche made their first contribution in #8516
Full Changelog: v7.1.2...v7.2.0