Releases: akkadotnet/akka.net
Akka.NET v1.5.39
1.5.39 March 14th, 2025
Akka.NET v1.5.39 contains a mission-critical bugfix for most Akka.Streams users.
- Akka.Cluster.Sharding: recursively unpack
ShardingEnvelopecontents insideIMessageExtract.EntityMessage- fixed a small edge case bug that could cause theShardingEnvelopeto be delivered to actors rather than the content inside the envelope. - Akka.Util: improve
Result<T>- small set of API changes here aimed at making Akka.Streams easier to reason about. - Akka.Streams: Fixed race conditions + unsafe struct assignment in
SelectAsync- this is a bug that's popped up in Akka.Persistence.Sql, Akka.Streams.Kafka, and many other places whereSelectAsyncis used: #7518
3 contributors since release 1.5.38
| COMMITS | LOC+ | LOC- | AUTHOR |
|---|---|---|---|
| 6 | 242 | 251 | Aaron Stannard |
| 1 | 42 | 2 | Arjen Smits |
| 1 | 107 | 1 | Gregorius Soedharmo |
To see the full set of changes in Akka.NET v1.5.39, click here.
Changes:
- b1973cb Added v1.5.39 release notes (#7525)
- 02c8a24 Update target frameworks from net7.0/netcoreapp3.1 to net8.0 (#7523)
- 253973e Fixed race conditions + unsafe struct assignment in
SelectAsync(#7521) [ #7518 ] - 10b8223 Akka.Util: improve
Result<T>(#7520) - 6a5c7c0 Update persistence-testing.md docs (#7516)
- 3ca3682 Add SelectAsync regression test for Akka.Persistence.Sql (#7515)
- e25af24 Added "Why Learn Akka.NET?" video to homepage (#7511)
- 5957510 Update RELEASE_NOTES.md
- 2784f34 Have
ShardingAdapterrecursively call the underlyingIMessageExtractor(#7474) [ #7470 ]
This list of changes was auto generated.
Akka.NET v1.5.38
1.5.38 February 17th 2025
Akka.NET v1.5.38 is a maintenance release with several bug fixes and minor quality of life API additions
- Core: Add
ByteString.ToReadOnlySpan() - TestKit: Add
IntentionalRestartauto received message to easily test actor restart behavior - Streams: Fix null exceptions being propagated upstream by downstream completion
- Core: Add death watch support to
Ask()FutureActorReftemporary actors to prevent memory leaks - Documentation: Add new AK1008 Akka.Analyzers rule
- Core: Bump Akka.Analyzers version from 0.3.0 to 0.3.1
To see the full set of changes in Akka.NET v1.5.38, click here.
4 contributors since release 1.5.37
| COMMITS | LOC+ | LOC- | AUTHOR |
|---|---|---|---|
| 5 | 110 | 9 | Gregorius Soedharmo |
| 3 | 231 | 28 | Aaron Stannard |
| 1 | 81 | 0 | Lydon Chandra |
| 1 | 24 | 20 | Dmitriy Barbul |
Changes:
- 7905b0f Update RELEASE_NOTES.md for 1.5.38 release (#7507)
- c873710 Bump Akka.Analyzer to 0.3.1 (#7506)
- 2d84f02 Add missing table entry for AK1008 (#7505)
- a91adbf [Docs] Add AK1008 documentation (#7504)
- 50b6cfe Akka.Actor:
Context.WatchonFutureActorRef<T>creates memory leaks (#7502) [ #7501 ] - 1b52686 [Streams] Fix null exceptions being propagated on downstream completion (#7497)
- 8ea9d3b Update ClusterSharding.Node example to use shared SQLite store (#7494)
- 1f5688d Akka.Actor: Added built-in
IntentionalRestartmessage to test actor restart behaviors (#7493) [ #7492 ] - c8ebf77 Add ByteString ToReadOnlySpan (#7487)
- ea2d195 Make sure all library projects uses dual targeting (#7489)
Akka.NET v1.5.37
1.5.37 January 23rd 2025
Akka.NET v1.5.36 is a maintenance release that rolls back earlier changes made in Akka.NET v1.5.35 that have caused problems in some downstream Akka.NET plugins.
- Rollback to using 6.0 MSFT libraries <- moving all of our BCL dependencies to 8.0 created issues for our .NET 6-9 users when adopting Akka.NET packages that only targeted .NET Standard, so for the time being we're normalizing everything back to 6.0
- Akka.Persistence:
Akka.Persistence.Journal.AsyncWriteJournal+Resequenceris created as a top-level/useractor instead of a child of the journal
To see the full set of changes in Akka.NET v1.5.37, click here.
| COMMITS | LOC+ | LOC- | AUTHOR |
|---|---|---|---|
| 4 | 9 | 7 | Aaron Stannard |
Changes:
- 0bc1843 added v1.5.37 release notes (#7486)
- c437bff Rollback to using 6.0 MSFT libraries (#7482)
- e52b815 Revert "DData: Fix BCL update causing DeltaPropagationSelector throwing Index…" (#7483)
- 84b767a
Resequencershould always be a child of the journal actor (#7481) - 759e93f Update RELEASE_NOTES.md
This list of changes was auto generated.
Akka.NET v1.5.36
1.5.36 January 22nd 2025
Akka.NET v1.5.36 is a maintenance release that addresses several bugs and added several improvements.
- Core: Implement nullability for
ActorCell - Core: Add filtering to
ActorCelllifecycle metrics - Streams: Complete MergeHub Sink gracefully on graceful stop
To see the full set of changes in Akka.NET v1.5.36, click here.
2 contributors since release 1.5.35
| COMMITS | LOC+ | LOC- | AUTHOR |
|---|---|---|---|
| 4 | 371 | 251 | Aaron Stannard |
| 1 | 37 | 2 | Pavel Anpin |
Changes:
- 848a7b2 Update RELEASE_NOTES.md for 1.5.36 release (#7479)
- a64d954 made
IActorTelemetryevents nullable (#7478) - f80a2b1 Complete MergeHub Sink gracefully on NormalShutdownException (#7468)
- 2ee5176 made
ActorCellusenullable(#7475) - 429ebb2 Added mailing list and youtube links (#7473)
- a1c0042 Update RELEASE_NOTES.md
This list of changes was auto generated.
Akka.NET v1.5.35
1.5.35 January 13th 2025
Akka.NET v1.5.35 is a maintenance release that addresses several bugs and added several improvements.
- Persistence: Add per-plugin recovery permiter actor
- Persistence: Add support for optional snapshots
- TestKit: Improve XUnit assertion message formatting
- Sharding: Add
Broadcastmessage support to sharded daemon process - Core: Bump Microsoft.Extensions and BCL library version to 8.0.*
- DData: Fix 8.0 BCL library causing DeltaPropagationSelector to throw IndexOutOfBoundException
- Sharding: Fix Shard fails to unwrap buffered messages
- Core: Deprecate AddOrSet utility method
To see the full set of changes in Akka.NET v1.5.35, click here.
5 contributors since release 1.5.34
| COMMITS | LOC+ | LOC- | AUTHOR |
|---|---|---|---|
| 10 | 431 | 95 | Gregorius Soedharmo |
| 7 | 4535 | 4515 | Aaron Stannard |
| 1 | 90 | 6 | Chris Hoare |
| 1 | 5 | 5 | Simon Cropp |
| 1 | 173 | 34 | Milan Gardian |
Changes:
- b160721 Update RELEASE_NOTES.md for 1.5.35 release (#7464)
- 39cce0a obsolete AddOrSet (#7408)
- f362af5 Trim dead codes
- 23976eb Update API approval list
- 388ed9d Fix broken unit test
- 1cdf9da Add IShardingBufferMessageAdapter.UnApply
- 4b85133 Improve code
- 8073bec Fix code error
- 6ffd304 Add reproduction test
- 5c7c967 DData: Fix BCL update causing DeltaPropagationSelector throwing IndexOutOfBoundException (#7462)
See More
- 94bcc66 upgrade MSFT.EXT and BCL libraries to 8.0+ (#7460)
- 81b94f4 Remove more F# duplicate package warnings
- 77d0aa2 remove duplicate package reference on Akka.FSharp
- 1f7ffa7 Added 2025 copyright headers (#7454)
- 9c64ecb reorganized dependencies (#7453)
- 51ad038 Add
Broadcastmessage support toShardedDaemonProcess(#7451) - 80f73bc Added
ShardingEnvelopechecks forShardingMessageAdapter(#7449) - 468546c Add support for optional snapshots (#7444)
- 26383ec Safer formatting of Xunit assertion messages (#7446)
- 848cd4c Add per-plugin recovery permitter actors (#7448)
- ccae284 Update RELEASE_NOTES.md
This list of changes was auto generated.
Akka.NET v1.5.34
1.5.34 January 7th 2025
- TestKit: Fix DelegatingSupervisorStrategy KeyNotFoundException
- Core: Improve actor telemetry type name override
- Sharding: Add
IShardingBufferMessageAdapterto support tracing over sharding
To see the full set of changes in Akka.NET v1.5.34, click here.
3 contributors since release 1.5.33
| COMMITS | LOC+ | LOC- | AUTHOR |
|---|---|---|---|
| 2 | 311 | 16 | Gregorius Soedharmo |
| 2 | 17 | 9 | Aaron Stannard |
| 1 | 1 | 1 | jasonmar |
Changes:
- 90c577e Update RELEASE_NOTES.md for 1.5.34 release (#7443)
- 497315a Update Directory.Build.props
- e425975 Add
IShardingMessageAdapter(#7441) - 08dd5bd Update Akka.FSharp README Interop with Task Parallel Library Example (#7440)
- 90e60c6 Improve actor telemetry types (#7439)
- 400e7cb close #7437 - fix KeyNotFoundException in DelegatingSupervisorStrategy (#7438)
- 507cff4 Update RELEASE_NOTES.md
This list of changes was auto generated.
Akka.NET v1.5.33
1.5.33 December 23rd 2024
- Bump Akka.Analyzers from 0.2.5 to 0.3.0
- Core: Throw better error message when
Stash()stashes null message - Core: Fix
IWrappedMessageandIDeadLetterSuppressionhandling - Core: Make actor start/stop telemetry descriptors overridable
- Core: Fix
Result.FromTaskedge case handling - Remote: HandleStashedInbound performance improvement
- TestKit: Make startup timeout configurable
- TestKit: Make InternalTestActor override its SupervisionStrategy
- Streams: Add custom log level argument to
Logstage
To see the full set of changes in Akka.NET v1.5.33, click here.
4 contributors since release 1.5.32
| COMMITS | LOC+ | LOC- | AUTHOR |
|---|---|---|---|
| 9 | 513 | 117 | Aaron Stannard |
| 3 | 299 | 49 | Gregorius Soedharmo |
| 1 | 32 | 1 | Yan Pitangui |
| 1 | 3 | 4 | Simon Cropp |
Changes:
- dadabd0 Update RELEASE_NOTES.md for 1.5.33 release (#7436)
- 8bbffcd Fix
Akka.Util.Resultedge case (#7433) - 0a01453 Make actor start / stop telemetry descriptors overrideable (#7434)
- 61bdebf Harden
LogFormatSpec(#7429) [ #7421 ] - f2ec912 Benchmark to measure
ShardingCoordinator.CoordinatorStateserialization over DData (#7428) - 0cf567a Fixed:
IWrappedMessage+IDeadLetterSuppressionhandling (#7414) - 96645a5 Make InternalTestActor override its SupervisionStrategy (#7221)
- 7e85cac Throw clearer error message during
Stash()innullmessage cases (#7425) [ #7938 ] - 487bb85 Add custom log level to stream Log stage (#7424)
- 1b2e3ab Make TestKit startup timeouts configurable (#7423) [ #7259 ]
Akka.NET v1.5.32
1.5.32 December 4th 2024
Akka.NET v1.5.32 is a maintenance release that addresses several bugs.
- Cluster.Tools: Deprecate ClusterSingleton.Init() method
- Remote: Ensure RemoteActorRef are serialized correctly when using multiple transports
- Sharding: Harden event-sourced RememberEntities infrastructure against transient persistence failures
To see the full set of changes in Akka.NET v1.5.32, click here.
3 contributors since release 1.5.31
| COMMITS | LOC+ | LOC- | AUTHOR |
|---|---|---|---|
| 8 | 750 | 350 | Aaron Stannard |
| 5 | 505 | 15 | Gregorius Soedharmo |
| 1 | 2 | 2 | Ran Trifon |
Changes:
- 2f2bdf7 Add missing information to RELEASE_NOTES (#7404)
- c8b1c5b Update RELEASE_NOTES.md for 1.5.32 release (#7403)
- 1f448e9 Added reproduction spec for missing custom mailbox when using DI (#7402)
- 1a22e39 Akka.Cluster.Sharding: harden event-sourced
RememberEntitiesinfrastructure against transient Akka.Persistence failures (#7401) [ #7399 ] - 4becbdd cleaned up
RememberEntitiesFailureSpecs(#7400) - 0968e9d Update books.md (#7397)
- 0141b6a Add note about duplicate
PeriodicTimermessages when actors are busy (#7396) - 4ae4792 Akka.Remote: ensure
RemoteActorRefare serialized with correctAddresswhen using multiple transports (#7393) [ #7378 ] - e412b58 Harden Lease docs unit test (#7394)
- bd8a823 Added multi-transport addressing spec (#7391) [ #7378 ]
See More
- 866e053 Cleaned up
TestTransportXML-DOCTBDs (#7390) - 36b0ec6 Deprecate
ClusterSingleton.Init()and add missing singleton feature toClusterSingletonSettings(#7387) - 4082e9c [DOCS] Add custom lease documentation (#7388)
- 0ad0b77 Update RELEASE_NOTES.md
- 84c2bcd Add v1.5.31 upgrade advisory (#7385)
This list of changes was auto generated.
Akka.NET v1.5.31
1.5.31 November 11th 2024
Akka.NET v1.5.31 is a maintenance release that addresses several bugs and added new features.
- Persistence: Add logging for failed DeleteAsync() that was caused by failed SaveSnapshot()
- Persistence: Fix RecoveryTick timer leak
- Serialization.Hyperion: Fix serializer config bug
- Sharding: Fix potential
ArgumentExceptionduring shard re-balancing - Cluster: Fix multiple
Memberwith the sameAddresscrashingClusterDaemon - Core: Fix
Stashfiltering out identicalEnvelopes - Streams: Fix
ShellRegisteredmessage deadletter log - Sharding: Make lease release in
Shard.PostStopbe blocking instead of using detached async task - Cluster.Tools: Add missing singleton detection feature for easier infrastructure debugging
Upgrade Advisory
There is a slight change in how actor Stash behavior. In previous behavior, Stash will filter out any messages that are identical (see explanation below) when it is prepended with another. It will not do so now, which is the actual intended behavior.
This change will affect Akka.Persistence users or users who use the Stash.Prepend() method in their code. You will need to add a de-duplication code if your code depends on sending identical messages multiple times to a persistence actor while it is recovering.
Messages are considered as identical if they are sent from the same sender actor and have a payload message that Equals() to true against another message. Example payload types would be an object pointing to the same memory address (ReferenceEquals() returns true), value types (enum, primitives, structs), and classes that implements the IEquatable interface.
To see the full set of changes in Akka.NET v1.5.31, click here.
2 contributors since release 1.5.30
| COMMITS | LOC+ | LOC- | AUTHOR |
|---|---|---|---|
| 9 | 627 | 154 | Gregorius Soedharmo |
| 4 | 133 | 40 | Aaron Stannard |
Changes:
- fe6fa8d Update RELEASE_NOTES.md for 1.5.31 release (#7384)
- fb526e5 Add missing cluster singleton detection (#7363)
- 322c494 Block lease release in Shard PostStop (#7383)
- 902daf5 clarified that you don't need to handle ShardRegion.StartEntity after version v1.5.15 of Akka.NET (#7380)
- 699aff2 [Streams] Fix ShellRegistered message deadletter log (#7376)
- 3700809 Added reproduction for missing
Stash.Stashmessages in Akka.,Persistence actors (#7374) [ #7373 ] - 67fad90 Fix EventSourced Stash filtering out identical envelopes (#7375)
- 0cbddb5 fixed bugs with multiple
Members with sameAddresscrashingClusterDaemon(#7371) [ #7370 ] - 02157c3 fix potential
ArgumentExceptionduring shard rebalancing (#7367) [ #7365 ] - 7685a6f Fix Hyperion serializer config bug (#7364)
Akka.NET v1.5.30
1.5.30 October 1st 2024
Akka.NET v1.5.29 introduced an interface change on the IScheduler that unfortunately caused a lot of other plugins to break due to API compatibility issues. v1.5.30 rolls back that change but still fixes the underlying bug in Akka.Persistence's handling and serialziation of timestamps without any interface changes. v1.5.29 will be deprecated from NuGet.
- DData: Remove Hyperion dependency
- Streams: Fix SelectAsync race condition bug
- Core: Add new IWithTimers API to allow sender override
- Persistence: Fix SnapshotMetadata default timestamp value (DateTimeKind.Utc bug)
- Core: Fix AskTimeoutException message formatting bug
To see the full set of changes in Akka.NET v1.5.30, click here.
3 contributors since release 1.5.28
| COMMITS | LOC+ | LOC- | AUTHOR |
|---|---|---|---|
| 8 | 259 | 104 | Gregorius Soedharmo |
| 1 | 10 | 10 | Simon Cropp |
| 1 | 0 | 1 | Aaron Stannard |
1.5.29 October 1st 2024
Note
Deprecated
This version introduced breaking changes that needs to be reverted. Please use 1.5.30 instead.
Akka.NET v1.5.29 is an emergency patch release that addresses a severe bug for persistence users whom also use protobuf serializer.
- DData: Remove Hyperion dependency
- Streams: Fix SelectAsync race condition bug
- Core: Add new IWithTimers API to allow sender override
- Persistence: Fix SnapshotMetadata default timestamp value (DateTimeKind.Utc bug)
- Core: Fix AskTimeoutException message formatting bug
To see the full set of changes in Akka.NET v1.5.29, click here.
3 contributors since release 1.5.28
| COMMITS | LOC+ | LOC- | AUTHOR |
|---|---|---|---|
| 4 | 177 | 14 | Gregorius Soedharmo |
| 1 | 10 | 10 | Simon Cropp |
| 1 | 0 | 1 | Aaron Stannard |
Changes:
- 6fd8701 Update RELEASE_NOTES.md for 1.5.30 release (#7355)
- d98d37f Fix SnapshotMetadata.Timestamp bug (#7354)
- e5aebed Revert #7349 and #7352 (#7353)
This list of changes was auto generated.