From aade0d557d2ac7e9f90a987d02241fc912a014bf Mon Sep 17 00:00:00 2001
From: Valentin Sundermann <vsund@users.noreply.github.com>
Date: Tue, 20 Jun 2017 20:50:18 +0200
Subject: [PATCH 01/21] Fix key url in readme

The URL for the signing key changed and hence pointed to a wrong direction.
---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 89f2148f..b42ed8b9 100644
--- a/README.md
+++ b/README.md
@@ -22,7 +22,7 @@ released version of Riot:
 1. Enter the URL into your browser and log into Riot!
 
 Releases are signed by PGP, and can be checked against the public key
-at https://riot.im/packages/keys/riot-master.asc
+at https://riot.im/packages/keys/riot.asc
 
 Note that Chrome does not allow microphone or webcam access for sites served
 over http (except localhost), so for working VoIP you will need to serve Riot

From efa156b53ae93e7ba5c157f9d5567f87e1d284cb Mon Sep 17 00:00:00 2001
From: Hubert Chathi <hubert@uhoreg.ca>
Date: Sun, 23 Jul 2017 23:02:29 -0400
Subject: [PATCH 02/21] tweak compact theme

- add some comments
- decrease size of info events and MELS (#4363.2)
- reduce spacing between paragraphs, lists, etc (#4363.3 & 4)

Signed-off-by: Hubert Chathi <hubert@uhoreg.ca>
---
 .../elements/_MemberEventListSummary.scss     | 13 +++++++++-
 .../views/rooms/_EventTile.scss               | 24 +++++++++++++++----
 2 files changed, 31 insertions(+), 6 deletions(-)

diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/_MemberEventListSummary.scss b/src/skins/vector/css/matrix-react-sdk/views/elements/_MemberEventListSummary.scss
index 1025052b..02ecb5d8 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/elements/_MemberEventListSummary.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/elements/_MemberEventListSummary.scss
@@ -50,11 +50,22 @@ limitations under the License.
 }
 
 .mx_MatrixChat_useCompactLayout {
+    .mx_MemberEventListSummary {
+        font-size: 13px;
+        .mx_EventTile_line {
+            line-height: 20px;
+        }
+    }
+
     .mx_MemberEventListSummary_line {
         line-height: 22px;
     }
 
     .mx_MemberEventListSummary_toggle {
-        margin-top: 2px;
+        margin-top: 3px;
+    }
+
+    .mx_TextualEvent.mx_MemberEventListSummary_summary {
+        font-size: 13px;
     }
 }
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss
index cf148603..df9b6845 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss
@@ -396,7 +396,15 @@ limitations under the License.
     }
 
     .mx_EventTile.mx_EventTile_info {
+        // same as the padding for non-compact .mx_EventTile.mx_EventTile_info
         padding-top: 0px;
+        font-size: 13px;
+        .mx_EventTile_line {
+            line-height: 20px;
+        }
+        .mx_EventTile_avatar {
+            top: 4px;
+        }
     }
 
     .mx_EventTile .mx_SenderProfile {
@@ -404,6 +412,7 @@ limitations under the License.
     }
 
     .mx_EventTile.mx_EventTile_emote {
+        // add a bit more space for emotes so that avatars don't collide
         padding-top: 8px;
         .mx_EventTile_avatar {
             top: 2px;
@@ -431,10 +440,6 @@ limitations under the License.
         top: 2px;
     }
 
-    .mx_EventTile.mx_EventTile_info .mx_EventTile_avatar {
-        top: 5px;
-    }
-
     .mx_EventTile_e2eIcon {
         top: 7px;
     }
@@ -448,12 +453,21 @@ limitations under the License.
     }
 
     .mx_EventTile_continuation .mx_EventTile_readAvatars,
-    .mx_EventTile_info .mx_EventTile_readAvatars,
     .mx_EventTile_emote .mx_EventTile_readAvatars {
         top: 5px;
     }
 
+    .mx_EventTile_info .mx_EventTile_readAvatars {
+        top: 4px;
+    }
+
     .mx_RoomView_MessageList h2 {
         margin-top: 6px;
     }
+
+    .mx_EventTile_content .markdown-body {
+      p, ul, ol, dl, blockquote, pre, table {
+        margin-bottom: 4px; // 1/4 of the non-compact margin-bottom
+      }
+    }
 }

From 35c239aae8ee0b1c0fb7f98e6860b00e2d6aac6e Mon Sep 17 00:00:00 2001
From: Luke Barnard <lukeb@openmarket.com>
Date: Wed, 26 Jul 2017 16:45:00 +0100
Subject: [PATCH 03/21] CSS required for composer autoscroll

for https://github.com/matrix-org/matrix-react-sdk/pull/1248
---
 .../css/matrix-react-sdk/views/rooms/_MessageComposer.scss | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss
index 98c803fd..d85ce58a 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss
@@ -95,8 +95,6 @@ limitations under the License.
 .mx_MessageComposer_input .DraftEditor-root {
     width: 100%;
     flex: 1;
-    max-height: 120px;
-    overflow: auto;
     word-break: break-word;
 }
 
@@ -105,6 +103,11 @@ limitations under the License.
     padding-top: 2px;
 }
 
+.mx_MessageComposer_input .public-DraftEditor-content {
+    max-height: 120px;
+    overflow: auto;
+}
+
 .mx_MessageComposer_input blockquote {
     color: $blockquote-fg-color;
     margin: 0 0 16px;

From ff2554c8a6c6a04efe39a71c3c47b56d160d628a Mon Sep 17 00:00:00 2001
From: Richard Lewis <rick@matrix.org>
Date: Wed, 26 Jul 2017 16:48:24 +0100
Subject: [PATCH 04/21] App permission component styling.

---
 .../views/rooms/_AppsDrawer.scss              | 34 +++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss
index 7d1ac628..41efe4c8 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss
@@ -167,3 +167,37 @@ form.mx_Custom_Widget_Form div {
     margin-top: 10px;
     margin-bottom: 10px;
 }
+
+.mx_AppPermissionWarning {
+    text-align: center;
+    padding: 30px 0;
+    background-color: $lightbox-bg-color;
+}
+
+.mx_AppPermissionWarningImage {
+    margin: 10px 0;
+}
+
+.mx_AppPermissionWarningImage img {
+    width: 150px;
+}
+
+.mx_AppPermissionWarningText {
+    max-width: 300px;
+    margin: 10px auto 10px auto;
+    color: $primary-fg-color;
+}
+
+.mx_AppPermissionWarningTextLabel {
+    font-weight: bold;
+}
+
+.mx_AppPermissionWarningTextURL {
+    color: $accent-color;
+}
+
+.mx_AppPermissionButton {
+    padding: 5px;
+    border-radius: 5px;
+    color: $warning-color;
+}

From 0bee03e86f7f191c465099eb70cb8f7d08d6aef9 Mon Sep 17 00:00:00 2001
From: Richard Lewis <rick@matrix.org>
Date: Thu, 27 Jul 2017 16:40:33 +0100
Subject: [PATCH 05/21] Fix App body height. App warning colours. App loading
 styling.

---
 .../views/rooms/_AppsDrawer.scss              | 23 +++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss
index 41efe4c8..07eeba70 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss
@@ -88,6 +88,11 @@ limitations under the License.
     border-radius: 2px;
 }
 
+.mx_AppTileBody{
+    height: 350px;
+    overflow: hidden;
+}
+
 .mx_AppTileBody iframe {
     width: 100%;
     height: 350px;
@@ -171,7 +176,7 @@ form.mx_Custom_Widget_Form div {
 .mx_AppPermissionWarning {
     text-align: center;
     padding: 30px 0;
-    background-color: $lightbox-bg-color;
+    background-color: $primary-bg-color;
 }
 
 .mx_AppPermissionWarningImage {
@@ -183,7 +188,7 @@ form.mx_Custom_Widget_Form div {
 }
 
 .mx_AppPermissionWarningText {
-    max-width: 300px;
+    max-width: 400px;
     margin: 10px auto 10px auto;
     color: $primary-fg-color;
 }
@@ -200,4 +205,18 @@ form.mx_Custom_Widget_Form div {
     padding: 5px;
     border-radius: 5px;
     color: $warning-color;
+    background-color: $primary-bg-color;
+}
+
+.mx_AppPermissionButton:hover {
+    background-color: $primary-fg-color;
+}
+
+.mx_AppLoading {
+    min-height: 305px;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+    font-weight: bold;
 }

From c1fe3533c4eb247ad2a4147dd6369a57faffcbbd Mon Sep 17 00:00:00 2001
From: Richard Lewis <rick@matrix.org>
Date: Thu, 27 Jul 2017 18:10:56 +0100
Subject: [PATCH 06/21] Add red cancel icon and styling.

---
 .../css/matrix-react-sdk/views/rooms/_AppsDrawer.scss  |  4 ++++
 src/skins/vector/img/cancel-red.svg                    | 10 ++++++++++
 2 files changed, 14 insertions(+)
 create mode 100644 src/skins/vector/img/cancel-red.svg

diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss
index 07eeba70..c8556b0d 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss
@@ -83,6 +83,10 @@ limitations under the License.
     border: 1px solid transparent;
 }
 
+.mx_AppTileMenuBarWidgetDelete {
+    filter: none;
+}
+
 .mx_AppTileMenuBarWidget:hover {
     border: 1px solid $primary-hairline-color;
     border-radius: 2px;
diff --git a/src/skins/vector/img/cancel-red.svg b/src/skins/vector/img/cancel-red.svg
new file mode 100644
index 00000000..a72a970b
--- /dev/null
+++ b/src/skins/vector/img/cancel-red.svg
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
+    <!-- Generator: Sketch 3.4.2 (15857) - http://www.bohemiancoding.com/sketch -->
+    <title>Slice 1</title>
+    <desc>Created with Sketch.</desc>
+    <defs></defs>
+    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
+        <path d="M9.74464309,-3.02908503 L8.14106175,-3.02908503 L8.14106175,8.19448443 L-3.03028759,8.19448443 L-3.03028759,9.7978515 L8.14106175,9.7978515 L8.14106175,20.9685098 L9.74464309,20.9685098 L9.74464309,9.7978515 L20.9697124,9.7978515 L20.9697124,8.19448443 L9.74464309,8.19448443 L9.74464309,-3.02908503" id="Fill-108" opacity="0.9" fill="#ff0064" sketch:type="MSShapeGroup" transform="translate(8.969712, 8.969712) rotate(-315.000000) translate(-8.969712, -8.969712) "></path>
+    </g>
+</svg>

From 50f5abf53565a02efc26537b25b47b845c82025a Mon Sep 17 00:00:00 2001
From: Richard Lewis <rick@matrix.org>
Date: Thu, 27 Jul 2017 20:19:08 +0100
Subject: [PATCH 07/21] Permissions button cursor.

---
 .../vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss     | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss
index c8556b0d..73c59c6e 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss
@@ -214,6 +214,7 @@ form.mx_Custom_Widget_Form div {
 
 .mx_AppPermissionButton:hover {
     background-color: $primary-fg-color;
+    cursor: pointer;
 }
 
 .mx_AppLoading {

From 317ff8c6af40bd93a474f188d177878b89082c4c Mon Sep 17 00:00:00 2001
From: Richard Lewis <rick@matrix.org>
Date: Thu, 27 Jul 2017 23:02:19 +0100
Subject: [PATCH 08/21] Beta tag styling

---
 src/skins/vector/css/_common.scss | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/skins/vector/css/_common.scss b/src/skins/vector/css/_common.scss
index c52204c5..3189deb0 100644
--- a/src/skins/vector/css/_common.scss
+++ b/src/skins/vector/css/_common.scss
@@ -319,6 +319,7 @@ textarea {
     cursor: help;
     transition-duration: 200ms;
     font-size: smaller;
+    filter: opacity(0.5);
 }
 
 .mx_Beta:hover {

From 397523f4aca739dbf05ced70f8c47320df6585e8 Mon Sep 17 00:00:00 2001
From: Luke Barnard <lukeb@openmarket.com>
Date: Fri, 28 Jul 2017 15:13:36 +0100
Subject: [PATCH 09/21] Make pills, emoji translucent when sending

also fix header colours, which now inherit the font colour of the event tile (so all headers have the correct colour when sending or when the event tile is highlighted for a mention)
---
 .../css/matrix-react-sdk/views/rooms/_EventTile.scss       | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss
index cf148603..57d4a180 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss
@@ -128,6 +128,12 @@ limitations under the License.
     color: $event-sending-color;
 }
 
+.mx_EventTile_sending .mx_UserPill,
+.mx_EventTile_sending .mx_RoomPill,
+.mx_EventTile_sending .mx_emojione {
+    opacity: 0.5;
+}
+
 .mx_EventTile_notSent {
     color: $event-notsent-color;
 }
@@ -370,6 +376,7 @@ limitations under the License.
 .mx_EventTile_content .markdown-body h6
 {
     font-family: inherit ! important;
+    color: inherit;
 }
 
 

From af85f18eae78d95614195c97ff8f9c66bdf940cc Mon Sep 17 00:00:00 2001
From: Richard Lewis <rick@matrix.org>
Date: Tue, 1 Aug 2017 17:30:22 +0100
Subject: [PATCH 10/21] Styling tweaks

---
 .../vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss   | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss
index 73c59c6e..75064d93 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_AppsDrawer.scss
@@ -188,7 +188,7 @@ form.mx_Custom_Widget_Form div {
 }
 
 .mx_AppPermissionWarningImage img {
-    width: 150px;
+    width: 100px;
 }
 
 .mx_AppPermissionWarningText {
@@ -199,6 +199,7 @@ form.mx_Custom_Widget_Form div {
 
 .mx_AppPermissionWarningTextLabel {
     font-weight: bold;
+    display: block;
 }
 
 .mx_AppPermissionWarningTextURL {

From 2f99a4883f1c12cf2131ce3db10bdeb56257a731 Mon Sep 17 00:00:00 2001
From: Luke Barnard <lukeb@openmarket.com>
Date: Wed, 2 Aug 2017 11:52:47 +0100
Subject: [PATCH 11/21] Update draft-js from 0.8.1 to 0.10.1

Hopefully to fix #4675 and friends
---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index 2b1d6e82..87f76cd2 100644
--- a/package.json
+++ b/package.json
@@ -57,7 +57,7 @@
     "bluebird": "^3.5.0",
     "browser-request": "^0.3.3",
     "classnames": "^2.1.2",
-    "draft-js": "^0.8.1",
+    "draft-js": "^0.10.1",
     "extract-text-webpack-plugin": "^0.9.1",
     "favico.js": "^0.3.10",
     "filesize": "3.5.6",

From a6d51588308261ff65055e48d8ecf108fe6b88e8 Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Thu, 3 Aug 2017 15:03:50 +0100
Subject: [PATCH 12/21] electron support for mouse forward/back buttons in
 Windows

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---
 electron_app/src/electron-main.js | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/electron_app/src/electron-main.js b/electron_app/src/electron-main.js
index 99e14b74..ce5ac384 100644
--- a/electron_app/src/electron-main.js
+++ b/electron_app/src/electron-main.js
@@ -228,6 +228,17 @@ electron.app.on('ready', () => {
         }
     });
 
+    if (process.platform === 'win32') {
+        // Handle forward/backward mouse buttons in Windows
+        mainWindow.on('app-command', (e, cmd) => {
+            if (cmd === 'browser-backward' && mainWindow.webContents.canGoBack()) {
+                mainWindow.webContents.goBack();
+            } else if (cmd === 'browser-forward' && mainWindow.webContents.canGoForward()) {
+                mainWindow.webContents.goForward();
+            }
+        });
+    }
+
     webContentsHandler(mainWindow.webContents);
     mainWindowState.manage(mainWindow);
 });

From 8ca2af0fe72d2d40137596bbf3252042d40c3268 Mon Sep 17 00:00:00 2001
From: Luke Barnard <lukeb@openmarket.com>
Date: Thu, 3 Aug 2017 15:22:52 +0100
Subject: [PATCH 13/21] Update draft-js from 0.10.1 to 0.11.0-alpha (see
 https://github.com/matrix-org/matrix-react-sdk/pull/1269)

---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index 87f76cd2..fb4facb4 100644
--- a/package.json
+++ b/package.json
@@ -57,7 +57,7 @@
     "bluebird": "^3.5.0",
     "browser-request": "^0.3.3",
     "classnames": "^2.1.2",
-    "draft-js": "^0.10.1",
+    "draft-js": "^0.11.0-alpha",
     "extract-text-webpack-plugin": "^0.9.1",
     "favico.js": "^0.3.10",
     "filesize": "3.5.6",

From fb69ac33a06db6db2c38f81c46d395879c415410 Mon Sep 17 00:00:00 2001
From: Jordan Moran Meyers <peterpan0413@live.com>
Date: Sat, 5 Aug 2017 15:50:47 -0500
Subject: [PATCH 14/21] update gitignore to allow .idea directory to exist in
 subdirs

---
 .gitignore | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.gitignore b/.gitignore
index 060ca6e9..2ad05012 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,6 +14,6 @@
 npm-debug.log
 electron/dist
 electron/pub
-/.idea
+**/.idea
 /config.json
 /src/component-index.js

From 9c3c1b760899abb6c1a5ce0832e9c98aabece746 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Tue, 8 Aug 2017 09:42:38 +0100
Subject: [PATCH 15/21] Make webpack exit non-zero on error

Pass `--bail` to webpack, so that if we can't find a module, we bail out rather
than deploy a broken version to /develop.

https://github.com/webpack/webpack/issues/708 is somewhat relevant.
---
 package.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package.json b/package.json
index 2b1d6e82..db4935f1 100644
--- a/package.json
+++ b/package.json
@@ -31,8 +31,8 @@
     "build:res": "node scripts/copy-res.js",
     "build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js",
     "build:compile": "npm run reskindex && babel --source-maps -d lib src",
-    "build:bundle": "cross-env NODE_ENV=production webpack -p --progress",
-    "build:bundle:dev": "webpack --optimize-occurence-order --progress",
+    "build:bundle": "cross-env NODE_ENV=production webpack -p --progress --bail",
+    "build:bundle:dev": "webpack --optimize-occurence-order --progress --bail",
     "build:electron": "npm run clean && npm run build && npm run install:electron && build -wml --ia32 --x64",
     "build": "npm run reskindex && npm run build:res && npm run build:bundle",
     "build:dev": "npm run reskindex && npm run build:res && npm run build:bundle:dev",

From 7b024751d1a9dc2f2737fd7b1e618ee0b8ad650d Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Tue, 8 Aug 2017 09:43:40 +0100
Subject: [PATCH 16/21] fetch-develop-deps: avoid breaking js-sdk

do `npm i` in react-sdk *before* symlinking js-sdk, to avoid moving a load of
deps from js-sdk to react-sdk and hence breaking the build.
---
 scripts/fetch-develop.deps.sh | 33 +++++++++++++++++++--------------
 1 file changed, 19 insertions(+), 14 deletions(-)

diff --git a/scripts/fetch-develop.deps.sh b/scripts/fetch-develop.deps.sh
index 4fa1a4a2..e2d40341 100755
--- a/scripts/fetch-develop.deps.sh
+++ b/scripts/fetch-develop.deps.sh
@@ -49,42 +49,47 @@ function dodep() {
         [ "$curbranch" != 'develop' ] && clone $org $repo develop
     } || return $?
 
-    (
-        cd $repo
-        echo "$repo set to branch "`git rev-parse --abbrev-ref HEAD`
-    )
+    echo "$repo set to branch "`git -C "$repo" rev-parse --abbrev-ref HEAD`
 
     mkdir -p node_modules
     rm -r "node_modules/$repo" 2>/dev/null || true
     ln -sv "../$repo" node_modules/
+
+    (
+        cd $repo
+        npm install
+    )
 }
 
+##############################
+
 echo -en 'travis_fold:start:matrix-js-sdk\r'
 echo 'Setting up matrix-js-sdk'
 
 dodep matrix-org matrix-js-sdk
-(
-    cd node_modules/matrix-js-sdk
-    npm install
-)
 
 echo -en 'travis_fold:end:matrix-js-sdk\r'
 
+##############################
+
 echo -en 'travis_fold:start:matrix-react-sdk\r'
 echo 'Setting up matrix-react-sdk'
 
 dodep matrix-org matrix-react-sdk
 
-mkdir -p node_modules/matrix-react-sdk/node_modules
+# replace the version of js-sdk that got pulled into react-sdk with a symlink
+# to our version. Make sure to do this *after* doing 'npm i' in react-sdk,
+# otherwise npm helpfully moves another-json from matrix-js-sdk/node_modules
+# into matrix-react-sdk/node_modules.
+#
+# (note this matches the instructions in the README.)
+rm -r node_modules/matrix-react-sdk/node_modules/matrix-js-sdk
 ln -s ../../matrix-js-sdk node_modules/matrix-react-sdk/node_modules/
 
-(
-    cd node_modules/matrix-react-sdk
-    npm install
-)
-
 echo -en 'travis_fold:end:matrix-react-sdk\r'
 
+##############################
+
 # Link the reskindex binary in place: if we used npm link,
 # npm would do this for us, but we don't because we'd have
 # to define the npm prefix somewhere so it could put the

From c31f66aed51c7f0c0e13252a0bc15602d9d51335 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Tue, 8 Aug 2017 09:47:03 +0100
Subject: [PATCH 17/21] Jenkins.sh: only fetch head of dependency branches

---
 scripts/jenkins.sh | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/scripts/jenkins.sh b/scripts/jenkins.sh
index 4f2e9405..7b5b4c8e 100755
--- a/scripts/jenkins.sh
+++ b/scripts/jenkins.sh
@@ -8,8 +8,11 @@ nvm use 6
 
 set -x
 
-# check out corresponding branches of dependencies
-`dirname $0`/fetch-develop.deps.sh
+# check out corresponding branches of dependencies.
+#
+# clone the deps with depth 1: we know we will only ever need that one
+# commit.
+`dirname $0`/fetch-develop.deps.sh --depth 1
 
 npm install
 

From 274fc348687ee347be705c2dd4ad558e1fcca13c Mon Sep 17 00:00:00 2001
From: Luke Barnard <lukeb@openmarket.com>
Date: Tue, 8 Aug 2017 11:14:52 +0100
Subject: [PATCH 18/21] Adjust CSS for optional avatars in pills

codep matrix-org/matrix-react-sdk#1277
---
 .../css/matrix-react-sdk/views/avatars/_BaseAvatar.scss       | 1 +
 .../vector/css/matrix-react-sdk/views/elements/_RichText.scss | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/skins/vector/css/matrix-react-sdk/views/avatars/_BaseAvatar.scss b/src/skins/vector/css/matrix-react-sdk/views/avatars/_BaseAvatar.scss
index 106f0cde..320efda0 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/avatars/_BaseAvatar.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/avatars/_BaseAvatar.scss
@@ -20,6 +20,7 @@ limitations under the License.
 
 .mx_BaseAvatar_initial {
     position: absolute;
+    left: 0px;
     color: $avatar-initial-color;
     text-align: center;
     speak: none;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/_RichText.scss b/src/skins/vector/css/matrix-react-sdk/views/elements/_RichText.scss
index 55faab84..8825c98e 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/elements/_RichText.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/elements/_RichText.scss
@@ -8,6 +8,7 @@
     display: inline-block;
     height: 20px;
     line-height: 20px;
+    padding-left: 5px;
 }
 
 /* More specific to override `.markdown-body a` color */
@@ -35,9 +36,8 @@
 .mx_UserPill .mx_BaseAvatar,
 .mx_RoomPill .mx_BaseAvatar {
     position: relative;
+    left: -3px;
     top: 2px;
-    margin-left: 2px;
-    margin-right: 2px;
 }
 
 .mx_Markdown_BOLD {

From a3525f411d8dcad499e107d132e63f8aa1617dea Mon Sep 17 00:00:00 2001
From: Marcel <MTRNord@users.noreply.github.com>
Date: Tue, 8 Aug 2017 19:22:07 +0200
Subject: [PATCH 19/21] Fix typo with scripts/fetch-develop-deps.sh in Building
 From Source

scripts/fetch-develop-deps.sh vs scripts/fetch-develop.deps.sh
---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 89f2148f..337db0e4 100644
--- a/README.md
+++ b/README.md
@@ -62,7 +62,7 @@ to build.
 1. If you're using the `develop` branch, install the develop versions of the
    dependencies, as the released ones will be too old:
    ```
-   scripts/fetch-develop-deps.sh
+   scripts/fetch-develop.deps.sh
    ```
    Whenever you git pull on riot-web you will also probably need to force an update
    to these dependencies - the simplest way is to re-run the script, but you can also

From df33d402853dd6997cbd91df4a32267824ba7580 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Tue, 8 Aug 2017 19:04:25 +0100
Subject: [PATCH 20/21] Enable karma-sourcemap-loader

This turns (some) stacktraces back into something useful, so that unpicking
test failures is vaguely tractable
---
 karma.conf.js | 2 +-
 package.json  | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/karma.conf.js b/karma.conf.js
index d834987e..824fd215 100644
--- a/karma.conf.js
+++ b/karma.conf.js
@@ -84,7 +84,7 @@ module.exports = function (config) {
         // available preprocessors:
         // https://npmjs.org/browse/keyword/karma-preprocessor
         preprocessors: {
-            '{src,test}/**/*.js': ['webpack'],
+            '{src,test}/**/*.js': ['webpack', 'sourcemap'],
         },
 
         // test results reporter to use
diff --git a/package.json b/package.json
index 3f31a3ac..60ee2aec 100644
--- a/package.json
+++ b/package.json
@@ -119,6 +119,7 @@
     "karma-cli": "^0.1.2",
     "karma-junit-reporter": "^0.4.1",
     "karma-mocha": "^0.2.2",
+    "karma-sourcemap-loader": "^0.3.7",
     "karma-webpack": "^1.7.0",
     "matrix-mock-request": "^1.2.0",
     "matrix-react-test-utils": "^0.2.0",

From 06ef674597ec5219dc2e73e0e1d560771a9d10fb Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Tue, 8 Aug 2017 19:05:58 +0100
Subject: [PATCH 21/21] Enable fancy karma reporters

cargo-cult luke's stuff from react-sdk
---
 karma.conf.js | 14 ++++++++++++--
 package.json  |  5 ++++-
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/karma.conf.js b/karma.conf.js
index 824fd215..3b415b1a 100644
--- a/karma.conf.js
+++ b/karma.conf.js
@@ -88,9 +88,19 @@ module.exports = function (config) {
         },
 
         // test results reporter to use
-        // possible values: 'dots', 'progress'
         // available reporters: https://npmjs.org/browse/keyword/karma-reporter
-        reporters: ['progress', 'junit'],
+        reporters: ['logcapture', 'spec', 'junit', 'summary'],
+
+        specReporter: {
+            suppressErrorSummary: false, // do print error summary
+            suppressFailed: false, // do print information about failed tests
+            suppressPassed: false, // do print information about passed tests
+            showSpecTiming: true, // print the time elapsed for each spec
+        },
+
+        client: {
+            captureLogs: true,
+        },
 
         // web server port
         port: 9876,
diff --git a/package.json b/package.json
index 60ee2aec..bb35ce89 100644
--- a/package.json
+++ b/package.json
@@ -114,12 +114,15 @@
     "fs-extra": "^0.30.0",
     "html-webpack-plugin": "^2.24.0",
     "json-loader": "^0.5.3",
-    "karma": "^0.13.22",
+    "karma": "^1.7.0",
     "karma-chrome-launcher": "^0.2.3",
     "karma-cli": "^0.1.2",
     "karma-junit-reporter": "^0.4.1",
+    "karma-logcapture-reporter": "0.0.1",
     "karma-mocha": "^0.2.2",
     "karma-sourcemap-loader": "^0.3.7",
+    "karma-spec-reporter": "0.0.31",
+    "karma-summary-reporter": "^1.3.3",
     "karma-webpack": "^1.7.0",
     "matrix-mock-request": "^1.2.0",
     "matrix-react-test-utils": "^0.2.0",