Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
c85cbf2
Update RELEASE_NOTES.md (#5653)
Aaronontheweb Feb 14, 2022
06f9c9e
Resolve hocon paths (#5644)
eaba Feb 15, 2022
79594a3
Fix invalid paths (#5658)
eaba Feb 15, 2022
05dfaff
Change WatchTermination signature to Task<Done> (#5647)
ismaelhamed Feb 16, 2022
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
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,24 @@
#### 1.4.34 March 7 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.

__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.33, 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
2 changes: 2 additions & 0 deletions build-system/azure-pipeline.template.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,11 @@ parameters:
scriptArgs: 'all'
outputDirectory: ''
timeoutInMinutes: 120
run_if: true

jobs:
- job: ${{ parameters.name }}
condition: eq( ${{ parameters.run_if }}, true )
displayName: ${{ parameters.displayName }}
timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
pool:
Expand Down
11 changes: 11 additions & 0 deletions build-system/pr-validation.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,17 @@ jobs:
outputDirectory: "TestResults"
artifactName: "net_core_tests_linux-$(Build.BuildId)"

- 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
19 changes: 13 additions & 6 deletions build.fsx
Original file line number Diff line number Diff line change
Expand Up @@ -632,12 +632,19 @@ Target "DocFx" (fun _ ->
Version = "0.1.0-alpha-1611021200"
OutputDirectory = currentDirectory @@ "tools" }) "msdn.4.5.2"

let docsPath = "./docs"
DocFx (fun p ->
{ p with
Timeout = TimeSpan.FromMinutes 30.0;
WorkingDirectory = docsPath;
DocFxJson = docsPath @@ "docfx.json" })
let docsPath = FullName "./docs"
let docFxPath = FullName(findToolInSubPath "docfx.exe" "tools/docfx.console/tools")

let args = StringBuilder()
|> append (docsPath @@ "docfx.json" )
|> append ("--warningsAsErrors")
|> toText

let result = ExecProcess(fun info ->
info.FileName <- docFxPath
info.WorkingDirectory <- (Path.GetDirectoryName (FullName docFxPath))
info.Arguments <- args) (System.TimeSpan.FromMinutes 45.0) (* Reasonably long-running task. *)
if result <> 0 then failwithf "DocFX failed. %s %s" docFxPath args
)

FinalTarget "KillCreatedProcesses" (fun _ ->
Expand Down
1 change: 0 additions & 1 deletion docs/api/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ Full API reference documentation on Akka.NET's modules, classes, and APIs.
* [Akka.Streams API Docs](Akka.Streams.yml)
* [Akka.Cluster API Docs](Akka.Cluster.yml)
* [Akka.Cluster.Sharding API Docs](Akka.Cluster.Sharding.yml)
* [Akka.Cluster.Tools API Docs](Akka.Cluster.Tools.yml)
* [Akka.DependencyInjection API Docs](Akka.DependencyInjection.yml)
* [Akka.Discovery API Docs](Akka.Discovery.yml)

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

24 changes: 24 additions & 0 deletions docs/articles/clustering/toc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
- name: Overview
href: cluster-overview.md
- name: Cluster Routing
href: cluster-routing.md
- name: Cluster Configuration
href: cluster-configuration.md
- name: Accessing the Cluster ActorSystem Extension
href: cluster-extension.md
- name: Cluster Singleton
href: cluster-singleton.md
- name: Distributed Publish Subscribe in Cluster
href: distributed-publish-subscribe.md
- name: Cluster Client
href: cluster-client.md
- name: Cluster Sharding
href: cluster-sharding.md
- name: Sharded Daemon Process
href: cluster-sharded-daemon-process.md
- name: Cluster Metrics
href: cluster-metrics.md
- name: Distributed Data
href: distributed-data.md
- name: Split Brain Resolver
href: split-brain-resolver.md
14 changes: 14 additions & 0 deletions docs/articles/concepts/toc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
- name: Terminology, Concepts
href: terminology.md
- name: Actor Systems
href: actor-systems.md
- name: What is an Actor?
href: actors.md
- name: Supervision and Monitoring
href: supervision.md
- name: Actor References, Paths and Addresses
href: addressing.md
- name: Location Transparency
href: location-transparency.md
- name: Message Delivery Reliability
href: message-delivery-reliability.md
10 changes: 10 additions & 0 deletions docs/articles/configuration/akka.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<!DOCTYPE html>
<html>
<head>
<title>Akka Configuration</title>
<meta http-equiv = "refresh" content="1;url=../configuration/modules/akka.html" />
</head>
<body>
<p>This page has been moved to <a href="../configuration/modules/akka.html">Akka Configuration</a>.</p>
</body>
</html>
Loading