From 463b95f0c21b9ab52af5fdd5572ccf1d981591de Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Fri, 29 Aug 2014 15:36:53 +0100 Subject: [PATCH 1/5] Bump version and change log --- CHANGES.rst | 22 ++++++++++++++++++++++ VERSION | 2 +- synapse/__init__.py | 2 +- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index fc6385cb1f..334602fdf8 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,3 +1,25 @@ +Changes in synapse 0.1.0 (2014-08-29) +===================================== +Presence has been reenabled in this release. + +Homeserver: + * Update client to server API, including: + - Use a more consistent url scheme. + - Provide more useful information in the initial sync api. + * Change the presence handling to be much more efficient. + * Change the presence server to server API to not require explicit polling of + all users who share a room with a user. + * Fix races in the event streaming logic. + +Webclient: + * Update to use new client to server API. + * Add basic VOIP support. + * Add idle timers that change your status to away. + * Add recent rooms column when viewing a room. + * Various network efficiency improvements. + * Add basic mobile browser support. + * Add a settings page. + Changes in synapse 0.0.1 (2014-08-22) ===================================== Presence has been disabled in this release due to a bug that caused the diff --git a/VERSION b/VERSION index 8acdd82b76..6e8bf73aa5 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.1 +0.1.0 diff --git a/synapse/__init__.py b/synapse/__init__.py index 47fc1b2ea4..a322085175 100644 --- a/synapse/__init__.py +++ b/synapse/__init__.py @@ -16,4 +16,4 @@ """ This is a reference implementation of a synapse home server. """ -__version__ = "0.0.1" +__version__ = "0.1.0" From f07f538ac7e13c354ee98fc548291ac5f8637481 Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Fri, 29 Aug 2014 16:01:01 +0100 Subject: [PATCH 2/5] When notifying listeners, don't do so in a serial fashion --- synapse/notifier.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/synapse/notifier.py b/synapse/notifier.py index b6d5ec4820..253f60983b 100644 --- a/synapse/notifier.py +++ b/synapse/notifier.py @@ -106,7 +106,9 @@ class Notifier(object): # TODO (erikj): Can we make this more efficient by hitting the # db once? - for listener in listeners: + + @defer.inlineCallbacks + def notify(listener): events, end_token = yield source.get_new_events_for_user( listener.user, listener.from_token, @@ -118,6 +120,13 @@ class Notifier(object): self, events, listener.from_token, end_token ) + def eb(failure): + logger.exception("Failed to notify listener", failure) + + yield defer.DeferredList( + [notify(l).addErrback(eb) for l in listeners] + ) + @defer.inlineCallbacks @log_function def on_new_user_event(self, users=[], rooms=[]): @@ -136,7 +145,8 @@ class Notifier(object): for room in rooms: listeners |= self.rooms_to_listeners.get(room, set()).copy() - for listener in listeners: + @defer.inlineCallbacks + def notify(listener): events, end_token = yield source.get_new_events_for_user( listener.user, listener.from_token, @@ -148,6 +158,13 @@ class Notifier(object): self, events, listener.from_token, end_token ) + def eb(failure): + logger.exception("Failed to notify listener", failure) + + yield defer.DeferredList( + [notify(l).addErrback(eb) for l in listeners] + ) + def get_events_for(self, user, rooms, pagination_config, timeout): """ For the given user and rooms, return any new events for them. If there are no new events wait for up to `timeout` milliseconds for any From 52203edbce9358c97b7ae2603493f05e5b4e0ce8 Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Fri, 29 Aug 2014 16:15:20 +0100 Subject: [PATCH 3/5] Version bump for bug fix. --- CHANGES.rst | 7 +++++++ VERSION | 2 +- synapse/__init__.py | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 334602fdf8..96b7322bd2 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,3 +1,10 @@ +Changes in synapse 0.1.1 (2014-08-29) +===================================== + +Homeserver: + * Fix bug that caused the event stream to not notify some clients about + changes. + Changes in synapse 0.1.0 (2014-08-29) ===================================== Presence has been reenabled in this release. diff --git a/VERSION b/VERSION index 6e8bf73aa5..17e51c385e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.0 +0.1.1 diff --git a/synapse/__init__.py b/synapse/__init__.py index a322085175..dd43c2d11a 100644 --- a/synapse/__init__.py +++ b/synapse/__init__.py @@ -16,4 +16,4 @@ """ This is a reference implementation of a synapse home server. """ -__version__ = "0.1.0" +__version__ = "0.1.1" From 8c36179d35f6353270a761dbdc8161ca94ff54a2 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 29 Aug 2014 18:11:20 +0100 Subject: [PATCH 4/5] Give basic feedback on the state of VoIP calls in the UI (manually adding to master having added to develop) --- webclient/components/matrix/matrix-call.js | 3 ++- webclient/room/room-controller.js | 2 -- webclient/room/room.html | 4 ++++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/webclient/components/matrix/matrix-call.js b/webclient/components/matrix/matrix-call.js index 45d00ee792..a66c879065 100644 --- a/webclient/components/matrix/matrix-call.js +++ b/webclient/components/matrix/matrix-call.js @@ -36,7 +36,7 @@ var forAllTracksOnStream = function(s, f) { } angular.module('MatrixCall', []) -.factory('MatrixCall', ['matrixService', 'matrixPhoneService', function MatrixCallFactory(matrixService, matrixPhoneService) { +.factory('MatrixCall', ['matrixService', 'matrixPhoneService', '$rootScope', function MatrixCallFactory(matrixService, matrixPhoneService, $rootScope) { var MatrixCall = function(room_id) { this.room_id = room_id; this.call_id = "c" + new Date().getTime(); @@ -204,6 +204,7 @@ angular.module('MatrixCall', []) // ideally we'd consider the call to be connected when we get media but chrome doesn't implement nay of the 'onstarted' events yet if (this.peerConn.iceConnectionState == 'completed' || this.peerConn.iceConnectionState == 'connected') { this.state = 'connected'; + $rootScope.$apply(); } }; diff --git a/webclient/room/room-controller.js b/webclient/room/room-controller.js index 09dac85d26..ca0d0bae75 100644 --- a/webclient/room/room-controller.js +++ b/webclient/room/room-controller.js @@ -487,7 +487,5 @@ angular.module('RoomController', ['ngSanitize', 'mFileInput']) } $scope.onCallHangup = function() { - $scope.feedback = "Call ended"; - $scope.currentCall = undefined; } }]); diff --git a/webclient/room/room.html b/webclient/room/room.html index a3514c3a91..262b5df82e 100644 --- a/webclient/room/room.html +++ b/webclient/room/room.html @@ -105,6 +105,10 @@ + Calling... + Call Connecting... + Call Connected + Call Ended {{ currentCall.state }} From 7b79c0f08fec1dcd0f23151e95b379afe052f85e Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 29 Aug 2014 18:13:34 +0100 Subject: [PATCH 5/5] v0.1.2 --- CHANGES.rst | 6 ++++++ VERSION | 2 +- synapse/__init__.py | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 96b7322bd2..caad193b68 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,3 +1,9 @@ +Changes in synapse 0.1.2 (2014-08-29) +===================================== + +Webclient: + * Add basic call state UI for VoIP calls. + Changes in synapse 0.1.1 (2014-08-29) ===================================== diff --git a/VERSION b/VERSION index 17e51c385e..d917d3e26a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.1 +0.1.2 diff --git a/synapse/__init__.py b/synapse/__init__.py index dd43c2d11a..04200060bf 100644 --- a/synapse/__init__.py +++ b/synapse/__init__.py @@ -16,4 +16,4 @@ """ This is a reference implementation of a synapse home server. """ -__version__ = "0.1.1" +__version__ = "0.1.2"