Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
0ab5783
Moved the `akka core` configuration page into `modules`` (#5664)
eaba Feb 17, 2022
aeb22a4
Fix link issue with `xref` (#5666)
eaba Feb 17, 2022
9ca6768
[Docs]: Fix Metadata Reference (#5668)
eaba Feb 17, 2022
4573bcc
Resolved invalid links (#5669)
eaba Feb 18, 2022
3667a62
Check for possible broken documentation by failing on DocFX warning (…
Arkatufus Feb 18, 2022
f6c716a
Make sure DocFX warning check step only executed in PR (#5674)
Arkatufus Feb 18, 2022
02334cf
[Docs] Improve coordinated shutdown doc hygiene (#5677)
eaba Feb 22, 2022
af10db0
Correct the usage of `integration` (#5679)
eaba Feb 22, 2022
0b89fb5
Improve code reference hygiene with exisiting code block (#5680)
eaba Feb 22, 2022
8faab89
Updated developement scenario (#5533)
eaba Feb 23, 2022
700f33d
Fix ORSet.Merge with AddDeltaOperation takes too long to complete (#5…
Arkatufus Feb 24, 2022
655e4f3
Make PipeTo ConfigureAwait() optional (#5684)
Arkatufus Feb 24, 2022
b1ab515
Optimize PipeTo ConfigureAwait call (#5688)
Arkatufus Feb 25, 2022
ba86390
Fixed broken toc.yml (#5694)
eaba Feb 27, 2022
e47f99d
Fix Serialization documentation discoverability (#5699)
eaba Mar 3, 2022
4db81c1
Call `base.AfterAll()` to kill TestKit ActorSystem (#5705)
Arkatufus Mar 5, 2022
2bbc58c
Fix confusing logging when receiving gossip from unknown (#5706)
ismaelhamed Mar 5, 2022
60d95ac
Reorder Source/FlowWithContext type parameters (#5648)
ismaelhamed Mar 6, 2022
5296c64
Add Stateful methods for circuitbreaker (#5650)
to11mtm Mar 7, 2022
3bf4c12
Update RELEASE_NOTES.md for 1.4.34 release (#5707)
Arkatufus Mar 7, 2022
cef5031
Added placeholder for 1.4.35 (#5709)
Aaronontheweb Mar 7, 2022
2e1d4ea
Fix PersistenceId Query and Sqlite unit tests (#5715)
Arkatufus Mar 9, 2022
7123d0f
[DocFx] custom Akka.NET theme (#5659)
Aaronontheweb Mar 9, 2022
d055f46
fix video embeds on mobile (#5719)
Aaronontheweb Mar 14, 2022
b6214ef
Fixed `IActorRef` leak inside `EventStream` (#5720)
Aaronontheweb Mar 15, 2022
8293f12
supress InvalidOperationException in xUnit OutputLogger (#5722)
Aaronontheweb Mar 16, 2022
19811a1
Bump Google.Protobuf from 3.17.3 to 3.19.4 (#5555)
dependabot[bot] Mar 16, 2022
7732b36
Add MapMaterializedValue for Source/Flow WithContext (#5711)
ismaelhamed Mar 16, 2022
a2dc4f8
close #5728 fix `ActorSystemSetup.And` (#5729)
Aaronontheweb Mar 18, 2022
5a506b7
Update RELEASE_NOTES.md for 1.4.35 release (#5726)
Arkatufus Mar 18, 2022
a18c246
v1.4.36 placeholder for nightlies (#5732)
Aaronontheweb Mar 18, 2022
5ef69e9
Update PersistAsync to match docs. (#5736)
NaridaL Mar 21, 2022
ef6718e
[DI] DI fails to throw an exception when DI tried to create an actor …
Arkatufus Mar 21, 2022
4e35c2a
Fix spelling (#5745)
eaba Mar 22, 2022
93a3d7e
Lock cspell on version `5.18.5` (#5744)
eaba Mar 22, 2022
b4b390d
cleanup XUnit TestKit output logger (#5741)
Aaronontheweb Mar 22, 2022
6d3d91f
marked `EventBusUnsubscriber` messages as `INoSerializationVerificati…
Aaronontheweb Mar 22, 2022
0c85653
Fix MSBuild does not copy xunit.runner dlls correctly (#5747)
Arkatufus Mar 23, 2022
9e05894
Add documentation on how to override serializer ids. (#5749)
Arkatufus Mar 24, 2022
b365c06
Add `Member Roles` doc (#5742)
eaba Mar 24, 2022
ab332ea
[DOCS]: Add `Examples` section to Akka.NET Doc (#5739)
eaba Mar 30, 2022
0309498
Bump Hyperion to 0.12.2 (#5805)
Arkatufus Apr 1, 2022
3ee032d
Fix leaky coordinated shutdown (#5816)
Arkatufus Apr 4, 2022
13eea74
Couple of fixes for the TcpConnection (#5817)
ismaelhamed Apr 4, 2022
9c29c84
Update RELEASE_NOTES.md for 1.4.36 release (#5820)
Arkatufus Apr 5, 2022
161c9d5
Revert changes that are unrelated to the memory leak (#5822)
Arkatufus Apr 5, 2022
da0f734
Be more explicit that a node is shutting down as it was marked as DOW…
ismaelhamed Apr 5, 2022
37e6331
Change the failure log inside `AllEventPublisher` from Debug to Error…
Arkatufus Apr 8, 2022
8fec4ba
Fix LeaseProvider instance Activator exception handling (#5838)
Arkatufus Apr 13, 2022
d0ec3b8
Make ActorSystemImpl.Abort skip the CoordinatedShutdown check (#5839)
Arkatufus Apr 13, 2022
1800bdc
Bump Microsoft.Data.SQLite from 5.0.11 to 6.0.4 (#5837)
dependabot[bot] Apr 13, 2022
a42fa87
Update RELEASE_NOTES.md for 1.4.37 release (#5841)
Arkatufus Apr 14, 2022
9f23e04
Add specs to test disallow-unsafe-type (#5746)
Arkatufus Apr 15, 2022
546176a
move from ApprovalTests to Verify for api tests (#5846)
SimonCropp Apr 18, 2022
bba3dc3
Bump FsCheckVersion from 2.16.3 to 2.16.4 (#5724)
dependabot[bot] Apr 18, 2022
5233233
Fix Persistence.TCK specs (#5849)
Arkatufus Apr 18, 2022
7b7e0ec
change `dev` version number to 1.5-x (#5856)
Aaronontheweb Apr 20, 2022
2cbdbcb
Zbynek001 sharding update2 (#5857)
Aaronontheweb Apr 20, 2022
9194549
Bump Swashbuckle.AspNetCore from 6.2.3 to 6.3.0 (#5848)
dependabot[bot] Apr 20, 2022
8e7f021
cleaned up some allocations and styling (#5855)
Aaronontheweb Apr 20, 2022
9bbb68f
fix sharding recovery (#5863)
zbynek001 Apr 21, 2022
c80c11c
Update MNTR to 1.1.1 and update build script to suit (#5866)
Arkatufus Apr 21, 2022
924bb15
GroupBy fixes (#5874)
ismaelhamed Apr 25, 2022
8b19302
Fix Source.ActorRef not completing (#5875)
ismaelhamed Apr 25, 2022
c2460eb
Fix typo in `akka.remote.dot-netty.ssl.certificate` (#5895)
Arkatufus Apr 28, 2022
6963557
enable `ChannelTaskScheduler` to work inside Akka.Cluster without cau…
Aaronontheweb May 6, 2022
e89287f
added .NET 6 dual targeting to all assemblies (#5926)
Aaronontheweb May 10, 2022
3c7a8e4
Renamed method `SetHandler` accepting both callbacks to `SetHandlers`…
ismaelhamed May 11, 2022
1893800
Rewrite actor ref sink as a graph stage (#5930)
ismaelhamed May 11, 2022
bedb53a
Merge branch 'dev' into async_testkit/Merge_dev
Arkatufus May 11, 2022
af175ad
Post-merge cleanup
Arkatufus May 11, 2022
44657fd
Update API verify list
Arkatufus May 11, 2022
83ac339
Post-merge fix and update API verify list
Arkatufus May 11, 2022
2ce4b06
Fix XML doc
Arkatufus May 12, 2022
9d1491d
Post merge fix, docs
Arkatufus May 12, 2022
d1bdc00
Fix XML Doc
Arkatufus May 12, 2022
5a06c13
Post merge fix
Arkatufus May 12, 2022
e843329
Post merge fix
Arkatufus May 12, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
76 changes: 74 additions & 2 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,77 @@
#### 1.4.34 February 14 2022 ####
**Placeholder for nightlies**
#### 1.5.0-beta1 April 20 2022 ####
**Placeholder for first beta release of Akka.NET v1.5**

#### 1.4.37 April 14 2022 ####
Akka.NET v1.4.37 is a minor release that contains some minor bug fixes.

* [Persistence.Query: Change AllEvents query failure log severity from Debug to Error](https://github.com/akkadotnet/akka.net/pull/5835)
* [Coordination: Harden LeaseProvider instance Activator exception handling](https://github.com/akkadotnet/akka.net/pull/5838)
* [Akka: Make ActorSystemImpl.Abort skip the CoordinatedShutdown check](https://github.com/akkadotnet/akka.net/pull/5839)

If you want to see the [full set of changes made in Akka.NET v1.4.37, click here](https://github.com/akkadotnet/akka.net/milestone/68?closed=1).

| COMMITS | LOC+ | LOC- | AUTHOR |
|---------|------|------|---------------------|
| 3 | 15 | 4 | Gregorius Soedharmo |
| 1 | 2 | 2 | dependabot[bot] |

#### 1.4.36 April 4 2022 ####
Akka.NET v1.4.36 is a minor release that contains some bug fixes. Most of the changes have been aimed at improving our web documentation and code cleanup to modernize some of our code.

* [Akka: Bump Hyperion to 0.12.2](https://github.com/akkadotnet/akka.net/pull/5805)

__Bug fixes__:
* [Akka: Fix CoordinatedShutdown memory leak](https://github.com/akkadotnet/akka.net/pull/5816)
* [Akka: Fix TcpConnection error handling and death pact de-registration](https://github.com/akkadotnet/akka.net/pull/5817)

If you want to see the [full set of changes made in Akka.NET v1.4.36, click here](https://github.com/akkadotnet/akka.net/milestone/67?closed=1).

| COMMITS | LOC+ | LOC- | AUTHOR |
|---------|------|------|---------------------|
| 5 | 274 | 33 | Gregorius Soedharmo |
| 4 | 371 | 6 | Ebere Abanonu |
| 3 | 9 | 3 | Aaron Stannard |
| 1 | 34 | 38 | Ismael Hamed |
| 1 | 2 | 3 | Adrian Leonhard |

#### 1.4.35 March 18 2022 ####
Akka.NET v1.4.35 is a minor release that contains some bug fixes. Most of the changes have been aimed at improving our web documentation and code cleanup to modernize some of our code.

__Bug fixes__:
* [Akka: Fixed IActorRef leak inside EventStream](https://github.com/akkadotnet/akka.net/pull/5720)
* [Akka: Fixed ActorSystemSetup.And forgetting registered types](https://github.com/akkadotnet/akka.net/issues/5728)
* [Akka.Persistence.Query.Sql: Fixed Query PersistenceIds query bug](https://github.com/akkadotnet/akka.net/pull/5715)
* [Akka.Streams: Add MapMaterializedValue for SourceWithContext and FlowWithContext](https://github.com/akkadotnet/akka.net/pull/5711)

If you want to see the [full set of changes made in Akka.NET v1.4.35, click here](https://github.com/akkadotnet/akka.net/milestone/66?closed=1).

| COMMITS | LOC+ | LOC- | AUTHOR |
|---------|------|------|---------------------|
| 6 | 2178 | 174 | Aaron Stannard |
| 2 | 43 | 33 | Gregorius Soedharmo |
| 1 | 71 | 19 | Ismael Hamed |
| 1 | 1 | 1 | dependabot[bot] |

#### 1.4.34 March 7 2022 ####
Akka.NET v1.4.34 is a minor release that contains some bug fixes. Most of the changes have been aimed at improving our web documentation and code cleanup to modernize some of our code.

__Bug fixes__:
* [Akka: Added support to pass a state object into CircuitBreaker to reduce allocations](https://github.com/akkadotnet/akka.net/pull/5650)
* [Akka.DistributedData: ORSet merge operation performance improvement](https://github.com/akkadotnet/akka.net/pull/5686)
* [Akka.Streams: FlowWithContext generic type parameters have been reordered to make them easier to read](https://github.com/akkadotnet/akka.net/pull/5648)

__Improvements__:
* [Akka: PipeTo can be configured to retain async threading context](https://github.com/akkadotnet/akka.net/pull/5684)

If you want to see the [full set of changes made in Akka.NET v1.4.34, click here](https://github.com/akkadotnet/akka.net/milestone/65?closed=1).

| COMMITS | LOC+ | LOC- | AUTHOR |
|---------|--------|-------|---------------------|
| 12 | 1177 | 718 | Ebere Abanonu |
| 6 | 192 | 47 | Gregorius Soedharmo |
| 3 | 255 | 167 | Ismael Hamed |
| 1 | 3 | 0 | Aaron Stannard |
| 1 | 126 | 10 | Drew |

#### 1.4.33 February 14 2022 ####
Akka.NET v1.4.33 is a minor release that contains some bug fixes. Most of the changes have been aimed at improving our web documentation and code cleanup to modernize some of our code. The most important bug fix is the actor Props memory leak when actors are cached inside Akka.Remote.
Expand Down
13 changes: 12 additions & 1 deletion build-system/pr-validation.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
- task: Npm@1
inputs:
command: "custom"
customCommand: "install -g cspell"
customCommand: "install -g cspell@5.17.0"
- task: CmdLine@2
inputs:
script: 'cspell --config ./docs/cSpell.json "docs/**/*.md"'
Expand Down Expand Up @@ -135,6 +135,17 @@ jobs:
# artifactName: "docfx_test-$(Build.BuildId)"
# run_if: eq(variables['Build.Reason'], 'PullRequest')

- template: azure-pipeline.template.yaml
parameters:
name: "docfx_test"
displayName: "DocFX warning check"
vmImage: "windows-2019"
scriptFileName: build.cmd
scriptArgs: docfx
outputDirectory: "TestResults"
artifactName: "docfx_test-$(Build.BuildId)"
run_if: eq(variables['Build.Reason'], 'PullRequest')

- template: azure-pipeline.template.yaml
parameters:
name: "net_5_tests_windows"
Expand Down
74 changes: 1 addition & 73 deletions docs/articles/actors/coordinated-shutdown.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,79 +8,7 @@ There's an `ActorSystem` extension called `CoordinatedShutdown` that will stop c

The default phases and their orderings are defined in the default HOCON configuration as `akka.coordinated-shutdown.phases`, and they are defined below:

```hocon
phases {

# The first pre-defined phase that applications can add tasks to.
# Note that more phases can be be added in the application's
# configuration by overriding this phase with an additional
# depends-on.
before-service-unbind {
}

# Stop accepting new incoming requests in for example HTTP.
service-unbind {
depends-on = [before-service-unbind]
}

# Wait for requests that are in progress to be completed.
service-requests-done {
depends-on = [service-unbind]
}

# Final shutdown of service endpoints.
service-stop {
depends-on = [service-requests-done]
}

# Phase for custom application tasks that are to be run
# after service shutdown and before cluster shutdown.
before-cluster-shutdown {
depends-on = [service-stop]
}

# Graceful shutdown of the Cluster Sharding regions.
cluster-sharding-shutdown-region {
timeout = 10 s
depends-on = [before-cluster-shutdown]
}

# Emit the leave command for the node that is shutting down.
cluster-leave {
depends-on = [cluster-sharding-shutdown-region]
}

# Shutdown cluster singletons
cluster-exiting {
timeout = 10 s
depends-on = [cluster-leave]
}

# Wait until exiting has been completed
cluster-exiting-done {
depends-on = [cluster-exiting]
}

# Shutdown the cluster extension
cluster-shutdown {
depends-on = [cluster-exiting-done]
}

# Phase for custom application tasks that are to be run
# after cluster shutdown and before ActorSystem termination.
before-actor-system-terminate {
depends-on = [cluster-shutdown]
}

# Last phase. See terminate-actor-system and exit-jvm above.
# Don't add phases that depends on this phase because the
# dispatcher and scheduler of the ActorSystem have been shutdown.
actor-system-terminate {
timeout = 10 s
depends-on = [before-actor-system-terminate]
}
}
```
[!code-hocon[Pigeon.conf](../../../src/core/Akka/Configuration/Pigeon.conf#L1019-L1091)]

## Custom Phases

Expand Down
2 changes: 1 addition & 1 deletion docs/articles/actors/di-core.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ title: DI Core
# Akka.DI.Core

> [!WARNING]
> As of [Akka.NET v1.4.15](https://github.com/akkadotnet/akka.net/releases/tag/1.4.15), Akka.DI.Core and all of the libraries that implement it are deprecated. Going forward Akka.NET users are encouraged to use the [Akka.DependencyInjection library](xref:dependency-injection) instead, which uses the Microsoft.Extensions.DependencyInjection interfaces to integration DI directly into your Akka.NET actors.
> As of [Akka.NET v1.4.15](https://github.com/akkadotnet/akka.net/releases/tag/1.4.15), Akka.DI.Core and all of the libraries that implement it are deprecated. Going forward Akka.NET users are encouraged to use the [Akka.DependencyInjection library](xref:dependency-injection) instead, which uses the Microsoft.Extensions.DependencyInjection interfaces to integrate DI directly into your Akka.NET actors.

**Actor Producer Extension** library is used to create a Dependency Injection Container for the [Akka.NET](https://github.com/akkadotnet/akka.net) framework.

Expand Down
38 changes: 3 additions & 35 deletions docs/articles/actors/finite-state-machine.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,31 +99,15 @@ The `stateFunction` argument is a `delegate State<TState, TData> StateFunction(E

Each `FSM` needs a starting point, which is declared using

```csharp
StartWith(state, data[, timeout])
```
[!code-csharp[Main](../../../src/core/Akka.Docs.Tests/Actors/FiniteStateMachine/ExampleFSMActor.cs?name=StartWith)]

The optionally given timeout argument overrides any specification given for the desired initial state. If you want to cancel a default timeout, use `null`.

### Unhandled Events

If a state doesn't handle a received event a warning is logged. If you want to do something else in this case you can specify that with `WhenUnhandled(stateFunction)`:

```csharp
WhenUnhandled(state =>
{
if (state.FsmEvent is Queue x)
{
_log.Info("Received unhandled event: " + x);
return Stay();
}
else
{
_log.Warning("Received unknown event: " + state.FsmEvent);
return Goto(new Error());
}
});
```
[!code-csharp[Main](../../../src/core/Akka.Docs.Tests/Actors/FiniteStateMachine/ExampleFSMActor.cs?name=UnhandledHandler)]

Within this handler the state of the `FSM` may be queried using the stateName method.

Expand Down Expand Up @@ -163,23 +147,7 @@ OnTransition(handler)

which associates actions with a transition instead of with a state and event. The handler is a delegate `void TransitionHandler(TState initialState, TState nextState)` function which takes a pair of states as input; no resulting state is needed as it is not possible to modify the transition in progress.

```csharp
OnTransition((initialState, nextState) =>
{
if (initialState == State.Active && nextState == State.Idle)
{
SetTimer("timeout", new Tick(), TimeSpan.FromSeconds(1), repeat: true);
}
else if (initialState == State.Active)
{
CancelTimer("timeout");
}
else if (nextState == State.Idle)
{
_log.Info("entering Idle from " + initialState);
}
});
```
[!code-csharp[Main](../../../src/core/Akka.Docs.Tests/Actors/FiniteStateMachine/ExampleFSMActor.cs?name=TransitionHandler)]

The handlers registered with this method are stacked, so you can intersperse `OnTransition` blocks with when blocks as suits your design. It should be noted, however, that all handlers will be invoked for each transition, not only the first matching one. This is designed specifically so you can put all transition handling for a certain aspect into one place without having to worry about earlier declarations shadowing later ones; the actions are still executed in declaration order, though.

Expand Down
File renamed without changes.
29 changes: 29 additions & 0 deletions docs/articles/actors/toc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
- name: ReceiveActor API
href: receive-actor-api.md
- name: UntypedActor API
href: untyped-actor-api.md
- name: Routers
href: routers.md
- name: Dispatchers
href: dispatchers.md
- name: Mailboxes
href: mailboxes.md
- name: Scheduling Future and Recurring Messages
href: schedulers.md
- name: Akka.IO
href: io.md
- name: Inbox
href: inbox.md
- name: Finite State Machines
href: finite-state-machine.md
- name: Fault Tolerance
href: fault-tolerance.md
- name: Dependency Injection
href: dependency-injection.md
- name: Dependency Injection Core
href: di-core.md
- name: Testing Actor Systems
href: testing-actor-systems.md
- name: Coordinated Shutdown
href: coordinated-shutdown.md

3 changes: 2 additions & 1 deletion docs/articles/clustering/cluster-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ A cluster represents a fault-tolerant, elastic, decentralized peer-to-peer netwo

## What Does Akka.Cluster Do?

The best way to begin introducing Akka.Cluster is with brief overview of what it does. Akka.Cluster is the [package](https://www.nuget.org/packages/Akka.Cluster/1.0.3.11-beta) that brings clustering support to Akka.NET, and it accomplishes this by adding the following capabilities to Akka.NET:
The best way to begin introducing Akka.Cluster is with brief overview of what it does. Akka.Cluster is the [package](https://www.nuget.org/packages/Akka.Cluster/) that brings clustering support to Akka.NET, and it accomplishes this by adding the following capabilities to Akka.NET:

* Makes it easy to create peer-to-peer networks of Akka.NET applications
* Allows peers to automatically discover new nodes and removed dead ones automatically with no configuration changes
Expand Down Expand Up @@ -236,6 +236,7 @@ A node might also exit the cluster gracefully, preventing it from being marked a
<iframe width="560" height="315" src="https://www.youtube.com/embed/mUTKvGyxbOA" frameborder="0" allowfullscreen></iframe>
<!-- markdownlint-enable MD033 -->

* [Cluster Member Roles](xref:member-roles)
* [How to Create Scalable Clustered Akka.NET Apps Using Akka.Cluster](https://petabridge.com/blog/intro-to-akka-cluster/)
* [Video: Introduction to Akka.Cluster](https://www.youtube.com/watch?v=mUTKvGyxbOA)
* [Gossip Protocol](https://en.wikipedia.org/wiki/Gossip_protocol)
Expand Down
Loading