summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2014-09-02 15:26:11 +0100
committerErik Johnston <erik@matrix.org>2014-09-02 15:26:11 +0100
commit464e1fcfa5fbbc51d8b1502df5971cfd2189fd37 (patch)
treef2cf21ddaa6383c7819194cad1df2b5e2d2007be
parentBF: Prevent controllers from being instantiated twice. (diff)
parentv0.1.2 (diff)
downloadsynapse-464e1fcfa5fbbc51d8b1502df5971cfd2189fd37.tar.xz
Merge branch 'master' of github.com:matrix-org/synapse into release-v0.2.0
Conflicts:
	synapse/notifier.py
	webclient/room/room-controller.js
	webclient/room/room.html
-rw-r--r--CHANGES.rst35
-rw-r--r--VERSION2
-rw-r--r--synapse/__init__.py2
-rw-r--r--synapse/notifier.py21
4 files changed, 56 insertions, 4 deletions
diff --git a/CHANGES.rst b/CHANGES.rst
index fc6385cb1f..caad193b68 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -1,3 +1,38 @@
+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)
+=====================================
+
+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.
+
+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..d917d3e26a 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.0.1
+0.1.2
diff --git a/synapse/__init__.py b/synapse/__init__.py
index 47fc1b2ea4..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.0.1"
+__version__ = "0.1.2"
diff --git a/synapse/notifier.py b/synapse/notifier.py
index cb544e9886..3260aa744f 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_key = yield room_source.get_new_events_for_user(
                 listener.user,
                 listener.from_token.room_key,
@@ -122,6 +124,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=[]):
@@ -140,7 +149,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_key = yield presence_source.get_new_events_for_user(
                 listener.user,
                 listener.from_token.presence_key,
@@ -156,6 +166,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