first stab at release notes for release 1.2
- including commit stats and the script which generated them
This commit is contained in:
parent
deb7497038
commit
1c804846af
2 changed files with 148 additions and 6 deletions
|
|
@ -1,15 +1,122 @@
|
||||||
Release Notes
|
Release Notes
|
||||||
==============
|
==============
|
||||||
|
|
||||||
Changes listed in no particular order.
|
Release 1.2
|
||||||
|
-----------
|
||||||
|
|
||||||
1.1
|
This release, while containing several substantial improvements, focuses on
|
||||||
----------------------------------------
|
paving the way for the upcoming 2.0 release. A selection of changes is
|
||||||
|
presented in the following, for the full list of tickets closed during the
|
||||||
|
development cycle please refer to
|
||||||
|
`the issue tracker <https://www.assembla.com/spaces/akka/milestones/356697-1-2>`_.
|
||||||
|
|
||||||
- **UPD** - improve FSM DSL: make onTransition syntax nicer (Roland Kuhn)
|
- **Actor:**
|
||||||
|
|
||||||
Release 1.1-M1
|
- pluggable serializers for remote actors (Java, Protobuf, ScalaJSON, JavaJSON)
|
||||||
--------------------
|
|
||||||
|
- unified :class:`Channel` abstraction for :class:`Promise` & :class:`Actor`
|
||||||
|
|
||||||
|
- reintegrate invocation tracing (to be enabled per class and globally)
|
||||||
|
|
||||||
|
- make last message available during :meth:`preRestart()`
|
||||||
|
|
||||||
|
- experimental :meth:`freshInstance()` life-cycle hook for priming the new instance during restart
|
||||||
|
|
||||||
|
- new textual primitives :meth:`tell` (``!``) and :meth:`ask` (``?``, formerly ``!!!``)
|
||||||
|
|
||||||
|
- timeout for :meth:`ask` Futures taken from implicit argument (currently with fallback to deprecated ``ActorRef.timeout``
|
||||||
|
|
||||||
|
- **durable mailboxes:**
|
||||||
|
|
||||||
|
- beanstalk, file, mongo, redis
|
||||||
|
|
||||||
|
- **Future:**
|
||||||
|
|
||||||
|
- :meth:`onTimeout` callback
|
||||||
|
|
||||||
|
- select dispatcher for execution by implicit argument
|
||||||
|
|
||||||
|
- add safer cast methods :meth:`as[T]: T` and :meth:`mapTo[T]: Future[T]`
|
||||||
|
|
||||||
|
- **TestKit:**
|
||||||
|
|
||||||
|
- add :class:`TestProbe` (can receive, reply and forward messages, supports all :class:`TestKit` assertions)
|
||||||
|
|
||||||
|
- add :meth:`TestKit.awaitCond`
|
||||||
|
|
||||||
|
- support global time-factor for all timing assertions (for running on busy CI servers)
|
||||||
|
|
||||||
|
- **FSM:**
|
||||||
|
|
||||||
|
- add :class:`TestFSMRef`
|
||||||
|
|
||||||
|
- add :class:`LoggingFSM` (transition tracing, rolling event log)
|
||||||
|
|
||||||
|
- updated dependencies:
|
||||||
|
|
||||||
|
- Jackson 1.8.0
|
||||||
|
|
||||||
|
- Netty 3.2.5
|
||||||
|
|
||||||
|
- Protobuf 2.4.1
|
||||||
|
|
||||||
|
- ScalaTest 1.6.1
|
||||||
|
|
||||||
|
- various fixes, small improvements and documentation updates
|
||||||
|
|
||||||
|
- several **deprecations** in preparation for 2.0
|
||||||
|
|
||||||
|
================================ =====================
|
||||||
|
Method Replacement
|
||||||
|
================================ =====================
|
||||||
|
Actor.preRestart(cause) Actor.preRestart(cause, lastMsg)
|
||||||
|
ActorRef.sendOneWay ActorRef.tell
|
||||||
|
ActorRef.sendOneWaySafe ActorRef.tryTell
|
||||||
|
ActorRef.sendRequestReply ActorRef.ask(...).get()
|
||||||
|
ActorRef.sendRequestReplyFuture ActorRef.ask(...).get()
|
||||||
|
ActorRef.replyUnsafe ActorRef.reply
|
||||||
|
ActorRef.replySafe ActorRef.tryReply
|
||||||
|
ActorRef.mailboxSize ActorRef.dispatcher.mailboxSize(actorRef)
|
||||||
|
ActorRef.sender/senderFuture ActorRef.channel
|
||||||
|
ActorRef.!! ActorRef.?(...).as[T]
|
||||||
|
ActorRef.!!! ActorRef.?
|
||||||
|
ActorRef.reply\_? ActorRef.tryReply
|
||||||
|
Future.receive Future.onResult
|
||||||
|
Future.collect Future.map
|
||||||
|
Future.failure Future.recover
|
||||||
|
MessageDispatcher.pendingFutures MessageDispatcher.tasks
|
||||||
|
RemoteClientModule.*Listener(s) EventHandler.<X>
|
||||||
|
TestKit.expectMsg(pf) TestKit.expectMsgPF
|
||||||
|
TestKit.receiveWhile(pf) TestKit.receiveWhile()(pf)
|
||||||
|
================================ =====================
|
||||||
|
|
||||||
|
Trivia
|
||||||
|
^^^^^^
|
||||||
|
|
||||||
|
This release contains changes to 213 files, with 16053 insertions and 3624
|
||||||
|
deletions. The authorship of the corresponding commits is distributed as shown
|
||||||
|
below.
|
||||||
|
|
||||||
|
======= ========== ========= =========
|
||||||
|
Commits Insertions Deletions Author
|
||||||
|
======= ========== ========= =========
|
||||||
|
69 11805 170 Viktor Klang
|
||||||
|
34 9694 97 Patrik Nordwall
|
||||||
|
72 3563 179 Roland Kuhn
|
||||||
|
27 1749 115 Peter Vlugter
|
||||||
|
7 238 22 Derek Williams
|
||||||
|
4 86 25 Peter Veentjer
|
||||||
|
1 17 5 Debasish Ghosh
|
||||||
|
2 15 5 Jonas Bonér
|
||||||
|
======= ========== ========= =========
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
Release notes of previous releases consisted of ticket or change listings in
|
||||||
|
no particular order
|
||||||
|
|
||||||
|
Release 1.1
|
||||||
|
-----------
|
||||||
|
|
||||||
- **ADD** - #647 Extract an akka-camel-typed module out of akka-camel for optional typed actor support (Martin Krasser)
|
- **ADD** - #647 Extract an akka-camel-typed module out of akka-camel for optional typed actor support (Martin Krasser)
|
||||||
- **ADD** - #654 Allow consumer actors to acknowledge in-only message exchanges (Martin Krasser)
|
- **ADD** - #654 Allow consumer actors to acknowledge in-only message exchanges (Martin Krasser)
|
||||||
|
|
|
||||||
35
scripts/authors.pl
Executable file
35
scripts/authors.pl
Executable file
|
|
@ -0,0 +1,35 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
#
|
||||||
|
# This script can generate commit statistics from 'git log --shortstat -z tag1..tag2' output
|
||||||
|
#
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
|
local $/ = "\x0";
|
||||||
|
|
||||||
|
my %auth;
|
||||||
|
our $commits;
|
||||||
|
our $insertions;
|
||||||
|
our $deletions;
|
||||||
|
our $author;
|
||||||
|
|
||||||
|
while (<>) {
|
||||||
|
($author) = /Author: (.*) </;
|
||||||
|
my ($insert, $delete) = /files changed, (\d+) insert.*(\d+) delet/;
|
||||||
|
next unless defined $insert;
|
||||||
|
$auth{$author} = [0, 0, 0] unless defined($auth{$author});
|
||||||
|
my @l = @{$auth{$author}};
|
||||||
|
$auth{$author} = [$l[0] + 1, $l[1] + $insert, $l[2] + $delete];
|
||||||
|
}
|
||||||
|
|
||||||
|
for $author (sort { $auth{$b}->[0] <=> $auth{$a}->[0] } keys %auth) {
|
||||||
|
($commits, $insertions, $deletions) = @{$auth{$author}};
|
||||||
|
write;
|
||||||
|
}
|
||||||
|
|
||||||
|
format STDOUT =
|
||||||
|
@#### @###### @###### @*
|
||||||
|
$commits, $insertions, $deletions, $author
|
||||||
|
.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue