Compare commits

...

164 Commits

Author SHA1 Message Date
RiotRobot
2af3d20a71 v1.2.0 2019-05-29 16:23:52 +01:00
RiotRobot
fde9a7a7ba Prepare changelog for v1.2.0 2019-05-29 16:23:52 +01:00
RiotRobot
d6fb0bc24f v1.2.0 2019-05-29 16:19:59 +01:00
RiotRobot
f4b1e3307d Upgrade SDKs to 1.2.0 2019-05-29 16:14:25 +01:00
RiotRobot
52b2dbec85 v1.2.0-rc.1 2019-05-23 17:41:20 +01:00
RiotRobot
aa10d7aeed Prepare changelog for v1.2.0-rc.1 2019-05-23 17:41:20 +01:00
RiotRobot
7f7b3e747c v1.2.0-rc.1 2019-05-23 17:40:08 +01:00
RiotRobot
59fa374491 Upgrade SDKs to 1.2.0-rc.1 2019-05-23 17:39:03 +01:00
David Baker
001b7fb799 electron 4.2.2 2019-05-22 12:51:41 +01:00
David Baker
260f819e38 Merge pull request #9802 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-05-22 12:45:41 +01:00
Weblate
6306bc0c90 Merge branch 'origin/develop' into Weblate. 2019-05-21 12:27:12 +00:00
J. Ryan Stinnett
913bc6da93 Update yarn.lock 2019-05-21 13:27:02 +01:00
Weblate
6ac035f0b1 Merge branch 'origin/develop' into Weblate. 2019-05-21 10:33:16 +00:00
Matthew Hodgson
fa1b2fe70f Merge pull request #9766 from vector-im/matthew/twemoji
remove emojione
2019-05-21 11:33:12 +01:00
Matthew Hodgson
4cbe6c1000 remove emojione 2019-05-19 21:26:11 +01:00
Weblate
c203d3356b Merge branch 'origin/develop' into Weblate. 2019-05-19 15:09:55 +00:00
Karol Kosek
d617d8ebb3 Translated using Weblate (Polish)
Currently translated at 89.5% (17 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/pl/
2019-05-19 15:09:55 +00:00
Edgars Voroboks
43d2c3bbc8 Translated using Weblate (Latvian)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/lv/
2019-05-19 15:09:55 +00:00
Matthew Hodgson
3e17e9f00d tell webpack about woff & woff2 files 2019-05-19 16:09:47 +01:00
Filip Š
b54a53d1ac Translated using Weblate (Slovenian)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sl/
2019-05-18 14:15:56 +00:00
Tuomas Hietala
bdb0f5e81c Translated using Weblate (Finnish)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/fi/
2019-05-18 14:15:55 +00:00
Fendo
29398a0ab5 Translated using Weblate (Esperanto)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/eo/
2019-05-18 14:15:55 +00:00
Travis Ralston
6f8c6bf13e Merge pull request #9736 from vector-im/travis/docker-test
Make Dockerfile work for develop and other branches
2019-05-16 08:43:44 -06:00
Tom Lant
45e8c26864 Update issue templates 2019-05-16 11:24:45 +01:00
Travis Ralston
3123b429f7 Increase timeout for yarn install in Docker builds
Otherwise we run into problems where Docker Hub's limited machines timeout trying to download our dependencies
2019-05-15 16:24:25 -06:00
David Baker
05a2cb1020 Merge branch 'master' into develop 2019-05-15 14:40:16 +01:00
David Baker
5aa88abacc v1.1.2 2019-05-15 14:36:52 +01:00
David Baker
e749420196 Prepare changelog for v1.1.2 2019-05-15 14:36:51 +01:00
David Baker
8ac5957186 v1.1.2 2019-05-15 14:34:59 +01:00
David Baker
d0def4a80f react-sdk 1.1.2 2019-05-15 14:34:13 +01:00
J. Ryan Stinnett
5a6be9a665 Add message editing to sample also 2019-05-15 11:12:12 +01:00
Bruno Windels
734221cc3f Merge pull request #9728 from vector-im/bwindels/message-edit-editor
add description of new labs feature for message editing
2019-05-15 09:23:34 +00:00
Bruno Windels
f5e7dd5164 add description of new labs feature for message editing 2019-05-15 10:02:50 +01:00
David Baker
da9cde6d18 Merge branch 'master' into develop 2019-05-14 14:04:34 +01:00
David Baker
5aa8326dfc v1.1.1 2019-05-14 14:01:01 +01:00
David Baker
e4ed0994ce Prepare changelog for v1.1.1 2019-05-14 14:01:01 +01:00
David Baker
875d1b209a v1.1.1 2019-05-14 13:53:31 +01:00
David Baker
8ed44e6b64 matrix-react-sdk v1.1.1 2019-05-14 13:52:05 +01:00
David Baker
814b5297ad Merge branch 'master' into develop 2019-05-07 16:05:58 +01:00
David Baker
2ab8db3c0c v1.1.0 2019-05-07 15:55:56 +01:00
David Baker
94979f7ff5 Prepare changelog for v1.1.0 2019-05-07 15:55:55 +01:00
David Baker
5c46bd37e8 v1.1.0 2019-05-07 15:54:38 +01:00
David Baker
c81b9bab79 Released react-sdk and js-sdk 2019-05-07 15:52:50 +01:00
J. Ryan Stinnett
818bab9fa4 Merge pull request #9632 from vector-im/travis/dockerfile-release
Add Dockerfile
2019-05-07 10:07:08 +01:00
Matthew Hodgson
ee0b7e9c82 use right android app id 2019-05-04 10:50:14 -06:00
Matthew Hodgson
03b2766ca8 use right android app id 2019-05-04 17:28:02 +01:00
Travis Ralston
eee2468a01 Merge branch 'travis/dockerfile-continued' into travis/dockerfile-release 2019-05-03 11:45:20 -06:00
David Baker
9cd4ac1df4 Merge pull request #9628 from vector-im/dbkr/thanks_you_junit_but_its_not_2005_anymore
Remove karma junit output
2019-05-03 12:43:04 +01:00
David Baker
c612633402 Merge remote-tracking branch 'origin/develop' into dbkr/thanks_you_junit_but_its_not_2005_anymore 2019-05-03 12:37:28 +01:00
David Baker
0c36849c0f Merge pull request #9626 from vector-im/dbkr/yarn_upgrade_may19
yarn upgrade
2019-05-03 12:36:26 +01:00
David Baker
1a1f2254e5 Remove karma junit output
See https://github.com/matrix-org/matrix-react-sdk/pull/2944
2019-05-03 11:40:53 +01:00
David Baker
908a72e00e yarn upgrade
ALL THE UPDATES!

(so many updates)
2019-05-03 11:13:04 +01:00
David Baker
2fe6b5074d Merge pull request #9617 from vector-im/dbkr/arghbuildkite
Respond quickly to buildkite pokes
2019-05-02 18:13:38 +01:00
David Baker
a7756fc876 Respond quickly to buildkite pokes
Otherwise it thinks they have failed, as per comment.
2019-05-02 18:05:11 +01:00
J. Ryan Stinnett
8cb7eeecd2 Merge pull request #9616 from vector-im/jryans/delay-favicon
Delay creating the `Favico` instance
2019-05-02 13:51:46 +01:00
J. Ryan Stinnett
d4de7f5df3 Delay creating the Favico instance
This avoids a canvas permission prompt from appearing on page load for users in
Firefox's resist fingerprinting mode. The prompt will still happen once you log
in and receive a notification, but at least this prevents it from happening
during the initial app experience.

Fixes https://github.com/vector-im/riot-web/issues/9605
2019-05-02 13:29:25 +01:00
J. Ryan Stinnett
989b75502c Merge pull request #9598 from jryans/primary-reactions
Add reactions feature to config sample
2019-05-01 20:26:12 +01:00
J. Ryan Stinnett
bb675fde0c Tweak redundant title 2019-05-01 19:16:21 +01:00
J. Ryan Stinnett
6df5c35b4e Move to labs doc 2019-05-01 19:16:21 +01:00
Travis Ralston
9957149115 Merge pull request #9426 from vector-im/travis/dockerfile-continued
Add Dockerfile (part 2)
2019-05-01 10:42:21 -06:00
David Baker
f98870db1f Merge pull request #9601 from vector-im/dbkr/add_scalar_staging_vector_im
Add new scalar staging url
2019-05-01 11:51:08 +01:00
David Baker
7c5e39e170 Add new scalar staging url 2019-05-01 11:45:11 +01:00
J. Ryan Stinnett
ebe2ab504b Add reactions feature description 2019-05-01 10:30:57 +01:00
David Baker
e4f997113d v1.1.0-rc.1 2019-04-30 12:49:40 +01:00
David Baker
cb155769d5 Prepare changelog for v1.1.0-rc.1 2019-04-30 12:49:39 +01:00
David Baker
49efece6c6 v1.1.0-rc.1 2019-04-30 12:48:52 +01:00
David Baker
846797be76 add new babel plugins to deps 2019-04-30 12:48:18 +01:00
David Baker
d6d4d95b20 Fix .babelrc to be the same as react-sdk
it was missing some plugins which firstly means we're using inconsistent
js between projects, but also causes builds to fail due to our unique
build system.
2019-04-30 12:42:04 +01:00
David Baker
cc8eaea5a7 js-sdk & react-sdk rc.1, electron 4.1.5 2019-04-30 12:10:06 +01:00
David Baker
269a995a01 We are now releases@riot.im 2019-04-30 11:49:49 +01:00
David Baker
77dff119db Fix variable scope in redeployer 2019-04-26 16:26:48 +01:00
David Baker
0718d438b8 Fix more typos in redeployer 2019-04-26 16:19:49 +01:00
David Baker
3a2541d3bf more logging for auto-deployer 2019-04-26 16:16:14 +01:00
David Baker
00d33599f0 Merge pull request #9577 from vector-im/dbkr/convert_redeploy_server_to_buildkite
Convert redeploy.py to buildkite
2019-04-26 16:04:04 +01:00
David Baker
f49732b036 Link to buildkite webhook docs 2019-04-26 15:41:20 +01:00
J. Ryan Stinnett
73144c3493 Typing is hard
Co-Authored-By: dbkr <dbkr@users.noreply.github.com>
2019-04-26 15:40:23 +01:00
J. Ryan Stinnett
c5e7e82b46 I can't type buildkite
Co-Authored-By: dbkr <dbkr@users.noreply.github.com>
2019-04-26 15:40:05 +01:00
David Baker
af6ad9355d Convert redeploy.py to buildkite 2019-04-26 15:26:03 +01:00
David Baker
6c4c908678 consistent capitalisation in buildkite pipelines 2019-04-26 15:09:01 +01:00
David Baker
ae62a46a97 Merge pull request #9568 from vector-im/dbkr/buildkite_cd
Add package step to buildkite pipeline
2019-04-26 14:43:43 +01:00
David Baker
bf84c64ea9 Only bother packaging the develop branch 2019-04-26 14:38:36 +01:00
David Baker
5ac8a42681 Merge remote-tracking branch 'origin/develop' into dbkr/buildkite_cd 2019-04-26 14:37:11 +01:00
David Baker
03b1914112 Merge pull request #9571 from vector-im/dbkr/package_dont_fail_if_no_local_config
Don't fail if there's no local config to remove
2019-04-26 14:36:28 +01:00
David Baker
ff21bde839 Merge branch 'dbkr/package_dont_fail_if_no_local_config' into dbkr/buildkite_cd 2019-04-26 14:28:45 +01:00
David Baker
c62da0eda6 Don't fail if there's no local config to remove
The script has a set -e so don't fail if there's nothing to rm
2019-04-26 14:13:02 +01:00
David Baker
932d3a054c Merge remote-tracking branch 'origin/develop' into dbkr/buildkite_cd 2019-04-26 13:22:39 +01:00
David Baker
a67fd48720 Merge pull request #9567 from vector-im/dbkr/bye_bye_jenkins
Change jenkins script to package script
2019-04-26 13:19:33 +01:00
David Baker
afc2b48073 combine sets 2019-04-26 12:22:32 +01:00
David Baker
093d30121d Try running packager with buildkite 2019-04-26 12:21:21 +01:00
David Baker
1b8583fa51 Change jenkins script to package script
Take the useful part of the jenkins script and put it in a script
that makes a package with the git hashes as its version.
2019-04-26 11:25:41 +01:00
J. Ryan Stinnett
ea37e777cf Add reactions feature to config sample 2019-04-26 10:56:35 +01:00
Richard van der Hoff
cc5911b4aa Remove redundant and incorrect riot-desktop install instructions (#9558) 2019-04-25 13:22:32 +01:00
J. Ryan Stinnett
28d50100d8 Merge pull request #9555 from jryans/rm-config-from-package
Remove config.json from package dir
2019-04-25 09:40:44 +01:00
Hubert Chathi
8ef464597f Merge pull request #9550 from uhoreg/olm-3.1.0
use the release version of olm 3.1.0
2019-04-24 18:19:22 -04:00
Hubert Chathi
2c64a4f3a1 update yarn.lock with olm release 2019-04-24 12:02:41 -04:00
J. Ryan Stinnett
8002d98f50 Remove config.json from package dir 2019-04-24 11:28:26 +01:00
Hubert Chathi
9519ad46a1 use the release version of olm 3.1.0 2019-04-23 18:08:07 -04:00
David Baker
597b3e16e0 Merge pull request #9517 from vector-im/dbkr/fix_deploy_script_include_default
Fix default for --include arg
2019-04-17 18:46:56 +01:00
David Baker
addca871ad Fix default for --include arg
nargs options are arrays and we assume it's an array later, so it
would iterate over each char of the string if left as the default
2019-04-17 18:31:36 +01:00
David Baker
2c0504d596 Merge pull request #9500 from axelsimon/patch-1
update installation instructions with new repo
2019-04-17 09:34:35 +01:00
axel simon
434e8cc937 Changed the Debian repo key and public key URLs 2019-04-16 21:03:53 +02:00
axel simon
6c950593b7 the repo key filename changed, reflecting this 2019-04-16 17:58:54 +02:00
David Baker
147f77f1dc Update README.md
better wording

Co-Authored-By: axelsimon <github@axelsimon.net>
2019-04-16 17:55:49 +02:00
Travis Ralston
86bbe156db Merge pull request #9498 from vector-im/travis/packages.matrix.org
Use packages.matrix.org for Olm
2019-04-16 08:28:38 -06:00
J. Ryan Stinnett
bb5dedeeb9 Update yarn.lock 2019-04-16 13:31:58 +01:00
axel simon
261974e9eb update installation instructions with new repo
change mentions of https://riot.im/packages to https://packages.riot.im
add instructions to remove old, now-untrusted riot.im signing key
update language and move from 'apt-get` to the simpler `apt`
2019-04-16 13:53:59 +02:00
Travis Ralston
cbaa7a81bf Use packages.matrix.org for Olm
Fixes https://github.com/vector-im/riot-web/issues/9497
2019-04-15 19:18:33 -06:00
David Baker
f400cea437 Merge branch 'master' into develop 2019-04-16 01:26:24 +01:00
J. Ryan Stinnett
d187a437fe Merge pull request #9412 from vector-im/anoa/electron_platform_builds
Add separate platform electron build commands
2019-04-11 17:16:54 +01:00
Travis Ralston
a263ca8cb3 Add USE_CUSTOM_SDKS to docs 2019-04-10 15:51:06 -06:00
Travis Ralston
eeae5dbcad Add docs for the Docker image 2019-04-10 15:47:12 -06:00
Travis Ralston
1bb70930fa Support custom SDKs and use yarn 2019-04-10 15:47:02 -06:00
Travis Ralston
8e76cf2c13 Ignore a bunch of files in the docker build to reduce context size 2019-04-10 15:45:42 -06:00
Travis Ralston
9bf5828079 Merge branch 'develop' into travis/dockerfile-continued 2019-04-10 15:04:36 -06:00
J. Ryan Stinnett
b3bee52ad1 Merge pull request #9408 from pacien/custom-profiledir
Add support for custom profile directory
2019-04-10 10:45:06 +01:00
pacien
2c9b51f29d Add support for custom profile directory
A custom user data directory can now be specified using the "profile-dir"
command line argument.

Github ref: closes #6175

Signed-off-by: Pacien TRAN-GIRARD <pacien.trangirard@pacien.net>
2019-04-09 19:35:14 +02:00
Andrew Morgan
96be8ad072 Remove 32-bit builds for MacOS and Linux 2019-04-09 18:24:30 +01:00
Andrew Morgan
38b661e2cb Switch to yarn 2019-04-09 17:03:58 +01:00
Andrew Morgan
657397b177 Add separate platform electron build commands
Add commands for building separate electron builds for each platform
2019-04-09 17:01:19 +01:00
Nad Chishtie
0796f32c17 Merge pull request #9410 from vector-im/nadonomy/mobile-install-guide
Improved mobile install guide
2019-04-09 17:07:20 +02:00
Nad Chishtie
c70a2925a8 More responsive styling. 2019-04-09 17:05:41 +02:00
Nad Chishtie
17788b2027 Improved responsive styling. 2019-04-09 16:40:41 +02:00
Nad Chishtie
527dc1982e Updated branding. 2019-04-09 16:40:04 +02:00
J. Ryan Stinnett
449065b466 Merge pull request #9404 from vector-im/anoa/no_vec-elec_desktop
Remove vector-electron-desktop from README
2019-04-08 17:24:40 +01:00
Andrew Morgan
8a48d9e86b Remove vector-electron-desktop from README
The repo (https://github.com/iskrisis/vector-electron-desktop) very clearly states not to use it anymore.
2019-04-08 17:11:58 +01:00
Bruno Windels
a41a14b975 Merge branch 'master' into develop 2019-04-08 16:21:13 +02:00
David Baker
26955d2b79 Merge pull request #9398 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-04-08 09:40:59 +01:00
Weblate
0a79496f0c Merge branch 'origin/develop' into Weblate. 2019-04-08 08:37:28 +00:00
Maros Dumitru
1d23f8c2f4 Translated using Weblate (Romanian)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/ro/
2019-04-08 08:37:25 +00:00
Tuomas Hietala
8d27ed986c Translated using Weblate (Finnish)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/fi/
2019-04-08 08:37:25 +00:00
Nathan Follens
9b8607fc64 Translated using Weblate (Dutch)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/nl/
2019-04-08 08:37:25 +00:00
Filip Š
a5993419c4 Added translation using Weblate (Slovenian) 2019-04-07 19:34:31 +00:00
Hubert Chathi
ab136c42a7 Merge pull request #9392 from uhoreg/bump_olm_3.0.0_pre3
bump olm version to 3.1.0-pre3
2019-04-05 16:45:22 -04:00
Hubert Chathi
ec08cd99aa bump olm version 2019-04-05 16:22:06 -04:00
Travis Ralston
2aeaa081fe Merge pull request #9383 from vector-im/travis/expire-mobile-page
Add expiration to mobile guide cookie
2019-04-04 12:00:10 -06:00
Travis Ralston
b72ae197e5 Use a different cookie to expire any cookies people may already have
We also check for a specific value in case people set it to `true` for some reason.
2019-04-03 18:11:25 -06:00
Travis Ralston
0d2668f2b1 Step cookie down to 4 hours 2019-04-03 18:01:09 -06:00
Travis Ralston
50b4906ea8 Merge pull request #9368 from vector-im/travis/autolaunch
Fix autolaunch setting appearing toggled off
2019-04-03 08:40:01 -06:00
Travis Ralston
f36a24fef0 Fix autolaunch setting appearing toggled off
Fixes https://github.com/vector-im/riot-web/issues/9123

The value used here is a function which returns a promise, not a flag.
2019-04-02 17:59:47 -06:00
Travis Ralston
b1c885a266 Expire mobile guide cookie after 24 hours
See https://github.com/vector-im/riot-web/issues/9360

This is to prevent it from always working. Cookies without an expiration are supposed to expire at the end of the session, however the nature of mobile browsers means that the session is unlikely to ever end.
2019-04-02 11:18:05 -06:00
Travis Ralston
958260d559 Merge pull request #9352 from vector-im/travis/save-as-2
Don't try to save files the user didn't want to save
2019-04-02 07:33:36 -06:00
Travis Ralston
8b2d33ac0a Don't try to save files the user didn't want to save
Fixes https://github.com/vector-im/riot-web/issues/9350
2019-04-01 13:24:17 -06:00
J. Ryan Stinnett
95e247ae7c Merge pull request #9325 from jryans/storage-eviction-modal
Setup crypto store for restore session tests
2019-04-01 17:31:11 +01:00
David Baker
c55223e750 Merge branch 'master' into develop 2019-04-01 13:58:50 +01:00
David Baker
9cb452ad20 Merge pull request #9333 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-04-01 12:03:18 +01:00
David Baker
bc70577701 Deleted translation using Weblate (English (United Kingdom)) 2019-04-01 11:00:31 +00:00
Weblate
076c7f54a8 Merge branch 'origin/develop' into Weblate. 2019-04-01 08:41:48 +00:00
random
0837affa24 Translated using Weblate (Italian)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/it/
2019-04-01 08:41:46 +00:00
Micheál Ó hÓgáin
c82d4f3e44 Translated using Weblate (Irish)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/ga/
2019-04-01 08:41:46 +00:00
Samu Voutilainen
a898aad667 Translated using Weblate (Finnish)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/fi/
2019-04-01 08:41:45 +00:00
Carmen Bianca Bakker
f0a997629d Translated using Weblate (Esperanto)
Currently translated at 63.1% (12 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/eo/
2019-04-01 08:41:45 +00:00
Eden Tyler-Moss
8ecdb484c3 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/en_GB/
2019-04-01 08:41:45 +00:00
Nathan Follens
128abb46d2 Translated using Weblate (Dutch)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/nl/
2019-04-01 08:41:45 +00:00
Besnik Bleta
bfa2101da0 Translated using Weblate (Albanian)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/sq/
2019-04-01 08:41:45 +00:00
Travis Ralston
15ff53dcb6 Merge pull request #9326 from vector-im/travis/electron-save-as
Add "Save image as..." button to context menu on images
2019-03-29 15:49:39 -06:00
Travis Ralston
866f8f54ec Add "Save image as..." button to context menu on images
Fixes https://github.com/vector-im/riot-web/issues/9324
Requires https://github.com/matrix-org/matrix-react-sdk/pull/2848
2019-03-29 14:57:02 -06:00
J. Ryan Stinnett
eb1d1517ca Setup crypto store for restore session tests
The new storage consistency work expects a crypto store exist together with
local storage. This updates the loading tests to create them together.

Needed for https://github.com/vector-im/riot-web/issues/9109
2019-03-29 18:01:04 +00:00
J. Ryan Stinnett
fa10022496 Add key to footer links to appease React 2019-03-29 15:58:41 +00:00
J. Ryan Stinnett
01794ae65f Merge pull request #9297 from TheJJ/custom_login_footer_links
Configure auth footer links through Riot config
2019-03-28 13:04:11 +00:00
Jonas Jelten
5a051824c0 configure auth footer links through sdkconfig
Signed-off-by: Jonas Jelten <jelten@in.tum.de>
2019-03-28 12:32:10 +01:00
Eden Tyler-Moss
f4a0ff3642 Added translation using Weblate (English (United Kingdom)) 2019-03-26 14:44:27 +00:00
Peter Vágner
9d133eea75 Translated using Weblate (Slovak)
Currently translated at 63.1% (12 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/sk/
2019-03-26 10:58:31 +00:00
kaiyou
e47fae034a Add some layers to cache installed dependencies at build time 2018-12-06 10:00:20 +01:00
kaiyou
045b0b9889 Add a two-stages Dockerfile for building Riot 2018-12-04 16:51:37 +01:00
42 changed files with 2161 additions and 1790 deletions

View File

@@ -1,4 +1,21 @@
{
"presets": ["react", "es2015", "es2016"],
"plugins": ["transform-class-properties", "transform-object-rest-spread", "transform-async-to-bluebird", "transform-runtime", "add-module-exports"]
"presets": [
"react",
"es2015",
"es2016"
],
"plugins": [
[
"transform-builtin-extend",
{
"globals": ["Error"]
}
],
"transform-class-properties",
"transform-object-rest-spread",
"transform-async-to-bluebird",
"transform-runtime",
"add-module-exports",
"syntax-dynamic-import"
]
}

View File

@@ -31,3 +31,16 @@ steps:
- docker#v3.0.1:
image: "node:10"
propagate-environment: true
- label: ":hammer: Package"
command:
- "echo '--- Fetching Dependencies'"
- "./scripts/fetch-develop.deps.sh --depth 1"
- "yarn install"
- "echo '+++ Packaging'"
- "./scripts/ci_package.sh"
branches: "develop"
artifact_paths: "dist/riot-*.tar.gz"
plugins:
- docker#v3.0.1:
image: "node:10"

11
.dockerignore Normal file
View File

@@ -0,0 +1,11 @@
# Exclude a bunch of stuff which can make the build context a larger than it needs to be
.git/
test/
webapp/
lib/
node_modules/
electron_app/
karma-reports/
.idea/
.tmp/
config.json*

View File

@@ -2,7 +2,7 @@
name: User Interface or Usability Bug report
about: Please include screenshots in UI/UX bug reports
title: ''
labels: ''
labels: bug, ui/ux
assignees: ''
---

1
.gitignore vendored
View File

@@ -1,7 +1,6 @@
/build
/cert.pem
/dist
/karma-reports
/key.pem
/lib
/node_modules

View File

@@ -1,3 +1,104 @@
Changes in [1.2.0](https://github.com/vector-im/riot-web/releases/tag/v1.2.0) (2019-05-29)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.2.0-rc.1...v1.2.0)
* Upgrade to JS SDK v1.2.0 and React SDK v1.2.0 to fix some regressions
Changes in [1.2.0-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.2.0-rc.1) (2019-05-23)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.1.2...v1.2.0-rc.1)
* Update from Weblate
[\#9802](https://github.com/vector-im/riot-web/pull/9802)
* remove emojione
[\#9766](https://github.com/vector-im/riot-web/pull/9766)
* Make Dockerfile work for develop and other branches
[\#9736](https://github.com/vector-im/riot-web/pull/9736)
* add description of new labs feature for message editing
[\#9728](https://github.com/vector-im/riot-web/pull/9728)
* Remove karma junit output
[\#9628](https://github.com/vector-im/riot-web/pull/9628)
* yarn upgrade
[\#9626](https://github.com/vector-im/riot-web/pull/9626)
* Respond quickly to buildkite pokes
[\#9617](https://github.com/vector-im/riot-web/pull/9617)
* Delay creating the `Favico` instance
[\#9616](https://github.com/vector-im/riot-web/pull/9616)
* Add reactions feature to config sample
[\#9598](https://github.com/vector-im/riot-web/pull/9598)
Changes in [1.1.2](https://github.com/vector-im/riot-web/releases/tag/v1.1.2) (2019-05-15)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.1.1...v1.1.2)
* react-sdk v1.1.2 to fix single sign-on and GIF autoplaying
Changes in [1.1.1](https://github.com/vector-im/riot-web/releases/tag/v1.1.1) (2019-05-14)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.1.0...v1.1.1)
* react-sdk v1.1.1 to fix regressions with registration
Changes in [1.1.0](https://github.com/vector-im/riot-web/releases/tag/v1.1.0) (2019-05-07)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.1.0-rc.1...v1.1.0)
* Add Dockerfile
[\#9632](https://github.com/vector-im/riot-web/pull/9632)
* Add Dockerfile (part 2)
[\#9426](https://github.com/vector-im/riot-web/pull/9426)
* Add new scalar staging url
[\#9601](https://github.com/vector-im/riot-web/pull/9601)
Changes in [1.1.0-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.1.0-rc.1) (2019-04-30)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.8...v1.1.0-rc.1)
* Convert redeploy.py to buildkite
[\#9577](https://github.com/vector-im/riot-web/pull/9577)
* Add package step to buildkite pipeline
[\#9568](https://github.com/vector-im/riot-web/pull/9568)
* Don't fail if there's no local config to remove
[\#9571](https://github.com/vector-im/riot-web/pull/9571)
* Change jenkins script to package script
[\#9567](https://github.com/vector-im/riot-web/pull/9567)
* Remove config.json from package dir
[\#9555](https://github.com/vector-im/riot-web/pull/9555)
* use the release version of olm 3.1.0
[\#9550](https://github.com/vector-im/riot-web/pull/9550)
* Fix default for --include arg
[\#9517](https://github.com/vector-im/riot-web/pull/9517)
* update installation instructions with new repo
[\#9500](https://github.com/vector-im/riot-web/pull/9500)
* Use packages.matrix.org for Olm
[\#9498](https://github.com/vector-im/riot-web/pull/9498)
* Add separate platform electron build commands
[\#9412](https://github.com/vector-im/riot-web/pull/9412)
* Add support for custom profile directory
[\#9408](https://github.com/vector-im/riot-web/pull/9408)
* Improved mobile install guide
[\#9410](https://github.com/vector-im/riot-web/pull/9410)
* Remove vector-electron-desktop from README
[\#9404](https://github.com/vector-im/riot-web/pull/9404)
* Update from Weblate
[\#9398](https://github.com/vector-im/riot-web/pull/9398)
* bump olm version to 3.1.0-pre3
[\#9392](https://github.com/vector-im/riot-web/pull/9392)
* Add expiration to mobile guide cookie
[\#9383](https://github.com/vector-im/riot-web/pull/9383)
* Fix autolaunch setting appearing toggled off
[\#9368](https://github.com/vector-im/riot-web/pull/9368)
* Don't try to save files the user didn't want to save
[\#9352](https://github.com/vector-im/riot-web/pull/9352)
* Setup crypto store for restore session tests
[\#9325](https://github.com/vector-im/riot-web/pull/9325)
* Update from Weblate
[\#9333](https://github.com/vector-im/riot-web/pull/9333)
* Add "Save image as..." button to context menu on images
[\#9326](https://github.com/vector-im/riot-web/pull/9326)
* Configure auth footer links through Riot config
[\#9297](https://github.com/vector-im/riot-web/pull/9297)
Changes in [1.0.8](https://github.com/vector-im/riot-web/releases/tag/v1.0.8) (2019-04-16)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.7...v1.0.8)

31
Dockerfile Normal file
View File

@@ -0,0 +1,31 @@
# Builder
FROM node:10-alpine as builder
# Support custom branches of the react-sdk and js-sdk. This also helps us build
# images of riot-web develop.
ARG USE_CUSTOM_SDKS=false
ARG REACT_SDK_REPO="https://github.com/matrix-org/matrix-react-sdk.git"
ARG REACT_SDK_BRANCH="master"
ARG JS_SDK_REPO="https://github.com/matrix-org/matrix-js-sdk.git"
ARG JS_SDK_BRANCH="master"
RUN apk add --no-cache git dos2unix
WORKDIR /src
COPY . /src
RUN dos2unix /src/scripts/docker-link-repos.sh && sh /src/scripts/docker-link-repos.sh
RUN yarn --network-timeout=100000 install
RUN yarn build
# Copy the config now so that we don't create another layer in the app image
RUN cp /src/config.sample.json /src/webapp/config.json
# App
FROM nginx:latest
COPY --from=builder /src/webapp /app
RUN rm -rf /usr/share/nginx/html \
&& ln -s /app /usr/share/nginx/html

View File

@@ -24,21 +24,15 @@ released version of Riot:
as desired. See below for details.
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.asc .
Releases are signed using gpg and the OpenPGP standard, and can be checked against the public key located
at https://packages.riot.im/riot-release-key.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
over https.
### Desktop Installation for Debian Stretch
1. Add the repository to your sources.list using either of the following two options:
- Directly to sources.list: `echo "deb https://riot.im/packages/debian/ stretch main" | sudo tee -a /etc/apt/sources.list`
- As a separate entry in sources.list.d: `echo "deb https://riot.im/packages/debian/ stretch main" | sudo tee /etc/apt/sources.list.d/riot.list`
2. Add the gpg signing key for the riot repository: `curl -s https://riot.im/packages/debian/repo-key.asc | sudo apt-key add -`
3. Update your package lists: `sudo apt-get update`
4. Install Riot: `sudo apt-get install riot-web`
To install Riot as a desktop application, see [Running as a desktop
app](#running-as-a-desktop-app) below.
Important Security Note
=======================
@@ -141,6 +135,8 @@ For a good example, see https://riot.im/develop/config.json.
during authentication flows
1. `authHeaderLogoUrl`: An logo image that is shown in the header during
authentication flows
1. `authFooterLinks`: a list of links to show in the authentication page footer:
`[{"text": "Link text", "url": "https://link.target"}, {"text": "Other link", ...}]`
1. `integrations_ui_url`: URL to the web interface for the integrations server. The integrations
server is not Riot and normally not your homeserver either. The integration server settings
may be left blank to disable integrations.
@@ -193,10 +189,10 @@ Running as a Desktop app
========================
Riot can also be run as a desktop app, wrapped in electron. You can download a
pre-built version from https://riot.im/desktop.html or, if you prefer,
build it yourself. Requires Electron >=1.6.0
pre-built version from https://riot.im/download/desktop/ or, if you prefer,
build it yourself.
To run as a desktop app:
To build it yourself, follow the instructions below.
1. Follow the instructions in 'Building From Source' above, but run
`yarn build` instead of `yarn dist` (since we don't need the tarball).
@@ -236,7 +232,6 @@ All electron packages go into `electron_app/dist/`
Many thanks to @aviraldg for the initial work on the electron integration.
Other options for running as a desktop app:
* https://github.com/krisak/vector-electron-desktop
* @asdf:matrix.org points out that you can use nativefier and it just works(tm)
```bash
@@ -249,6 +244,8 @@ Desktop app configuration
To run multiple instances of the desktop app for different accounts, you can launch the executable with the `--profile` argument followed by a unique identifier, e.g `riot-web --profile Work` for it to run a separate profile and not interfere with the default one.
Alternatively, a custom location for the profile data can be specified using the `--profile-dir` flag followed by the desired path.
To change the config.json for the desktop app, create a config file which will be used to override values in the config which ships in the package:
+ `%APPDATA%\$NAME\config.json` on Windows
+ `$XDG_CONFIG_HOME\$NAME\config.json` or `~/.config/$NAME/config.json` on Linux
@@ -256,6 +253,42 @@ To change the config.json for the desktop app, create a config file which will b
In the paths above, `$NAME` is typically `Riot`, unless you use `--profile $PROFILE` in which case it becomes `Riot-$PROFILE`.
Running from Docker
===================
The Docker image can be used to serve riot-web as a web server. The easiest way to use
it is to use the prebuilt image:
```bash
docker run -p 80:80 vectorim/riot-web
```
To supply your own custom `config.json`, map a volume to `/app/config.json`. For example,
if your custom config was located at `/etc/riot-web/config.json` then your Docker command
would be:
```bash
docker run -p 80:80 -v /etc/riot-web/config.json:/app/config.json vectorim/riot-web
```
To build the image yourself:
```bash
git clone https://github.com/vector-im/riot-web.git riot-web
cd riot-web
git checkout master
docker build -t vectorim/riot-web .
```
If you're building a custom branch, or want to use the develop branch, check out the appropriate
riot-web branch and then run:
```bash
docker build -t vectorim/riot-web:develop \
--build-arg USE_CUSTOM_SDKS=true \
--build-arg REACT_SDK_REPO="https://github.com/matrix-org/matrix-react-sdk.git" \
--build-arg REACT_SDK_BRANCH="develop" \
--build-arg JS_SDK_REPO="https://github.com/matrix-org/matrix-js-sdk.git" \
--build-arg JS_SDK_BRANCH="develop" \
.
```
Labs Features
=============

View File

@@ -12,7 +12,9 @@
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
"features": {
"feature_groups": "labs",
"feature_pinning": "labs"
"feature_pinning": "labs",
"feature_reactions": "labs",
"feature_message_editing": "labs"
},
"default_federate": true,
"default_theme": "light",

View File

@@ -1,4 +1,4 @@
# riot-web Labs features
# Labs features
Some notes on the features you can enable by going to `Settings->Labs`. Not exhaustive, chat in
[#riot-web:matrix.org] for more information.
@@ -29,4 +29,17 @@ Once enabled, send a custom state event to a room to set values:
That's it. Now should see your new counter under the header.
[#riot-web:matrix.org]: https://matrix.to/#/#riot-web:matrix.org
## Reactions
`feature_reactions` allows reacting to messages with emoji and displaying
reactions from other people. This feature is currently under active development,
and only portions have been implemented so far.
## Message editing
`feature_message_editing` allows editing messages after they have been sent,
accessible from the reaction/context bar when hovering a message.
This feature is currently under active development,
and only portions have been implemented so far.
[#riot-web:matrix.org]: https://matrix.to/#/#riot-web:matrix.org

View File

@@ -2,7 +2,7 @@
"name": "riot-web",
"productName": "Riot",
"main": "src/electron-main.js",
"version": "1.0.8",
"version": "1.2.0",
"description": "A feature-rich client for Matrix.org",
"author": "New Vector Ltd.",
"dependencies": {

View File

@@ -6,6 +6,7 @@
"integrations_ui_url": "https://scalar.vector.im/",
"integrations_rest_url": "https://scalar.vector.im/api",
"integrations_widgets_urls": [
"https://scalar-staging.vector.im/api",
"https://scalar-staging.riot.im/scalar/api",
"https://scalar.vector.im/api"
],

View File

@@ -42,7 +42,9 @@ const Store = require('electron-store');
// migrating to mitigate any risk of it being used maliciously.
let migratingOrigin = false;
if (argv['profile']) {
if (argv['profile-dir']) {
app.setPath('userData', argv['profile-dir']);
} else if (argv['profile']) {
app.setPath('userData', `${app.getPath('userData')}-${argv['profile']}`);
}
@@ -139,7 +141,7 @@ ipcMain.on('ipcCall', async function(ev, payload) {
ret = autoUpdater.getFeedURL();
break;
case 'getAutoLaunchEnabled':
ret = launcher.isEnabled;
ret = await launcher.isEnabled();
break;
case 'setAutoLaunchEnabled':
if (args[0]) {

View File

@@ -96,13 +96,14 @@ function onLinkContextMenu(ev, params) {
defaultPath: targetFileName,
});
if (!filePath) return; // user cancelled dialog
try {
if (url.startsWith("data:")) {
fs.writeFileSync(filePath, nativeImage.createFromDataURL(url));
} else {
request.get(url).pipe(fs.createWriteStream(filePath));
}
} catch (err) {
console.error(err);
dialog.showMessageBox({

View File

@@ -100,7 +100,7 @@ module.exports = function (config) {
// test results reporter to use
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['logcapture', 'spec', 'junit', 'summary'],
reporters: ['logcapture', 'spec', 'summary'],
specReporter: {
suppressErrorSummary: false, // do print error summary
@@ -159,10 +159,6 @@ module.exports = function (config) {
// how many browser should be started simultaneous
concurrency: Infinity,
junitReporter: {
outputDir: 'karma-reports',
},
webpack: webpack_config,
webpackMiddleware: {

View File

@@ -2,7 +2,7 @@
"name": "riot-web",
"productName": "Riot",
"main": "electron_app/src/electron-main.js",
"version": "1.0.8",
"version": "1.2.0",
"description": "A feature-rich client for Matrix.org",
"author": "New Vector Ltd.",
"repository": {
@@ -36,6 +36,9 @@
"build:bundle": "cross-env NODE_ENV=production webpack -p --progress --bail --mode production",
"build:bundle:dev": "webpack --progress --bail --mode development",
"build:electron": "yarn clean && yarn build && yarn install:electron && build -wml --ia32 --x64",
"build:electron:linux": "yarn build && build -l --x64",
"build:electron:macos": "yarn build && build -m --x64",
"build:electron:windows": "yarn build && build -w --ia32 --x64",
"build:react-sdk": "node scripts/yarn-sub.js matrix-react-sdk build",
"build:js-sdk": "node scripts/yarn-sub.js matrix-js-sdk start:init",
"build": "yarn build:js-sdk && yarn build:react-sdk && yarn reskindex && yarn build:res && yarn build:bundle",
@@ -70,10 +73,10 @@
"gemini-scrollbar": "github:matrix-org/gemini-scrollbar#b302279",
"gfm.css": "^1.1.2",
"highlight.js": "^9.13.1",
"matrix-js-sdk": "1.0.4",
"matrix-react-sdk": "1.0.7",
"matrix-js-sdk": "1.2.0",
"matrix-react-sdk": "1.2.0",
"modernizr": "^3.6.0",
"olm": "https://matrix.org/packages/npm/olm/olm-3.1.0-pre1.tgz",
"olm": "https://packages.matrix.org/npm/olm/olm-3.1.0.tgz",
"prop-types": "^15.6.2",
"react": "^15.6.0",
"react-dom": "^15.6.0",
@@ -88,7 +91,9 @@
"babel-eslint": "^8.1.1",
"babel-loader": "^7.1.5",
"babel-plugin-add-module-exports": "^0.2.1",
"babel-plugin-syntax-dynamic-import": "^6.18.0",
"babel-plugin-transform-async-to-bluebird": "^1.1.1",
"babel-plugin-transform-builtin-extend": "^1.1.2",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-plugin-transform-object-rest-spread": "^6.26.0",
"babel-plugin-transform-runtime": "^6.23.0",
@@ -105,7 +110,6 @@
"electron-builder": "^20.38.5",
"electron-builder-squirrel-windows": "^20.38.5",
"electron-devtools-installer": "^2.2.4",
"emojione": "^2.2.7",
"eslint": "^5.8.0",
"eslint-config-google": "^0.7.1",
"eslint-plugin-babel": "^4.1.2",
@@ -119,7 +123,6 @@
"karma": "^3.1.2",
"karma-chrome-launcher": "^2.2.0",
"karma-cli": "^1.0.1",
"karma-junit-reporter": "^2.0.0",
"karma-logcapture-reporter": "0.0.1",
"karma-mocha": "^1.3.0",
"karma-sourcemap-loader": "^0.3.7",
@@ -150,7 +153,7 @@
},
"build": {
"appId": "im.riot.app",
"electronVersion": "4.1.3",
"electronVersion": "4.2.2",
"files": [
"node_modules/**",
"src/**",

View File

@@ -1 +1 @@
signing_id: packages@riot.im
signing_id: releases@riot.im

View File

@@ -1,24 +1,10 @@
#!/bin/bash
set -e
# Runs package.sh setting the version to git hashes of the riot-web,
# react-sdk & js-sdk checkouts, for the case where these dependencies
# are git checkouts.
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
nvm use 10
set -x
# 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
yarn install
# run the mocha tests
yarn test
# run eslint
yarn lintall -- -f checkstyle -o eslint.xml || true
set -ex
rm dist/riot-*.tar.gz || true # rm previous artifacts without failing if it doesn't exist

View File

@@ -57,8 +57,6 @@ const COPY_LIST = [
["res/themes/**", "webapp/themes"],
["res/vector-icons/**", "webapp/vector-icons"],
["node_modules/matrix-react-sdk/res/media/**", "webapp/media"],
["node_modules/emojione/assets/svg/*", "webapp/emojione/svg/"],
["node_modules/emojione/assets/png/*", "webapp/emojione/png/"],
["node_modules/olm/olm_legacy.js", "webapp", { directwatch: 1 }],
["./config.json", "webapp", { directwatch: 1 }],
];

View File

@@ -166,7 +166,7 @@ if __name__ == "__main__":
)
)
parser.add_argument(
"--include", nargs='*', default='./config*.json', help=(
"--include", nargs='*', default=['./config*.json'], help=(
"Symlink these files into the root of the deployed tarball. \
Useful for config files and home pages. Supports glob syntax. \
(Default: '%(default)s')"

View File

@@ -0,0 +1,30 @@
#!/bin/sh
set -ex
if [ $USE_CUSTOM_SDKS == false ]
then
echo "skipping react-sdk and js-sdk installs: USE_CUSTOM_SDKS is false"
exit 0
fi
echo "Linking js-sdk"
git clone $JS_SDK_REPO js-sdk
cd js-sdk
git checkout $JS_SDK_BRANCH
yarn link
yarn --network-timeout=100000 install
cd ../
echo "Linking react-sdk"
git clone $REACT_SDK_REPO react-sdk
cd react-sdk
git checkout $REACT_SDK_BRANCH
yarn link
yarn link matrix-js-sdk
yarn --network-timeout=100000 install
cd ../
echo "Setting up riot-web with react-sdk and js-sdk packages"
yarn link matrix-js-sdk
yarn link matrix-react-sdk

View File

@@ -23,6 +23,9 @@ cp config.sample.json webapp/
mkdir -p dist
cp -r webapp riot-$version
# Just in case you have a local config, remove it before packaging
rm riot-$version/config.json || true
# if $version looks like semver with leading v, strip it before writing to file
if [[ ${version} =~ ^v[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+(-.+)?$ ]]; then
echo ${version:1} > riot-$version/version

View File

@@ -2,7 +2,8 @@
#
# auto-deploy script for https://riot.im/develop
#
# Listens for HTTP hits. When it gets one, downloads the artifact from jenkins
# Listens for buildkite webhook pokes (https://buildkite.com/docs/apis/webhooks)
# When it gets one, downloads the artifact from buildkite
# and deploys it as the new version.
#
# Requires the following python packages:
@@ -16,6 +17,10 @@ import time
import traceback
from urlparse import urljoin
import glob
import re
import shutil
import threading
from Queue import Queue
from flask import Flask, jsonify, request, abort
@@ -23,10 +28,13 @@ from deploy import Deployer, DeployException
app = Flask(__name__)
arg_jenkins_url = None
deployer = None
arg_extract_path = None
arg_symlink = None
arg_webhook_token = None
arg_api_token = None
workQueue = Queue()
def create_symlink(source, linkname):
try:
@@ -39,81 +47,117 @@ def create_symlink(source, linkname):
else:
raise e
def req_headers():
return {
"Authorization": "Bearer %s" % (arg_api_token,),
}
# Buildkite considers a poke to have failed if it has to wait more than 10s for
# data (any data, not just the initial response) and it normally takes longer than
# that to download an artifact from buildkite. Apparently there is no way in flask
# to finish the response and then keep doing stuff, so instead this has to involve
# threading. Sigh.
def worker_thread():
while True:
toDeploy = workQueue.get()
deploy_buildkite_artifact(*toDeploy)
@app.route("/", methods=["POST"])
def on_receive_jenkins_poke():
# {
# "name": "VectorWebDevelop",
# "build": {
# "number": 8
# }
# }
def on_receive_buildkite_poke():
got_webhook_token = request.headers.get('X-Buildkite-Token')
if got_webhook_token != arg_webbook_token:
print("Denying request with incorrect webhook token: %s" % (got_webhook_token,))
abort(400, "Incorrect webhook token")
return
required_api_prefix = None
if arg_buildkite_org is not None:
required_api_prefix = 'https://api.buildkite.com/v2/organizations/%s' % (arg_buildkite_org,)
incoming_json = request.get_json()
if not incoming_json:
abort(400, "No JSON provided!")
return
print("Incoming JSON: %s" % (incoming_json,))
job_name = incoming_json.get("name")
if not isinstance(job_name, basestring):
abort(400, "Bad job name: %s" % (job_name,))
event = incoming_json.get("event")
if event is None:
abort(400, "No 'event' specified")
return
build_num = incoming_json.get("build", {}).get("number", 0)
if not build_num or build_num <= 0 or not isinstance(build_num, int):
abort(400, "Missing or bad build number")
if event == 'ping':
print("Got ping request - responding")
return jsonify({'response': 'pong!'})
if event != 'build.finished':
print("Rejecting '%s' event")
abort(400, "Unrecognised event")
return
return fetch_jenkins_build(job_name, build_num)
def fetch_jenkins_build(job_name, build_num):
artifact_url = urljoin(
arg_jenkins_url, "job/%s/%s/api/json" % (job_name, build_num)
)
artifact_response = requests.get(artifact_url).json()
# {
# "actions": [],
# "artifacts": [
# {
# "displayPath": "vector-043f6991a4ed-react-20f77d1224ef-js-0a7efe3e8bd5.tar.gz",
# "fileName": "vector-043f6991a4ed-react-20f77d1224ef-js-0a7efe3e8bd5.tar.gz",
# "relativePath": "vector-043f6991a4ed-react-20f77d1224ef-js-0a7efe3e8bd5.tar.gz"
# }
# ],
# "building": false,
# "description": null,
# "displayName": "#11",
# "duration": 137976,
# "estimatedDuration": 132008,
# "executor": null,
# "fullDisplayName": "VectorWebDevelop #11",
# "id": "11",
# "keepLog": false,
# "number": 11,
# "queueId": 12254,
# "result": "SUCCESS",
# "timestamp": 1454432640079,
# "url": "http://matrix.org/jenkins/job/VectorWebDevelop/11/",
# "builtOn": "",
# "changeSet": {},
# "culprits": []
# }
if artifact_response.get("result") != "SUCCESS":
abort(404, "Not deploying. Build was not marked as SUCCESS.")
build_obj = incoming_json.get("build")
if build_obj is None:
abort(400, "No 'build' object")
return
if len(artifact_response.get("artifacts", [])) != 1:
abort(404, "Not deploying. Build has an unexpected number of artifacts.")
build_url = build_obj.get('url')
if build_url is None:
abort(400, "build has no url")
return
tar_gz_path = artifact_response["artifacts"][0]["relativePath"]
if not tar_gz_path.endswith(".tar.gz"):
abort(404, "Not deploying. Artifact is not a .tar.gz file")
if required_api_prefix is not None and not build_url.startswith(required_api_prefix):
print("Denying poke for build url with incorrect prefix: %s" % (build_url,))
abort(400, "Invalid build url")
return
tar_gz_url = urljoin(
arg_jenkins_url, "job/%s/%s/artifact/%s" % (job_name, build_num, tar_gz_path)
)
build_num = build_obj.get('number')
if build_num is None:
abort(400, "build has no number")
return
pipeline_obj = incoming_json.get("pipeline")
if pipeline_obj is None:
abort(400, "No 'pipeline' object")
return
pipeline_name = pipeline_obj.get('name')
if pipeline_name is None:
abort(400, "pipeline has no name")
return
artifacts_url = build_url + "/artifacts"
artifacts_resp = requests.get(artifacts_url, headers=req_headers())
artifacts_resp.raise_for_status()
artifacts_array = artifacts_resp.json()
artifact_to_deploy = None
for artifact in artifacts_array:
if re.match(r"dist/.*.tar.gz", artifact['path']):
artifact_to_deploy = artifact
if artifact_to_deploy is None:
print("No suitable artifacts found")
return jsonify({})
# double paranoia check: make sure the artifact is on the right org too
if required_api_prefix is not None and not artifact_to_deploy['url'].startswith(required_api_prefix):
print("Denying poke for build url with incorrect prefix: %s" % (artifact_to_deploy['url'],))
abort(400, "Refusing to deploy artifact from URL %s", artifact_to_deploy['url'])
return
# there's no point building up a queue of things to deploy, so if there are any pending jobs,
# remove them
while not workQueue.empty():
try:
workQueue.get(False)
except:
pass
workQueue.put([artifact_to_deploy, pipeline_name, build_num])
return jsonify({})
def deploy_buildkite_artifact(artifact, pipeline_name, build_num):
artifact_response = requests.get(artifact['url'], headers=req_headers())
artifact_response.raise_for_status()
artifact_obj = artifact_response.json()
# we extract into a directory based on the build number. This avoids the
# problem of multiple builds building the same git version and thus having
@@ -122,18 +166,16 @@ def fetch_jenkins_build(job_name, build_num):
# a good deploy with a bad one
# (b) we'll be overwriting the live deployment, which means people might
# see half-written files.
build_dir = os.path.join(arg_extract_path, "%s-#%s" % (job_name, build_num))
build_dir = os.path.join(arg_extract_path, "%s-#%s" % (pipeline_name, build_num))
try:
extracted_dir = deploy_tarball(tar_gz_url, build_dir)
extracted_dir = deploy_tarball(artifact_obj, build_dir)
except DeployException as e:
traceback.print_exc()
abort(400, e.message)
create_symlink(source=extracted_dir, linkname=arg_symlink)
return jsonify({})
def deploy_tarball(tar_gz_url, build_dir):
def deploy_tarball(artifact, build_dir):
"""Download a tarball from jenkins and unpack it
Returns:
@@ -145,20 +187,25 @@ def deploy_tarball(tar_gz_url, build_dir):
)
os.mkdir(build_dir)
print("Fetching artifact %s -> %s..." % (artifact['download_url'], artifact['filename']))
# Download the tarball here as buildkite needs auth to do this
# we don't pgp-sign buildkite artifacts, relying on HTTPS and buildkite
# not being evil. If that's not good enough for you, don't use riot.im/develop.
resp = requests.get(artifact['download_url'], stream=True, headers=req_headers())
resp.raise_for_status()
with open(artifact['filename'], 'wb') as ofp:
shutil.copyfileobj(resp.raw, ofp)
print("...download complete. Deploying...")
# we rely on the fact that flask only serves one request at a time to
# ensure that we do not overwrite a tarball from a concurrent request.
return deployer.deploy(tar_gz_url, build_dir)
return deployer.deploy(artifact['filename'], build_dir)
if __name__ == "__main__":
parser = argparse.ArgumentParser("Runs a Vector redeployment server.")
parser.add_argument(
"-j", "--jenkins", dest="jenkins", default="https://matrix.org/jenkins/", help=(
"The base URL of the Jenkins web server. This will be hit to get the\
built artifacts (the .gz file) for redeploying."
)
)
parser.add_argument(
"-p", "--port", dest="port", default=4000, type=int, help=(
"The port to listen on for requests from Jenkins."
@@ -204,13 +251,33 @@ if __name__ == "__main__":
),
)
parser.add_argument(
"--webhook-token", dest="webhook_token", help=(
"Only accept pokes with this buildkite token."
), required=True,
)
parser.add_argument(
"--api-token", dest="api_token", help=(
"API access token for buildkite. Require read_artifacts scope."
), required=True,
)
# We require a matching webhook token, but because we take everything else
# about what to deploy from the poke body, we can be a little more paranoid
# and only accept builds / artifacts from a specific buildkite org
parser.add_argument(
"--org", dest="buildkite_org", help=(
"Lock down to this buildkite org"
)
)
args = parser.parse_args()
if args.jenkins.endswith("/"): # important for urljoin
arg_jenkins_url = args.jenkins
else:
arg_jenkins_url = args.jenkins + "/"
arg_extract_path = args.extract
arg_symlink = args.symlink
arg_webbook_token = args.webhook_token
arg_api_token = args.api_token
arg_buildkite_org = args.buildkite_org
if not os.path.isdir(arg_extract_path):
os.mkdir(arg_extract_path)
@@ -222,25 +289,20 @@ if __name__ == "__main__":
for include in args.include:
deployer.symlink_paths.update({ os.path.basename(pth): pth for pth in glob.iglob(include) })
# we don't pgp-sign jenkins artifacts; instead we rely on HTTPS access to
# the jenkins server (and the jenkins server not being compromised and/or
# github not serving it compromised source). If that's not good enough for
# you, don't use riot.im/develop.
deployer.verify_signature = False
if args.tarball_uri is not None:
build_dir = os.path.join(arg_extract_path, "test-%i" % (time.time()))
deploy_tarball(args.tarball_uri, build_dir)
else:
print(
"Listening on port %s. Extracting to %s%s. Symlinking to %s. Jenkins URL: %s. Include files: %s" %
"Listening on port %s. Extracting to %s%s. Symlinking to %s. Include files: %s" %
(args.port,
arg_extract_path,
" (clean after)" if deployer.should_clean else "",
arg_symlink,
arg_jenkins_url,
deployer.symlink_paths,
)
)
app.run(host="0.0.0.0", port=args.port, debug=True)
fred = threading.Thread(target=worker_thread)
fred.daemon = True
fred.start()
app.run(port=args.port, debug=False)

View File

@@ -18,6 +18,8 @@ limitations under the License.
'use strict';
const React = require('react');
import SdkConfig from 'matrix-react-sdk/lib/SdkConfig';
import { _t } from 'matrix-react-sdk/lib/languageHandler';
module.exports = React.createClass({
@@ -27,11 +29,29 @@ module.exports = React.createClass({
},
render: function() {
const brandingConfig = SdkConfig.get().branding;
let links = [
{"text": "blog", "url": "https://medium.com/@RiotChat"},
{"text": "twitter", "url": "https://twitter.com/@RiotChat"},
{"text": "github", "url": "https://github.com/vector-im/riot-web"},
];
if (brandingConfig && brandingConfig.authFooterLinks) {
links = brandingConfig.authFooterLinks;
}
const authFooterLinks = [];
for (const linkEntry of links) {
authFooterLinks.push(
<a href={linkEntry.url} key={linkEntry.text} target="_blank" rel="noopener">
{linkEntry.text}
</a>,
);
}
return (
<div className="mx_AuthFooter">
<a href="https://medium.com/@RiotChat" target="_blank" rel="noopener">blog</a>
<a href="https://twitter.com/@RiotChat" target="_blank" rel="noopener">twitter</a>
<a href="https://github.com/vector-im/riot-web" target="_blank" rel="noopener">github</a>
{authFooterLinks}
<a href="https://matrix.org" target="_blank" rel="noopener">{ _t('powered by Matrix') }</a>
</div>
);

View File

@@ -1,14 +1,14 @@
{
"Dismiss": "Rezigni",
"powered by Matrix": "funkciigata de Matrix",
"powered by Matrix": "povigita per Matrix",
"Custom Server Options": "Propraj servilaj elektoj",
"Riot Desktop on %(platformName)s": "Riot Labortablo sur %(platformName)s",
"Riot is not supported on mobile web. Install the app?": "Riot ne estas subtenata sur poŝkomputila reto. Ĉu instali la aplikaĵon?",
"Unknown device": "Nekonata aparato",
"You need to be using HTTPS to place a screen-sharing call.": "Vi devas uzi HTTPS por ekranvidadi.",
"Welcome to Riot.im": "Bonvenu al Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Malcentra, ĉifrita babilado &amp; kunlaboro povigita de [matrix]",
"Search the room directory": "Serĉi en la babilejo-listo",
"Welcome to Riot.im": "Bonvenon al Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Malcentra, ĉifrita babilado &amp; kunlaboro povigita per [matrix]",
"Search the room directory": "Serĉi en la ĉambra dosierujo",
"Chat with Riot Bot": "Babilu kun la roboto Riot Bot",
"Get started with some tips from Riot Bot!": "Komencu kun kelkaj sugestoj de la roboto Riot Bot!",
"General discussion about Matrix and Riot": "Ĝenerala diskutado pri Matrix kaj Riot",
@@ -35,5 +35,12 @@
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Multaj ĉambroj jam ekzistas en Matrix; kaj sendependaj, kaj ligitaj kun jamaj retoj (Slock, IRC, Gitter, ktp.). Rigardu la ĉambrujon!",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s per %(browserName)s je %(osName)s",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Vi povas uzi proprajn servilajn elektojn por saluti aliajn servilojn de Matrix, per specifo de alia hejmservila URL.<br/>Tio permesas al vi uzi klienton Riot kun jama konto de Matrix en alia hejmservilo.<br/><br/>Vi ankaŭ povas agordi propran identigan servilon, sed vi ne povos inviti uzantojn per retpoŝtadreso, aŭ esti invitata per retpoŝtadreso mem.",
"Co-ordination for Riot translators": "Kunordigo por tradukantoj de Riot"
"Co-ordination for Riot translators": "Kunordigo por tradukantoj de Riot",
"You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "Vi povas ankaŭ agordi propran identigan servilon, sed vi ne eblos inviti uzantojn per retpoŝtadresoj, nek eblos esti invitita per retpoŝtadreso.",
"Sign In": "Saluti",
"Create Account": "Krei konton",
"Need help?": "Ĉu vi bezonas helpon?",
"Explore rooms": "Esplori ĉambrojn",
"Room Directory": "Ĉambra dosierujo",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Vi povas uzi proprajn servilajn elekteblojn por saluti aliajn servilojn de Matrix, donante alian hejmeservilan URL-on. Tio povigos vin uzi programon Riot kun jama konto de Matrix en alia hejmservilo."
}

View File

@@ -1,13 +1,13 @@
{
"Dismiss": "Hylkää",
"Unknown device": "Tuntematon laite",
"Welcome to Riot.im": "Tervetuloa Riot.im -palveluun",
"Search the room directory": "Hae hakemistosta",
"Welcome to Riot.im": "Tervetuloa Riot.im-palveluun",
"Search the room directory": "Hae luettelosta",
"Custom Server Options": "Palvelinasetukset",
"Riot Desktop on %(platformName)s": "Riot Desktop %(platformName)s",
"You need to be using HTTPS to place a screen-sharing call.": "Sinun täytyy käyttää HTTPS -yhteyttä, jotta voit jakaa ruudun.",
"Riot Desktop on %(platformName)s": "Riot Desktop, %(platformName)s",
"You need to be using HTTPS to place a screen-sharing call.": "Sinun täytyy käyttää HTTPS-yhteyttä, jotta voit jakaa ruudun puhelussa.",
"Chat with Riot Bot": "Keskustele Riot-botin kanssa",
"Get started with some tips from Riot Bot!": "Aloita Riot Botin vinkkien avulla!",
"Get started with some tips from Riot Bot!": "Aloita Riot-botin vinkkien avulla!",
"General discussion about Matrix and Riot": "Matrix- ja Riot keskustelut",
"Discussion of all things Matrix!": "Keskustelu kaikesta Matrixiin liittyvästä!",
"Riot/Web &amp; Desktop chat": "Riot/Web & Työpöytä-keskustelu",
@@ -32,14 +32,14 @@
"Riot is not supported on mobile web. Install the app?": "Riot ei tue laitettasi. Asenna mobiilisovellus?",
"Design and implementation of E2E in Matrix": "Matrix päästä-päähän salauksen suunnittelu ja implementointi",
"Contributing code to Matrix and Riot": "Osallistu kehitystyöhön",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s %(browserName)s %(osName)s",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Salattua ja vikasietoista viestintää Matrix -teknologialla",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s, %(browserName)s, %(osName)s",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Hajautettua ja salattua viestintää Matrix-teknologialla",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Voit käyttää edistyksellisiä asetuksia kirjautuaksesi muille Matrix palvelimille, määrittelemällä kotipalvelimen URL-osoitteen.<br/>Tämän avulla voit käyttää Riot:ia olemassa olevalla toisen Matrix palvelimen käyttäjätilillä.<br/><br/>Voit myös asettaa valinnaisen identiteettipalvelimen, mutta et voi kutsua käyttäjiä sähköpostiosoitteella tai tulla kutsutuksi.",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Voit käyttää mukautettuja palvelinasetuksia kirjautuaksesi muihin Matrix-palvelimiin. Tämä mahdollistaa Riotin käyttämisen toisella palvelimella olevalla Matrix-tunnuksella.",
"You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "Voit myös määrittää toisen identiteettipalvelimen, mutta et voi kutsua muita käyttäjiä sähköpostin perusteella, eivätkä se voi kutsua sinua.",
"Sign In": "Kirjaudu sisään",
"Create Account": "Luo tunnus",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Voit käyttää mukautettuja palvelinasetuksia kirjautuaksesi muihin Matrix-palvelimiin. Tämä mahdollistaa Riotin käyttämisen toisella kotipalvelimella olevalla Matrix-tilillä.",
"You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "Voit myös määrittää toisen identiteettipalvelimen, mutta et voi kutsua muita käyttäjiä sähköpostin perusteella tai saada itse kutsua sähköpostin perusteella.",
"Sign In": "Kirjaudu",
"Create Account": "Luo tili",
"Need help?": "Tarvitsetko apua?",
"Explore rooms": "Etsi huoneita",
"Room Directory": "Huonehakemisto"
"Room Directory": "Huoneluettelo"
}

View File

@@ -2,14 +2,14 @@
"Riot Desktop on %(platformName)s": "Leagan gnáthríomhaire Riot ar %(platformName)s",
"Unknown device": "Gléas nár aithníodh",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s trí %(browserName)s ar %(osName)s",
"You need to be using HTTPS to place a screen-sharing call.": "Ní mór HTTPS a úsáid chun glaoch ina dhéantar an scáileán a roinnt a chuir.",
"powered by Matrix": "á thiomáint le Matrix",
"You need to be using HTTPS to place a screen-sharing call.": "Ní mór HTTPS a úsáid chun glaoch comhroinnt scáileáin a chur.",
"powered by Matrix": "cumhachtaithe ag Matrix",
"Custom Server Options": "Socruithe do fhreastalaí saincheaptha",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Is féidir na socruithe do fhreastalaí saincheaptha a úsáid chun síniú isteach le freastalaí Matrix eile tríd URL freastalaí ar leith a sholáthar. Cuirfidh sé seo ar do chumas Riot a úsáid le cuntas Matrix atá ar taifead ag freastalaí difriúil.",
"You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "Freisin is féidir freastalaí aitheantais saincheaptha a úsáid, ach le seo ní bheidh tú in ann cuireadh a thabhairt do dhaoine tríd seoladh ríomhphoist a sholáthar, nó glacadh le cuireadh trí ríomhphoist ach an oiread.",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Is féidir na socruithe do fhreastalaí saincheaptha a úsáid chun síniú isteach le freastalaithe Matrix eile ach URL freastalaí ar leith a shainiú. Cuirfidh sé seo ar do chumas Riot a úsáid le cuntas Matrix atá ar taifead ag an bhfreastalaí eile sin.",
"You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "Freisin is féidir freastalaí aitheantais saincheaptha a úsáid, ach sa chás sin ní bheidh tú in ann cuireadh a thabhairt do dhaoine trí sheoladh ríomhphoist a sholáthar, ná glacadh le cuireadh trí ríomhphoist ach an oiread.",
"Dismiss": "Cuir uait",
"Welcome to Riot.im": "Fáilte chuig Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Meán comhrá agus comhoibriú neamhláraithe agus criptithe á thiomáint le [matrix]",
"Welcome to Riot.im": "Fáilte romhat chuig Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Meán comhrá agus comhoibriú, díláraithe agus criptithe, cumhachtaithe ag [matrix]",
"Sign In": "Sínigh Isteach",
"Create Account": "Déan cuntas a chruthú",
"Need help?": "An bhfuil cabhair uait?",
@@ -17,5 +17,5 @@
"Explore rooms": "Breathnaigh thart ar na seomraí",
"Room Directory": "Eolaire na Seomraí",
"Search the room directory": "Cuardaigh eolaire na seomraí",
"Get started with some tips from Riot Bot!": "Tosaigh le nod ó Riot Bot!"
"Get started with some tips from Riot Bot!": "Tosaigh le roinnt nod ó Riot Bot!"
}

View File

@@ -6,7 +6,7 @@
"Riot is not supported on mobile web. Install the app?": "Riot non è supportato sul web mobile. Installare l'applicazione?",
"Unknown device": "Dispositivo sconosciuto",
"You need to be using HTTPS to place a screen-sharing call.": "Devi usare HTTPS per effettuare una chiamata con la condivisione dello schermo.",
"Welcome to Riot.im": "Benvenuto/a su Riot.im",
"Welcome to Riot.im": "Benvenuti su Riot.im",
"Search the room directory": "Cerca nella lista delle stanze",
"Chat with Riot Bot": "Chatta con Riot Bot",
"Get started with some tips from Riot Bot!": "Inizia con alcuni consigli di Riot Bot!",
@@ -35,5 +35,12 @@
"Dev chat for the Dendrite dev team": "Chat per gli sviluppatori di Dendrite",
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Esistono già molte stanze in Matrix, collegate a reti esistenti (Slack, IRC, Gitter, ecc.) o indipendenti. Controlla l'elenco!",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Puoi usare le opzioni server personalizzate per accedere ad altri server Matrix specificando l'indirizzo del server home.<br/> Questo permette di usare Riot con un account Matrix esistente su un server home diverso.<br/><br/>È anche possibile impostare un diverso server identità, ma in tal caso non sarà possibile invitare utenti attraverso l'indirizzo e-mail o essere invitati attraverso l'indirizzo e-mail.",
"Co-ordination for Riot translators": "Coordinazione per i traduttori di Riot"
"Co-ordination for Riot translators": "Coordinazione per i traduttori di Riot",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Puoi usare le opzioni di server personalizzato per accedere ad altri server Matrix specificando un URL homeserver diverso. Ciò ti permette di usare Riot con un account Matrix esistente su un homeserver differente.",
"You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "Puoi anche impostare un server di identità personalizzato, ma non sarai in grado di invitare utenti via email o di essere invitato via email.",
"Sign In": "Accedi",
"Create Account": "Crea account",
"Need help?": "Serve aiuto?",
"Explore rooms": "Esplora stanze",
"Room Directory": "Elenco stanze"
}

View File

@@ -34,5 +34,12 @@
"Dev chat for the Riot/Web dev team": "Riot/Web izstrādātāju komandas čats",
"Dev chat for the Dendrite dev team": "Dendrite izstrādatāju komandas čats",
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Matrix-ā pastāv daudzas neatkarīgas un/vai eksistējošiem tīmekļa resursiem (Slack, IRC, Gitter u.tml.) piesaistītas istabas. Ieskaties katalogā!",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Tu vari lietot \"custom\" servera opcijas, lai ielogotos citos Matrix serveros, norādot citu Bāzes servera URL.<br> Tas atļaus tev lietot Riot ar esošo Matrix kontu uz cita Bāzes servera.<br/><br/>Tu arī vari uzstādīt atsevišķu Identitāšu serveri, taču tad Tev nebūs iespēju uzaicināt lietotājus, izmantojot epasta adresi, vai pašam tikt uzaicinātam, izmantojot epasta adresi."
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Tu vari lietot \"custom\" servera opcijas, lai ielogotos citos Matrix serveros, norādot citu Bāzes servera URL.<br> Tas atļaus tev lietot Riot ar esošo Matrix kontu uz cita Bāzes servera.<br/><br/>Tu arī vari uzstādīt atsevišķu Identitāšu serveri, taču tad Tev nebūs iespēju uzaicināt lietotājus, izmantojot epasta adresi, vai pašam tikt uzaicinātam, izmantojot epasta adresi.",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Varat izmantot pielāgotās servera opcijas, lai pierakstītos citos Matrix serveros, norādot citu mājas servera URL. Tas ļauj jums izmantot Riot ar esošu Matrix kontu citā mājas serverī.",
"You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "Varat arī iestatīt pielāgotu identitātes serveri, bet jūs nevarēsiet uzaicināt lietotājus izmantojot e-pasta adresi, kā arī tikt uzaicināts pēc e-pasta adreses.",
"Sign In": "Ienākt",
"Create Account": "Izveidot kontu",
"Need help?": "Nepieciešama palīdzība?",
"Explore rooms": "Atklāt istabas",
"Room Directory": "Istabu Katalogs"
}

View File

@@ -7,9 +7,9 @@
"Unknown device": "Onbekend apparaat",
"You need to be using HTTPS to place a screen-sharing call.": "U moet HTTPS gebruiken om een oproep met schermdelen te kunnen starten.",
"Welcome to Riot.im": "Welkom bij Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Gedecentaliseerd en versleuteld chatten &amp; samenwerken mogelijk gemaakt door [matrix]",
"Search the room directory": "De kamerlijst doorzoeken",
"Chat with Riot Bot": "Met Riot Bot chatten",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Gedecentraliseerd en versleuteld chatten &amp; samenwerken mogelijk gemaakt door [matrix]",
"Search the room directory": "De gesprekscatalogus doorzoeken",
"Chat with Riot Bot": "Chatten met Riot-robot",
"Get started with some tips from Riot Bot!": "Begin met enkele tips van Riot Bot!",
"General discussion about Matrix and Riot": "Algemene discussie over Matrix en Riot",
"Discussion of all things Matrix!": "Discussie over alles wat met Matrix te maken heeft!",
@@ -35,5 +35,12 @@
"Dev chat for the Riot/Web dev team": "Dev-chat voor het Riot/Web ontwikkelteam",
"Dev chat for the Dendrite dev team": "Dev-chat voor het Dendrite-ontwikkelteam",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Je kan de custom serveropties gebruiken om op andere Matrix-servers in te loggen door een andere thuisserver-URL op te geven.<br/> Dit laat je toe om Riot te gebruiken met een bestaand Matrix-account op een andere thuisserver.<br/><br/>Je kan ook een aangepaste-identiteitsserver opzetten maar dan kan je geen gebruikers uitnodigen via hun e-mailadres, of zelf uitgenodigd worden via je e-mailadres.",
"Co-ordination for Riot translators": "Coördinatie voor Riot vertalers"
"Co-ordination for Riot translators": "Coördinatie voor Riot vertalers",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "U kunt de aangepaste serverinstellingen gebruiken om u aan te melden bij andere Matrix-servers, door een andere thuisserver-URL in te voeren. Dit laat u toe Riot te gebruiken met een bestaande Matrix-account bij een andere thuisserver.",
"You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "U kunt ook een aangepaste identiteitsserver instellen, maar u zult geen gebruikers kunnen uitnodigen via e-mail, of zelf via e-mail uitgenodigd worden.",
"Sign In": "Aanmelden",
"Create Account": "Account aanmaken",
"Need help?": "Hulp nodig?",
"Explore rooms": "Kamers ontdekken",
"Room Directory": "Gesprekscatalogus"
}

View File

@@ -39,5 +39,6 @@
"Create Account": "Stwórz konto",
"Sign In": "Zaloguj",
"Need help?": "Potrzebujesz pomocy?",
"Room Directory": "Katalog pokojów"
"Room Directory": "Katalog pokojów",
"Explore rooms": "Przeglądaj pokoje"
}

View File

@@ -35,5 +35,12 @@
"Co-ordination for Riot translators": "Coordonare pentru translatorii Riot",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s via %(browserName)s pe %(osName)s",
"You need to be using HTTPS to place a screen-sharing call.": "Trebuie să folosești HTTPS pentru a plasa un apel de tip screen-sharing.",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Poți folosi opțiunile server personalizate pentru a te conecta la alte servere Matrix prin specificarea unui URL de tip Home server diferit.<br/>Acestă opțiune îți permite să utilizezi Riot cu un cont existent pe un home server diferit.<br/><br/>Poți folosi și un server de identitate personalizat, dar nu vei putea invita alți utilizatori prin adresa de email sau să fii tu însuți invitat prim email."
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Poți folosi opțiunile server personalizate pentru a te conecta la alte servere Matrix prin specificarea unui URL de tip Home server diferit.<br/>Acestă opțiune îți permite să utilizezi Riot cu un cont existent pe un home server diferit.<br/><br/>Poți folosi și un server de identitate personalizat, dar nu vei putea invita alți utilizatori prin adresa de email sau să fii tu însuți invitat prim email.",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Puteți utiliza opțiunile personalizate ale serverului pentru a vă conecta la alte servere Matrix specificând o adresă URL diferită pentru homeserver. Acest lucru vă permite să utilizați Riot cu un cont Matrix existent pe un alt server de domiciliu.",
"You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "De asemenea, puteți seta un server de identitate personalizat, dar nu veți putea să invitați utilizatorii pe adresa de e-mail sau să vă invitați personal pe adresa de e-mail.",
"Sign In": "Autentificare",
"Create Account": "Înregistare",
"Need help?": "Ai nevoie de ajutor?",
"Explore rooms": "Explorează camerele",
"Room Directory": "Lista de camere"
}

View File

@@ -35,5 +35,12 @@
"Contributing code to Matrix and Riot": "Prispievanie kódu projektom Matrix a Riot",
"Dev chat for the Riot/Web dev team": "Diskusia pre tím vývojárov Riot/Web",
"Dev chat for the Dendrite dev team": "Diskusia pre tím vývojárov Dendrite",
"Co-ordination for Riot translators": "Koordinácia prekladov Riot"
"Co-ordination for Riot translators": "Koordinácia prekladov Riot",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Môžete použiť vlastné možnosti servera na prihlásenie sa k ďalším serverom Matrix zadaním URL adresy domovského servera. Toto vám umožní použiť Riot na prihlásenie sa k existujúcemu Matrix účtu na inom domovskom servery.",
"You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "Môžete tiež nastaviť vlastnú URL adresu servera totožností, potom ale nebudete môcť pozývať používateľov zadaním ich emailovej adresy a telefónneho čísla a ani ostatní nebudú môcť pozvať vás zadaním vašej emailovej adresy a telefónneho čísla.",
"Sign In": "Prihlásiť sa",
"Create Account": "Vytvoriť účet",
"Need help?": "Potrebujete pomoc?",
"Explore rooms": "Preskúmať miestnosti",
"Room Directory": "Adresár miestností"
}

21
src/i18n/strings/sl.json Normal file
View File

@@ -0,0 +1,21 @@
{
"Riot Desktop on %(platformName)s": "Namizni Riot za %(platformName)s",
"Unknown device": "Neznana naprava",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s s %(browserName)s na %(osName)s",
"You need to be using HTTPS to place a screen-sharing call.": "Za klic s skupno rabo zaslona potrebujete HTTPS.",
"powered by Matrix": "poganja Matrix",
"Custom Server Options": "Možnosti strežnika po meri",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Možnosti strežnika po meri lahko uporabite za prijavo v druge Matrix strežnike, s tem da podate drug URL domačega strežnika. To vam omogoča, da uporabljate Riot z obstoječim Matrix računom na drugem strežniku.",
"You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "Nastavite lahko tudi strežnik za identiteto po meri, vendar ne boste mogli povabiti uporabnikov prek e-pošte, prav tako pa vas ne bodo mogli povabiti drugi.",
"Dismiss": "Opusti",
"Welcome to Riot.im": "Dobrodošli v Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Decentralizirano šifrirano sporočanje &amp; sodelovanje s pomočjo [matrix]",
"Sign In": "Prijava",
"Create Account": "Registracija",
"Need help?": "Potrebujete pomoč?",
"Chat with Riot Bot": "Klepetajte z Riot Botom",
"Explore rooms": "Raziščite sobe",
"Room Directory": "Imenik sob",
"Search the room directory": "Preiščite imenik sob",
"Get started with some tips from Riot Bot!": "Začnite z nekaterimi nasveti Riot Bota!"
}

View File

@@ -9,7 +9,7 @@
"Dismiss": "Mos e merr parasysh",
"powered by Matrix": "bazuar në Matrix",
"Welcome to Riot.im": "Mirë se vini te Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Fjalosje &amp; bashkëpunim i decentralizuar, i fshehtëzuar, bazuar në [matrix]",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Fjalosje &amp; bashkëpunim decentralizuar, fshehtëzuar, bazuar në [matrix]",
"Search the room directory": "Kërkoni te drejtoria e dhomave",
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Ka tashmë plot dhoma në Matrix, të lidhura me rrjete ekzistues (Slack, IRC, Gitter, etj) ose të pavarur. Hidhini një sy listës!",
"Chat with Riot Bot": "Fjalosuni me Robotin Riot",

View File

@@ -272,7 +272,7 @@ async function loadApp() {
const isIos = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
const isAndroid = /Android/.test(navigator.userAgent);
if (isIos || isAndroid) {
if (!document.cookie.split(';').some((c) => c.startsWith('mobile_redirect_to_guide'))) {
if (document.cookie.indexOf("riot_mobile_redirect_to_guide=false") === -1) {
window.location = "mobile_guide/";
return;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,8 @@
import {getVectorConfig} from '../getconfig';
function onBackToRiotClick() {
document.cookie = 'mobile_redirect_to_guide=false;path=/';
// Cookie should expire in 4 hours
document.cookie = 'riot_mobile_redirect_to_guide=false;path=/;max-age=14400';
window.location.href = '../';
}

View File

@@ -39,14 +39,7 @@ export default class VectorBasePlatform extends BasePlatform {
constructor() {
super();
// The 'animations' are really low framerate and look terrible.
// Also it re-starts the animation every time you set the badge,
// and we set the state each time, even if the value hasn't changed,
// so we'd need to fix that if enabling the animation.
this.favicon = new Favico({animation: 'none'});
this.showUpdateCheck = false;
this._updateFavicon();
this.startUpdateCheck = this.startUpdateCheck.bind(this);
this.stopUpdateCheck = this.stopUpdateCheck.bind(this);
}
@@ -55,6 +48,24 @@ export default class VectorBasePlatform extends BasePlatform {
return 'Vector Base Platform'; // no translation required: only used for analytics
}
/**
* Delay creating the `Favico` instance until first use (on the first notification) as
* it uses canvas, which can trigger a permission prompt in Firefox's resist
* fingerprinting mode.
* See https://github.com/vector-im/riot-web/issues/9605.
*/
get favicon() {
if (this._favicon) {
return this._favicon;
}
// The 'animations' are really low framerate and look terrible.
// Also it re-starts the animation every time you set the badge,
// and we set the state each time, even if the value hasn't changed,
// so we'd need to fix that if enabling the animation.
this._favicon = new Favico({ animation: 'none' });
return this._favicon;
}
_updateFavicon() {
try {
// This needs to be in in a try block as it will throw

View File

@@ -293,12 +293,19 @@ describe('loading:', function() {
});
describe("MatrixClient rehydrated from stored credentials:", function() {
beforeEach(function() {
beforeEach(async function() {
localStorage.setItem("mx_hs_url", "http://localhost" );
localStorage.setItem("mx_is_url", "http://localhost" );
localStorage.setItem("mx_access_token", "access_token");
localStorage.setItem("mx_user_id", "@me:localhost");
localStorage.setItem("mx_last_room_id", "!last_room:id");
// Create a crypto store as well to satisfy storage consistency checks
const cryptoStore = new jssdk.IndexedDBCryptoStore(
indexedDB,
"matrix-js-sdk:crypto",
);
await cryptoStore._connect();
});
it('shows the last known room by default', function() {

View File

@@ -71,7 +71,7 @@ module.exports = {
},
},
{
test: /\.(gif|png|svg|ttf|xml|ico)$/,
test: /\.(gif|png|svg|ttf|woff|woff2|xml|ico)$/,
// Use a content-based hash in the name so that we can set a long cache
// lifetime for assets while still delivering changes quickly.
oneOf: [

3053
yarn.lock

File diff suppressed because it is too large Load Diff