Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add .NET 6 SDK support #5373

Merged
merged 6 commits into from
Nov 10, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions build-system/azure-pipeline.mntr-template.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ jobs:
vmImage: ${{ parameters.vmImage }}
steps:
- task: UseDotNet@2
displayName: 'Use .NET 5 SDK 5.0.101'
displayName: 'Use .NET 6 SDK 6.0.100'
inputs:
version: 5.0.101
version: 6.0.100
- task: UseDotNet@2
displayName: 'Use .NET Core Runtime 3.1.10'
inputs:
Expand Down
4 changes: 2 additions & 2 deletions build-system/azure-pipeline.template.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ jobs:
vmImage: ${{ parameters.vmImage }}
steps:
- task: UseDotNet@2
displayName: 'Use .NET 5 SDK 5.0.101'
displayName: 'Use .NET 6 SDK 6.0.100'
inputs:
version: 5.0.101
version: 6.0.100
- task: UseDotNet@2
displayName: 'Use .NET Core Runtime 3.1.10'
inputs:
Expand Down
4 changes: 2 additions & 2 deletions build-system/nightly-builds.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ variables:

steps:
- task: UseDotNet@2
displayName: 'Use .NET 5 SDK 5.0.101'
displayName: 'Use .NET 5 SDK 6.0.100'
inputs:
version: 5.0.101
version: 6.0.100
- task: UseDotNet@2
displayName: 'Use .NET Core Runtime 3.1.10'
inputs:
Expand Down
4 changes: 2 additions & 2 deletions build-system/pr-validation.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,9 @@ jobs:
submodules: recursive # set to 'true' for a single level of submodules or 'recursive' to get submodules of submodules
persistCredentials: true
- task: UseDotNet@2
displayName: "Use .NET 5 SDK 5.0.101"
displayName: "Use .NET 6 SDK 6.0.100"
inputs:
version: 5.0.101
version: 6.0.100
- task: UseDotNet@2
displayName: "Use .NET Core Runtime 3.1.10"
inputs:
Expand Down
4 changes: 2 additions & 2 deletions build-system/windows-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ variables:
value: akkadotnet/akka.net
steps:
- task: UseDotNet@2
displayName: 'Use .NET 5 SDK 5.0.101'
displayName: 'Use .NET 6 SDK 6.0.100'
inputs:
version: 5.0.101
version: 6.0.100
- task: UseDotNet@2
displayName: 'Use .NET Core Runtime 3.1.10'
inputs:
Expand Down
4 changes: 2 additions & 2 deletions build.fsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ let outputMultiNode = outputTests @@ "multinode"
let outputFailedMultiNode = outputTests @@ "multinode" @@ "FAILED_SPECS_LOGS"
let outputBinariesNet45 = outputBinaries @@ "net45"
let outputBinariesNetStandard = outputBinaries @@ "netstandard2.0"
let outputBinariesNet = outputBinaries @@ "net5.0"
let outputBinariesNet = outputBinaries @@ "net6.0"

let buildNumber = environVarOrDefault "BUILD_NUMBER" "0"
let hasTeamCity = (not (buildNumber = "0")) // check if we have the TeamCity environment variable for build # set
Expand Down Expand Up @@ -57,7 +57,7 @@ let incrementalistReport = output @@ "incrementalist.txt"
// Configuration values for tests
let testNetFrameworkVersion = "net471"
let testNetCoreVersion = "netcoreapp3.1"
let testNetVersion = "net5.0"
let testNetVersion = "net6.0"

Target "Clean" (fun _ ->
ActivateFinalTarget "KillCreatedProcesses"
Expand Down
2 changes: 1 addition & 1 deletion build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ $NugetUrl = "https://dist.nuget.org/win-x86-commandline/v$NugetVersion/nuget.exe
$ProtobufVersion = "3.13.0"
$DocfxVersion = "2.48.1"

$IncrementalistVersion = "0.4.0";
$IncrementalistVersion = "0.6.0";

# Make sure tools folder exists
$PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent
Expand Down
2 changes: 1 addition & 1 deletion build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ DOTNET_VERSION=5.0.101
DOTNET_INSTALLER_URL=https://dot.net/v1/dotnet-install.sh
DOTNET_CHANNEL=LTS
PROTOBUF_VERSION=3.4.0
INCREMENTALIST_VERSION=0.4.0
INCREMENTALIST_VERSION=0.6.0

# Define default arguments.
TARGET="Default"
Expand Down
65 changes: 3 additions & 62 deletions src/common.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<PropertyGroup>
<Copyright>Copyright © 2013-2021 Akka.NET Team</Copyright>
<Authors>Akka.NET Team</Authors>
<VersionPrefix>1.4.27</VersionPrefix>
<VersionPrefix>1.4.28</VersionPrefix>
<PackageIconUrl>https://getakka.net/images/akkalogo.png</PackageIconUrl>
<PackageProjectUrl>https://github.com/akkadotnet/akka.net</PackageProjectUrl>
<PackageLicenseUrl>https://github.com/akkadotnet/akka.net/blob/master/LICENSE</PackageLicenseUrl>
Expand All @@ -17,7 +17,7 @@
<ProtobufVersion>3.17.3</ProtobufVersion>
<BenchmarkDotNetVersion>0.13.1</BenchmarkDotNetVersion>
<NetCoreTestVersion>netcoreapp3.1</NetCoreTestVersion>
<NetTestVersion>net5.0</NetTestVersion>
<NetTestVersion>net6.0</NetTestVersion>
<NetFrameworkTestVersion>net471</NetFrameworkTestVersion>
<NetStandardLibVersion>netstandard2.0</NetStandardLibVersion>
<FluentAssertionsVersion>5.10.3</FluentAssertionsVersion>
Expand All @@ -31,66 +31,7 @@
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
</PropertyGroup>
<PropertyGroup>
<PackageReleaseNotes>Maintenance Release for Akka.NET 1.4**
Akka.NET v1.4.27 is a small release that contains some _major_ performance improvements for Akka.Remote.
Performance Fixes**
In [RemoteActorRefProvider address paring, caching and resolving improvements](https://github.com/akkadotnet/akka.net/pull/5273) Akka.NET contributor @Zetanova introduced some major changes that make the entire `ActorPath` class much more reusable and more parse-efficient.
Our last major round of Akka.NET performance improvements in Akka.NET v1.4.25 produced the following:
```
OSVersion: Microsoft Windows NT 6.2.9200.0
ProcessorCount: 16
ClockSpeed: 0 MHZ
Actor Count: 32
Messages sent/received per client: 200000 (2e5)
Is Server GC: True
Thread count: 111
Num clients, Total [msg], Msgs/sec, Total [ms]
1, 200000, 130634, 1531.54
5, 1000000, 246975, 4049.20
10, 2000000, 244499, 8180.16
15, 3000000, 244978, 12246.39
20, 4000000, 245159, 16316.37
25, 5000000, 243333, 20548.09
30, 6000000, 241644, 24830.55
```
In Akka.NET v1.4.27 those numbers now look like:
```
OSVersion: Microsoft Windows NT 6.2.9200.
ProcessorCount: 16
ClockSpeed: 0 MHZ
Actor Count: 32
Messages sent/received per client: 200000 (2e5)
Is Server GC: True
Thread count: 111
Num clients, Total [msg], Msgs/sec, Total [ms]
1, 200000, 105043, 1904.29
5, 1000000, 255494, 3914.73
10, 2000000, 291843, 6853.30
15, 3000000, 291291, 10299.75
20, 4000000, 286513, 13961.68
25, 5000000, 292569, 17090.64
30, 6000000, 281492, 21315.35
```
To put these numbers in comparison, here's what Akka.NET's performance looked like as of v1.4.0:
```
Num clients (actors) Total [msg] Msgs/sec Total [ms]
1 200000 69736 2868.60
5 1000000 141243 7080.98
10 2000000 136771 14623.27
15 3000000 38190 78556.49
20 4000000 32401 123454.60
25 5000000 33341 149967.08
30 6000000 126093 47584.92
```
We've made Akka.Remote consistently faster, more predictable, and reduced total memory consumption significantly in the process.
You can [see the full set of changes introduced in Akka.NET v1.4.27 here](https://github.com/akkadotnet/akka.net/milestone/57?closed=1)
| COMMITS | LOC+ | LOC- | AUTHOR |
| --- | --- | --- | --- |
| 3 | 89 | 8 | Aaron Stannard |
| 1 | 856 | 519 | Andreas Dirnberger |
| 1 | 3 | 4 | Vadym Artemchuk |
| 1 | 261 | 233 | Gregorius Soedharmo |
| 1 | 1 | 1 | dependabot[bot] |</PackageReleaseNotes>
<PackageReleaseNotes>Placeholder for nightlies**</PackageReleaseNotes>
</PropertyGroup>
<!-- SourceLink support for all Akka.NET projects -->
<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,6 @@
<Reference Include="Microsoft.CSharp" />
</ItemGroup>

<ItemGroup>
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>

<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<DefineConstants>$(DefineConstants);RELEASE</DefineConstants>
</PropertyGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ public void Hyperion_serializer_should_read_cross_platform_package_name_override
#elif NETCOREAPP3_1
Assert.Equal("dff", @override("def"));
Assert.Equal("efg", @override("efg"));
#elif NET5_0
#elif NET6_0
Assert.Equal("gii", @override("ghi"));
Assert.Equal("hij", @override("hij"));
#else
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,6 @@
<files>
<file src="bin\Release\net471\win10-x64\publish\*.*" target="lib\net471\" />
<file src="bin\Release\netcoreapp3.1\win10-x64\publish\*.*" target="lib\netcoreapp3.1\" />
<file src="bin\Release\net5.0\win10-x64\publish\*.*" target="lib\net5.0\" />
<file src="bin\Release\net6.0\win10-x64\publish\*.*" target="lib\net6.0\" />
</files>
</package>