Releases: asynkron/protoactor-dotnet
1.8.0
What's Changed
- Dependabot lite by @mhelleborg in #2134
- Centralized package management by @mhelleborg in #2135
- OTel ActorContextDecorator should support all ReenterAfter overloads by @kasperhhk in #2138
- Fix - Under load and during topology changes, thread saturation can occur, causing a lockup by @benbenwilde in #2139
- Ignore OperationCanceledException in SafeTask by @mugu-1 in #2140
- Support adding additional error handling to generated actors by @benbenwilde in #2141
- Fix issue reconnecting to a cluster client or member. Fixes bug introduced in 1.7.1.alpha-0.4 build by @benbenwilde in #2142
- Otel Updates by @mhelleborg in #2144
- After an actor is stopped, block continuations from running by @benbenwilde in #2146
- Fix for case where a TopicActor can continue sending messages to a member that no longer exists by @benbenwilde in #2147
- Add try catch to cluster shutdown, so if there are any errors, anything that is waiting for shutdown will still see it by @benbenwilde in #2156
- Add GrainException to support better error handling from generated grains by @benbenwilde in #2157
- Blocked member duration configurable. IsBlocked takes this duration into account. When member leaves, remove everywhere. by @benbenwilde in #2158
- update nugets by @rogeralsing in #2163
- update nugets by @rogeralsing in #2164
- Implemented etcd IClusterProvider by @tyronegroves in #2150
- fix build by @rogeralsing in #2165
- Fix spelling of 'occurred' in cluster logs by @rogeralsing in #2170
- Fix exception summary in Persistence.WithEventSourcing by @rogeralsing in #2171
- refactor: replace sleep with async wait in supervision test by @rogeralsing in #2172
- fix spelling mistakes in identity tests by @rogeralsing in #2173
- Improve actor tests with additional assertions by @rogeralsing in #2174
- Wrapping Task.Delay with an implementation that uses TimeProvider in … by @AmirShitrit in #2149
- docs: add codebase overview by @rogeralsing in #2175
- docs: expand example README explanations by @rogeralsing in #2176
- Replace Thread.Sleep with async delay by @rogeralsing in #2177
- docs: fix spelling of synonym in Terminology.md by @rogeralsing in #2178
- remote: replace async void Disconnect with Task-returning method by @rogeralsing in #2179
- docs: fix Proto.Cluster terminology typo by @rogeralsing in #2182
- fix: correct header file reference by @rogeralsing in #2183
- chore: update copyright headers by @rogeralsing in #2184
- Cleanup actor counts for departed members by @rogeralsing in #2186
- Add OpenTelemetry tracing example by @rogeralsing in #2187
- Add TLS remote communication example by @rogeralsing in #2189
- Add ScheduledMessages example by @rogeralsing in #2188
- test: remove arbitrary delays in ClusterTests for determinism by @rogeralsing in #2180
- Improve mailbox scheduling test assertion by @rogeralsing in #2191
- Add unwatch termination test to WatchTests by @rogeralsing in #2192
- test: verify scheduler cancel repeated sends by @rogeralsing in #2194
- Add receive timeout reset test by @rogeralsing in #2195
- Add routing coverage for pool routers by @rogeralsing in #2197
- test: add missing pool router coverage by @rogeralsing in #2198
- test: extend scheduler coverage by @rogeralsing in #2196
- Add coverage for ProcessRegistry helper methods by @rogeralsing in #2199
- Add comprehensive supervision tests by @rogeralsing in #2201
- test: cover supervision restart scenarios by @rogeralsing in #2203
- Add tests for core utilities by @rogeralsing in #2204
- Stabilize actor metrics and supervision tests by @rogeralsing in #2205
- Return early on duplicate cluster activation requests by @rogeralsing in #2206
- Enable NuGet caching in GitHub workflows by @rogeralsing in #2207
- chore: target only .NET 8 by @rogeralsing in #2208
- fix duplicate dotnet-etcd package entry by @rogeralsing in #2209
- chore: update OpenTelemetry dependencies by @rogeralsing in #2210
- feat: cache build outputs by @rogeralsing in #2212
- chore: reduce workflow fetch depth by @rogeralsing in #2215
- Make coverage optional by @rogeralsing in #2218
- Only produce symbol packages in CI by @rogeralsing in #2217
- Fix BuildStartedActivity overload to start activity with original message by @rogeralsing in #2211
- chore: modernize example programs by @rogeralsing in #2219
- docs: summarize eventstream interactions by @rogeralsing in #2220
- docs: document membership gossip flow by @rogeralsing in #2221
- docs: link root documentation by @rogeralsing in #2222
- Escalate unknown system messages by @rogeralsing in #2223
- test supervision strategy override in actor by @rogeralsing in #2224
- refactor: streamline gossip callbacks by @rogeralsing in #2225
- Add cluster gossip example by @rogeralsing in #2226
- test: add graceful leave blocklist test by @rogeralsing in #2227
- test(cluster): add gossip request validation tests by @rogeralsing in #2228
- test: add redundant gossip test by @rogeralsing in #2229
- test: simulate gossip partition without blocklist by @rogeralsing in #2231
- Fix dropped remote dead letters targeting wrong PID by @rogeralsing in #2233
- Fix ActorContext response logging by @rogeralsing in #2234
- refactor: remove grpc core support by @rogeralsing in #2236
- feat: unify remote configuration by @rogeralsing in #2237
- Guard gossip core test with locks by @rogeralsing in #2238
- test: add large message envelope test by @rogeralsing in #2239
- Move MessageBatch creation into stream writers by @rogeralsing in #2240
- refactor: move message batching out of Endpoint by @rogeralsing in #2241
- fix: tighten consensus check nullability by @rogeralsing in #2243
- Use snapshot flag in persistence recovery by @rogeralsing in #2244
- Memoize Rendezvous member filtering by @rogeralsing in #2245
- Use context cancellation tokens in topic actor by @rogeralsing in https://github.com...
1.7.0
What's Changed
- Gossip fixes by @rogeralsing in #2092
- Seed node work by @rogeralsing in #2093
- Added timeout in RequestAsync if target pid not found by @AdamCLarsen in #2096
- Add support for an Advertised Host other than PodIP when using Kubernetes cluster provider by @AdamCLarsen in #2097
- Change container metadata to use CONTAINER_APP_REPLICA_NAME by @marioleed in #2099
- Eventstream channels by @rogeralsing in #2101
- Fix actor fails to recive batching messages if batchsize is less than… by @wuuer in #2105
- Fix so if _oldest and _cleanedate equals it will still perform the cl… by @npehrsson in #2106
- Added support for propagating OpenTelemetry baggage by @mhelleborg in #2107
- Mssqlprovider improvements by @AmirShitrit in #2108
- Memory leak in EndPoint channels bugfix by @AqlaSolutions in #2111
- With simpler execution plan by avoiding unnecessary sorting of all of… by @AmirShitrit in #2115
- using await on types implementing IAsyncDisposable by @AmirShitrit in #2114
- Activity source by @rogeralsing in #2119
- Graceful stop by @rogeralsing in #2121
- Downgrade this log to Warning by @jstnlef in #2124
- Caching the CancellationToken will prevent ObjectDisposedException race condition by @jstnlef in #2125
- Support dotnet 8 by @jstnlef in #2126
- Better EventStream tracing by @rogeralsing in #2120
- Expose some internal properties as public by @jstnlef in #2127
- update copyrights by @rogeralsing in #2131
- add receive timeout by @rogeralsing in #2132
- Pass cancellation token to grpc reader by @benbenwilde in #2133
New Contributors
- @AdamCLarsen made their first contribution in #2096
- @marioleed made their first contribution in #2099
- @wuuer made their first contribution in #2105
- @AmirShitrit made their first contribution in #2108
- @AqlaSolutions made their first contribution in #2111
- @benbenwilde made their first contribution in #2133
Full Changelog: 1.6.0...1.7.0
1.6.0
What's Changed
- Fix actor generation template by @AlexeyRokhin in #2067
- Remove value task by @rogeralsing in #2069
- Handle shutdown by @rogeralsing in #2070
- Add tests for system shutdown by @rogeralsing in #2071
- Fixed cluster client mode bug by @mhelleborg in #2072
- Bump AutoFixture.Xunit2 from 4.17.0 to 4.18.1 by @dependabot in #2076
- Bump Azure.Identity from 1.8.2 to 1.10.2 in /src/Proto.Cluster.AzureContainerApps by @dependabot in #2065
- Priority remote by @rogeralsing in #2086
- Gossip logging by @rogeralsing in #2089
- Fix Cluster Client issue by @rogeralsing in #2091
- Make it possible to disable verification of Revision Has Traffic Enabled… by @npehrsson in #2080
New Contributors
- @AlexeyRokhin made their first contribution in #2067
- @npehrsson made their first contribution in #2080
Full Changelog: 1.5.0...1.6.0
1.5.0
What's Changed
- relax logging by @rogeralsing in #2053
- gossip error logger by @rogeralsing in #2057
- enable gossip debug logging by @rogeralsing in #2058
- additional gossip logging by @rogeralsing in #2059
- Ecs provider fix by @dariussantaras in #2056
- harden gossip by @rogeralsing in #2061
- update otel to 1.6.0 by @rogeralsing in #2064
New Contributors
- @dariussantaras made their first contribution in #2056
Full Changelog: 1.4.0...1.5.0
1.4.0
What's Changed
- MongoDb seed node discovery by @dankrajka in #2033
- Add Redis member store for ACA provider and manage stale members by @sfmskywalker in #2035
- Marten ProviderUpdate and Persistence provider test by @GiuseppePatane in #2031
- ACA Cluster Provider Improvements by @sfmskywalker in #2036
- Update kubernetes client by @rogeralsing in #2038
- New kubernetes client by @rogeralsing in #2039
- Hardened cluster-request deduplication by @mhelleborg in #2041
- Remove startupdecorator by @rogeralsing in #2040
- formatting by @rogeralsing in #2042
- Bump protobuf-net from 3.0.101 to 3.2.26 by @dependabot in #2018
- Bump Microsoft.NET.Build.Containers from 0.4.0 to 7.0.307 in /benchmarks/KubernetesDiagnostics by @dependabot in #2043
- Bump Azure.ResourceManager.AppContainers from 1.0.1 to 1.1.0 by @dependabot in #2047
- Expose internals by @rogeralsing in #2048
- Remove duplicate addresses by @rogeralsing in #2050
- Force wait for join by @rogeralsing in #2051
New Contributors
- @dankrajka made their first contribution in #2033
- @GiuseppePatane made their first contribution in #2031
Full Changelog: 1.3.0...1.4.0
Remove duplicate addresses
Under some conditions, members with different IDs but with the same address could occur, e.g. pod restart or similar.
This could break ongoing actor handovers for the PartitionIdentityLookup.
This has been resolved by tagging each member with an Age timestamp, and in case of duplicate addresses, the older one is removed, as this member must have been a previous instance that later restarted.
If you are using PartitionIdentityLookup you should upgrade immediately to resolve this issue.
1.3.0
What's Changed
- Update GossipMemberStrategy.cs by @dalibormesaric in #2008
- memberlist debugging by @rogeralsing in #2010
- Use SetItem instead of Add for memberlist by @rogeralsing in #2011
- silence gossip deadletter by @rogeralsing in #2013
- make sure heartbeat data exists for all members by @rogeralsing in #2015
- fix loggmessage for lifezycle host by @klowdo in #2014
- Updated template in case we want to pass additional parameters by @Hulkstance in #2022
- Allow ISenderContext.Request to propagate headers by @mhelleborg in #2025
- disable heartbeat expiration by @rogeralsing in #2026
- Fix for empty grain response deseriaslized to null by @Ivanvv in #2027
- Startup context decorator by @rogeralsing in #2028
New Contributors
- @dalibormesaric made their first contribution in #2008
- @klowdo made their first contribution in #2014
- @Ivanvv made their first contribution in #2027
Full Changelog: 1.2.0...1.3.0
1.2.0
What's Changed
-
Remove the CancellationTokenSource.Dispose() call inside of the ActorContextExtras.Dispose(). #1916 by @DenizPiri in #1920
-
Use LoggerMessage for logging in ActorContext by @woksin in #1907
-
Move AzureContainerApps into src folder and minor cleanup by @sfmskywalker in #1901
-
Gossip member strategy by @rogeralsing in #1922
-
Passivation context decorator by @rogeralsing in #1923
-
Remove requestid by @rogeralsing in #1933
-
AoT compatible by @rogeralsing in #1939
-
Disabled experimental PartitionIdentityLookup mode test by @mhelleborg in #1949
-
use dispatcher if needed by @rogeralsing in #1955
-
fix extras racecondition for cancellation token by @rogeralsing in #1965
-
stop instead of restart by @rogeralsing in #1966
-
fix incorrect grain message typename by @rogeralsing in #1968
-
throw exception for cancelled ct by @rogeralsing in #1971
-
Remoting tweaks by @rogeralsing in #1972
-
Add blocking reason by @rogeralsing in #1974
-
Kubernetes debugging by @rogeralsing in #1975
-
Treat self as ready by @rogeralsing in #1976
-
Shared future bug tests by @rogeralsing in #1970
-
Bump FluentAssertions from 6.8.0 to 6.11.0 by @dependabot in #1973
-
Bump System.Collections.Immutable from 6.0.0 to 7.0.0 by @dependabot in #1960
-
ACA cluster provider support for multiple images + pluggable member store by @sfmskywalker in #1980
-
Improve service registration of default member store by @sfmskywalker in #1983
-
Fix cluster metrics by @rogeralsing in #1986
-
Introduce seednode discovery by @rogeralsing in #1987
-
Redis seednode discovery by @rogeralsing in #1988
-
Poll and watch k8s by @rogeralsing in #1989
-
Poll watch k8s by @rogeralsing in #1990
-
Kubediag by @rogeralsing in #1991
-
Kubediag by @rogeralsing in #1995
-
Hostedservice logging by @rogeralsing in #1996
-
improve gossip logging by @rogeralsing in #1998
-
tweak log levels by @rogeralsing in #2001
-
better blocking logging by @rogeralsing in #2003
-
Kubediag fixes by @rogeralsing in #2007
New Contributors
Full Changelog: 1.1.0...1.2.0
1.1.0
What's Changed
- fix: use fully qualified global namespaces when referencing internal classes by @jammehcow in #1849
- fix broken codegen tests by @rogeralsing in #1899
- Store array resize fix (#1908) by @arkadiuszwojcik in #1909
- Harden gossip consensus by @rogeralsing in #1911
New Contributors
- @jammehcow made their first contribution in #1849
- @arkadiuszwojcik made their first contribution in #1909
Full Changelog: 1.0.0...1.1.0
1.0.0
What's Changed
- PubSub batching producer improvements by @marcinbudny in #1626
- allow custom args with DI by @rogeralsing in #1628
- Bump OpenTelemetry from 1.2.0-rc2 to 1.2.0 by @dependabot in #1598
- Bump Google.Protobuf from 3.7.0 to 3.15.0 in /examples/RemoteActivate/Messages by @dependabot in #1456
- upgrade grpc by @rogeralsing in #1632
- upgrade protobuf by @rogeralsing in #1643
- Bump MudBlazor from 6.0.7 to 6.0.10 by @dependabot in #1644
- Marcinbudny pub sub fix by @rogeralsing in #1648
- More system actors and more consistent system actor naming by @woksin in #1649
- Enforce $ name for named system actors by @rogeralsing in #1650
- Allow grains to return messages without the envelope if the return value is non-null by @mhelleborg in #1654
- try GA logger by @rogeralsing in #1655
- Virtual actor spawn filtering by @mhelleborg in #1653
- Tweak blocking by @rogeralsing in #1660
- Enable override of ActorSystem.Root by @mhelleborg in #1659
- add actor name to tracing by @rogeralsing in #1665
- Add actor name to tracing by @rogeralsing in #1666
- Pub sub fix for delivery to stopped subscribers + message renames by @marcinbudny in #1667
- add reenterafter overloads by @rogeralsing in #1671
- ReceiveTimeout as system message by @rogeralsing in #1678
- Identity lookup improvements + test fix by @marcinbudny in #1679
- Added Proto.Actor (core) xml docs by @marcinbudny in #1680
- WiP enable exp cluster context by @rogeralsing in #1684
- Minor tweaks by @rogeralsing in #1685
- Ref process for remote by @rogeralsing in #1686
- remove hashed concurrent dict by @rogeralsing in #1687
- delete file, namespace cleanup by @rogeralsing in #1688
- More xml docs by @marcinbudny in #1690
- Skyrisemini by @rogeralsing in #1691
- Skyrisemini by @rogeralsing in #1692
- just send target id by @rogeralsing in #1696
- use concurrent bag for shared futures by @rogeralsing in #1697
- Valuetask clustercontext by @rogeralsing in #1698
- Even more xml docs + small changes by @marcinbudny in #1699
- inline everything in cluster context by @rogeralsing in #1700
- Use NET6 WaitAsync for retries by @rogeralsing in #1701
- Mailbox workitem by @rogeralsing in #1702
- add .net7 to benchmarks by @rogeralsing in #1703
- fix ci by @rogeralsing in #1706
- Net7ci by @rogeralsing in #1707
- fix isse with dropping remote messages by @rogeralsing in #1709
- prevent protobuf messages from being json serialized by @rogeralsing in #1710
- Fix for actor count metrics by @marcinbudny in #1714
- Change Pub-Sub guarantees to at-most-once by @marcinbudny in #1713
- Fixed pool router start in case of failing routee props by @marcinbudny in #1715
- Fixed TopicActor problem with nullref when loading subscribers by @marcinbudny in #1716
- CI improvements, target framework cleanup by @marcinbudny in #1717
- Cluster request timeout now throws TimeoutException by @marcinbudny in #1727
- Add xml docs to nuget by @marcinbudny in #1730
- Prefixing code-generated actor's Kind property with proto package by @elnur-m in #1734
- Single node cluster provider / lookup by @mhelleborg in #1750
- Public API cleanup by @marcinbudny in #1751
- Forced serialization sender middleware by @marcinbudny in #1759
- Prevent scheduled task cancelation from emitting error logs by @jstnlef in #1758
- Cleanup by @rogeralsing in #1760
- Remove clusterinit by @rogeralsing in #1763
- Update packages by @rogeralsing in #1764
- fix compiler warnings by @rogeralsing in #1770
- Fixing warnings by @rogeralsing in #1771
- Cluster Setup using DI by @rogeralsing in #1773
- Changed K8s provider to use annotations instead of labels for kind propagation by @mhelleborg in #1772
- Bump Consul from 1.6.10.4 to 1.6.10.7 by @dependabot in #1783
- Bump Grpc.Core.Api from 2.48.0 to 2.49.0 by @dependabot in #1780
- Reorder cluster shutdown to reflect the reverse order of startup by @jstnlef in #1788
- Add a remark about canceling send done with the scheduler by @mlinnosk in #1789
- remove timeout config and legacy cluster context by @rogeralsing in #1791
- simplify gossip by @rogeralsing in #1792
- log elapsed for gossip timeouts by @rogeralsing in #1793
- introduce IDiagnosticsTypeName.cs by @rogeralsing in #1794
- make tracing use diagnostics typename by @rogeralsing in #1796
- More shutdown fixes by @jstnlef in #1797
- Cluster provider should be shut down before actor system starts shutting down by @jstnlef in #1798
- Added BoundedChannelFullMode overload to the bounded mailbox overloads by @Hulkstance in #1800
- Asp.Net example by @rogeralsing in #1801
- Introduce diagnostics events by @rogeralsing in #1806
- Diagnostics bag by @rogeralsing in #1807
- Better protobuf type diagnostics by @rogeralsing in #1809
- Add diagnostics logging by @rogeralsing in #1810
- Threadpool diagnostics by @rogeralsing in #1811
- Extension diagnostics by @rogeralsing in #1812
- Healthcheck diagnostics by @rogeralsing in #1813
- Added heartbeat diagnostics by @rogeralsing in #1814
- Bump Proto.Cluster.CodeGen from 1.0.0-rc2.43 to 1.0.0-rc3.17 by @dependabot in #1808
- Log topology on misplaced actors by @rogeralsing in #1817
- List endpoints in remote diagnostics by @rogeralsing in #1818
- Diagnostics provider interface by @rogeralsing in #1819
- k8s provider diagnostics by @rogeralsing in #1820
- K8s diagnostics by @rogeralsing in #1821
- Retry request on DeadLetterResponse by @michalnarwojsz in #1822
- di enabled cluster setup by @rogeralsing in https://github.com...
1.0.0-rc5
What's Changed
- Dashboard diagnostics by @rogeralsing in #1830
- Prevent selfblock by @rogeralsing in #1831
- Ensure that
WithSenderMiddlewareactually chains middleware calls by @jstnlef in #1832 - Fix a small bug with my latest fix to RootContextDecorator by @jstnlef in #1834
- Disable XML comments for Codegen by @rogeralsing in #1839
- Adds an optional idle timeout to BatchingProducer by @jstnlef in #1841
- Adding graceful shutdown handling to ProtoActorLifecycleHost by @jstnlef in #1842
- add tracing wrapper to cluster tests by @rogeralsing in #1846
- Updated cluster tests, fixed tracing by @mhelleborg in #1857
- Exit on shutdown by @rogeralsing in #1858
- Configure root and configure process by @rogeralsing in #1859
- Special spawning for SystemActors by @rogeralsing in #1862
- Fix system spawning by @rogeralsing in #1863
- Cluster fixture shutdown logging by @rogeralsing in #1864
- tweaking tracing for tests by @rogeralsing in #1865
- Fix tracing response by @rogeralsing in #1866
- set min threads by @rogeralsing in #1867
- Cluster tests less flaky by @rogeralsing in #1868
- Root context logging by @rogeralsing in #1869
- Otel reenter by @rogeralsing in #1870
- Logging test start and stop by @rogeralsing in #1873
- bump min threads by @rogeralsing in #1874
- Force flush otel by @rogeralsing in #1875
- Roslyn Analyzers by @mhelleborg in #1876
- Build fix by @mhelleborg in #1877
- Fix reporting code by @rogeralsing in #1884
- New github reporter by @rogeralsing in #1885
Full Changelog: 1.0.0-rc4...1.0.0-rc5