Skip to content

Commit

Permalink
Merge pull request #1856 from akkadotnet/dev
Browse files Browse the repository at this point in the history
Akka.NET v1.0.7 stable release
  • Loading branch information
Aaronontheweb committed Apr 6, 2016
2 parents 826bcd1 + 820e8c1 commit 17cbae3
Show file tree
Hide file tree
Showing 1,164 changed files with 16,644 additions and 9,047 deletions.
22 changes: 22 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,28 @@ git cherry-pick rev #repeat until you have picked all commits
git branch -m dev old-dev #rename dev
git branch dev upstream/dev #create a new dev
```
### What to do with feature branch after the pull request is merged and closed ? ###
After a pull request has been merged and closed you can delete the feature branch.

Get latest changes from the upstream

```
git checkout dev
git fetch upstream
git merge --ff-only upstream/dev
git push origin dev
```

Remove the branch locally

```
git branch -d my-new-branch-123
```
Remove the branch on remote

```
git push origin --delete my-new-branch-123
```

## Code guidelines

Expand Down
81 changes: 81 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,84 @@
#### 1.0.7 April 4 2016 ####
**Maintenance release for Akka.NET v1.0.6**
The biggest changes in Akka.NET 1.0.7 have been made to Akka.Persistence, which is now designed to match the final stable release version in JVM Akka 2.4. Akka.Persistence is on-target to exit beta and become a fully mature module as of Akka.NET 1.5, due in May/June timeframe.

A quick note about 1.5 - JSON.NET will be replaced by Wire as the default serializer going forward, so if you want to be forward-compatible with 1.5 you will need to switch to using Wire today. [Learn how to switch to using Wire as the default Akka.NET serializer](http://getakka.net/docs/Serialization#how-to-setup-wire-as-default-serializer).

If you install 1.0.7 you may see the following warning appear:

> NewtonSoftJsonSerializer has been detected as a default serializer.
> It will be obsoleted in Akka.NET starting from version 1.5 in the favor of Wire
for more info visit: http://getakka.net/docs/Serialization#how-to-setup-wire-as-default-serializer
> If you want to suppress this message set HOCON `{configPath}` config flag to on.
This release also fixes some issues with the Cluster.Tools and Cluster.Sharding NuGet packages, which weren't versioned correctly in previous releases.

**Fixes & Changes - Akka.NET Core**
* [https://github.com/akkadotnet/akka.net/pull/1667](https://github.com/akkadotnet/akka.net/pull/1667)
* [Akka IO: ByteIterator and ByteStringbuilder bug fixes](https://github.com/akkadotnet/akka.net/pull/1682)
* [Hocon Tripple quoted text - Fixes #1687](https://github.com/akkadotnet/akka.net/pull/1689)
* [Downgrade System.Collections.Immutable to 1.1.36](https://github.com/akkadotnet/akka.net/issues/1698)
* [Unify immutable collections](https://github.com/akkadotnet/akka.net/issues/1676) - Akka.NET core now depends on System.Collections.Immutable.
* [#1694 Added safe check in InboxActor when receive timeout is already expired](https://github.com/akkadotnet/akka.net/pull/1702)
* [Bugfix: DeadLetter filter with Type parameter should call IsInstanceOfType with the correct argument](https://github.com/akkadotnet/akka.net/pull/1707)
* [Akka.IO bind failed must notify bindCommander of failure](https://github.com/akkadotnet/akka.net/pull/1729)
* [ReceiveActor: Replaced Receive(Func<T, Task> handler) by ReceiveAsync(...) ](https://github.com/akkadotnet/akka.net/pull/1747)
* [External ActorSystem for Testkit event filters. ](https://github.com/akkadotnet/akka.net/pull/1753)
* [Fixed the ScatterGatherFirstCompleted router logic](https://github.com/akkadotnet/akka.net/pull/1769)
* [Issue #1766 - Lazy evaluation of ChildrenContainer.Children and ChildrenContainer.Stats](https://github.com/akkadotnet/akka.net/pull/1772)
* [[Dispatch] Support for 'mailbox-requirement' and 'mailbox-type' in dispatcher config](https://github.com/akkadotnet/akka.net/pull/1773)
* [Fixed within timeout for routers in default configuration](https://github.com/akkadotnet/akka.net/pull/1787)
* [Default MailboxType optimization](https://github.com/akkadotnet/akka.net/pull/1789)
* [Warning about JSON.NET obsolete in v1.5](https://github.com/akkadotnet/akka.net/pull/1811)
* [Issue #1828 Implemented NobodySurrogate](https://github.com/akkadotnet/akka.net/pull/1829)

**Fixes & Changes - Akka.Remote, Akka.Cluster, Et al**
* [Add the default cluster singleton config as a top-level fallback.](https://github.com/akkadotnet/akka.net/pull/1665)
* [Change ShardState to a class](https://github.com/akkadotnet/akka.net/pull/1677)
* [Cluster.Sharding: Take snapshots when configured](https://github.com/akkadotnet/akka.net/pull/1678)
* [added remote metrics](https://github.com/akkadotnet/akka.net/pull/1722)
* [Added a new argument to the MultiNodeTestRunner to filter specs](https://github.com/akkadotnet/akka.net/pull/1737)
* [close #1758 made Akka.Cluster.Tools and Akka.Cluster.Sharding use correct assembly version info and nuget dependencies](https://github.com/akkadotnet/akka.net/pull/1767)
* [Akka.Remote EndpointWriter backoff bugfix](https://github.com/akkadotnet/akka.net/pull/1777)
* [Akka.Cluster.TestKit (internal use only)](https://github.com/akkadotnet/akka.net/pull/1782)
* [Cluster.Tools.Singleton: Member.UpNumber fix](https://github.com/akkadotnet/akka.net/pull/1799)

**Fixes & Changes - Akka.Persistence**
* [Made JournalEntry.Payload an object and AtLeastOnceDeliverySemantic public](https://github.com/akkadotnet/akka.net/pull/1684)
* [Akka.Persistence - update code base to akka JVM v2.4](https://github.com/akkadotnet/akka.net/pull/1717)
* [Ensure internal stash is unstashed on writes after recovery](https://github.com/akkadotnet/akka.net/pull/1756)
* [Wrap user stash to avoid confusion between PersistentActor.UnstashAll and PersistentActor.Stash.UnstashAll](https://github.com/akkadotnet/akka.net/pull/1757)
* [Fixes initialization of LocalSnapshotStore directory](https://github.com/akkadotnet/akka.net/pull/1761)
* [Fixed global ActorContext in SqlJournal](https://github.com/akkadotnet/akka.net/pull/1760)

**Commit Stats for v1.0.7**

| COMMITS | LOC+ | LOC- | AUTHOR |
| --- | --- | --- | --- |
| 12 | 1718 | 2213 | Aaron Stannard |
| 11 | 2187 | 2167 | Silv3rcircl3 |
| 7 | 433 | 75 | JeffCyr |
| 6 | 2 | 1127 | Danthar |
| 6 | 10383 | 3054 | Chris Constantin |
| 3 | 510 | 25 | maxim.salamatko |
| 3 | 5 | 3 | Christopher Martin |
| 2 | 53 | 65 | rogeralsing |
| 2 | 50 | 1 | mukulsinghsaini |
| 2 | 2738 | 2035 | Sean Gilliam |
| 2 | 25 | 4 | Bartosz Sypytkowski |
| 2 | 2 | 2 | utcnow |
| 2 | 14 | 13 | zbynek001 |
| 2 | 130 | 126 | annymsMthd |
| 1 | 58 | 0 | Denis Kostikov |
| 1 | 48 | 43 | voltcode |
| 1 | 213 | 66 | Alex Koshelev |
| 1 | 2 | 2 | Tamas Vajk |
| 1 | 2 | 2 | Marc Piechura |
| 1 | 2 | 1 | Juergen Hoetzel |
| 1 | 19 | 8 | tstojecki |
| 1 | 13 | 13 | Willie Ferguson |
| 1 | 1 | 1 | ravengerUA |

#### 1.0.6 January 18 2016 ####
**Maintenance release for Akka.NET v1.0.5**
This patch consists of many bug fixes, performance improvements, as well as the addition of two brand new alpha modules for Akka.Cluster users.
Expand Down
6 changes: 3 additions & 3 deletions build.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ pushd %~dp0

src\.nuget\NuGet.exe update -self

src\.nuget\NuGet.exe install FAKE -ConfigFile src\.nuget\Nuget.Config -OutputDirectory src\packages -ExcludeVersion -Version 4.1.0
src\.nuget\NuGet.exe install FAKE -ConfigFile src\.nuget\Nuget.Config -OutputDirectory src\packages -ExcludeVersion -Version 4.16.1

src\.nuget\NuGet.exe install xunit.runner.console -ConfigFile src\.nuget\Nuget.Config -OutputDirectory src\packages\FAKE -ExcludeVersion -Version 2.0.0
src\.nuget\NuGet.exe install nunit.runners -ConfigFile src\.nuget\Nuget.Config -OutputDirectory src\packages\FAKE -ExcludeVersion -Version 2.6.4
src\.nuget\NuGet.exe install NBench.Runner -OutputDirectory src\packages -ExcludeVersion
src\.nuget\NuGet.exe install NBench.Runner -OutputDirectory src\packages -ExcludeVersion -Version 0.1.5
src\.nuget\NuGet.exe install Microsoft.SourceBrowser -OutputDirectory src\packages -ExcludeVersion

if not exist src\packages\SourceLink.Fake\tools\SourceLink.fsx (
src\.nuget\nuget.exe install SourceLink.Fake -ConfigFile src\.nuget\Nuget.Config -OutputDirectory src\packages -ExcludeVersion
Expand Down
115 changes: 87 additions & 28 deletions build.fsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ open System.IO
open System.Text
open Fake
open Fake.FileUtils
open Fake.MSTest
open Fake.NUnitCommon
open Fake.TaskRunnerHelper
open Fake.ProcessHelper

Expand All @@ -21,7 +19,7 @@ cd __SOURCE_DIRECTORY__

let product = "Akka.NET"
let authors = [ "Akka.NET Team" ]
let copyright = "Copyright © 2013-2015 Akka.NET Team"
let copyright = "Copyright © 2013-2016 Akka.NET Team"
let company = "Akka.NET Team"
let description = "Akka.NET is a port of the popular Java/Scala framework Akka to .NET"
let tags = ["akka";"actors";"actor";"model";"Akka";"concurrency"]
Expand Down Expand Up @@ -59,6 +57,8 @@ let workingDir = binDir @@ "build"
let libDir = workingDir @@ @"lib\net45\"
let nugetExe = FullName @"src\.nuget\NuGet.exe"
let docDir = "bin" @@ "doc"
let sourceBrowserDocsDir = binDir @@ "sourcebrowser"
let msdeployPath = "C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe"

open Fake.RestorePackageHelper
Target "RestorePackages" (fun _ ->
Expand Down Expand Up @@ -163,6 +163,42 @@ Target "AzureDocsDeploy" (fun _ ->

Target "PublishDocs" DoNothing

//--------------------------------------------------------------------------------
// Build the SourceBrowser docs
//--------------------------------------------------------------------------------
Target "GenerateSourceBrowser" <| (fun _ ->
DeleteDir sourceBrowserDocsDir

let htmlGeneratorPath = "src/packages/Microsoft.SourceBrowser/tools/HtmlGenerator.exe"
let arguments = sprintf "/out:%s %s" sourceBrowserDocsDir "src/Akka.sln"
printfn "Using SourceBrowser: %s %s" htmlGeneratorPath arguments

let result = ExecProcess(fun info ->
info.FileName <- htmlGeneratorPath
info.Arguments <- arguments) (System.TimeSpan.FromMinutes 20.0)

if result <> 0 then failwithf "SourceBrowser failed. %s %s" htmlGeneratorPath arguments
)

//--------------------------------------------------------------------------------
// Publish the SourceBrowser docs
//--------------------------------------------------------------------------------
Target "PublishSourceBrowser" <| (fun _ ->
let canPublish = hasBuildParam "publishsettings"
if (canPublish) then
let sourceBrowserPublishSettingsPath = getBuildParam "publishsettings"
let arguments = sprintf "-verb:sync -source:contentPath=\"%s\" -dest:contentPath=sourcebrowser,publishSettings=\"%s\"" (Path.GetFullPath sourceBrowserDocsDir) sourceBrowserPublishSettingsPath
printfn "Using MSDeploy: %s %s" msdeployPath arguments

let result = ExecProcess(fun info ->
info.FileName <- msdeployPath
info.Arguments <- arguments) (System.TimeSpan.FromMinutes 30.0) //takes a long time to upload

if result <> 0 then failwithf "MSDeploy failed. %s %s" msdeployPath arguments
else
printfn "Missing required parameter to publish SourceBrowser docs. Run build HelpSourceBrowserDocs to find out!"
)

//--------------------------------------------------------------------------------
// Copy the build output to bin directory
//--------------------------------------------------------------------------------
Expand All @@ -183,19 +219,13 @@ Target "CopyOutput" <| fun _ ->
"core/Akka.Persistence"
"core/Akka.Persistence.FSharp"
"core/Akka.Persistence.TestKit"
"contrib/loggers/Akka.Logger.slf4net"
"contrib/loggers/Akka.Logger.NLog"
"contrib/loggers/Akka.Logger.Serilog"
"contrib/loggers/Akka.Logger.CommonLogging"
"contrib/loggers/Akka.Logger.log4net"
"contrib/dependencyinjection/Akka.DI.Core"
"contrib/dependencyinjection/Akka.DI.AutoFac"
"contrib/dependencyinjection/Akka.DI.CastleWindsor"
"contrib/dependencyinjection/Akka.DI.Ninject"
"contrib/dependencyinjection/Akka.DI.Unity"
"contrib/dependencyinjection/Akka.DI.TestKit"
"contrib/testkits/Akka.TestKit.Xunit"
"contrib/testkits/Akka.TestKit.NUnit"
"contrib/testkits/Akka.TestKit.Xunit2"
"contrib/serializers/Akka.Serialization.Wire"
"contrib/cluster/Akka.Cluster.Tools"
Expand All @@ -221,26 +251,19 @@ Target "CleanTests" <| fun _ ->

open Fake.Testing
Target "RunTests" <| fun _ ->
let msTestAssemblies = !! "src/**/bin/Release/Akka.TestKit.VsTest.Tests.dll"
let nunitTestAssemblies = !! "src/**/bin/Release/Akka.TestKit.NUnit.Tests.dll"
let xunitTestAssemblies = !! "src/**/bin/Release/*.Tests.dll" --
"src/**/bin/Release/Akka.TestKit.VsTest.Tests.dll" --
"src/**/bin/Release/Akka.TestKit.NUnit.Tests.dll"
let xunitTestAssemblies = !! "src/**/bin/Release/*.Tests.dll"

mkdir testOutput

MSTest (fun p -> p) msTestAssemblies
nunitTestAssemblies
|> NUnit (fun p ->
{p with
DisableShadowCopy = true;
OutputFile = testOutput + @"\NUnitTestResults.xml"})


let xunitToolPath = findToolInSubPath "xunit.console.exe" "src/packages/xunit.runner.console*/tools"
printfn "Using XUnit runner: %s" xunitToolPath
xUnit2
(fun p -> { p with XmlOutputPath = Some (testOutput + @"\XUnitTestResults.xml"); HtmlOutputPath = Some (testOutput + @"\XUnitTestResults.HTML"); ToolPath = xunitToolPath; TimeOut = System.TimeSpan.FromMinutes 30.0; Parallel = ParallelMode.NoParallelization })
xunitTestAssemblies
let runSingleAssembly assembly =
let assemblyName = Path.GetFileNameWithoutExtension(assembly)
xUnit2
(fun p -> { p with XmlOutputPath = Some (testOutput + @"\" + assemblyName + "_xunit.xml"); HtmlOutputPath = Some (testOutput + @"\" + assemblyName + "_xunit.HTML"); ToolPath = xunitToolPath; TimeOut = System.TimeSpan.FromMinutes 30.0; Parallel = ParallelMode.NoParallelization })
(Seq.singleton assembly)

xunitTestAssemblies |> Seq.iter (runSingleAssembly)

Target "RunTestsMono" <| fun _ ->
let xunitTestAssemblies = !! "src/**/bin/Release Mono/*.Tests.dll"
Expand All @@ -249,9 +272,23 @@ Target "RunTestsMono" <| fun _ ->

let xunitToolPath = findToolInSubPath "xunit.console.exe" "src/packages/xunit.runner.console*/tools"
printfn "Using XUnit runner: %s" xunitToolPath
xUnit2
(fun p -> { p with XmlOutputPath = Some (testOutput + @"\XUnitTestResults.xml"); HtmlOutputPath = Some (testOutput + @"\XUnitTestResults.HTML"); ToolPath = xunitToolPath; TimeOut = System.TimeSpan.FromMinutes 30.0; Parallel = ParallelMode.NoParallelization })
xunitTestAssemblies
let runSingleAssembly assembly =
let assemblyName = Path.GetFileNameWithoutExtension(assembly)
xUnit2
(fun p -> { p with XmlOutputPath = Some (testOutput + @"\" + assemblyName + "_xunit.xml"); HtmlOutputPath = Some (testOutput + @"\" + assemblyName + "_xunit.HTML"); ToolPath = xunitToolPath; TimeOut = System.TimeSpan.FromMinutes 30.0; Parallel = ParallelMode.NoParallelization })
(Seq.singleton assembly)

xunitTestAssemblies |> Seq.iter (runSingleAssembly)


(* Debug helper for troubleshooting an issue we had when we were running multi-node tests multiple times *)
Target "PrintMultiNodeTests" <| fun _ ->
let testSearchPath =
let assemblyFilter = getBuildParamOrDefault "spec-assembly" String.Empty
sprintf "src/**/bin/Release/*%s*.Tests.MultiNode.dll" assemblyFilter
(!! testSearchPath) |> Seq.iter (printfn "%s")



Target "MultiNodeTests" <| fun _ ->
let testSearchPath =
Expand Down Expand Up @@ -326,6 +363,8 @@ module Nuget =
match project with
| "Akka" -> []
| "Akka.Cluster" -> ["Akka.Remote", release.NugetVersion]
| "Akka.Cluster.Sharding" -> ["Akka.Cluster.Tools", preReleaseVersion; "Akka.Persistence", preReleaseVersion]
| "Akka.Cluster.Tools" -> ["Akka.Cluster", preReleaseVersion]
| "Akka.Persistence.TestKit" -> ["Akka.Persistence", preReleaseVersion; "Akka.TestKit.Xunit2", release.NugetVersion]
| persistence when (persistence.Contains("Sql") && not (persistence.Equals("Akka.Persistence.Sql.Common"))) -> ["Akka.Persistence.Sql.Common", preReleaseVersion]
| persistence when (persistence.StartsWith("Akka.Persistence.")) -> ["Akka.Persistence", preReleaseVersion]
Expand All @@ -338,6 +377,7 @@ module Nuget =
let getProjectVersion project =
match project with
| "Akka.Cluster" -> preReleaseVersion
| cluster when cluster.StartsWith("Akka.Cluster.") -> preReleaseVersion
| persistence when persistence.StartsWith("Akka.Persistence") -> preReleaseVersion
| "Akka.Serialization.Wire" -> preReleaseVersion
| _ -> release.NugetVersion
Expand Down Expand Up @@ -577,6 +617,22 @@ Target "HelpDocs" <| fun _ ->
" Build and publish docs to http://fooaccount.blob.core.windows.net/docs/unstable"
""]


Target "HelpSourceBrowserDocs" <| fun _ ->
List.iter printfn [
"usage: "
"build GenerateSourceBrowser"
"Just generates the SourceBrowser docs for Akka.NET locally. Does not attempt to publish."
""
"build PublishSourceBrowser publishsettings=<filePath> "
""
"Arguments for PublishSourceBrowser target:"
" publishsettings=<filePath> Publish settings file."
""
"In order to publish documentation all of these values must be provided."
""]


Target "HelpMultiNodeTests" <| fun _ ->
List.iter printfn [
"usage: "
Expand Down Expand Up @@ -611,6 +667,9 @@ Target "HelpMultiNodeTests" <| fun _ ->
//docs dependencies
"BuildRelease" ==> "Docs" ==> "AzureDocsDeploy" ==> "PublishDocs"

// SourceBrowser dependencies
"BuildRelease" ==> "GenerateSourceBrowser" ==> "PublishSourceBrowser"

Target "All" DoNothing
"BuildRelease" ==> "All"
"RunTests" ==> "All"
Expand Down
5 changes: 3 additions & 2 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,13 @@ popd > /dev/null

mono $SCRIPT_PATH/src/.nuget/NuGet.exe update -self

mono $SCRIPT_PATH/src/.nuget/NuGet.exe install FAKE -OutputDirectory $SCRIPT_PATH/src/packages -ExcludeVersion -Version 3.28.8
mono $SCRIPT_PATH/src/.nuget/NuGet.exe install FAKE -OutputDirectory $SCRIPT_PATH/src/packages -ExcludeVersion -Version 4.16.1

mono $SCRIPT_PATH/src/.nuget/NuGet.exe install xunit.runners -OutputDirectory $SCRIPT_PATH/src/packages/FAKE -ExcludeVersion -Version 2.0.0
mono $SCRIPT_PATH/src/.nuget/NuGet.exe install nunit.runners -OutputDirectory $SCRIPT_PATH/src/packages/FAKE -ExcludeVersion -Version 2.6.4
mono $SCRIPT_PATH/src/.nuget/NuGet.exe install NUnit.Console -OutputDirectory $SCRIPT_PATH/src/packages/FAKE -ExcludeVersion -Version 3.0.0

mono $SCRIPT_PATH/src/.nuget/NuGet.exe install NBench.Runner -OutputDirectory $SCRIPT_PATH/src/packages -ExcludeVersion
mono $SCRIPT_PATH/src/.nuget/NuGet.exe install NBench.Runner -OutputDirectory $SCRIPT_PATH/src/packages -ExcludeVersion -Version 0.1.5


if ! [ -e $SCRIPT_PATH/src/packages/SourceLink.Fake/tools/SourceLink.fsx ] ; then
Expand Down
22 changes: 0 additions & 22 deletions contributor-output.md

This file was deleted.

Loading

0 comments on commit 17cbae3

Please sign in to comment.