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

Akka.NET v1.2 Production Release #2607

Merged
merged 82 commits into from
Apr 12, 2017
Merged

Akka.NET v1.2 Production Release #2607

merged 82 commits into from
Apr 12, 2017

Conversation

Aaronontheweb
Copy link
Member

1.2.0 April 11 2017

Feature Release for Akka.NET
Akka.NET 1.2 is a major feature release that introduces the following major changes:

Akka.Remote now uses DotNetty for its transport layer
The biggest change for 1.2 is the removal of Helios 2.0 as the default transport and the introduction of DotNetty. The new DotNetty transport is fully backwards compatible with the Helios 1.4 and 2.* transports, so you should be able to upgrade from any Akka.NET 1.* application to 1.2 without any downtime. All of the helios.tcp HOCON is also supported by the DotNetty transport, so none of that needs to updated for the DotNetty transport to work out of the box.

In addition, the DotNetty transport supports TLS, which can be enabled via the following HOCON:

akka {
  loglevel = DEBUG
  actor {
    provider = Akka.Remote.RemoteActorRefProvider,Akka.Remote
  }
  remote {
    dot-netty.tcp {
      port = 0
      hostname = 127.0.0.1
      enable-ssl = true
      log-transport = true
      ssl {
        suppress-validation = true
        certificate {
          # valid ssl certificate must be installed on both hosts
          path = "<valid certificate path>" 
          password = "<certificate password>"
          # flags is optional: defaults to "default-flag-set" key storage flag
          # other available storage flags:
          #   exportable | machine-key-set | persist-key-set | user-key-set | user-protected
          flags = [ "default-flag-set" ] 
        }
      }
    }
  }
}

You can read more about Akka.Remote's TLS support here.

See the complete DotNetty transport HOCON here.

Akka.Streams and Akka.Cluster.Tools RTMed
Akka.Streams and Akka.Cluster.Tools have graduated from beta status to stable modules and their interfaces are now considered to be stable.

CoordinatedShutdown
One of the major improvements in Akka.NET 1.2 is the addition of the new CoordinatedShutdown plugin, which is designed to make it easier for nodes that are running Akka.Cluster to automatically exit a cluster gracefully whenever ActorSystem.Terminate is called or when the process the node is running in attempts to exit. CoordinatedShutdown is fully extensible and can be used to schedule custom shutdown operations as part of ActorSystem termination.

You can read more about how to use CoordinatedShutdown here.

Additional Changes
In addition to the above changes, there have been a large number of performance improvements, bug fixes, and documentation improvements made to Akka.NET in 1.2. Read the full list of changes in Akka.NET 1.2 here.

COMMITS LOC+ LOC- AUTHOR
17 4840 4460 Alex Valuyskiy
16 4046 1144 Aaron Stannard
12 8591 2984 Sean Gilliam
6 971 1300 Sergey
5 6787 2073 Bartosz Sypytkowski
4 6461 8403 Arjen Smits
4 333 125 ravengerUA
3 71 65 Marc Piechura
3 300 24 Nick Chamberlain
2 79 40 Maxim Salamatko
2 305 20 Ismael Hamed
1 136 12 Sergey Kostrukov
1 1015 45 Lukas Rieger
1 1 0 siudeks

sean-gilliam and others added 30 commits January 23, 2017 11:59
This PR is part of an ongoing commit for #2407. It adds placeholders for
missing/incomplete xmldoc comments.

[8/23]
[api-docs] Added TBD placeholders for Akka.Cluster.Sharding.csproj
This PR updates the Sandcastle build file to include the Hyperion
serializer.

Merged: Only some known perf tests where failing.
* - Updated tests in ClusterClientConfigSpec
- Changed range check in ClusterClientSettings

* - Added ClusterClientStartSpec

* Disabled new spec
* working on resolving #2465

* close #2465 - TestProbe and its ref are now considered to be equal
* Possible fix for racy sql testkit specs

* code conventions
…roj (#2482)

This PR is part of an ongoing commit for #2407. It adds placeholders for
missing/incomplete xmldoc comments.

[12/23]
This PR contains various fixes including filling in TBD placeholders,
fixed numerous copyright headers and converted a repetitive class to a
T4 template.
This PR fixes quite a few typos.
This PR is part of an ongoing commit for #2407. It adds placeholders for
missing/incomplete xmldoc comments.

[11/23]
…2483)

This PR is part of an ongoing commit for #2407. It adds placeholders for
missing/incomplete xmldoc comments.

[13/23]
* suppress deadletter for the cluster joining messages

* harden NodeChurnSpec

* Add a retry for a check for stopped actors

* Reachability.remove didn't always remove all

* don't use Down member as leader
* initial replacement of Helios with DotNetty

* hack for client to not connet to IPAddress.Any

* fixed public-hostname resolution

* initialized ssl tests

* integrated with DotNetty logging pipeline

* working ssl spec

* moved Helios transport to separate project + DotNetty backward compatibility spec for config

* working configuration compatibility between DotNetty & Helios

* minor fixes

* fixed tests logging and ssl tests

* setup byte-order for DotNetty transport

* fixed compatibility spec

* fixed sln file

* fixed MessageSerializerRemotingSpec

* fixed problems with F# projects

* fixed DNS public hostname specs

* fixed F# files again

* skipped ssl test for linux/mono

* last polishing

* post-rebase fixes
* send terminationMessage to singleton when leaving last

* fixed API Approve
* Regenerated WireFormats in order to place it inside an namespace. And made it internal.

* Regenerated ContainerFormats in order to place it inside an namespace and made the types internal

* - Regenerated proto's to be public. Since we need to access these types in other assemblies as well.

* Resolved issues due to namespace change

* Applied API Approval
This PR contains various fixes including filling in placeholders,
clarifying verbage, and correcting a few xmldoc errors.
* added mailbox XML-DOC comments

* close #2308 - added race check in unit test
* added XML-DOC comments for IInternalActorRef

* cleaned up ActorSystem docs

* began cleaning up IActorRef
…ropagated to every output; remote tests assembly changed to respect current approach (#2502)
* possible fix for #2492

* added random gossip

* cleanup
* added settings to hyperion serializer

* making configurable settings a general purpose

* approvals API

* added comments and config specs for json.net & hyperion
sean-gilliam and others added 27 commits March 22, 2017 11:27
This PR fleshes out more of the documentation labeled as TBD.
* fsm update

* changed API to IReadOnlyList

* the latest fix
* Cluster LeaveAsync() with CancellationToken

* LeaveAsync() doesn't trigger another leave after Leave()

* APi changes
This PR fleshes out more of the documentation labeled as TBD.
It also corrects a few incorrect copyright headers and adds
few more missing documentation tags.
* Prepare ClusterTools API to the stable version

* api stabilization 2
* Added xml comments
Add InternalVisibleTo for Persistence and Streams
Make MatchHandler internal

* fixed API
This PR fleshes out more of the documentation labeled as TBD.
* close #2570 - ported to Akka.Remote.TestKit to DotNetty

* fixed issues with DotNetty handlers

* added console out logging again

* updated approval files and pruned akka.remote.teskit packages.config
Mark WireSerializer as Obsolete
* make FindSerializerFor faster

* fixed tests

* Changed to ConcurrentDictionary

* Serialization clean-up

* restored methods
…2555)

* stop ClusterClient ResponseTunnel after first reply when ask is used

* api changes

* comment one more test
* dedicated serializers for ddata

* minor bug fixes

* minor bug fixed & richer collections API

* init ddata durable envelopes

* replicator support for durable ddata

* durable LMDB storage for ddata

* DurableDataSpec

* DurablePrunningSpec

* fixed basic tests for ddata multinode

* ToString for messages

* opened ReplicatorSpec

* repaired a bunch of bugs in order to get ReplicatorSpec passing

* fixed in numeric aggregator reads

* moved LMDB dependency to separate project

* remaining bug: ReplicatorSpec D12

* removed replicator messages out of the Replicator class

* DSL comments

* found and fixed bug in akka JVM

* general cleanup of ddata MNTK specs

* removed unnecessary try-catch

* more logs for tests

* muted spec

* fixed LMDB durable store
This PR fleshes out more of the documentation labeled as TBD.
* close #2581 - fixed PhiAccrualFailureDetector clock roll over

* added copyright header

* fixed DeadlineFailureDetector

* changed clock output to MS
Allow success/failure message creation for Tasks that doesn't return …
* added more message which ignores the serialization

* refactored SerializeAllMessages methods
* added release notes for Akka.NET 1.2

* bumped packages to RTM

* added contributors stats
@Aaronontheweb Aaronontheweb added this to the 1.2.0 milestone Apr 12, 2017
@Aaronontheweb
Copy link
Member Author

(FYI for other contributors, definitely don't "squash and merge" this. Use a merge commit)

@marcpiechura marcpiechura merged commit f0ccae4 into master Apr 12, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.