Compare commits

...
Author SHA1 Message Date
Michael Telatynski 4955643960 Specify node-version for setup-node action 2022-10-13 08:52:52 +01:00
RiotRobot d0c7e3e24b Merge branch 'master' into develop 2022-10-11 18:06:49 +01:00
RiotRobot d33d6786e0 v1.11.10 2022-10-11 18:06:35 +01:00
RiotRobot a9b641b733 Prepare changelog for v1.11.10 2022-10-11 18:06:35 +01:00
RiotRobot 52a62ad59c Merge branch 'master' into develop 2022-10-11 14:16:01 +01:00
RiotRobot 12880a2bf9 v1.11.9 2022-10-11 14:15:45 +01:00
RiotRobot cf80e7a1db Prepare changelog for v1.11.9 2022-10-11 14:15:45 +01:00
RiotRobot dfb1df53bc v1.11.9-rc.2 2022-10-05 14:26:53 +01:00
RiotRobot d4aaff16f7 Prepare changelog for v1.11.9-rc.2 2022-10-05 14:26:52 +01:00
ElementRobot 5bf653578d Merge pull request #425 from vector-im/actions/upgrade-deps
Upgrade dependencies
2022-10-04 16:23:52 +01:00
RiotRobot f41f7251da v1.11.9-rc.1 2022-10-04 14:55:38 +01:00
RiotRobot be67812776 Prepare changelog for v1.11.9-rc.1 2022-10-04 14:55:37 +01:00
t3chguy 596adca864 [create-pull-request] automated change 2022-10-04 13:08:48 +00:00
RiotRobot c49d2d2364 Merge branch 'master' into develop 2022-09-28 16:08:37 +01:00
RiotRobot 53dec932de v1.11.8 2022-09-28 16:08:23 +01:00
RiotRobot eedf9dc16a Prepare changelog for v1.11.8 2022-09-28 16:08:22 +01:00
RiotRobot a09e38727f Merge branch 'master' into develop 2022-09-28 14:32:19 +01:00
RiotRobot ea20e794a5 v1.11.7 2022-09-28 14:32:07 +01:00
RiotRobot bcfa7d21d5 Prepare changelog for v1.11.7 2022-09-28 14:32:06 +01:00
RiotRobot 959a7e1421 Merge branch 'master' into develop 2022-09-27 20:12:15 +01:00
RiotRobot 1290d3daeb v1.11.6 2022-09-27 20:11:54 +01:00
RiotRobot c61da8a6bc Prepare changelog for v1.11.6 2022-09-27 20:11:53 +01:00
Michael Telatynski 8762f1907a Support tar.gz url for fetching packages (#422)
* Support tar.gz url for fetching packages

* Trim version file
2022-09-23 15:39:43 +01:00
ElementRobot 0068a18feb Merge pull request #418 from vector-im/actions/upgrade-deps
Upgrade dependencies
2022-09-23 14:45:48 +01:00
Michael Telatynski 392005b3a4 Fix use of detect-libc typing (#421) 2022-09-23 12:14:09 +01:00
Michael Telatynski b89b2637b9 Fix typing (#420) 2022-09-23 11:04:38 +01:00
Robin ebf7d88710 Merge pull request #419 from robintown/ec-deployment
Use Element Call's staging deployment for nightly
2022-09-22 18:48:14 -04:00
Robin Townsend 895cddacaf Use Element Call's staging deployment for nightly 2022-09-22 18:18:09 -04:00
t3chguy c38263ff21 [create-pull-request] automated change 2022-09-20 14:34:36 +00:00
RiotRobot 9cc66e108a v1.11.6-rc.1 2022-09-20 15:00:20 +01:00
RiotRobot 8f600e566b Prepare changelog for v1.11.6-rc.1 2022-09-20 15:00:19 +01:00
+39 c05ae1b964 Translations update from Weblate (#417)
* Added translation using Weblate (Vietnamese)

* Added translation using Weblate (English (United States))

* Translated using Weblate (English (United States))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/en_US/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Frisian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fy/

* Added translation using Weblate (Polish)

* Translated using Weblate (Polish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pl/

* Added translation using Weblate (Chinese (Traditional))

* Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hant/

* Added translation using Weblate (Slovak)

* Added translation using Weblate (Turkish)

* Translated using Weblate (Hebrew)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/he/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

* Added translation using Weblate (Norwegian Nynorsk)

* Translated using Weblate (Norwegian Nynorsk)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nn/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Icelandic)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/is/

* Added translation using Weblate (Persian)

* Translated using Weblate (German)

Currently translated at 97.7% (44 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/

* Translated using Weblate (Persian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fa/

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pt_BR/

* Translated using Weblate (Estonian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/et/

* Translated using Weblate (Italian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/it/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/hu/

* Translated using Weblate (German)

Currently translated at 97.7% (44 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Russian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ru/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/es/

* Translated using Weblate (Icelandic)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/is/

* Added translation using Weblate (Greek)

* Translated using Weblate (Greek)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/el/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sv/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nl/

* Added translation using Weblate (Telugu)

* Translated using Weblate (Finnish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fi/

* Translated using Weblate (Telugu)

Currently translated at 13.3% (6 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/te/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

* Added translation using Weblate (Esperanto)

* Added translation using Weblate (Bengali)

* Translated using Weblate (Bengali)

Currently translated at 6.6% (3 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/bn/

* Added translation using Weblate (Lao)

* Translated using Weblate (Lao)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/lo/

* Translated using Weblate (Esperanto)

Currently translated at 42.2% (19 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/eo/

* Added translation using Weblate (Fang (Equatorial Guinea))

* Translated using Weblate (Fang (Equatorial Guinea))

Currently translated at 4.4% (2 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fan/

* Deleted translation using Weblate (Fang (Equatorial Guinea))

* Translated using Weblate (Polish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pl/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Tamil)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ta/

* Translated using Weblate (Tamil)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ta/

* Translated using Weblate (Hebrew)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/he/

* Translated using Weblate (French)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fr/

* Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hant/

* Added translation using Weblate (Bulgarian)

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/bg/

* Translated using Weblate (Sinhala)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/si/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hans/

* Translated using Weblate (German)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/hu/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hans/

* Translated using Weblate (Bengali)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/bn/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nl/

* Added translation using Weblate (Lithuanian)

* Translated using Weblate (Lithuanian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/lt/

Co-authored-by: Dinh Quang Tuyen <tuyen.dinh@aarenet.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: James Salter <iteration@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Fjoerfoks <fryskefirefox@gmail.com>
Co-authored-by: m1chj <8hm0nutuhsa9@opayq.com>
Co-authored-by: SiderealArt <nelson22768384@gmail.com>
Co-authored-by: Tomas <tominokov@gmail.com>
Co-authored-by: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-authored-by: Vulcan <element@zbug.anonaddy.com>
Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Bjørn I.Svindseth <bjorni.svindseth@yahoo.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: Bui Minh Duc <m.nhduc.bui1@gmail.com>
Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
Co-authored-by: Eshagh <ase.mugem@gmail.com>
Co-authored-by: Ben Parsons <ben@bpulse.co.uk>
Co-authored-by: lvre <7uu3qrbvm@relay.firefox.com>
Co-authored-by: Priit Jõerüüt <riot@joeruut.com>
Co-authored-by: random <dictionary@tutamail.com>
Co-authored-by: Szimszon <github@oregpreshaz.eu>
Co-authored-by: libexus <libexus@gmail.com>
Co-authored-by: Nikita Epifanov <NikGreens@protonmail.com>
Co-authored-by: iaiz <git@iapellaniz.com>
Co-authored-by: Theo <tbousiou@gmail.com>
Co-authored-by: LinAGKar <linus.kardell@gmail.com>
Co-authored-by: Johan Smits <johan@smitsmail.net>
Co-authored-by: vivekkoya <13vivekkoya@gmail.com>
Co-authored-by: Jiri Grönroos <jiri.gronroos@iki.fi>
Co-authored-by: Metehan Özyürek <metehanc8s9@yandex.com>
Co-authored-by: Vilhelmo Bandito <willibandido@gmail.com>
Co-authored-by: Kominak Halalu <kominak310@svcache.com>
Co-authored-by: anoloth <anoloth@gmail.com>
Co-authored-by: worldspeak <septonimus@protonmail.com>
Co-authored-by: Bob B Success <mercelringoo@gmail.com>
Co-authored-by: Michael Telatynski <7t3chguy@googlemail.com>
Co-authored-by: Piotr Strebski <strebski@gmail.com>
Co-authored-by: Anderson Ivanovich <ivanovicha350@gmail.com>
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Co-authored-by: Clément Hampaï <clement.hampai@cypressxt.net>
Co-authored-by: Jeff Huang <s8321414@gmail.com>
Co-authored-by: Mya Rohit <element@mailbolt.com>
Co-authored-by: HelaBasa <R45XvezA@protonmail.ch>
Co-authored-by: phardyle <bradney_ccea@aleeas.com>
Co-authored-by: Jan Philip Bernius <janphilip@bernius.net>
Co-authored-by: Roland Panír <bogrol2003@gmail.com>
Co-authored-by: Philip Goto <philip.goto@gmail.com>
Co-authored-by: Anonimas <weblate@govindas.net>
2022-09-20 13:46:39 +01:00
David Robertson e2e1b5f8fd Use correct path separators on Linux (#401) 2022-09-16 15:13:03 +01:00
Michael Telatynski 6bd95d072a Update static_analysis.yaml 2022-09-16 08:07:14 +01:00
Michael Telatynski 60b3408eec Turn off tsc --strict annotations (#416) 2022-09-16 08:06:25 +01:00
RiotRobot f3138ecceb Merge branch 'master' into develop 2022-09-13 13:13:35 +01:00
RiotRobot c4cbc54037 v1.11.5 2022-09-13 13:13:22 +01:00
RiotRobot 403b26ed6d Prepare changelog for v1.11.5 2022-09-13 13:13:21 +01:00
Michael Telatynski 5665f7fe0b Tweak backport labels (#415) 2022-09-07 14:56:33 +01:00
ElementRobot 72ea78d0de Merge pull request #414 from vector-im/actions/upgrade-deps
Upgrade dependencies
2022-09-06 14:50:52 +01:00
t3chguy 4c43b5c255 [create-pull-request] automated change 2022-09-06 12:58:24 +00:00
RiotRobot ae7ef1043a v1.11.5-rc.1 2022-09-06 13:52:41 +01:00
RiotRobot a3251dbcfb Prepare changelog for v1.11.5-rc.1 2022-09-06 13:52:41 +01:00
Michael Telatynski 4073547a76 Simplify releases: consolidate scripts (#409)
* Remove stale comment re dependency

* Move npm publishing from release.sh to GHA

* Extract js-sdk & react-sdk post release steps
2022-09-06 12:10:32 +01:00
+37 935843cb6b Translations update from Weblate (#413)
* Added translation using Weblate (Vietnamese)

* Added translation using Weblate (English (United States))

* Translated using Weblate (English (United States))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/en_US/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Frisian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fy/

* Added translation using Weblate (Polish)

* Translated using Weblate (Polish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pl/

* Added translation using Weblate (Chinese (Traditional))

* Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hant/

* Added translation using Weblate (Slovak)

* Added translation using Weblate (Turkish)

* Translated using Weblate (Hebrew)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/he/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

* Added translation using Weblate (Norwegian Nynorsk)

* Translated using Weblate (Norwegian Nynorsk)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nn/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Icelandic)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/is/

* Added translation using Weblate (Persian)

* Translated using Weblate (German)

Currently translated at 97.7% (44 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/

* Translated using Weblate (Persian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fa/

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pt_BR/

* Translated using Weblate (Estonian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/et/

* Translated using Weblate (Italian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/it/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/hu/

* Translated using Weblate (German)

Currently translated at 97.7% (44 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Russian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ru/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/es/

* Translated using Weblate (Icelandic)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/is/

* Added translation using Weblate (Greek)

* Translated using Weblate (Greek)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/el/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sv/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nl/

* Added translation using Weblate (Telugu)

* Translated using Weblate (Finnish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fi/

* Translated using Weblate (Telugu)

Currently translated at 13.3% (6 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/te/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

* Added translation using Weblate (Esperanto)

* Added translation using Weblate (Bengali)

* Translated using Weblate (Bengali)

Currently translated at 6.6% (3 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/bn/

* Added translation using Weblate (Lao)

* Translated using Weblate (Lao)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/lo/

* Translated using Weblate (Esperanto)

Currently translated at 42.2% (19 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/eo/

* Added translation using Weblate (Fang (Equatorial Guinea))

* Translated using Weblate (Fang (Equatorial Guinea))

Currently translated at 4.4% (2 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fan/

* Deleted translation using Weblate (Fang (Equatorial Guinea))

* Translated using Weblate (Polish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pl/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Tamil)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ta/

* Translated using Weblate (Tamil)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ta/

* Translated using Weblate (Hebrew)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/he/

* Translated using Weblate (French)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fr/

* Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hant/

* Added translation using Weblate (Bulgarian)

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/bg/

* Translated using Weblate (Sinhala)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/si/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hans/

* Translated using Weblate (German)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/hu/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hans/

* Translated using Weblate (Bengali)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/bn/

Co-authored-by: Dinh Quang Tuyen <tuyen.dinh@aarenet.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: James Salter <iteration@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Fjoerfoks <fryskefirefox@gmail.com>
Co-authored-by: m1chj <8hm0nutuhsa9@opayq.com>
Co-authored-by: SiderealArt <nelson22768384@gmail.com>
Co-authored-by: Tomas <tominokov@gmail.com>
Co-authored-by: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-authored-by: Vulcan <element@zbug.anonaddy.com>
Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Bjørn I.Svindseth <bjorni.svindseth@yahoo.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: Bui Minh Duc <m.nhduc.bui1@gmail.com>
Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
Co-authored-by: Eshagh <ase.mugem@gmail.com>
Co-authored-by: Ben Parsons <ben@bpulse.co.uk>
Co-authored-by: lvre <7uu3qrbvm@relay.firefox.com>
Co-authored-by: Priit Jõerüüt <riot@joeruut.com>
Co-authored-by: random <dictionary@tutamail.com>
Co-authored-by: Szimszon <github@oregpreshaz.eu>
Co-authored-by: libexus <libexus@gmail.com>
Co-authored-by: Nikita Epifanov <NikGreens@protonmail.com>
Co-authored-by: iaiz <git@iapellaniz.com>
Co-authored-by: Theo <tbousiou@gmail.com>
Co-authored-by: LinAGKar <linus.kardell@gmail.com>
Co-authored-by: Johan Smits <johan@smitsmail.net>
Co-authored-by: vivekkoya <13vivekkoya@gmail.com>
Co-authored-by: Jiri Grönroos <jiri.gronroos@iki.fi>
Co-authored-by: Metehan Özyürek <metehanc8s9@yandex.com>
Co-authored-by: Vilhelmo Bandito <willibandido@gmail.com>
Co-authored-by: Kominak Halalu <kominak310@svcache.com>
Co-authored-by: anoloth <anoloth@gmail.com>
Co-authored-by: worldspeak <septonimus@protonmail.com>
Co-authored-by: Bob B Success <mercelringoo@gmail.com>
Co-authored-by: Michael Telatynski <7t3chguy@googlemail.com>
Co-authored-by: Piotr Strebski <strebski@gmail.com>
Co-authored-by: Anderson Ivanovich <ivanovicha350@gmail.com>
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Co-authored-by: Clément Hampaï <clement.hampai@cypressxt.net>
Co-authored-by: Jeff Huang <s8321414@gmail.com>
Co-authored-by: Mya Rohit <element@mailbolt.com>
Co-authored-by: HelaBasa <R45XvezA@protonmail.ch>
Co-authored-by: phardyle <bradney_ccea@aleeas.com>
Co-authored-by: Jan Philip Bernius <janphilip@bernius.net>
Co-authored-by: Roland Panír <bogrol2003@gmail.com>
2022-09-06 11:10:37 +01:00
Michael Telatynski b14a1eb3a8 Switch fetch-package to use Github instead of Buildkite (#412)
* Switch fetch-package to use Github instead of Buildkite

* Tweak build to version match better

* Fix version match fetching

* Remove check for `BUILDKITE_API_KEY` as it is no longer required

* Fix develop fetching
2022-09-05 09:49:39 +00:00
Travis Ralston 497c4695fd Update CHANGELOG.md 2022-08-31 11:49:36 -06:00
RiotRobot 95f63641ea Merge branch 'master' into develop 2022-08-31 16:51:21 +01:00
RiotRobot f77b72e9f6 v1.11.4 2022-08-31 16:51:08 +01:00
RiotRobot 9fd16bfda6 Prepare changelog for v1.11.4 2022-08-31 16:51:08 +01:00
Michael Telatynski f0201cfe31 First attempt at automated Playwright tests (#402)
* First attempt at automated Playwright tests

* Fix deb installation in CI

* Try again with .deb

* Try xvfb

* Fix paths

* Prepare macOS runner for UI tests

* test_artifacts

* Increase test timeout to 30s

* Add timeout

* Split out build & test stages for easier retrying

* Use a single test matrix job

* Fix testing

* Yarn install

* Install deps

* Make prep more generic

* Update build.yaml

* Update build.yaml

* Update build.yaml
2022-08-25 18:04:14 +00:00
RiotRobot 706f1fb32b v1.11.4-rc.2 2022-08-25 17:02:49 +01:00
RiotRobot 492b33818d Prepare changelog for v1.11.4-rc.2 2022-08-25 17:02:49 +01:00
Michael Telatynski bc8ab50b58 Add backport automation (#407) 2022-08-25 11:40:55 +01:00
Michael Telatynski 5ab3058826 Tweak tsc-strict config (#410) 2022-08-24 11:51:12 +01:00
Denis KasakandMichael Telatynski a812a5c0a0 Retroactively add security fix notice to the changelog of 1.9.7 (#411)
* Retroactively add security fix notice for 1.9.7

To mention the fix for https://matrix.org/blog/2022/01/31/high-severity-vulnerability-in-element-desktop-1-9-6-and-earlier.

* Update CHANGELOG.md

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-08-24 11:37:41 +01:00
Michael Telatynski b06f9645fd Add static analysis for tsc --strict (#405) 2022-08-24 10:07:21 +01:00
ElementRobot 86326d8c4d Merge pull request #408 from vector-im/actions/upgrade-deps
Upgrade dependencies
2022-08-23 13:17:01 +01:00
RiotRobot 9e04c5f819 v1.11.4-rc.1 2022-08-23 11:14:56 +01:00
RiotRobot 5acea2ea64 Prepare changelog for v1.11.4-rc.1 2022-08-23 11:14:55 +01:00
t3chguy 6dc981292f [create-pull-request] automated change 2022-08-23 10:13:50 +00:00
+37 02b16542c7 Translations update from Weblate (#406)
* Added translation using Weblate (Vietnamese)

* Added translation using Weblate (English (United States))

* Translated using Weblate (English (United States))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/en_US/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Frisian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fy/

* Added translation using Weblate (Polish)

* Translated using Weblate (Polish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pl/

* Added translation using Weblate (Chinese (Traditional))

* Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hant/

* Added translation using Weblate (Slovak)

* Added translation using Weblate (Turkish)

* Translated using Weblate (Hebrew)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/he/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

* Added translation using Weblate (Norwegian Nynorsk)

* Translated using Weblate (Norwegian Nynorsk)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nn/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Icelandic)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/is/

* Added translation using Weblate (Persian)

* Translated using Weblate (German)

Currently translated at 97.7% (44 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/

* Translated using Weblate (Persian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fa/

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pt_BR/

* Translated using Weblate (Estonian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/et/

* Translated using Weblate (Italian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/it/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/hu/

* Translated using Weblate (German)

Currently translated at 97.7% (44 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Russian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ru/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/es/

* Translated using Weblate (Icelandic)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/is/

* Added translation using Weblate (Greek)

* Translated using Weblate (Greek)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/el/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sv/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nl/

* Added translation using Weblate (Telugu)

* Translated using Weblate (Finnish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fi/

* Translated using Weblate (Telugu)

Currently translated at 13.3% (6 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/te/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

* Added translation using Weblate (Esperanto)

* Added translation using Weblate (Bengali)

* Translated using Weblate (Bengali)

Currently translated at 6.6% (3 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/bn/

* Added translation using Weblate (Lao)

* Translated using Weblate (Lao)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/lo/

* Translated using Weblate (Esperanto)

Currently translated at 42.2% (19 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/eo/

* Added translation using Weblate (Fang (Equatorial Guinea))

* Translated using Weblate (Fang (Equatorial Guinea))

Currently translated at 4.4% (2 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fan/

* Deleted translation using Weblate (Fang (Equatorial Guinea))

* Translated using Weblate (Polish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pl/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Tamil)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ta/

* Translated using Weblate (Tamil)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ta/

* Translated using Weblate (Hebrew)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/he/

* Translated using Weblate (French)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fr/

* Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hant/

* Added translation using Weblate (Bulgarian)

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/bg/

* Translated using Weblate (Sinhala)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/si/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hans/

* Translated using Weblate (German)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/hu/

Co-authored-by: Dinh Quang Tuyen <tuyen.dinh@aarenet.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: James Salter <iteration@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Fjoerfoks <fryskefirefox@gmail.com>
Co-authored-by: m1chj <8hm0nutuhsa9@opayq.com>
Co-authored-by: SiderealArt <nelson22768384@gmail.com>
Co-authored-by: Tomas <tominokov@gmail.com>
Co-authored-by: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-authored-by: Vulcan <element@zbug.anonaddy.com>
Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Bjørn I.Svindseth <bjorni.svindseth@yahoo.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: Bui Minh Duc <m.nhduc.bui1@gmail.com>
Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
Co-authored-by: Eshagh <ase.mugem@gmail.com>
Co-authored-by: Ben Parsons <ben@bpulse.co.uk>
Co-authored-by: lvre <7uu3qrbvm@relay.firefox.com>
Co-authored-by: Priit Jõerüüt <riot@joeruut.com>
Co-authored-by: random <dictionary@tutamail.com>
Co-authored-by: Szimszon <github@oregpreshaz.eu>
Co-authored-by: libexus <libexus@gmail.com>
Co-authored-by: Nikita Epifanov <NikGreens@protonmail.com>
Co-authored-by: iaiz <git@iapellaniz.com>
Co-authored-by: Theo <tbousiou@gmail.com>
Co-authored-by: LinAGKar <linus.kardell@gmail.com>
Co-authored-by: Johan Smits <johan@smitsmail.net>
Co-authored-by: vivekkoya <13vivekkoya@gmail.com>
Co-authored-by: Jiri Grönroos <jiri.gronroos@iki.fi>
Co-authored-by: Metehan Özyürek <metehanc8s9@yandex.com>
Co-authored-by: Vilhelmo Bandito <willibandido@gmail.com>
Co-authored-by: Kominak Halalu <kominak310@svcache.com>
Co-authored-by: anoloth <anoloth@gmail.com>
Co-authored-by: worldspeak <septonimus@protonmail.com>
Co-authored-by: Bob B Success <mercelringoo@gmail.com>
Co-authored-by: Michael Telatynski <7t3chguy@googlemail.com>
Co-authored-by: Piotr Strebski <strebski@gmail.com>
Co-authored-by: Anderson Ivanovich <ivanovicha350@gmail.com>
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Co-authored-by: Clément Hampaï <clement.hampai@cypressxt.net>
Co-authored-by: Jeff Huang <s8321414@gmail.com>
Co-authored-by: Mya Rohit <element@mailbolt.com>
Co-authored-by: HelaBasa <R45XvezA@protonmail.ch>
Co-authored-by: phardyle <bradney_ccea@aleeas.com>
Co-authored-by: Jan Philip Bernius <janphilip@bernius.net>
Co-authored-by: Roland Panír <bogrol2003@gmail.com>
2022-08-23 10:35:32 +01:00
Michael Telatynski 868e45a4a2 Upgrade to Electron 20 (#403) 2022-08-19 10:37:04 +01:00
RiotRobot 6c3fb47758 Merge branch 'master' into develop 2022-08-16 16:31:42 +01:00
RiotRobot c3674c8b4c v1.11.3 2022-08-16 16:29:46 +01:00
RiotRobot 65cd74dadf Prepare changelog for v1.11.3 2022-08-16 16:29:46 +01:00
RiotRobot 37f6ecbaae v1.11.3-rc.2 2022-08-12 15:02:14 +01:00
RiotRobot a7913f8656 Prepare changelog for v1.11.3-rc.2 2022-08-12 15:02:13 +01:00
ElementRobot 5f8299b92a Merge pull request #400 from vector-im/actions/upgrade-deps
Upgrade dependencies
2022-08-09 18:46:03 +01:00
t3chguy cd62bcd91f [create-pull-request] automated change 2022-08-09 16:44:41 +00:00
RiotRobot f3b3d14556 v1.11.3-rc.1 2022-08-09 17:39:43 +01:00
RiotRobot 328410ee01 Prepare changelog for v1.11.3-rc.1 2022-08-09 17:39:42 +01:00
Michael Weimann e702d9cfdc Merge pull request #398 from 3nprob/document-eslint-rules
Document eslint rules
2022-08-09 16:15:26 +02:00
3nprob ec03783b7b Document where new linting rules go 2022-08-09 19:09:38 +09:00
RiotRobot 83ebc38bae Merge branch 'master' into develop 2022-08-03 09:26:45 +01:00
RiotRobot 8cbb0b1640 v1.11.2 2022-08-03 09:26:33 +01:00
RiotRobot b94140523e Prepare changelog for v1.11.2 2022-08-03 09:26:32 +01:00
Šimon Brandner b693aee5cb Merge pull request #379 from vector-im/SimonBrandner/feat/spell-disable 2022-07-28 10:19:37 +02:00
renovate[bot]andMichael Telatynski d2e43e77fd Configure Renovate (#394)
* Add renovate.json

* Create renovate.json

* Delete renovate.json

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-07-27 16:13:41 +01:00
ElementRobot 3f5397932c Merge pull request #393 from vector-im/actions/upgrade-deps
Upgrade dependencies
2022-07-26 18:37:37 +01:00
t3chguy 1e07bf721b [create-pull-request] automated change 2022-07-26 17:08:47 +00:00
RiotRobot b9cc2ace60 v1.11.2-rc.1 2022-07-26 18:07:48 +01:00
RiotRobot dfdc9fb12a Prepare changelog for v1.11.2-rc.1 2022-07-26 18:07:47 +01:00
+35 d871d9c672 Translations update from Weblate (#392)
* Added translation using Weblate (Vietnamese)

* Added translation using Weblate (English (United States))

* Translated using Weblate (English (United States))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/en_US/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Frisian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fy/

* Added translation using Weblate (Polish)

* Translated using Weblate (Polish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pl/

* Added translation using Weblate (Chinese (Traditional))

* Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hant/

* Added translation using Weblate (Slovak)

* Added translation using Weblate (Turkish)

* Translated using Weblate (Hebrew)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/he/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

* Added translation using Weblate (Norwegian Nynorsk)

* Translated using Weblate (Norwegian Nynorsk)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nn/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Icelandic)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/is/

* Added translation using Weblate (Persian)

* Translated using Weblate (German)

Currently translated at 97.7% (44 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/

* Translated using Weblate (Persian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fa/

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pt_BR/

* Translated using Weblate (Estonian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/et/

* Translated using Weblate (Italian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/it/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/hu/

* Translated using Weblate (German)

Currently translated at 97.7% (44 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Russian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ru/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/es/

* Translated using Weblate (Icelandic)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/is/

* Added translation using Weblate (Greek)

* Translated using Weblate (Greek)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/el/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sv/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nl/

* Added translation using Weblate (Telugu)

* Translated using Weblate (Finnish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fi/

* Translated using Weblate (Telugu)

Currently translated at 13.3% (6 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/te/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

* Added translation using Weblate (Esperanto)

* Added translation using Weblate (Bengali)

* Translated using Weblate (Bengali)

Currently translated at 6.6% (3 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/bn/

* Added translation using Weblate (Lao)

* Translated using Weblate (Lao)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/lo/

* Translated using Weblate (Esperanto)

Currently translated at 42.2% (19 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/eo/

* Added translation using Weblate (Fang (Equatorial Guinea))

* Translated using Weblate (Fang (Equatorial Guinea))

Currently translated at 4.4% (2 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fan/

* Deleted translation using Weblate (Fang (Equatorial Guinea))

* Translated using Weblate (Polish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pl/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Tamil)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ta/

* Translated using Weblate (Tamil)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ta/

* Translated using Weblate (Hebrew)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/he/

* Translated using Weblate (French)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fr/

* Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hant/

* Added translation using Weblate (Bulgarian)

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/bg/

* Translated using Weblate (Sinhala)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/si/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hans/

Co-authored-by: Dinh Quang Tuyen <tuyen.dinh@aarenet.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: James Salter <iteration@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Fjoerfoks <fryskefirefox@gmail.com>
Co-authored-by: m1chj <8hm0nutuhsa9@opayq.com>
Co-authored-by: SiderealArt <nelson22768384@gmail.com>
Co-authored-by: Tomas <tominokov@gmail.com>
Co-authored-by: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-authored-by: Vulcan <element@zbug.anonaddy.com>
Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Bjørn I.Svindseth <bjorni.svindseth@yahoo.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: Bui Minh Duc <m.nhduc.bui1@gmail.com>
Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
Co-authored-by: Eshagh <ase.mugem@gmail.com>
Co-authored-by: Ben Parsons <ben@bpulse.co.uk>
Co-authored-by: lvre <7uu3qrbvm@relay.firefox.com>
Co-authored-by: Priit Jõerüüt <riot@joeruut.com>
Co-authored-by: random <dictionary@tutamail.com>
Co-authored-by: Szimszon <github@oregpreshaz.eu>
Co-authored-by: libexus <libexus@gmail.com>
Co-authored-by: Nikita Epifanov <NikGreens@protonmail.com>
Co-authored-by: iaiz <git@iapellaniz.com>
Co-authored-by: Theo <tbousiou@gmail.com>
Co-authored-by: LinAGKar <linus.kardell@gmail.com>
Co-authored-by: Johan Smits <johan@smitsmail.net>
Co-authored-by: vivekkoya <13vivekkoya@gmail.com>
Co-authored-by: Jiri Grönroos <jiri.gronroos@iki.fi>
Co-authored-by: Metehan Özyürek <metehanc8s9@yandex.com>
Co-authored-by: Vilhelmo Bandito <willibandido@gmail.com>
Co-authored-by: Kominak Halalu <kominak310@svcache.com>
Co-authored-by: anoloth <anoloth@gmail.com>
Co-authored-by: worldspeak <septonimus@protonmail.com>
Co-authored-by: Bob B Success <mercelringoo@gmail.com>
Co-authored-by: Michael Telatynski <7t3chguy@googlemail.com>
Co-authored-by: Piotr Strebski <strebski@gmail.com>
Co-authored-by: Anderson Ivanovich <ivanovicha350@gmail.com>
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Co-authored-by: Clément Hampaï <clement.hampai@cypressxt.net>
Co-authored-by: Jeff Huang <s8321414@gmail.com>
Co-authored-by: Mya Rohit <element@mailbolt.com>
Co-authored-by: HelaBasa <R45XvezA@protonmail.ch>
Co-authored-by: phardyle <bradney_ccea@aleeas.com>
2022-07-26 17:11:16 +01:00
RiotRobot 776b0cfff2 v1.11.1 2022-07-26 16:53:23 +01:00
RiotRobot 6913fcce84 Prepare changelog for v1.11.1 2022-07-26 16:53:23 +01:00
RiotRobot c2ca03e00c v1.11.1-rc.2 2022-07-15 15:07:52 +01:00
RiotRobot cba2f88353 Prepare changelog for v1.11.1-rc.2 2022-07-15 15:07:52 +01:00
Michael Telatynski b48d607d61 Remove spurious newline 2022-07-13 10:29:15 +01:00
Michael Telatynski 86e372b913 Merge branch 'develop' of github.com:vector-im/element-desktop into SimonBrandner/feat/spell-disable
 Conflicts:
	src/electron-main.ts
2022-07-13 10:12:36 +01:00
RiotRobot af2fea8780 v1.11.1-rc.1 2022-07-12 14:37:18 +01:00
RiotRobot 616263919d Prepare changelog for v1.11.1-rc.1 2022-07-12 14:37:17 +01:00
+34 1a40ead8af Translations update from Weblate (#390)
* Added translation using Weblate (Vietnamese)

* Added translation using Weblate (English (United States))

* Translated using Weblate (English (United States))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/en_US/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Frisian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fy/

* Added translation using Weblate (Polish)

* Translated using Weblate (Polish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pl/

* Added translation using Weblate (Chinese (Traditional))

* Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hant/

* Added translation using Weblate (Slovak)

* Added translation using Weblate (Turkish)

* Translated using Weblate (Hebrew)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/he/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

* Added translation using Weblate (Norwegian Nynorsk)

* Translated using Weblate (Norwegian Nynorsk)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nn/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Icelandic)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/is/

* Added translation using Weblate (Persian)

* Translated using Weblate (German)

Currently translated at 97.7% (44 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/

* Translated using Weblate (Persian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fa/

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pt_BR/

* Translated using Weblate (Estonian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/et/

* Translated using Weblate (Italian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/it/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/hu/

* Translated using Weblate (German)

Currently translated at 97.7% (44 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Russian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ru/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/es/

* Translated using Weblate (Icelandic)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/is/

* Added translation using Weblate (Greek)

* Translated using Weblate (Greek)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/el/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sv/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nl/

* Added translation using Weblate (Telugu)

* Translated using Weblate (Finnish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fi/

* Translated using Weblate (Telugu)

Currently translated at 13.3% (6 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/te/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

* Added translation using Weblate (Esperanto)

* Added translation using Weblate (Bengali)

* Translated using Weblate (Bengali)

Currently translated at 6.6% (3 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/bn/

* Added translation using Weblate (Lao)

* Translated using Weblate (Lao)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/lo/

* Translated using Weblate (Esperanto)

Currently translated at 42.2% (19 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/eo/

* Added translation using Weblate (Fang (Equatorial Guinea))

* Translated using Weblate (Fang (Equatorial Guinea))

Currently translated at 4.4% (2 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fan/

* Deleted translation using Weblate (Fang (Equatorial Guinea))

* Translated using Weblate (Polish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pl/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Tamil)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ta/

* Translated using Weblate (Tamil)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ta/

* Translated using Weblate (Hebrew)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/he/

* Translated using Weblate (French)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fr/

* Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hant/

* Added translation using Weblate (Bulgarian)

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/bg/

* Translated using Weblate (Sinhala)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/si/

Co-authored-by: Dinh Quang Tuyen <tuyen.dinh@aarenet.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: James Salter <iteration@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Fjoerfoks <fryskefirefox@gmail.com>
Co-authored-by: m1chj <8hm0nutuhsa9@opayq.com>
Co-authored-by: SiderealArt <nelson22768384@gmail.com>
Co-authored-by: Tomas <tominokov@gmail.com>
Co-authored-by: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-authored-by: Vulcan <element@zbug.anonaddy.com>
Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Bjørn I.Svindseth <bjorni.svindseth@yahoo.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: Bui Minh Duc <m.nhduc.bui1@gmail.com>
Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
Co-authored-by: Eshagh <ase.mugem@gmail.com>
Co-authored-by: Ben Parsons <ben@bpulse.co.uk>
Co-authored-by: lvre <7uu3qrbvm@relay.firefox.com>
Co-authored-by: Priit Jõerüüt <riot@joeruut.com>
Co-authored-by: random <dictionary@tutamail.com>
Co-authored-by: Szimszon <github@oregpreshaz.eu>
Co-authored-by: libexus <libexus@gmail.com>
Co-authored-by: Nikita Epifanov <NikGreens@protonmail.com>
Co-authored-by: iaiz <git@iapellaniz.com>
Co-authored-by: Theo <tbousiou@gmail.com>
Co-authored-by: LinAGKar <linus.kardell@gmail.com>
Co-authored-by: Johan Smits <johan@smitsmail.net>
Co-authored-by: vivekkoya <13vivekkoya@gmail.com>
Co-authored-by: Jiri Grönroos <jiri.gronroos@iki.fi>
Co-authored-by: Metehan Özyürek <metehanc8s9@yandex.com>
Co-authored-by: Vilhelmo Bandito <willibandido@gmail.com>
Co-authored-by: Kominak Halalu <kominak310@svcache.com>
Co-authored-by: anoloth <anoloth@gmail.com>
Co-authored-by: worldspeak <septonimus@protonmail.com>
Co-authored-by: Bob B Success <mercelringoo@gmail.com>
Co-authored-by: Michael Telatynski <7t3chguy@googlemail.com>
Co-authored-by: Piotr Strebski <strebski@gmail.com>
Co-authored-by: Anderson Ivanovich <ivanovicha350@gmail.com>
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Co-authored-by: Clément Hampaï <clement.hampai@cypressxt.net>
Co-authored-by: Jeff Huang <s8321414@gmail.com>
Co-authored-by: Mya Rohit <element@mailbolt.com>
Co-authored-by: HelaBasa <R45XvezA@protonmail.ch>
2022-07-12 13:45:06 +01:00
Michael Telatynski 4f11398539 Fix manual update checks not working after being dismissed (#388) 2022-07-12 07:23:51 +01:00
Travis Ralston 62046fadcb Add a basic PR checklist for all PRs (#389)
* Add a basic PR checklist for all PRs

It'll be mildly annoying for core developers who have to constantly remove or edit this, but it'll also serve as a good reminder to do these things.

Note that signoff is not required for core developers.

* Update .github/PULL_REQUEST_TEMPLATE.md
2022-07-11 20:32:47 +00:00
Michael Telatynski 275936cf7e Windows MSI package support (#387)
* Update package.json

* Update package.json

* Run `yarn fetch` so the artifacts are valid

* Run `yarn fetch` so the artifacts are valid v2

* Update build.yaml
2022-07-11 10:33:27 +01:00
RiotRobot ce78c292a7 Merge branch 'master' into develop 2022-07-05 14:38:59 +01:00
RiotRobot 762ad2d051 v1.11.0 2022-07-05 14:38:46 +01:00
RiotRobot 36fda5796e Prepare changelog for v1.11.0 2022-07-05 14:38:45 +01:00
Matthew Hodgson 9bd927fbb2 Merge pull request #386 from vector-im/matthew/fix-updates
Don't check for updates if we already have one downloaded and queued
2022-07-04 10:26:56 +01:00
Matthew Hodgson c23c3bdf03 lint 2022-07-03 16:41:51 +01:00
Matthew Hodgson 45a9156127 Don't check for updates if we already have one downloaded and queued
This is a punt at fixing https://github.com/vector-im/element-web/issues/12433,
on the assumption that multiple update checks might collide with a
download which are already queued to install.  It also avoids repeatedly
re-downloading the same update on every check, as per the Note: on
https://github.com/electron/electron/blob/main/docs/api/auto-updater.md#autoupdatercheckforupdates

However, it means that you may have to upgrade twice if you wait more than 24h to install
a new build - and if you cancel an upgrade prompt, you'll have to either restart
the app or explicitly check for a new version to get upgrades working again.
However, this is less annoying than having the app fail to relaunch after upgrading.
2022-07-03 16:38:20 +01:00
Michael Telatynski 389f6f4334 Split electron-main into smaller chunks (#377)
* Split electron-main into smaller chunks

* Affix @types/node version and upgrade electron-store

* Iterate PR

* tidy up

* Actually run the split out code
2022-07-01 20:17:40 +01:00
Michael Telatynski b7a0402de5 Fix default file name in save-image-as (#385) 2022-06-30 14:09:34 +00:00
ElementRobot b27f72e3a3 Merge pull request #384 from vector-im/actions/upgrade-deps
Upgrade dependencies
2022-06-28 17:30:04 +01:00
t3chguy a07e298971 [create-pull-request] automated change 2022-06-28 15:39:40 +00:00
RiotRobot 9b0027cd3b v1.11.0-rc.1 2022-06-28 16:34:23 +01:00
RiotRobot 7bb02c0324 Prepare changelog for v1.11.0-rc.1 2022-06-28 16:34:22 +01:00
+31 c458319bfd Translations update from Weblate (#383)
* Added translation using Weblate (Vietnamese)

* Added translation using Weblate (English (United States))

* Translated using Weblate (English (United States))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/en_US/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Frisian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fy/

* Added translation using Weblate (Polish)

* Translated using Weblate (Polish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pl/

* Added translation using Weblate (Chinese (Traditional))

* Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hant/

* Added translation using Weblate (Slovak)

* Added translation using Weblate (Turkish)

* Translated using Weblate (Hebrew)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/he/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

* Added translation using Weblate (Norwegian Nynorsk)

* Translated using Weblate (Norwegian Nynorsk)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nn/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Icelandic)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/is/

* Added translation using Weblate (Persian)

* Translated using Weblate (German)

Currently translated at 97.7% (44 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/

* Translated using Weblate (Persian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fa/

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pt_BR/

* Translated using Weblate (Estonian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/et/

* Translated using Weblate (Italian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/it/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/hu/

* Translated using Weblate (German)

Currently translated at 97.7% (44 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Russian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ru/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/es/

* Translated using Weblate (Icelandic)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/is/

* Added translation using Weblate (Greek)

* Translated using Weblate (Greek)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/el/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sv/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nl/

* Added translation using Weblate (Telugu)

* Translated using Weblate (Finnish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fi/

* Translated using Weblate (Telugu)

Currently translated at 13.3% (6 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/te/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

* Added translation using Weblate (Esperanto)

* Added translation using Weblate (Bengali)

* Translated using Weblate (Bengali)

Currently translated at 6.6% (3 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/bn/

* Added translation using Weblate (Lao)

* Translated using Weblate (Lao)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/lo/

* Translated using Weblate (Esperanto)

Currently translated at 42.2% (19 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/eo/

* Added translation using Weblate (Fang (Equatorial Guinea))

* Translated using Weblate (Fang (Equatorial Guinea))

Currently translated at 4.4% (2 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fan/

* Deleted translation using Weblate (Fang (Equatorial Guinea))

* Translated using Weblate (Polish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pl/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Tamil)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ta/

* Translated using Weblate (Tamil)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ta/

* Translated using Weblate (Hebrew)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/he/

* Translated using Weblate (French)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fr/

Co-authored-by: Dinh Quang Tuyen <tuyen.dinh@aarenet.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: James Salter <iteration@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Fjoerfoks <fryskefirefox@gmail.com>
Co-authored-by: m1chj <8hm0nutuhsa9@opayq.com>
Co-authored-by: SiderealArt <nelson22768384@gmail.com>
Co-authored-by: Tomas <tominokov@gmail.com>
Co-authored-by: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-authored-by: Vulcan <element@zbug.anonaddy.com>
Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Bjørn I.Svindseth <bjorni.svindseth@yahoo.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: Bui Minh Duc <m.nhduc.bui1@gmail.com>
Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
Co-authored-by: Eshagh <ase.mugem@gmail.com>
Co-authored-by: Ben Parsons <ben@bpulse.co.uk>
Co-authored-by: lvre <7uu3qrbvm@relay.firefox.com>
Co-authored-by: Priit Jõerüüt <riot@joeruut.com>
Co-authored-by: random <dictionary@tutamail.com>
Co-authored-by: Szimszon <github@oregpreshaz.eu>
Co-authored-by: libexus <libexus@gmail.com>
Co-authored-by: Nikita Epifanov <NikGreens@protonmail.com>
Co-authored-by: iaiz <git@iapellaniz.com>
Co-authored-by: Theo <tbousiou@gmail.com>
Co-authored-by: LinAGKar <linus.kardell@gmail.com>
Co-authored-by: Johan Smits <johan@smitsmail.net>
Co-authored-by: vivekkoya <13vivekkoya@gmail.com>
Co-authored-by: Jiri Grönroos <jiri.gronroos@iki.fi>
Co-authored-by: Metehan Özyürek <metehanc8s9@yandex.com>
Co-authored-by: Vilhelmo Bandito <willibandido@gmail.com>
Co-authored-by: Kominak Halalu <kominak310@svcache.com>
Co-authored-by: anoloth <anoloth@gmail.com>
Co-authored-by: worldspeak <septonimus@protonmail.com>
Co-authored-by: Bob B Success <mercelringoo@gmail.com>
Co-authored-by: Michael Telatynski <7t3chguy@googlemail.com>
Co-authored-by: Piotr Strebski <strebski@gmail.com>
Co-authored-by: Anderson Ivanovich <ivanovicha350@gmail.com>
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Co-authored-by: Clément Hampaï <clement.hampai@cypressxt.net>
2022-06-28 15:29:42 +01:00
Michael Telatynski 86f6d8c557 Update matrix-web-i18n (#382) 2022-06-27 20:31:59 +00:00
Michael Telatynski 3932acbe09 Upload artifacts from CI runs (#380) 2022-06-27 18:12:52 +01:00
Šimon Brandner 97c9378ddc Add new spell check ipc calls
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2022-06-26 11:43:08 +02:00
Michael Telatynski f00f33d7a9 Remove all mentions of Piwik (#378)
* Remove all mentions of Piwik

* Maintain privacy_policy_url
2022-06-14 16:14:08 +01:00
RiotRobot ef30f362a6 Merge branch 'master' into develop 2022-06-14 14:58:42 +01:00
RiotRobot 41deac302f v1.10.15 2022-06-14 14:58:08 +01:00
RiotRobot 6fa3cb2a3d Prepare changelog for v1.10.15 2022-06-14 14:58:07 +01:00
Michael Telatynski 40b77778f8 Abstract electron settings properly to avoid boilerplate-hell (#375)
(cherry picked from commit 840a69451b)
2022-06-14 14:54:20 +01:00
Michael Telatynski 840a69451b Abstract electron settings properly to avoid boilerplate-hell (#375) 2022-06-10 22:38:48 +01:00
Jan Christian GrünhageandMichael Telatynski fa5f42a627 support compilation on more targets (#376)
* support compilation on more targets

* Update scripts/hak/target.ts

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-06-10 20:51:34 +00:00
Robin e024a08271 Merge pull request #350 from robintown/video-rooms-beta
Make video rooms opt-out on Nightly
2022-06-09 13:08:06 -04:00
Robin Townsend d318ee88f0 Merge branch 'develop' into video-rooms-beta 2022-06-09 10:47:08 -04:00
Michael Telatynski 0779a3e6ae Update pull_request.yaml (#374) 2022-06-08 13:08:45 +01:00
Michael Telatynski 3758c96eb4 Add CI to improve experience for community (#373)
* Add CI to improve experience for community

* Fix close-if-fork-develop if-condition

* Extract into reusable workflow
2022-06-08 11:43:57 +01:00
RiotRobot c5cdf00f8c Merge branch 'master' into develop 2022-06-07 12:28:41 +01:00
RiotRobot 35d7c33f0c v1.10.14 2022-06-07 12:28:29 +01:00
RiotRobot 1d602fb2cc Prepare changelog for v1.10.14 2022-06-07 12:28:28 +01:00
Michael Telatynski 4cef2524ce Upgrade to Electron 19 (#372) 2022-06-02 16:03:16 -04:00
RiotRobot 3dc996ae4e v1.10.14-rc.1 2022-05-31 12:14:26 +01:00
RiotRobot f3ce61c2ef Prepare changelog for v1.10.14-rc.1 2022-05-31 12:14:25 +01:00
Michael Telatynski aa898fd1ad Github Actions pull_request synchronize runs on PR open anyway (#370)
* Github Actions pull_request synchronize runs on PR open anyway

* Update pull_request.yaml

* Update pull_request.yaml
2022-05-30 15:40:45 +01:00
Michael Telatynski 8c3c190856 Revert back to using libsqlcipher0 for Debian & Ubuntu packages of Desktop (#367)
* Revert back to using libsqlcipher0 for Debian & Ubuntu packages of Element Desktop

Add option to static link for linux instead of forcing it

* Fix linux variants and add CI job

* Fix workflow syntax and add concurrency

* public all the things
2022-05-27 09:15:47 +01:00
Michael Telatynski f1f659b6a0 Improve hak & build ia32 again by default (#369)
* Improve hak & build ia32 again by default

* Test both x86_64 and i686 in CI

* Improve macOS job name

* Try other things

* Iterating this is no fun

* Attempt again

* pwsh is the default, use cmd

* Update the incantation for 2022

* Avoid warning multiple times

* Consolidate build tool setup

* Move default targets to electron-builder and fix warnings
2022-05-26 23:05:59 +01:00
Michael Telatynski ec62b8b2cf Update windows-requirements.md (#368)
* Update windows-requirements.md

* Update windows-requirements.md
2022-05-26 20:58:27 +01:00
Michael Telatynski 282109c861 Fix gha concurrency conditions (#366) 2022-05-26 10:21:41 +01:00
Michael Telatynski ff3647e29a Remove stale release.sh parameter for no-jsdoc (#363) 2022-05-25 21:07:56 +00:00
RiotRobot 6b1f792e34 Merge branch 'master' into develop 2022-05-24 15:17:53 +01:00
RiotRobot 05072c94bb v1.10.13 2022-05-24 15:17:40 +01:00
RiotRobot a86c09fbaa Prepare changelog for v1.10.13 2022-05-24 15:17:39 +01:00
Michael Telatynski e50e04c507 Improve typing (#364)
* Improve typing

* Make sonar happier
2022-05-23 15:44:29 +01:00
James Salter d1f488a094 Merge pull request #365 from vector-im/disable-hardware-acceleration
Option to disable hardware acceleration
2022-05-23 11:49:58 +01:00
RiotRobot 7c5cb70abe Merge pull request #362 from vector-im/actions/upgrade-deps
Upgrade dependencies
2022-05-22 09:54:40 +01:00
Michael Telatynski 42ab878b08 Update Node Headers URL
https://www.electronjs.org/docs/latest/breaking-changes#deprecated-atomio-node-headers-url
2022-05-22 09:33:14 +01:00
James Salter f766cd0dca Add log line to denote disabling hardware acceleration 2022-05-20 13:37:58 +01:00
James Salter 1ebe1b549a Merge remote-tracking branch 'origin' into disable-hardware-acceleration 2022-05-20 13:29:14 +01:00
James Salter bf62a92b50 Read and write config option disableHardwareAcceleration 2022-05-20 13:26:16 +01:00
RiotRobot c4d9ae9836 v1.10.13-rc.2 2022-05-20 12:16:48 +01:00
RiotRobot c6128d7256 Prepare changelog for v1.10.13-rc.2 2022-05-20 12:16:48 +01:00
Michael Telatynski bce69efd37 Consolidate i18n check into a reusable workflow (#361)
* Fix i18n check bypass for RiotTranslateBot

* Consolidate i18n check into a reusable workflow
2022-05-20 00:01:07 +00:00
t3chguy 1386f9fac0 [create-pull-request] automated change 2022-05-17 19:03:24 +00:00
RiotRobot 5cfa518331 v1.10.13-rc.1 2022-05-17 19:43:49 +01:00
RiotRobot 3c702c2cae Prepare changelog for v1.10.13-rc.1 2022-05-17 19:43:49 +01:00
Michael Telatynski 2a2e6781c1 Update weblateToCounterpart to be more resilient (#360) 2022-05-17 16:50:22 +00:00
+27 970832ccfe Translations update from Weblate (#359)
* Added translation using Weblate (Vietnamese)

* Added translation using Weblate (English (United States))

* Translated using Weblate (English (United States))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/en_US/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Frisian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fy/

* Added translation using Weblate (Polish)

* Translated using Weblate (Polish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pl/

* Added translation using Weblate (Chinese (Traditional))

* Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hant/

* Added translation using Weblate (Slovak)

* Added translation using Weblate (Turkish)

* Translated using Weblate (Hebrew)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/he/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

* Added translation using Weblate (Norwegian Nynorsk)

* Translated using Weblate (Norwegian Nynorsk)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nn/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Icelandic)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/is/

* Added translation using Weblate (Persian)

* Translated using Weblate (German)

Currently translated at 97.7% (44 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/

* Translated using Weblate (Persian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fa/

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pt_BR/

* Translated using Weblate (Estonian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/et/

* Translated using Weblate (Italian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/it/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/hu/

* Translated using Weblate (German)

Currently translated at 97.7% (44 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Russian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ru/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/es/

* Translated using Weblate (Icelandic)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/is/

* Added translation using Weblate (Greek)

* Translated using Weblate (Greek)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/el/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sv/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nl/

* Added translation using Weblate (Telugu)

* Translated using Weblate (Finnish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fi/

* Translated using Weblate (Telugu)

Currently translated at 13.3% (6 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/te/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

* Added translation using Weblate (Esperanto)

* Added translation using Weblate (Bengali)

* Translated using Weblate (Bengali)

Currently translated at 6.6% (3 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/bn/

* Added translation using Weblate (Lao)

* Translated using Weblate (Lao)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/lo/

* Translated using Weblate (Esperanto)

Currently translated at 42.2% (19 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/eo/

* Added translation using Weblate (Fang (Equatorial Guinea))

* Translated using Weblate (Fang (Equatorial Guinea))

Currently translated at 4.4% (2 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fan/

* Deleted translation using Weblate (Fang (Equatorial Guinea))

Co-authored-by: Dinh Quang Tuyen <tuyen.dinh@aarenet.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: James Salter <iteration@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Fjoerfoks <fryskefirefox@gmail.com>
Co-authored-by: m1chj <8hm0nutuhsa9@opayq.com>
Co-authored-by: SiderealArt <nelson22768384@gmail.com>
Co-authored-by: Tomas <tominokov@gmail.com>
Co-authored-by: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-authored-by: Vulcan <element@zbug.anonaddy.com>
Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Bjørn I.Svindseth <bjorni.svindseth@yahoo.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: Bui Minh Duc <m.nhduc.bui1@gmail.com>
Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
Co-authored-by: Eshagh <ase.mugem@gmail.com>
Co-authored-by: Ben Parsons <ben@bpulse.co.uk>
Co-authored-by: lvre <7uu3qrbvm@relay.firefox.com>
Co-authored-by: Priit Jõerüüt <riot@joeruut.com>
Co-authored-by: random <dictionary@tutamail.com>
Co-authored-by: Szimszon <github@oregpreshaz.eu>
Co-authored-by: libexus <libexus@gmail.com>
Co-authored-by: Nikita Epifanov <NikGreens@protonmail.com>
Co-authored-by: iaiz <git@iapellaniz.com>
Co-authored-by: Theo <tbousiou@gmail.com>
Co-authored-by: LinAGKar <linus.kardell@gmail.com>
Co-authored-by: Johan Smits <johan@smitsmail.net>
Co-authored-by: vivekkoya <13vivekkoya@gmail.com>
Co-authored-by: Jiri Grönroos <jiri.gronroos@iki.fi>
Co-authored-by: Metehan Özyürek <metehanc8s9@yandex.com>
Co-authored-by: Vilhelmo Bandito <willibandido@gmail.com>
Co-authored-by: Kominak Halalu <kominak310@svcache.com>
Co-authored-by: anoloth <anoloth@gmail.com>
Co-authored-by: worldspeak <septonimus@protonmail.com>
Co-authored-by: Bob B Success <mercelringoo@gmail.com>
Co-authored-by: Michael Telatynski <7t3chguy@googlemail.com>
2022-05-17 17:16:24 +01:00
Michael Telatynski 168320d0e5 Make pull_request.yaml between the layers consistent and fix enforce labels (#358) 2022-05-13 18:51:20 +01:00
RiotRobot 1236fe1ebb Merge branch 'master' into develop 2022-05-10 15:30:34 +01:00
RiotRobot 2a218b4079 v1.10.12 2022-05-10 15:30:21 +01:00
RiotRobot 72b07704f3 Prepare changelog for v1.10.12 2022-05-10 15:30:20 +01:00
RiotRobot 434e79b637 v1.10.12-rc.2 2022-05-06 17:51:09 +01:00
RiotRobot df8d88d535 Prepare changelog for v1.10.12-rc.2 2022-05-06 17:51:08 +01:00
Michael Telatynski cc94bbea14 Add README badges (#357) 2022-05-04 21:33:33 +01:00
RiotRobot baf391ae0a Merge pull request #356 from vector-im/actions/upgrade-deps
Upgrade dependencies
2022-05-04 15:07:43 +01:00
t3chguy 283cc47ce1 [create-pull-request] automated change 2022-05-04 13:49:12 +00:00
Michael Telatynski fcdc8fa89e Create dependency upgrade action (#355) 2022-05-04 14:47:55 +01:00
Michael Telatynski a78b3dfd63 Tweak i18n ci rule to ignore RiotTranslateBot (#354) 2022-05-03 16:08:01 +01:00
RiotRobot a066b2ea9f v1.10.12-rc.1 2022-05-03 15:41:57 +01:00
RiotRobot 9d9615665c Prepare changelog for v1.10.12-rc.1 2022-05-03 15:41:57 +01:00
+24 ed24e44d4b Translations update from Weblate (#353)
* Added translation using Weblate (Vietnamese)

* Added translation using Weblate (English (United States))

* Translated using Weblate (English (United States))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/en_US/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Frisian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fy/

* Added translation using Weblate (Polish)

* Translated using Weblate (Polish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pl/

* Added translation using Weblate (Chinese (Traditional))

* Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hant/

* Added translation using Weblate (Slovak)

* Added translation using Weblate (Turkish)

* Translated using Weblate (Hebrew)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/he/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

* Added translation using Weblate (Norwegian Nynorsk)

* Translated using Weblate (Norwegian Nynorsk)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nn/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Icelandic)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/is/

* Added translation using Weblate (Persian)

* Translated using Weblate (German)

Currently translated at 97.7% (44 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/

* Translated using Weblate (Persian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fa/

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pt_BR/

* Translated using Weblate (Estonian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/et/

* Translated using Weblate (Italian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/it/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/hu/

* Translated using Weblate (German)

Currently translated at 97.7% (44 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Russian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ru/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/es/

* Translated using Weblate (Icelandic)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/is/

* Added translation using Weblate (Greek)

* Translated using Weblate (Greek)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/el/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sv/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nl/

* Added translation using Weblate (Telugu)

* Translated using Weblate (Finnish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fi/

* Translated using Weblate (Telugu)

Currently translated at 13.3% (6 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/te/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

* Added translation using Weblate (Esperanto)

* Added translation using Weblate (Bengali)

* Translated using Weblate (Bengali)

Currently translated at 6.6% (3 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/bn/

* Added translation using Weblate (Lao)

* Translated using Weblate (Lao)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/lo/

Co-authored-by: Dinh Quang Tuyen <tuyen.dinh@aarenet.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: James Salter <iteration@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Fjoerfoks <fryskefirefox@gmail.com>
Co-authored-by: m1chj <8hm0nutuhsa9@opayq.com>
Co-authored-by: SiderealArt <nelson22768384@gmail.com>
Co-authored-by: Tomas <tominokov@gmail.com>
Co-authored-by: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-authored-by: Vulcan <element@zbug.anonaddy.com>
Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Bjørn I.Svindseth <bjorni.svindseth@yahoo.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: Bui Minh Duc <m.nhduc.bui1@gmail.com>
Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
Co-authored-by: Eshagh <ase.mugem@gmail.com>
Co-authored-by: Ben Parsons <ben@bpulse.co.uk>
Co-authored-by: lvre <7uu3qrbvm@relay.firefox.com>
Co-authored-by: Priit Jõerüüt <riot@joeruut.com>
Co-authored-by: random <dictionary@tutamail.com>
Co-authored-by: Szimszon <github@oregpreshaz.eu>
Co-authored-by: libexus <libexus@gmail.com>
Co-authored-by: Nikita Epifanov <NikGreens@protonmail.com>
Co-authored-by: iaiz <git@iapellaniz.com>
Co-authored-by: Theo <tbousiou@gmail.com>
Co-authored-by: LinAGKar <linus.kardell@gmail.com>
Co-authored-by: Johan Smits <johan@smitsmail.net>
Co-authored-by: vivekkoya <13vivekkoya@gmail.com>
Co-authored-by: Jiri Grönroos <jiri.gronroos@iki.fi>
Co-authored-by: Metehan Özyürek <metehanc8s9@yandex.com>
Co-authored-by: Vilhelmo Bandito <willibandido@gmail.com>
Co-authored-by: Kominak Halalu <kominak310@svcache.com>
Co-authored-by: anoloth <anoloth@gmail.com>
2022-05-03 15:12:06 +01:00
Michael Telatynski 5f1f6b0b7a Allow changing the docker image name for in-docker.sh runs (#348) 2022-05-03 10:12:57 +00:00
dependabot[bot] 03c6345735 Bump ejs from 3.1.6 to 3.1.7 (#352)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-03 10:02:59 +00:00
Michael Telatynski 7fe2f1a648 Iterate CI checks (#351) 2022-05-03 10:39:52 +01:00
Robin Townsend 32cbcc308c Make video rooms opt-out on Nightly 2022-04-27 16:37:41 -04:00
Elijah LopezandMichael Telatynski fba2709119 Fix update from creating desktop shortcut (#333)
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-04-27 17:44:09 +01:00
RiotRobot a933331f82 Merge branch 'master' into develop 2022-04-26 12:24:50 +01:00
RiotRobot ed885b043b v1.10.11 2022-04-26 12:24:17 +01:00
RiotRobot 8f1dfa487b Prepare changelog for v1.10.11 2022-04-26 12:24:17 +01:00
Michael Telatynski ef075489b4 Upgrade node-kaytar for modern Visual Studio support & CI native building (#347) 2022-04-25 18:58:34 +01:00
Michael Telatynski 9838d89bdf Revert "Upgrade to Electron 18" (#346)
This reverts commit 4d67e0561d.
2022-04-22 19:33:22 +01:00
Michael Telatynski 7ad5c9b01c Fix macOS and Linux build regressions (#345)
* Fix macOS builds by pinning Typescript

Due to https://github.com/joyent/node-verror/issues/86

* Fix linux build, we no longer use tclsh

* Correct fix for linux build issue

* fix it for realsies this time
2022-04-22 14:40:16 +01:00
Timo Piiroinen fcfda67511 Allow loading language files with two part language code (#339)
* Change the imported filenames to inlcude underscore in two part language names. (issue #19218)

Signed-off-by: Timo Piiroinen <timo.piiroinen@unikie.com>

* Refactoring the code

Signed-off-by: Timo Piiroinen <timo.piiroinen@unikie.com>

* Refactored code and added comment

Signed-off-by: Timo Piiroinen <timo.piiroinen@unikie.com>
2022-04-22 12:16:04 +01:00
Michael Telatynski 4d67e0561d Upgrade to Electron 18 (#343) 2022-04-22 09:07:54 +00:00
Michael Telatynski b21c720510 Move more stuff from BK to GHA (#342) 2022-04-21 15:16:18 +01:00
Michael Telatynski d7ad6cdd62 Upgrade dependencies (#341) 2022-04-21 08:08:59 +01:00
Andrew Morgan 042d8b1427 Build statically-linked sqlcipher for Unix (#334) 2022-04-19 16:59:37 +01:00
RiotRobot bb973ead3f v1.10.11-rc.1 2022-04-19 15:28:59 +01:00
RiotRobot c2b1792776 Prepare changelog for v1.10.11-rc.1 2022-04-19 15:28:58 +01:00
+21 1caa4aeb1b Translations update from Weblate (#340)
* Added translation using Weblate (Vietnamese)

* Added translation using Weblate (English (United States))

* Translated using Weblate (English (United States))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/en_US/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Frisian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fy/

* Added translation using Weblate (Polish)

* Translated using Weblate (Polish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pl/

* Added translation using Weblate (Chinese (Traditional))

* Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hant/

* Added translation using Weblate (Slovak)

* Added translation using Weblate (Turkish)

* Translated using Weblate (Hebrew)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/he/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

* Added translation using Weblate (Norwegian Nynorsk)

* Translated using Weblate (Norwegian Nynorsk)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nn/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Icelandic)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/is/

* Added translation using Weblate (Persian)

* Translated using Weblate (German)

Currently translated at 97.7% (44 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/

* Translated using Weblate (Persian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fa/

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pt_BR/

* Translated using Weblate (Estonian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/et/

* Translated using Weblate (Italian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/it/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/hu/

* Translated using Weblate (German)

Currently translated at 97.7% (44 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Russian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ru/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/es/

* Translated using Weblate (Icelandic)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/is/

* Added translation using Weblate (Greek)

* Translated using Weblate (Greek)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/el/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sv/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nl/

* Added translation using Weblate (Telugu)

* Translated using Weblate (Finnish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fi/

* Translated using Weblate (Telugu)

Currently translated at 13.3% (6 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/te/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

Co-authored-by: Dinh Quang Tuyen <tuyen.dinh@aarenet.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: James Salter <iteration@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Fjoerfoks <fryskefirefox@gmail.com>
Co-authored-by: m1chj <8hm0nutuhsa9@opayq.com>
Co-authored-by: SiderealArt <nelson22768384@gmail.com>
Co-authored-by: Tomas <tominokov@gmail.com>
Co-authored-by: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-authored-by: Vulcan <element@zbug.anonaddy.com>
Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Bjørn I.Svindseth <bjorni.svindseth@yahoo.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: Bui Minh Duc <m.nhduc.bui1@gmail.com>
Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
Co-authored-by: Eshagh <ase.mugem@gmail.com>
Co-authored-by: Ben Parsons <ben@bpulse.co.uk>
Co-authored-by: lvre <7uu3qrbvm@relay.firefox.com>
Co-authored-by: Priit Jõerüüt <riot@joeruut.com>
Co-authored-by: random <dictionary@tutamail.com>
Co-authored-by: Szimszon <github@oregpreshaz.eu>
Co-authored-by: libexus <libexus@gmail.com>
Co-authored-by: Nikita Epifanov <NikGreens@protonmail.com>
Co-authored-by: iaiz <git@iapellaniz.com>
Co-authored-by: Theo <tbousiou@gmail.com>
Co-authored-by: LinAGKar <linus.kardell@gmail.com>
Co-authored-by: Johan Smits <johan@smitsmail.net>
Co-authored-by: vivekkoya <13vivekkoya@gmail.com>
Co-authored-by: Jiri Grönroos <jiri.gronroos@iki.fi>
Co-authored-by: Metehan Özyürek <metehanc8s9@yandex.com>
2022-04-19 14:06:07 +01:00
PF4Public 961a6f47cd Prevent packing of native modules (#337) 2022-04-19 10:04:30 +01:00
RiotRobot b11d1d7224 v1.10.10 2022-04-14 14:10:18 +01:00
RiotRobot 74829f8aa4 Prepare changelog for v1.10.10 2022-04-14 14:10:17 +01:00
RiotRobot 6d422df45c v1.10.9 2022-04-12 10:50:46 +01:00
RiotRobot 4b56c71f72 Prepare changelog for v1.10.9 2022-04-12 10:50:45 +01:00
+16 c37596e195 Translations update from Weblate (#335)
* Added translation using Weblate (Vietnamese)

* Added translation using Weblate (English (United States))

* Translated using Weblate (English (United States))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/en_US/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Frisian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fy/

* Added translation using Weblate (Polish)

* Translated using Weblate (Polish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pl/

* Added translation using Weblate (Chinese (Traditional))

* Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hant/

* Added translation using Weblate (Slovak)

* Added translation using Weblate (Turkish)

* Translated using Weblate (Hebrew)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/he/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

* Added translation using Weblate (Norwegian Nynorsk)

* Translated using Weblate (Norwegian Nynorsk)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nn/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Icelandic)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/is/

* Added translation using Weblate (Persian)

* Translated using Weblate (German)

Currently translated at 97.7% (44 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/

* Translated using Weblate (Persian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fa/

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pt_BR/

* Translated using Weblate (Estonian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/et/

* Translated using Weblate (Italian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/it/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/hu/

* Translated using Weblate (German)

Currently translated at 97.7% (44 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Russian)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ru/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/es/

* Translated using Weblate (Icelandic)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/is/

* Added translation using Weblate (Greek)

* Translated using Weblate (Greek)

Currently translated at 100.0% (45 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/el/

Co-authored-by: Dinh Quang Tuyen <tuyen.dinh@aarenet.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: James Salter <iteration@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Fjoerfoks <fryskefirefox@gmail.com>
Co-authored-by: m1chj <8hm0nutuhsa9@opayq.com>
Co-authored-by: SiderealArt <nelson22768384@gmail.com>
Co-authored-by: Tomas <tominokov@gmail.com>
Co-authored-by: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-authored-by: Vulcan <element@zbug.anonaddy.com>
Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Bjørn I.Svindseth <bjorni.svindseth@yahoo.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: Bui Minh Duc <m.nhduc.bui1@gmail.com>
Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
Co-authored-by: Eshagh <ase.mugem@gmail.com>
Co-authored-by: Ben Parsons <ben@bpulse.co.uk>
Co-authored-by: lvre <7uu3qrbvm@relay.firefox.com>
Co-authored-by: Priit Jõerüüt <riot@joeruut.com>
Co-authored-by: random <dictionary@tutamail.com>
Co-authored-by: Szimszon <github@oregpreshaz.eu>
Co-authored-by: libexus <libexus@gmail.com>
Co-authored-by: Nikita Epifanov <NikGreens@protonmail.com>
Co-authored-by: iaiz <git@iapellaniz.com>
Co-authored-by: Theo <tbousiou@gmail.com>
2022-04-05 17:52:19 +01:00
dependabot[bot] 6cae9fb3a2 Bump plist from 3.0.4 to 3.0.5 (#332)
Bumps [plist](https://github.com/TooTallNate/node-plist) from 3.0.4 to 3.0.5.
- [Release notes](https://github.com/TooTallNate/node-plist/releases)
- [Changelog](https://github.com/TooTallNate/plist.js/blob/master/History.md)
- [Commits](https://github.com/TooTallNate/node-plist/commits)

---
updated-dependencies:
- dependency-name: plist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-29 00:01:51 -06:00
RiotRobot 31b0bc1d06 v1.10.8 2022-03-28 16:32:55 +01:00
dependabot[bot] 281ecc0662 Bump minimist from 1.2.5 to 1.2.6 (#331)
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-25 17:26:22 -06:00
Michael Telatynski d8de60e17b Update Posthog URLs (#330) 2022-03-25 10:34:27 +00:00
+15 cf6140ac40 Translations update from Weblate (#329)
Co-authored-by: Dinh Quang Tuyen <tuyen.dinh@aarenet.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: James Salter <iteration@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Fjoerfoks <fryskefirefox@gmail.com>
Co-authored-by: m1chj <8hm0nutuhsa9@opayq.com>
Co-authored-by: SiderealArt <nelson22768384@gmail.com>
Co-authored-by: Tomas <tominokov@gmail.com>
Co-authored-by: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-authored-by: Vulcan <element@zbug.anonaddy.com>
Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Bjørn I.Svindseth <bjorni.svindseth@yahoo.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: Bui Minh Duc <m.nhduc.bui1@gmail.com>
Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
Co-authored-by: Eshagh <ase.mugem@gmail.com>
Co-authored-by: Ben Parsons <ben@bpulse.co.uk>
Co-authored-by: lvre <7uu3qrbvm@relay.firefox.com>
Co-authored-by: Priit Jõerüüt <riot@joeruut.com>
Co-authored-by: random <dictionary@tutamail.com>
Co-authored-by: Szimszon <github@oregpreshaz.eu>
Co-authored-by: libexus <libexus@gmail.com>
Co-authored-by: Nikita Epifanov <NikGreens@protonmail.com>
Co-authored-by: iaiz <git@iapellaniz.com>
2022-03-22 15:36:36 +00:00
RiotRobot b431898dcd Merge branch 'master' into develop 2022-03-15 14:47:51 +00:00
RiotRobot 153d0badf5 v1.10.7 2022-03-15 14:47:32 +00:00
RiotRobot c6b25e86eb Prepare changelog for v1.10.7 2022-03-15 14:47:31 +00:00
Michael Telatynski 0a070ac6ed Add copy variant for image-specific "copy link address" (#328) 2022-03-09 11:22:29 +00:00
+6 08f8f88508 Translations update from Weblate (#327)
* Added translation using Weblate (Vietnamese)

* Added translation using Weblate (English (United States))

* Translated using Weblate (English (United States))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/en_US/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Frisian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fy/

* Added translation using Weblate (Polish)

* Translated using Weblate (Polish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pl/

* Added translation using Weblate (Chinese (Traditional))

* Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hant/

* Added translation using Weblate (Slovak)

* Added translation using Weblate (Turkish)

* Translated using Weblate (Hebrew)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/he/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

* Added translation using Weblate (Norwegian Nynorsk)

* Translated using Weblate (Norwegian Nynorsk)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nn/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Icelandic)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/is/

Co-authored-by: Dinh Quang Tuyen <tuyen.dinh@aarenet.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: James Salter <iteration@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Fjoerfoks <fryskefirefox@gmail.com>
Co-authored-by: m1chj <8hm0nutuhsa9@opayq.com>
Co-authored-by: SiderealArt <nelson22768384@gmail.com>
Co-authored-by: Tomas <tominokov@gmail.com>
Co-authored-by: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-authored-by: Vulcan <element@zbug.anonaddy.com>
Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Bjørn I.Svindseth <bjorni.svindseth@yahoo.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: Bui Minh Duc <m.nhduc.bui1@gmail.com>
Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
2022-03-08 10:41:44 +00:00
RiotRobot 6e8aa5e308 Merge branch 'master' into develop 2022-03-01 12:09:39 +00:00
RiotRobot e1651f30b4 v1.10.6 2022-03-01 12:09:26 +00:00
RiotRobot e7cccf6ad1 Prepare changelog for v1.10.6 2022-03-01 12:09:26 +00:00
RiotRobot ce8d31f4ea Merge branch 'master' into develop 2022-02-28 17:38:23 +00:00
RiotRobot 07c11853f5 v1.10.5 2022-02-28 17:38:11 +00:00
RiotRobot 60e42e4cfa Prepare changelog for v1.10.5 2022-02-28 17:38:10 +00:00
James Salter 7fea56ed8b Update native-node-modules.md (#326) 2022-02-28 11:03:33 +00:00
+6 193487eb9e Translations update from Weblate (#325)
* Added translation using Weblate (Vietnamese)

* Added translation using Weblate (English (United States))

* Translated using Weblate (English (United States))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/en_US/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Frisian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fy/

* Added translation using Weblate (Polish)

* Translated using Weblate (Polish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pl/

* Added translation using Weblate (Chinese (Traditional))

* Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hant/

* Added translation using Weblate (Slovak)

* Added translation using Weblate (Turkish)

* Translated using Weblate (Hebrew)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/he/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

* Added translation using Weblate (Norwegian Nynorsk)

* Translated using Weblate (Norwegian Nynorsk)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nn/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Icelandic)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/is/

Co-authored-by: Dinh Quang Tuyen <tuyen.dinh@aarenet.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: James Salter <iteration@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Fjoerfoks <fryskefirefox@gmail.com>
Co-authored-by: m1chj <8hm0nutuhsa9@opayq.com>
Co-authored-by: SiderealArt <nelson22768384@gmail.com>
Co-authored-by: Tomas <tominokov@gmail.com>
Co-authored-by: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-authored-by: Vulcan <element@zbug.anonaddy.com>
Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Bjørn I.Svindseth <bjorni.svindseth@yahoo.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: Bui Minh Duc <m.nhduc.bui1@gmail.com>
Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
2022-02-22 10:49:54 +00:00
RiotRobot 0f54e90250 Merge branch 'master' into develop 2022-02-17 12:23:38 +00:00
RiotRobot 467e6189f7 v1.10.4 2022-02-17 12:23:26 +00:00
RiotRobot 5c527e3bc9 Prepare changelog for v1.10.4 2022-02-17 12:23:26 +00:00
James Salter f0107d64a9 Refactor the build docs into something easier to follow (#324)
* Refactor the build docs into something easier to follow

* fix typo
2022-02-16 11:25:14 +00:00
RiotRobot fb8fff7799 Merge branch 'master' into develop 2022-02-14 18:32:49 +00:00
RiotRobot 031043f2d8 v1.10.3 2022-02-14 18:32:37 +00:00
RiotRobot 926ecec65f Prepare changelog for v1.10.3 2022-02-14 18:32:36 +00:00
David BakerandAndy Balaam fb5490e8e8 Provide map style config for release (#321) (#322)
And update nightly from the trial version we were using.

Co-authored-by: Andy Balaam <mail@artificialworlds.net>
2022-02-14 18:02:13 +00:00
Andy Balaam 65a446db75 Provide map style config for release (#321)
And update nightly from the trial version we were using.
2022-02-14 17:53:32 +00:00
RiotRobot ca91532635 Merge branch 'master' into develop 2022-02-14 15:59:15 +00:00
RiotRobot 8f71628533 v1.10.2 2022-02-14 15:59:02 +00:00
RiotRobot 9359c38939 Prepare changelog for v1.10.2 2022-02-14 15:59:01 +00:00
Šimon Brandner 634c5c66a6 Switch to IPC channel for getDesktopCapturerSources (#320) 2022-02-11 10:38:19 +00:00
David Baker a80bc76e22 Upgrade to electron 17 (#318)
In theory, this might make https://github.com/vector-im/element-web/issues/20467 go away
2022-02-08 19:25:06 +00:00
David Baker 230657b1db Yarn upgrade (#317) 2022-02-08 19:17:09 +00:00
Michael Telatynski da6b3b02f2 Enable new search experience by default on Develop & Nightly (#314) 2022-02-08 14:03:01 +00:00
RiotRobot e2b9922d44 Merge branch 'master' into develop 2022-02-01 16:08:24 +00:00
RiotRobot 3421979db4 v1.10.1 2022-02-01 16:08:14 +00:00
RiotRobot 47f59a4840 Prepare changelog for v1.10.1 2022-02-01 16:08:13 +00:00
David Baker e3f3814a25 yarn upgrade (#313) 2022-01-31 17:06:55 +00:00
RiotRobot ec4057f7e5 v1.10.0 2022-01-31 15:09:41 +00:00
RiotRobot 275e228387 Prepare changelog for v1.10.0 2022-01-31 15:09:40 +00:00
Maxwell Clarke 61ed2a21c6 "Show/Hide" tray action shows window from background instead of hiding it. (#312) 2022-01-31 12:15:31 +00:00
David Baker 8fd24d2fa2 Downgrade to electron 15 (#311)
Attempt 2 of https://github.com/vector-im/element-desktop/pull/310 after conflicting dependabot PR

Due to https://github.com/vector-im/element-web/issues/20467
2022-01-26 16:45:58 +00:00
dependabot[bot] bfb96a33ba Bump node-fetch from 2.6.6 to 2.6.7 (#309)
Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.6 to 2.6.7.
- [Release notes](https://github.com/node-fetch/node-fetch/releases)
- [Commits](https://github.com/node-fetch/node-fetch/compare/v2.6.6...v2.6.7)

---
updated-dependencies:
- dependency-name: node-fetch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-26 16:35:36 +00:00
David Baker 0d37d8d8e9 Upgrade to electron 16.0.7 (#308)
Couple of minor fixes (although doesn't look like it fixes https://github.com/vector-im/element-web/issues/20467)

Also un-pin the version as we now can (and should) upgrade electron
as we would a regular dependency.
2022-01-26 13:31:39 +00:00
Faye Duxovni f4ee34cc56 Set app name for UISI autorageshakes in element.io configs (#307) 2022-01-25 10:57:10 -05:00
+5 379a9e9969 Translations update from Weblate (#306)
* Added translation using Weblate (Vietnamese)

* Added translation using Weblate (English (United States))

* Translated using Weblate (English (United States))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/en_US/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Frisian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fy/

* Added translation using Weblate (Polish)

* Translated using Weblate (Polish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pl/

* Added translation using Weblate (Chinese (Traditional))

* Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hant/

* Added translation using Weblate (Slovak)

* Added translation using Weblate (Turkish)

* Translated using Weblate (Hebrew)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/he/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

* Added translation using Weblate (Norwegian Nynorsk)

* Translated using Weblate (Norwegian Nynorsk)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nn/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

Co-authored-by: Dinh Quang Tuyen <tuyen.dinh@aarenet.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: James Salter <iteration@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Fjoerfoks <fryskefirefox@gmail.com>
Co-authored-by: m1chj <8hm0nutuhsa9@opayq.com>
Co-authored-by: SiderealArt <nelson22768384@gmail.com>
Co-authored-by: Tomas <tominokov@gmail.com>
Co-authored-by: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-authored-by: Vulcan <element@zbug.anonaddy.com>
Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Bjørn I.Svindseth <bjorni.svindseth@yahoo.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: Bui Minh Duc <m.nhduc.bui1@gmail.com>
2022-01-25 15:20:25 +00:00
Michael Telatynski 4b6983747e De-labs Metaspaces (#305) 2022-01-25 12:33:27 +00:00
RiotRobot 8027988239 Merge branch 'master' into develop 2022-01-17 14:37:10 +00:00
RiotRobot 025a8808b8 v1.9.9 2022-01-17 14:36:53 +00:00
RiotRobot 528a93a3a9 Prepare changelog for v1.9.9 2022-01-17 14:36:52 +00:00
David Baker 5b3301bb0e Upgrade docker iage to bionic (#303)
xenial is no longer in LTS, so the docker image just doesn't build
anymore (lacks the letsencrypt ISRG root cert that classic.yarnpkg.com
uses).

Upgrade to the next LTS (bionic).

The libcurl change essentally reverts a change made when changing
back to xenial initially (xenial had curl3 and bionic has 4, so
installing a different libcurl version caused curl itself to be
removed).

Headlines: The Linux build image has been updated to bionic. This version of element will use a newer glibc which will drop support for some older systems.
2022-01-14 16:24:46 +00:00
James Salter 747b596e8b Enable posthog in release (#302) 2022-01-13 16:55:44 +00:00
J. Ryan Stinnett 9aaeab2221 Use published matrix-web-i18n (#301) 2022-01-13 10:30:19 +00:00
J. Ryan Stinnett 87c5232ba5 Disable Git interactive auth when fetching deps (#298) 2022-01-12 11:02:51 +00:00
David Baker 771483d324 Yarn upgrade (#300) 2022-01-11 17:17:28 +00:00
Michael Telatynski 90359643ba Upgrade to Electron 16 (#299) 2022-01-11 16:15:08 +00:00
+4 ccade5eccf Translations update from Weblate (#297)
* Added translation using Weblate (Vietnamese)

* Added translation using Weblate (English (United States))

* Translated using Weblate (English (United States))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/en_US/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Frisian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fy/

* Added translation using Weblate (Polish)

* Translated using Weblate (Polish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pl/

* Added translation using Weblate (Chinese (Traditional))

* Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hant/

* Added translation using Weblate (Slovak)

* Added translation using Weblate (Turkish)

* Translated using Weblate (Hebrew)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/he/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

* Added translation using Weblate (Norwegian Nynorsk)

* Translated using Weblate (Norwegian Nynorsk)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nn/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

Co-authored-by: Dinh Quang Tuyen <tuyen.dinh@aarenet.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: James Salter <iteration@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Fjoerfoks <fryskefirefox@gmail.com>
Co-authored-by: m1chj <8hm0nutuhsa9@opayq.com>
Co-authored-by: SiderealArt <nelson22768384@gmail.com>
Co-authored-by: Tomas <tominokov@gmail.com>
Co-authored-by: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-authored-by: Vulcan <element@zbug.anonaddy.com>
Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Bjørn I.Svindseth <bjorni.svindseth@yahoo.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
2022-01-11 11:47:51 +00:00
Travis Ralston 79b0f14984 Fix git protocol usage for CI (#296)
Prevents this:
```
+ git clone git://github.com/matrix-org/matrix-js-sdk.git matrix-js-sdk --branch develop --depth 1
Cloning into 'matrix-js-sdk'...
fatal: remote error:
  The unauthenticated git protocol on port 9418 is no longer supported.
Please see https://github.blog/2021-09-01-improving-git-protocol-security-github/ for more information.
```
2022-01-11 09:06:07 +00:00
J. Ryan Stinnett 989e030d97 Update linting plugin (#294) 2022-01-10 12:57:33 +00:00
Michael Telatynski 531dde8bff Fix open button for downloads not working due to ipc filtering (#295) 2022-01-10 11:35:23 +00:00
Michael Telatynski 99ce48be8c Abstract electron download path behind an opaque id (#292) 2021-12-21 15:34:59 +00:00
RiotRobot f18be113c3 Merge branch 'master' into develop 2021-12-20 14:43:15 +00:00
RiotRobot 8b25178aed v1.9.8 2021-12-20 14:43:02 +00:00
RiotRobot eef3dfc724 Prepare changelog for v1.9.8 2021-12-20 14:43:02 +00:00
David Baker 37d7559d86 Change module mode for hak (#291)
Turns out the previous setting didn't work, and apparently this
needs to be CommonJS.
2021-12-15 15:40:26 +00:00
David BakerandMichael Telatynski 326e6577e1 Convert hak to TypeScript (#289)
* Convert hak to TypeScript

* Fix linter & remove stray log line

* Fix more linting errors

In one case by switching to import() and hence esnext

* Return type for getNodeModuleBin

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>

* More types

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2021-12-14 14:32:27 +00:00
+2 18500e7ec3 Translations update from Weblate (#290)
* Added translation using Weblate (Vietnamese)

* Added translation using Weblate (English (United States))

* Translated using Weblate (English (United States))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/en_US/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Frisian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fy/

* Added translation using Weblate (Polish)

* Translated using Weblate (Polish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pl/

* Added translation using Weblate (Chinese (Traditional))

* Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hant/

* Added translation using Weblate (Slovak)

* Added translation using Weblate (Turkish)

* Translated using Weblate (Hebrew)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/he/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sk/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/tr/

Co-authored-by: Dinh Quang Tuyen <tuyen.dinh@aarenet.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: James Salter <iteration@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Fjoerfoks <fryskefirefox@gmail.com>
Co-authored-by: m1chj <8hm0nutuhsa9@opayq.com>
Co-authored-by: SiderealArt <nelson22768384@gmail.com>
Co-authored-by: Tomas <tominokov@gmail.com>
Co-authored-by: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-authored-by: Vulcan <element@zbug.anonaddy.com>
Co-authored-by: Linerly <linerly@protonmail.com>
2021-12-14 13:06:46 +00:00
Michael Telatynski 1cd299b98e Update typescript-eslint plugin & parser (#286) 2021-12-13 23:34:46 +00:00
David Baker 3c8650065c Use app-builder-lib to get electron version (#288)
So we can get it the same way electron-builder does and not need
electronVersion in package.json
2021-12-13 21:15:17 +00:00
David Baker e2bdedfec1 Put electronVersion back (#287)
seems letting electron builder take it from the dependencies confuses
the keytar build process
2021-12-13 17:04:03 +00:00
RiotRobot aa6e4d5ce2 Merge branch 'master' into develop 2021-12-13 15:45:09 +00:00
RiotRobot 846a8df9a6 v1.9.7 2021-12-13 15:44:56 +00:00
RiotRobot eb8429ae9d Prepare changelog for v1.9.7 2021-12-13 15:44:56 +00:00
David Baker 89b1e39b80 Merge pull request from GHSA-mjrg-9f8r-h3m7
* Patch part 1: remove electronVersion

We no longer need to specify electronVersion at all since electron
is now in devDependencies. Removing it means electron can be updated
the same way as any other dependency.

* Only allow main app page to be opened via URL

We previously allowed any URL to be opened in the main electron
window. Allow only the main app page, as commented.

* use exact equals

* Make url logic clearer
2021-12-13 15:35:27 +00:00
David Baker b9880e2463 Merge pull request from GHSA-mjrg-9f8r-h3m7
* Patch part 1: remove electronVersion

We no longer need to specify electronVersion at all since electron
is now in devDependencies. Removing it means electron can be updated
the same way as any other dependency.

* Only allow main app page to be opened via URL

We previously allowed any URL to be opened in the main electron
window. Allow only the main app page, as commented.

* use exact equals

* Make url logic clearer
2021-12-13 15:09:53 +00:00
Michael Telatynski 7f292b12ea Update Typescript to 4.5 (#285) 2021-12-13 13:39:24 +00:00
Šimon Brandner 3599a015d7 Enable webgl (#284) 2021-12-10 14:55:35 +00:00
Michael Telatynski 0681fa81a4 Add map_style_url to Element Nightly (#282) 2021-12-06 17:08:57 +00:00
RiotRobot b79645adb4 v1.9.6 2021-12-06 15:43:57 +00:00
RiotRobot f52b10a63a Prepare changelog for v1.9.6 2021-12-06 15:43:56 +00:00
J. Ryan Stinnett e100388495 Upgrade allchange to 1.0.6 (#280) 2021-11-30 17:56:12 +00:00
aacb8cb349 Translations update from Weblate (#279)
* Added translation using Weblate (Vietnamese)

* Added translation using Weblate (English (United States))

* Translated using Weblate (English (United States))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/en_US/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

* Translated using Weblate (Frisian)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fy/

* Added translation using Weblate (Polish)

* Translated using Weblate (Polish)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pl/

* Added translation using Weblate (Chinese (Traditional))

* Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hant/

Co-authored-by: Dinh Quang Tuyen <tuyen.dinh@aarenet.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: James Salter <iteration@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Fjoerfoks <fryskefirefox@gmail.com>
Co-authored-by: m1chj <8hm0nutuhsa9@opayq.com>
Co-authored-by: SiderealArt <nelson22768384@gmail.com>
2021-11-30 17:38:00 +00:00
RiotRobot 20d9e2b14b v1.9.5 2021-11-22 14:44:25 +00:00
RiotRobot 9b96700daf Prepare changelog for v1.9.5 2021-11-22 14:44:24 +00:00
ffd6cf5ad7 Translations update from Weblate (#278)
* Added translation using Weblate (Vietnamese)

* Added translation using Weblate (English (United States))

* Translated using Weblate (English (United States))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/en_US/

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/vi/

Co-authored-by: Dinh Quang Tuyen <tuyen.dinh@aarenet.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: James Salter <iteration@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
2021-11-15 15:32:10 +00:00
Michael Telatynski 4a44ad0a8f Enable feature_spaces_metaspaces on Nightly (#277) 2021-11-11 13:07:49 +00:00
RiotRobot 548f22d438 v1.9.4 2021-11-08 18:05:01 +00:00
RiotRobot 145485326a Prepare changelog for v1.9.4 2021-11-08 18:05:00 +00:00
David Baker 8dd564a7dc Update allchange to 1.0.5 (#276) 2021-11-02 13:30:28 +00:00
12809ff4fd Translations update from Weblate (#275)
* Added translation using Weblate (Vietnamese)

* Added translation using Weblate (English (United States))

* Translated using Weblate (English (United States))

Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/en_US/

Co-authored-by: Dinh Quang Tuyen <tuyen.dinh@aarenet.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: James Salter <iteration@gmail.com>
2021-11-02 12:03:50 +00:00
RiotRobot 26e02eff94 Merge branch 'master' into develop 2021-10-25 11:49:06 +01:00
RiotRobot 4b23aaa31e v1.9.3 2021-10-25 11:48:54 +01:00
RiotRobot fc86ad3db0 Prepare changelog for v1.9.3 2021-10-25 11:48:54 +01:00
Travis Ralston 0af82dbbbd Update allchange (#273) 2021-10-19 18:21:33 +01:00
Germain 0c3736f3af Merge pull request #272 from RiotTranslateBot/weblate-element-desktop-element-desktop
Translations update from Weblate
2021-10-19 10:36:57 +01:00
Linerly 7af662cd38 Translated using Weblate (Indonesian)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/
2021-10-19 09:34:50 +00:00
Jiri Grönroos 4bc4eb74e2 Translated using Weblate (Finnish)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fi/
2021-10-13 19:25:35 +00:00
RiotRobot c68dcab7c6 Merge branch 'master' into develop 2021-10-12 09:15:46 +01:00
RiotRobot f53e12624e v1.9.2 2021-10-12 09:15:26 +01:00
RiotRobot 5cefdb028d Prepare changelog for v1.9.2 2021-10-12 09:15:25 +01:00
Michael Telatynski 48b01f7070 Merge pull request #271 from vector-im/t3chguy/fix/16942 2021-10-11 14:59:18 +01:00
RiotRobot 1122c41cc1 v1.9.1 2021-10-11 12:24:02 +01:00
RiotRobot 54d13516b7 Prepare changelog for v1.9.1 2021-10-11 12:24:02 +01:00
Michael Telatynski b662846bf1 Only set badgeCount on Mac/Linux because Windows is made of fail 2021-10-11 09:13:30 +01:00
Germain f5ee82a8ca Merge pull request #270 from vector-im/gsouquet/fix-19261 2021-10-06 11:36:43 +01:00
Germain Souquet c1bc40d9f8 Upgrade to electron 13.5.1
Fixes an issue where Element-desktop can not establish a connection with a homeserver that has a Let's Encrypt SSL certificate

Fixes vector-im/element-web#19261
2021-10-06 09:01:44 +01:00
Germain 62cb1a36c0 Merge pull request #269 from RiotTranslateBot/weblate-element-desktop-element-desktop
Translations update from Weblate
2021-10-04 11:46:31 +01:00
jelv 859889c3f3 Translated using Weblate (Dutch)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nl/
2021-09-30 08:25:31 +00:00
jelv 69c946132d Added translation using Weblate (Dutch) 2021-09-28 19:14:32 +00:00
James Salter 74a3e4fd8b Merge pull request #267 from vector-im/electron-13-5
Update to Electron 13.5
2021-09-28 16:23:18 +01:00
James Salter 048b7932bd Update electronVersion 2021-09-28 15:29:03 +01:00
James Salter 2fbb9ca630 Update to Electron 13.5 2021-09-28 15:23:22 +01:00
RiotRobot 67f6c60e52 v1.9.0 2021-09-27 15:20:34 +01:00
RiotRobot 452ab97314 Prepare changelog for v1.9.0 2021-09-27 15:20:34 +01:00
David Baker f48c5e7de4 Merge pull request #265 from vector-im/dbkr/revert_to_electron_13
Revert to electron 13
2021-09-17 11:09:14 +01:00
David Baker eaa515de07 Revert to electron 13
electron 14 has chrome 93 which isn't going to work with jitsi
2021-09-17 10:56:25 +01:00
David Baker b498885b2d Merge pull request #264 from vector-im/dbkr/yarnupgrade_20210914
yarn upgrade
2021-09-15 18:52:10 +01:00
David Baker db86a3f726 yarn upgrade
Remove `enableRemoteModule` which has now been removed from the types
(the default was false and has been for som time, we were passing
false anyway).
2021-09-15 18:27:50 +01:00
RiotRobot 6b35146f84 v1.8.5 2021-09-14 16:25:48 +01:00
RiotRobot 1659ce7624 changelog 2021-09-14 16:25:25 +01:00
RiotRobot 4e29b24f1e Merge branch 'master' into develop 2021-09-13 13:11:41 +01:00
RiotRobot 4fe261b3d0 v1.8.4 2021-09-13 13:11:28 +01:00
RiotRobot bf8a648fd4 changelog 2021-09-13 13:11:05 +01:00
James Salter 58d56f0068 Merge pull request #263 from vector-im/config-posthog-nightly
Enable posthog on nightly
2021-09-09 13:44:23 +01:00
James Salter 0e5e92015c Enable posthog on nightly 2021-09-09 11:19:25 +01:00
James Salter 6a4c1afe27 Merge pull request #262 from vector-im/config-sentry-nightly
Add config for sentry
2021-09-09 11:17:40 +01:00
James Salter bd7e74545a Add config for sentry 2021-09-08 17:20:41 +01:00
Travis Ralston c16c473dbf Merge pull request #261 from yu-re-ka/feature/fix-enable-features
Only set `enable-features` if the user hasn't
2021-09-06 22:36:26 -06:00
Yureka 96e5389779 Only set enable-features if the user hasn't 2021-09-06 16:18:16 +02:00
RiotRobot 798a042481 Merge branch 'master' into develop 2021-08-31 14:52:41 +01:00
RiotRobot fdf99f3d53 v1.8.2 2021-08-31 14:52:29 +01:00
RiotRobot fd16f79a23 Prepare changelog for v1.8.2 2021-08-31 14:52:28 +01:00
David Baker 2b5208f4e6 Merge pull request #259 from vector-im/dbkr/bump_dependencies
Update Dependencies
2021-08-31 13:09:06 +01:00
David Baker a6b038e207 Merge remote-tracking branch 'origin/develop' into dbkr/bump_dependencies 2021-08-31 13:06:23 +01:00
David Baker 2b4a8a6ca9 Merge pull request #260 from vector-im/dbkr/allchange102
Update changelog generator
2021-08-26 09:41:47 +01:00
David Baker 87ac970ee5 Update changelog generator 2021-08-25 17:21:54 +01:00
David Baker 010ad9825f more yarn upgrade
including allchange update
2021-08-25 09:47:26 +01:00
David Baker 31245c7c3a Seems latest electron is actually 13.2.2 2021-08-24 18:20:45 +01:00
David Baker f498c7de30 yarn upgrade 2021-08-24 18:20:23 +01:00
David Baker 58611e41d3 Bump electronVersion 2021-08-24 18:18:14 +01:00
David Baker 31a43aeb24 Merge pull request #258 from RiotTranslateBot/weblate-element-desktop-element-desktop
Translations update from Weblate
2021-08-24 13:33:09 +01:00
Martin Berg Alstad 836a99745c Translated using Weblate (Norwegian Bokmål)
Currently translated at 79.5% (35 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nb_NO/
2021-08-22 12:25:18 +00:00
Weblate 093dde799d Merge branch 'origin/develop' into Weblate. 2021-08-20 08:14:07 +00:00
David Baker df6fb175b3 Merge pull request #257 from vector-im/dbkr/element_io_release
Switch release build to new update URL
2021-08-20 09:14:04 +01:00
David Baker de6570c58e New domain for release build too 2021-08-18 17:12:35 +01:00
Weblate c9eb2379ef Merge branch 'origin/develop' into Weblate. 2021-08-18 14:06:06 +00:00
jonas siversten bc75eac336 Translated using Weblate (Norwegian Bokmål)
Currently translated at 75.0% (33 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nb_NO/
2021-08-18 14:06:06 +00:00
David Baker 4117f3f858 Merge pull request #256 from SimonBrandner/fix/screen-sharing-wayland/18607
Enable Pipewire support for Wayland screen-sharing
2021-08-18 15:06:02 +01:00
Šimon Brandner 96203a882c Enable Pipewire support
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-08-18 08:34:06 +02:00
Weblate 2b6d064fb5 Merge branch 'origin/develop' into Weblate. 2021-08-17 08:58:19 +00:00
RiotRobot 7a03dd2b0c Merge branch 'master' into develop 2021-08-17 09:58:15 +01:00
RiotRobot 03862cda8b v1.8.1 2021-08-17 09:58:02 +01:00
RiotRobot 6fd0c7c87e Prepare changelog for v1.8.1 2021-08-17 09:58:02 +01:00
Weblate 0dac5a3384 Merge branch 'origin/develop' into Weblate. 2021-08-16 22:23:26 +00:00
David Baker bdfc6ac35c Merge pull request #255 from vector-im/dbkr/electron_1319_take_two
Bump to electron 13.1.9
2021-08-16 23:23:23 +01:00
David Baker 71c46e7365 Bump to electron 13.1.9
...take two
2021-08-16 18:07:35 +01:00
Weblate ea30e1ab96 Merge branch 'origin/develop' into Weblate. 2021-08-16 14:30:31 +00:00
RiotRobot 9fde6791e5 v1.8.0 2021-08-16 15:29:14 +01:00
RiotRobot 13db0f5ea1 Prepare changelog for v1.8.0 2021-08-16 15:29:13 +01:00
Weblate 24a27bbd17 Merge branch 'origin/develop' into Weblate. 2021-08-16 12:31:02 +00:00
David Baker 8146de344b Merge pull request #253 from vector-im/dbkr/update_allchange
Update changelog generator
2021-08-16 13:30:58 +01:00
Weblate 30634ffedd Merge branch 'origin/develop' into Weblate. 2021-08-16 12:30:22 +00:00
David Baker 3e1a9e8db4 Fix date 2021-08-16 13:30:13 +01:00
David Baker ec8a406348 Update changelog generator 2021-08-16 13:18:14 +01:00
Safa Alfulaij 53d25e14e7 Translated using Weblate (Arabic)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ar/
2021-08-14 10:25:15 +00:00
David Baker 240c07c65d Merge pull request #252 from vector-im/dependabot/npm_and_yarn/jszip-3.7.1
Bump jszip from 3.6.0 to 3.7.1
2021-08-12 15:07:52 +01:00
dependabot[bot] 019f4fa22e Bump jszip from 3.6.0 to 3.7.1
Bumps [jszip](https://github.com/Stuk/jszip) from 3.6.0 to 3.7.1.
- [Release notes](https://github.com/Stuk/jszip/releases)
- [Changelog](https://github.com/Stuk/jszip/blob/master/CHANGES.md)
- [Commits](https://github.com/Stuk/jszip/compare/v3.6.0...v3.7.1)

---
updated-dependencies:
- dependency-name: jszip
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-12 14:03:20 +00:00
David Baker 45c5a4acb5 Merge pull request #251 from vector-im/dbkr/allchange_npm
Use changelog generator from npm
2021-08-12 15:02:35 +01:00
David Baker af8a686fac Use changelog generator from npm 2021-08-11 21:50:28 +01:00
David Baker 18a9b07218 Merge pull request #250 from RiotTranslateBot/weblate-element-desktop-element-desktop
Translations update from Weblate
2021-08-10 11:30:26 +01:00
Weblate f26ca3d61d Merge branch 'origin/develop' into Weblate. 2021-08-09 19:21:04 +00:00
David Baker 7e59fa6e21 Merge pull request #249 from vector-im/dbkr/preview_changelog
Add changelog preview action
2021-08-09 20:21:00 +01:00
Weblate 3a8bde850a Merge branch 'origin/develop' into Weblate. 2021-08-09 14:17:04 +00:00
David Baker 609677d9c1 Merge pull request #248 from vector-im/dbkr/mac_universal_update_path
Revert to generic update path for universal builds & switch to new domain
2021-08-09 15:17:01 +01:00
David Baker d24ae7b4c1 Switch to new domain (finally) 2021-08-09 14:55:26 +01:00
Linerly 368cdd4d20 Translated using Weblate (Indonesian)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/id/
2021-08-08 11:25:13 +00:00
Linerly 2631ceecb8 Added translation using Weblate (Indonesian) 2021-08-07 11:00:07 +00:00
David Baker 9133260b61 Add changelog preview action 2021-08-06 23:05:08 +01:00
David Baker e4afc40887 Revert to generic update path for universal builds 2021-08-06 22:47:37 +01:00
Weblate bedc4be8bd Merge branch 'origin/develop' into Weblate. 2021-08-06 16:05:17 +00:00
Germain 1ac971112f Merge pull request #246 from vector-im/gsouquet/tsconfig-types
Change tsconfig to autodiscover all @types packages rather setting them explicitely
2021-08-06 17:05:14 +01:00
Weblate 00bbd043d6 Merge branch 'origin/develop' into Weblate. 2021-08-06 15:48:44 +00:00
Germain a978ca52ec Merge pull request #247 from vector-im/gsouquet/codeowners
Add GitHub CODEOWNERS for Element desktop
2021-08-06 16:48:41 +01:00
Germain Souquet b1085f7a8c Add GitHub CODEOWNERS for Element desktop 2021-08-06 17:06:46 +02:00
Germain Souquet 986f728019 Change tsconfig to autodiscover all @types packages rather setting them explicitely 2021-08-06 17:02:29 +02:00
Weblate 254ac4e0b8 Merge branch 'origin/develop' into Weblate. 2021-08-04 09:02:29 +00:00
David Baker 394e3cde3a Merge pull request #244 from vector-im/dbkr/allchange
Switch to new changelog generator
2021-08-04 10:02:26 +01:00
Weblate b725ac99de Merge branch 'origin/develop' into Weblate. 2021-08-03 21:50:46 +00:00
Travis Ralston 63cefd4540 Merge pull request #245 from vector-im/dependabot/npm_and_yarn/tar-6.1.2
Bump tar from 6.1.0 to 6.1.2
2021-08-03 15:50:43 -06:00
dependabot[bot] bf5d3f0dc6 Bump tar from 6.1.0 to 6.1.2
Bumps [tar](https://github.com/npm/node-tar) from 6.1.0 to 6.1.2.
- [Release notes](https://github.com/npm/node-tar/releases)
- [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-tar/compare/v6.1.0...v6.1.2)

---
updated-dependencies:
- dependency-name: tar
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-03 21:49:20 +00:00
David Baker d8f14a4644 Switch to new changelog generator
See https://github.com/vector-im/element-web/pull/18370 / https://github.com/matrix-org/matrix-react-sdk/pull/6537 / https://github.com/matrix-org/matrix-js-sdk/pull/1824
2021-08-03 18:13:25 +01:00
Weblate f8f6a3c36d Merge branch 'origin/develop' into Weblate. 2021-08-03 16:18:34 +00:00
Vancha cce5816da5 Translated using Weblate (Frisian)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fy/
2021-08-03 16:18:34 +00:00
David Baker 291205170b Merge pull request #243 from vector-im/dbkr/argh_the_linting
Update eslint plugin & fix silly indenting
2021-08-03 17:18:31 +01:00
David Baker f174abb8b0 Update eslint plugin & fix silly indenting
As per matrix-org/eslint-plugin-matrix-org#15
this caused a bunch of silly indenting to creep in, so this fixes it
back to the previous style.
2021-08-03 17:12:28 +01:00
Vancha ab6b21d47b Added translation using Weblate (Frisian) 2021-08-03 11:06:47 +00:00
Weblate f1dd3d95ea Merge branch 'origin/develop' into Weblate. 2021-08-02 12:22:53 +00:00
Oskars G bdae96d939 Translated using Weblate (Latvian)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/lv/
2021-08-02 12:22:53 +00:00
RiotRobot 4ceb91b3ae v1.7.34 2021-08-02 13:22:32 +01:00
David Baker dbac457d14 Changelog for v1.7.34 2021-08-02 12:58:18 +01:00
Oskars G 511867e5f0 Added translation using Weblate (Latvian) 2021-08-01 00:46:57 +00:00
David Baker 731e5718e1 Merge pull request #242 from RiotTranslateBot/weblate-element-desktop-element-desktop
Translations update from Weblate
2021-07-27 13:52:01 +01:00
Weblate 0c823f5c2d Merge branch 'origin/develop' into Weblate. 2021-07-27 11:05:12 +00:00
David Baker 937f1c4b40 Merge pull request #241 from vector-im/t3chguy/fix/18087
Fix issue with Squirrel.Windows install/update handler not firing properly
2021-07-27 12:05:08 +01:00
Michael Telatynski 984a98b9df Fix issue with Squirrel.Windows install/update handler not firing properly 2021-07-27 11:47:44 +01:00
Weblate 905223517e Merge branch 'origin/develop' into Weblate. 2021-07-23 15:25:05 +00:00
Michael Telatynski 15600584ec Merge pull request #240 from vector-im/t3chguy/eslint1
Update matrix-org-eslint-plugin and tighten max warning limit
2021-07-23 16:25:01 +01:00
Michael Telatynski 2be7b56a2b Update matrix-org-eslint-plugin and tighten max warning limit
Whilst it is down, make the most of it!
2021-07-23 16:12:07 +01:00
Michael Mihai 39c56e6d6a Translated using Weblate (Romanian)
Currently translated at 84.0% (37 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ro/
2021-07-23 11:25:08 +00:00
David Baker c7dea97893 Merge pull request #239 from vector-im/dbkr/yarn_upgrade_210721
yarn upgrade
2021-07-21 15:57:28 +01:00
David Baker 928d8c5d56 yarn upgrade 2021-07-21 15:46:09 +01:00
David Baker a76d7796a8 Merge pull request #238 from vector-im/dbkr/electron13
Update to electron 13
2021-07-21 15:36:28 +01:00
David Baker 6aef1fc203 Update electron devDependency too 2021-07-21 15:34:12 +01:00
David Baker 3fb802e563 Update to electron 13
and to seshat 2.3.0 which supports it.
2021-07-21 15:27:49 +01:00
David Baker 1a38ca6fa7 Merge pull request #234 from vector-im/dbkr/pacote
Use pacote to fetch native modules
2021-07-21 15:26:40 +01:00
Michael Telatynski 3e69d1ec63 Merge pull request #237 from vector-im/t3chguy/eslint
Add lint:js-fix script
2021-07-20 09:18:42 +01:00
Michael Telatynski 0bdb69372f Update eslint-plugin-matrix-org 2021-07-20 09:15:26 +01:00
Michael Telatynski 0ac9454e3a Add lint:js-fix script 2021-07-19 22:49:17 +01:00
David Baker 63065761ed Merge pull request #236 from vector-im/dbkr/fix_docker_var_prefix
Fix docker variable passthrough
2021-07-19 20:36:11 +01:00
David Baker 71134c448d Fix docker variable passthrough 2021-07-19 20:09:13 +01:00
David Baker 290907a427 Merge pull request #235 from vector-im/dbkr/pass_through_indocker_env_vars
Pass through env vars with special prefix
2021-07-19 18:43:24 +01:00
David Baker bfcb1e6bfb Pass through env vars with special prefix 2021-07-19 18:38:30 +01:00
RiotRobot 494200d576 v1.7.33 2021-07-19 16:40:58 +01:00
RiotRobot 28cbc01d61 Prepare changelog for v1.7.33 2021-07-19 16:40:58 +01:00
David Baker ba0dd9e2a6 Use pacote to fetch native modules
Fact: 8 out of 10 native node module packages published to npm are broken.
Actual fact: npm has a library called pacote that handles resolving the
package specifier you put in your dependencies to files on disk, and it's
actually really nice.

Change hak to use that library so now it's much simpler, handles
versions correctly and supports git / github etc. urls so we can
specify dependencies from git when a package author only publishes
half of the package to npm.
2021-07-16 23:38:04 +01:00
David Baker 45eb1252b6 Bump electron to 12.0.14 2021-07-14 12:10:10 +01:00
David Baker b9e2fbbd23 Merge pull request #232 from RiotTranslateBot/weblate-element-desktop-element-desktop
Translations update from Weblate
2021-07-14 11:43:30 +01:00
Weblate 5febbeb681 Merge branch 'origin/develop' into Weblate. 2021-07-14 10:30:56 +00:00
Michael Telatynski 768066e764 Merge pull request #231 from SimonBrandner/ignore-vscode 2021-07-13 19:19:08 +01:00
Šimon Brandner e436b87e80 Ignore vscode
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-07-13 20:11:54 +02:00
Alex Henrie d5c395f509 Translated using Weblate (Catalan)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ca/
2021-07-10 08:25:03 +00:00
David Baker 7107f45cee Merge pull request #230 from vector-im/dbkr/windows_use_target_build_dir
Use the target-specific build dir for sqlcipher / openssl
2021-07-09 10:10:44 +01:00
David Baker bd85f19c15 Use the target-specific build dir for sqlcipher / openssl 2021-07-09 10:07:07 +01:00
HelaBasa e2697cd8b4 Translated using Weblate (Sinhala)
Currently translated at 65.9% (29 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/si/
2021-07-09 03:34:50 +00:00
JosephZERO 15ca3a3145 Translated using Weblate (Belarusian)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/be/
2021-07-09 03:34:50 +00:00
Alex Henrie e2829822a3 Added translation using Weblate (Catalan) 2021-07-08 17:36:32 +00:00
David Baker fac9f53bb6 Merge pull request #229 from vector-im/dbkr/fix_default_target
Fix not specifying a target
2021-07-08 09:18:06 +01:00
HelaBasa 3c324ad5f7 Added translation using Weblate (Sinhala) 2021-07-08 02:32:52 +00:00
David Baker d82377e2de Fix not specifying a target
ie. it should use whatever's detected
2021-07-07 21:38:09 +01:00
Germain 79a426b1c0 Merge pull request #227 from vector-im/gsouquet/ci-pure-lockfile
Do not generate a lockfile when running in CI
2021-07-07 17:53:38 +01:00
David Baker 00a91489a8 Merge pull request #228 from vector-im/dbkr/windows_compatible_quotes
Use double quotes in readme
2021-07-07 15:52:33 +01:00
David Baker b315b71e43 Use double quotes in readme
which work in the windows shell
2021-07-07 15:48:58 +01:00
Germain Souquet e132e1c610 Do not generate a lockfile when running in CI 2021-07-07 16:10:01 +02:00
JosephZERO 8592840143 Added translation using Weblate (Belarusian) 2021-07-07 11:24:46 +00:00
David Baker a8f44fd6e9 Merge pull request #226 from vector-im/dbkr/universally_speaking
Support universal builds
2021-07-07 11:19:26 +01:00
David Baker a22ba39e63 Use colons consistently in build scripts 2021-07-07 11:17:31 +01:00
David BakerandJ. Ryan Stinnett 3dd611b5d5 Address macos properly
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2021-07-07 11:01:45 +01:00
David Baker eed1252f33 Merge pull request #225 from vector-im/dbkr/no_rustup
Check target with rustc directly
2021-07-07 11:00:43 +01:00
David BakerandJ. Ryan Stinnett 9913b0ff78 Fix confused toolchain / target naming
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2021-07-07 10:58:54 +01:00
David Baker e07bfc1d6a Support universal builds
Hopefully adequately documented in the README
2021-07-06 23:52:19 +01:00
David Baker b5725da9ea lint 2021-07-06 19:06:58 +01:00
David Baker 5bbce91e51 Check target with rustc directly
To avoid depending on rustup (at least when not cross-compiling)
2021-07-06 19:01:34 +01:00
a5r0n 0aed8eac36 Translated using Weblate (Hebrew)
Currently translated at 97.7% (43 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/he/
2021-07-06 05:34:49 +00:00
RiotRobot ad337b1f7c v1.7.32 2021-07-05 16:55:20 +01:00
RiotRobot 8d380fe533 Prepare changelog for v1.7.32 2021-07-05 16:55:19 +01:00
a5r0n b6cd3c4cee Added translation using Weblate (Hebrew) 2021-07-05 04:51:02 +00:00
David Baker 6e7913c7d1 Merge pull request #224 from vector-im/dbkr/fix_rootdir
Fix the build: make the rootDir correct
2021-07-01 17:33:36 +01:00
David Baker 9cb171f953 Fix the build: make the rootDir correct 2021-07-01 17:18:26 +01:00
David Baker 44310712f3 Merge pull request #223 from vector-im/t3chguy/ts/10
Fix i18n in Element Desktop
2021-07-01 15:51:31 +01:00
Michael TelatynskiandJ. Ryan Stinnett 9b65962d26 Update scripts/copy-res.js
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2021-07-01 15:48:07 +01:00
Michael Telatynski 8302e284a3 delint 2021-07-01 12:03:38 +01:00
Michael Telatynski 390e2306d0 Fix i18n in Element Desktop 2021-07-01 11:32:09 +01:00
Michael Telatynski 60e61415ea Merge pull request #222 from vector-im/t3chguy/ts/10 2021-07-01 09:26:42 +01:00
Michael Telatynski f4be51959b disable require lint rule in couple more places 2021-07-01 09:24:02 +01:00
Michael Telatynski 397bc66522 fix ts linting and delint the world 2021-07-01 09:22:57 +01:00
Michael Telatynski 4db0a0ac0c Make eslint happy 2021-07-01 09:16:49 +01:00
Michael Telatynski d353c68a75 Convert preload.js to Typescript so that it gets copied to lib where we expect it 2021-07-01 09:11:42 +01:00
David Baker 0143b4b114 Merge pull request #221 from vector-im/dbkr/lib_not_src
Bundle the `lib` dir now, not `src`
2021-06-30 19:14:40 +01:00
David Baker 93dd8aa2ba Bbundle the lib dir now, not src 2021-06-30 18:56:48 +01:00
Michael Telatynski 140b0b8c29 Merge pull request #219 from vector-im/t3chguy/ts/d 2021-06-30 17:55:25 +01:00
David Baker 744050d8f4 Electron 12.0.12 2021-06-29 14:16:52 +01:00
David Baker 39f3e3b9c2 Merge pull request #220 from RiotTranslateBot/weblate-element-desktop-element-desktop
Translations update from Weblate
2021-06-29 14:14:43 +01:00
Weblate 43c8b13d75 Merge branch 'origin/develop' into Weblate. 2021-06-29 13:08:43 +00:00
Michael Telatynski 2d568f9688 iterate ts support 2021-06-29 11:41:08 +01:00
J. Ryan Stinnett 3f49046980 Merge pull request #218 from vector-im/jryans/aarch64-apple-darwin
Fix Windows target arch in native build
2021-06-25 14:36:05 +01:00
Michael Telatynski 53e7100033 Initial Typescripting for Element Desktop 2021-06-25 14:35:58 +01:00
J. Ryan Stinnett b8cb53e11b Fix Windows target arch in native build 2021-06-25 13:10:08 +01:00
J. Ryan Stinnett c751470abf Merge pull request #217 from vector-im/jryans/libera-chat
Add libera.chat to default room directory
2021-06-25 11:24:16 +01:00
J. Ryan Stinnett 9860ac6b75 Add libera.chat to default room directory 2021-06-25 10:59:16 +01:00
J. Ryan Stinnett 6e76d658b1 Merge pull request #216 from vector-im/jryans/aarch64-apple-darwin
Add update and native build support for Apple silicon
2021-06-24 15:37:02 +01:00
J. Ryan Stinnett 3aff9cb9eb Add generated file warning 2021-06-24 15:20:24 +01:00
J. Ryan Stinnett 6579ba80b4 More copyright headers 2021-06-24 15:11:57 +01:00
J. Ryan Stinnett 37410e6bc4 Log update URL 2021-06-24 14:45:35 +01:00
J. Ryan Stinnett b036113786 Revert "Prefer machine's native arch on macOS"
This reverts commit ebcd68428e.
2021-06-24 14:44:59 +01:00
Ridhubharan c579031afc Translated using Weblate (Tamil)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ta/
2021-06-23 19:34:45 +00:00
J. Ryan Stinnett ebcd68428e Prefer machine's native arch on macOS
This uses `uname` to check the machine's native architecture, and tries to
prefer builds for that, rather than continuing to use emulation.
2021-06-23 16:42:00 +01:00
J. Ryan Stinnett f63436a2cb Send the current arch when updating
This depends on further builder changes to actually place updates at this new
location for both architectures.
2021-06-23 16:18:10 +01:00
J. Ryan Stinnett c5dd6195f2 Fix copy command log 2021-06-23 16:18:10 +01:00
J. Ryan Stinnett c3a36bb17d Cross-compile matrix-seshat for aarch64-apple-darwin 2021-06-23 16:18:09 +01:00
J. Ryan Stinnett f3c1db3313 Cross-compile SQLCipher for aarch64-apple-darwin 2021-06-23 16:18:09 +01:00
J. Ryan Stinnett c57a173649 Check for Rust host and target support 2021-06-23 16:18:09 +01:00
J. Ryan Stinnett 48dc1ab396 Print rejections that reach the root handler 2021-06-23 16:18:09 +01:00
J. Ryan Stinnett 997f2c21bf Use targets in hak environment for cross-compiling
This arranges the hak environment target info around target IDs that come from
the builder, which simplifies cross-compiling. The `target.js` module is a
generated copy of the builder's `target.ts`.
2021-06-23 16:18:09 +01:00
J. Ryan Stinnett a171fa417b Borrow target definition from electron-builder
A bit hacky, but for now we paste in the JS generated version of the builder's
`target.ts` module. It's quite unlikely to change often, so this is perhaps
enough for now.
2021-06-23 16:18:09 +01:00
J. Ryan Stinnett 115f25165a Rename hak target to runtime version
The hak environment's `target` is more like a runtime version, so this renames
to call it that, especially since we're about to add more traditional target
strings. `npm_config_target` remains, since that's what `npm` expects.
2021-06-23 16:18:09 +01:00
J. Ryan Stinnett c1ca909c7c Limit macOS updates to x86_64 temporarily
As a temporary measure, this limits the updater on macOS to only supporting the
`x86_64` / `x64` architecture. This ensures `aarch64` users are not
inadvertently kicked back to `x86_64`.
2021-06-23 16:18:09 +01:00
Travis Ralston f61370505b Merge pull request #203 from dogancelik/numpad-zoom
Add numpad accelerators for zooming
2021-06-22 19:42:49 -06:00
Travis Ralston 02d0999b18 Merge pull request #201 from aaronraimist/invalid-config
Add warning dialog when custom config.json is invalid
2021-06-22 14:16:24 -06:00
Ridhubharan 5b15bc9b5d Added translation using Weblate (Tamil) 2021-06-22 17:30:41 +00:00
Michael Telatynski 6b4e6f6be6 Merge pull request #215 from alarsyo/develop 2021-06-22 15:43:27 +01:00
Antoine Martin 10a11242ff Don't show Quit warning on keyUp residual event
The warning triggered whenever the app got focus after another window
was closed with a Ctrl+Q shortcut and the keys were then released.

Hitting the 'Close Element' button didn't even close the app in this
case, as only the warning handler was triggered, not the actual quit
shortcut (which does discriminate between key press and key release).

Actually checking for 'keyDown' should prevent this from occurring
again.

Fixes vector-im/element-web#17714

Signed-off-by: Antoine Martin <antoine@alarsyo.net>
2021-06-22 16:35:36 +02:00
Michael Telatynski e59a2588ec Merge pull request #213 from vector-im/t3chguy/fix/17631
Fix accelerator for save-image-as clashing with copy-link-address
2021-06-22 09:27:18 +01:00
RiotRobot a7938ae514 v1.7.31 2021-06-21 17:10:17 +01:00
RiotRobot cf3112a9a9 Prepare changelog for v1.7.31 2021-06-21 17:10:17 +01:00
RiotRobot b23048c5ce v1.7.31-rc.1 2021-06-15 17:35:25 +01:00
RiotRobot c689529641 Prepare changelog for v1.7.31-rc.1 2021-06-15 17:35:24 +01:00
J. Ryan Stinnett 7b6ead738e Merge pull request #211 from xvenge00/electron-12.0.11
Upgrade to Electron 12.0.11
2021-06-15 15:44:37 +01:00
J. Ryan Stinnett b6b5547ad0 Merge pull request #214 from RiotTranslateBot/weblate-element-desktop-element-desktop
Translations update from Weblate
2021-06-15 15:42:56 +01:00
Weblate e28390fddb Merge branch 'origin/develop' into Weblate. 2021-06-15 14:42:37 +00:00
Michael Telatynski b18bcd9bed Fix accelerator for save-image-as clashing with copy-link-address 2021-06-14 22:38:37 +01:00
J. Ryan Stinnett b470657cdb Merge pull request #212 from vector-im/jryans/node-14
Upgrade to Node 14
2021-06-14 13:46:25 +01:00
J. Ryan Stinnett fc51063f7a Upgrade to Node 14 2021-06-14 12:17:15 +01:00
lvre 099ecc468a Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pt_BR/
2021-06-13 00:33:52 +00:00
Adam Venger 99b5947d7d Upgrade to Electron 12.0.11
Signed-off-by: Adam Venger <jawe1222@gmail.com>
2021-06-12 21:55:23 +02:00
lvre 7418161475 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pt_BR/
2021-06-11 22:08:08 +00:00
J. Ryan Stinnett 40be024c9f Merge pull request #210 from vector-im/dependabot/npm_and_yarn/npm-registry-fetch-4.0.7
Bump npm-registry-fetch from 4.0.2 to 4.0.7
2021-06-11 13:41:42 +01:00
J. Ryan Stinnett b2f09570f7 Merge pull request #204 from pavlukivan/update-electron-builder
Update electron-builder for Node 16 compatibility
2021-06-11 13:40:54 +01:00
dependabot[bot] c3f150f9f0 Bump npm-registry-fetch from 4.0.2 to 4.0.7
Bumps [npm-registry-fetch](https://github.com/npm/npm-registry-fetch) from 4.0.2 to 4.0.7.
- [Release notes](https://github.com/npm/npm-registry-fetch/releases)
- [Changelog](https://github.com/npm/npm-registry-fetch/blob/v4.0.7/CHANGELOG.md)
- [Commits](https://github.com/npm/npm-registry-fetch/compare/v4.0.2...v4.0.7)

---
updated-dependencies:
- dependency-name: npm-registry-fetch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-11 12:40:41 +00:00
J. Ryan Stinnett 8a90a12683 Merge pull request #209 from vector-im/dependabot/npm_and_yarn/hosted-git-info-2.8.9
Bump hosted-git-info from 2.8.5 to 2.8.9
2021-06-11 13:40:04 +01:00
J. Ryan Stinnett e7bc785ae4 Merge pull request #206 from vector-im/dependabot/npm_and_yarn/glob-parent-5.1.2
Bump glob-parent from 5.1.1 to 5.1.2
2021-06-11 13:39:54 +01:00
J. Ryan Stinnett d1cb3092e8 Merge pull request #208 from vector-im/dependabot/npm_and_yarn/dot-prop-4.2.1
Bump dot-prop from 4.2.0 to 4.2.1
2021-06-11 13:39:48 +01:00
J. Ryan Stinnett a136ccbf4c Merge pull request #207 from vector-im/dependabot/npm_and_yarn/y18n-3.2.2
Bump y18n from 3.2.1 to 3.2.2
2021-06-11 13:39:38 +01:00
dependabot[bot] 231db351ec Bump hosted-git-info from 2.8.5 to 2.8.9
Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.5 to 2.8.9.
- [Release notes](https://github.com/npm/hosted-git-info/releases)
- [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md)
- [Commits](https://github.com/npm/hosted-git-info/compare/v2.8.5...v2.8.9)

---
updated-dependencies:
- dependency-name: hosted-git-info
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-11 12:27:54 +00:00
dependabot[bot] 06b0f0fe01 Bump dot-prop from 4.2.0 to 4.2.1
Bumps [dot-prop](https://github.com/sindresorhus/dot-prop) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/sindresorhus/dot-prop/releases)
- [Commits](https://github.com/sindresorhus/dot-prop/compare/v4.2.0...v4.2.1)

---
updated-dependencies:
- dependency-name: dot-prop
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-11 12:27:52 +00:00
dependabot[bot] 4b71142a87 Bump glob-parent from 5.1.1 to 5.1.2
Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/gulpjs/glob-parent/releases)
- [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gulpjs/glob-parent/compare/v5.1.1...v5.1.2)

---
updated-dependencies:
- dependency-name: glob-parent
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-11 12:27:51 +00:00
dependabot[bot] 9726be5754 Bump y18n from 3.2.1 to 3.2.2
Bumps [y18n](https://github.com/yargs/y18n) from 3.2.1 to 3.2.2.
- [Release notes](https://github.com/yargs/y18n/releases)
- [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yargs/y18n/commits)

---
updated-dependencies:
- dependency-name: y18n
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-11 12:27:51 +00:00
J. Ryan Stinnett 2293b6794c Merge pull request #205 from vector-im/dependabot/npm_and_yarn/normalize-url-4.5.1
Bump normalize-url from 4.5.0 to 4.5.1
2021-06-11 13:27:23 +01:00
Ivan Pavluk 492bbcbe06 update electron-builder-squirrel-windows 2021-06-11 00:30:11 +07:00
dependabot[bot] 9cc1d91011 Bump normalize-url from 4.5.0 to 4.5.1
Bumps [normalize-url](https://github.com/sindresorhus/normalize-url) from 4.5.0 to 4.5.1.
- [Release notes](https://github.com/sindresorhus/normalize-url/releases)
- [Commits](https://github.com/sindresorhus/normalize-url/commits)

---
updated-dependencies:
- dependency-name: normalize-url
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-10 17:18:11 +00:00
Zachinquarantine c08b62015e Translated using Weblate (Croatian)
Currently translated at 25.0% (11 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/hr/
2021-06-08 18:34:39 +00:00
Zachinquarantine 03abf9f9d0 Added translation using Weblate (Croatian) 2021-06-07 18:26:19 +00:00
RiotRobot 69e4ec7287 Merge branch 'master' into develop 2021-06-07 17:54:39 +01:00
RiotRobot cf5e1eb4d4 v1.7.30 2021-06-07 17:54:24 +01:00
RiotRobot dd494103de Prepare changelog for v1.7.30 2021-06-07 17:54:24 +01:00
Ivan Pavlyuk 57ba22f874 Update electron-builder (Node 16 compat) 2021-06-07 23:25:13 +07:00
Doğan Çelik 225456b8e0 Add numpad accelerators for zooming
Signed-off-by: Doğan Çelik <dogancelik93@gmail.com>
2021-06-05 16:29:26 +03:00
Aaron Raimist 03e59aa60c Remove translation
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-06-04 17:18:02 -05:00
Michael Telatynski 330e230f2c Merge pull request #200 from aaronraimist/macos-preferences 2021-06-04 09:53:30 +01:00
Michael Telatynski dee2ecdf6c Merge pull request #202 from aaronraimist/zoomin 2021-06-04 09:50:18 +01:00
Aaron Raimist f109065606 lint
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-06-04 00:23:02 -05:00
Aaron Raimist 344800d835 Remove accelerator
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-06-04 00:16:51 -05:00
Aaron Raimist 8c99f0ad12 Switch zoomIn accelerator to CommandOrControl+Plus
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-06-04 00:07:05 -05:00
Aaron Raimist bc0e3bb317 Add warning dialog when custom config.json is invalid
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-06-03 23:39:33 -05:00
Aaron Raimist b7e4e9e075 Follow HIG: use ellipsis for Preferences menu item, add app name to About menu item
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-06-03 23:07:28 -05:00
Aaron Raimist 5055ad0aec Put Preferences menu item in correct location on macOS
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-06-03 22:56:06 -05:00
RiotRobot 8a1a315938 v1.7.30-rc.1 2021-06-01 16:32:41 +01:00
RiotRobot 5958166348 Prepare changelog for v1.7.30-rc.1 2021-06-01 16:32:41 +01:00
J. Ryan Stinnett 767445e6f6 Merge pull request #199 from RiotTranslateBot/weblate-element-desktop-element-desktop
Translations update from Weblate
2021-06-01 15:56:37 +01:00
Weblate 99a3a132b3 Merge branch 'origin/develop' into Weblate. 2021-06-01 14:52:58 +00:00
Percy 1b1c869419 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/zh_Hans/
2021-05-29 10:34:36 +00:00
Viorel-Cătălin Răpițeanu b67d48d661 Added translation using Weblate (Romanian) 2021-05-29 09:23:26 +00:00
Percy 922bed58ab Added translation using Weblate (Chinese (Simplified)) 2021-05-28 09:57:13 +00:00
J. Ryan Stinnett 7f28e3f1e2 Merge pull request #197 from vector-im/jryans/rework-linting
Migrate to `eslint-plugin-matrix-org`
2021-05-27 17:39:31 +01:00
J. Ryan Stinnett 2fca2151b9 Add linting deps 2021-05-27 17:35:05 +01:00
J. Ryan Stinnett 303a3d46f5 Upgrade plugin 2021-05-27 17:33:52 +01:00
J. Ryan Stinnett 8de0368c7c Merge pull request #198 from vector-im/jryans/electron-12.0.9
Upgrade to Electron 12.0.9
2021-05-27 15:13:32 +01:00
J. Ryan Stinnett 950657a364 Upgrade to Electron 12.0.9
This is a patch release upgrade only.
2021-05-27 15:11:43 +01:00
J. Ryan Stinnett bc0f370821 Fall back to instance properties 2021-05-27 14:45:06 +01:00
J. Ryan Stinnett 1455687384 Auto-fix lint errors 2021-05-27 14:45:06 +01:00
J. Ryan Stinnett 3efed87d38 Migrate to eslint-plugin-matrix-org
Switch to the new linting package. It offers a new shared config for native
JavaScript, which this package targets.
2021-05-27 14:35:11 +01:00
RiotRobot 0c43287f98 v1.7.29 2021-05-24 17:49:30 +01:00
RiotRobot c539f603dc Prepare changelog for v1.7.29 2021-05-24 17:49:30 +01:00
Justas Zabulionis b2d00f6605 Translated using Weblate (Swedish)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sv/
2021-05-23 15:34:33 +00:00
RiotRobot 27bce3b92b v1.7.29-rc.1 2021-05-19 15:39:33 +01:00
RiotRobot 439ea006bf Prepare changelog for v1.7.29-rc.1 2021-05-19 15:39:33 +01:00
J. Ryan Stinnett 315a2107d3 Merge pull request #196 from RiotTranslateBot/weblate-element-desktop-element-desktop
Translations update from Weblate
2021-05-19 13:54:41 +01:00
Weblate 43527fb609 Merge branch 'origin/develop' into Weblate. 2021-05-19 12:54:15 +00:00
lvre 3c946967ce Translated using Weblate (Portuguese (Brazil))
Currently translated at 95.4% (42 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/pt_BR/
2021-05-18 20:34:32 +00:00
lvre 0a17382901 Added translation using Weblate (Portuguese (Brazil)) 2021-05-17 19:29:28 +00:00
RiotRobot d3508f3039 Merge branch 'master' into develop 2021-05-17 14:06:54 +01:00
RiotRobot 0f6f947254 v1.7.28 2021-05-17 14:06:36 +01:00
RiotRobot bebed00200 Prepare changelog for v1.7.28 2021-05-17 14:06:35 +01:00
Trendyne 40a248a275 Translated using Weblate (Icelandic)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/is/
2021-05-16 13:34:31 +00:00
Trendyne c86ad29b3d Added translation using Weblate (Icelandic) 2021-05-15 12:45:22 +00:00
J. Ryan Stinnett 8ade746fec Merge pull request #195 from RiotTranslateBot/weblate-element-desktop-element-desktop
Translations update from Weblate
2021-05-11 17:47:39 +01:00
Weblate 2733b2ad11 Merge branch 'origin/develop' into Weblate. 2021-05-11 16:47:01 +00:00
RiotRobot d74631a555 v1.7.28-rc.1 2021-05-11 17:00:25 +01:00
RiotRobot 944bb3c717 Prepare changelog for v1.7.28-rc.1 2021-05-11 17:00:25 +01:00
Germain 7fad439078 Merge pull request #190 from vector-im/gsouquet-windows-requirements 2021-05-11 12:43:46 +01:00
GermainandJ. Ryan Stinnett f98d1672af Suggest installing Build tools rather than Visual Studio
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2021-05-11 12:41:24 +01:00
RiotRobot debeef6ee6 Merge branch 'master' into develop 2021-05-10 15:39:35 +01:00
RiotRobot 28096f3a22 v1.7.27 2021-05-10 15:39:19 +01:00
RiotRobot 5efc4528a2 Prepare changelog for v1.7.27 2021-05-10 15:39:19 +01:00
random b216eca07a Translated using Weblate (Italian)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/it/
2021-05-08 08:34:28 +00:00
zer0-x 5ad645f024 Translated using Weblate (Arabic)
Currently translated at 22.7% (10 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ar/
2021-05-06 00:34:28 +00:00
J. Ryan Stinnett 75b41d65c1 Merge pull request #192 from aaronraimist/close-fullscreen-macos
Prevent black screen when closing window while in full screen mode on macOS
2021-05-05 16:54:48 +01:00
Aaron Raimist cc5dc4d801 Prevent black screen when closing window while in full screen mode on macOS
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-05-04 21:55:32 -05:00
zer0-x c4aeaadfbd Added translation using Weblate (Arabic) 2021-05-04 23:59:48 +00:00
RiotRobot 7e34425d78 v1.7.27-rc.1 2021-05-04 16:10:00 +01:00
RiotRobot 5f09505056 Prepare changelog for v1.7.27-rc.1 2021-05-04 16:09:59 +01:00
J. Ryan Stinnett 9def502c95 Merge pull request #191 from RiotTranslateBot/weblate-element-desktop-element-desktop
Translations update from Weblate
2021-05-04 15:34:05 +01:00
J. Ryan Stinnett e09b01f303 Merge pull request #187 from vector-im/dependabot/npm_and_yarn/ssri-6.0.2
Bump ssri from 6.0.1 to 6.0.2
2021-05-04 15:32:52 +01:00
Weblate 32aacbdd9a Merge branch 'origin/develop' into Weblate. 2021-05-04 14:31:35 +00:00
Ville Ranki e1554cbbe0 Translated using Weblate (Finnish)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fi/
2021-05-04 13:34:27 +00:00
Ville Ranki 2b8c378773 Added translation using Weblate (Finnish) 2021-05-03 12:17:56 +00:00
iaiz fe7bf57565 Translated using Weblate (Spanish)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/es/
2021-05-02 13:34:27 +00:00
Priit Jõerüüt cbaad79515 Translated using Weblate (Estonian)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/et/
2021-05-02 13:34:27 +00:00
Martin Berg Alstad a7a8115b17 Translated using Weblate (Norwegian Bokmål)
Currently translated at 2.2% (1 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nb_NO/
2021-05-02 13:34:27 +00:00
random e694a8e30e Translated using Weblate (Italian)
Currently translated at 95.4% (42 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/it/
2021-05-02 13:34:27 +00:00
Felicia Jongleur cda4f8ccb4 Translated using Weblate (Swedish)
Currently translated at 88.6% (39 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sv/
2021-05-02 13:34:27 +00:00
rkfg 4369b3a5ad Translated using Weblate (Russian)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ru/
2021-05-02 13:34:26 +00:00
iaiz 933d0b80bf Added translation using Weblate (Spanish) 2021-05-01 12:38:39 +00:00
Priit Jõerüüt 043e006f3b Added translation using Weblate (Estonian) 2021-04-30 21:17:27 +00:00
libexus 2a1acf0525 Translated using Weblate (German)
Currently translated at 95.4% (42 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/
2021-04-30 14:39:20 +00:00
Martin Berg Alstad 820e32e250 Added translation using Weblate (Norwegian Bokmål) 2021-04-30 13:14:50 +00:00
J. Ryan Stinnett 20e4459bb5 Merge pull request #180 from tomvaneyck/hardware-media
Disables HardwareMediaKeyHandling
2021-04-30 13:01:53 +01:00
libexus 913c954eeb Added translation using Weblate (German) 2021-04-29 15:02:06 +00:00
Germain Souquet b5fdeddec3 Add Windows native module requirements 2021-04-29 15:36:10 +01:00
random 38dab479b1 Added translation using Weblate (Italian) 2021-04-29 08:15:11 +00:00
XoseM f385b1f1d5 Translated using Weblate (Galician)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/gl/
2021-04-29 06:34:26 +00:00
Szimszon 298ccbe16c Translated using Weblate (Hungarian)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/hu/
2021-04-29 06:34:26 +00:00
vintergatan b8c99c6186 Translated using Weblate (Swedish)
Currently translated at 72.7% (32 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sv/
2021-04-29 06:34:26 +00:00
rkfg ca70486323 Translated using Weblate (Russian)
Currently translated at 86.3% (38 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ru/
2021-04-29 06:34:25 +00:00
Thibault Martin 4bee175f16 Translated using Weblate (French)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fr/
2021-04-29 06:34:25 +00:00
XoseM 628b37a2d1 Added translation using Weblate (Galician) 2021-04-28 06:10:32 +00:00
Szimszon 9daf5ae413 Added translation using Weblate (Hungarian) 2021-04-27 17:57:43 +00:00
vintergatan 19c8c5f580 Added translation using Weblate (Swedish) 2021-04-27 16:02:25 +00:00
Travis Ralston 989b4df6c6 Merge pull request #189 from RiotTranslateBot/weblate-element-desktop-element-desktop
Translations update from Weblate
2021-04-27 09:11:00 -06:00
rkfg 21c40b796f Translated using Weblate (Russian)
Currently translated at 79.5% (35 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ru/
2021-04-27 15:10:33 +00:00
Thibault Martin ccb302b951 Translated using Weblate (French)
Currently translated at 72.7% (32 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fr/
2021-04-27 15:10:33 +00:00
rkfg 7d29046cba Translated using Weblate (Russian)
Currently translated at 75.0% (33 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ru/
2021-04-27 15:10:21 +00:00
Thibault Martin 9c3e557333 Translated using Weblate (French)
Currently translated at 70.4% (31 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fr/
2021-04-27 15:10:21 +00:00
rkfg 6a7735247e Translated using Weblate (Russian)
Currently translated at 13.6% (6 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ru/
2021-04-27 15:06:51 +00:00
Germain c0f5ed15e2 Translated using Weblate (French)
Currently translated at 18.1% (8 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fr/
2021-04-27 15:06:51 +00:00
Thibault Martin 56d9a86152 Translated using Weblate (French)
Currently translated at 18.1% (8 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fr/
2021-04-27 15:06:51 +00:00
rkfg 82def5ce37 Added translation using Weblate (Russian) 2021-04-27 15:05:35 +00:00
Germain 5ec91d3a53 Added translation using Weblate (French) 2021-04-27 15:01:32 +00:00
dependabot[bot] 8b69982023 Bump ssri from 6.0.1 to 6.0.2
Bumps [ssri](https://github.com/npm/ssri) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/npm/ssri/releases)
- [Changelog](https://github.com/npm/ssri/blob/v6.0.2/CHANGELOG.md)
- [Commits](https://github.com/npm/ssri/compare/v6.0.1...v6.0.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-27 14:51:39 +00:00
Germain 7e69c81e62 Merge pull request #188 from vector-im/gsouquet-i18n-td 2021-04-27 15:50:19 +01:00
Germain Souquet e64e6e642c Upgrade matrix-web-i18n to use matrix prefixed binaries 2021-04-27 15:10:20 +01:00
RiotRobot 7f24661357 Merge branch 'master' into develop 2021-04-26 18:13:06 +01:00
RiotRobot c19baadcd3 v1.7.26 2021-04-26 18:12:16 +01:00
RiotRobot ada58f826a Prepare changelog for v1.7.26 2021-04-26 18:12:15 +01:00
Germain Souquet 46b1015478 Fix typo in _t function declaration 2021-04-26 17:14:55 +01:00
Germain Souquet 8ae641bc59 Set appropriate appMenu submenu role 2021-04-26 17:12:13 +01:00
Germain Souquet 8f4c827089 change translate widget project ID 2021-04-26 16:59:24 +01:00
Germain Souquet 20ce3d10a3 add missing copyright header 2021-04-26 16:58:22 +01:00
Germain Souquet 72483a60cb Add diff-i18n script for CI 2021-04-26 16:22:33 +01:00
Travis Ralston de16099360 Add required weblate basefile 2021-04-26 09:11:30 -06:00
Germain Souquet ae0213b663 Move i18n scripts in its own module 2021-04-26 16:00:10 +01:00
Germain Souquet b9510d0a0b use _t over _td for consistency with element-web 2021-04-26 14:50:18 +01:00
Germain Souquet c56aa9100f appease max line length linting rule 2021-04-26 14:38:00 +01:00
Germain Souquet d59384f3e7 Add internationalisation documentation 2021-04-26 14:19:48 +01:00
Germain Souquet 00ba42186b Add labels to role-only menu item to have consistent languages in menu 2021-04-26 14:14:35 +01:00
Germain Souquet e950303966 stop using experimental class private methods 2021-04-26 14:13:32 +01:00
Germain Souquet 105070716e Make application react to element-web language change 2021-04-26 13:58:29 +01:00
Germain 3b4eb5c18e Merge pull request #186 from vector-im/gsouquet-eventindex-freshinstall 2021-04-26 09:43:56 +01:00
Germain Souquet 658304cc51 Wrap all strings in _td function for i18n 2021-04-23 16:56:17 +01:00
Germain Souquet b7dd4e53a3 Ensure new passphrase is stored in keytar 2021-04-23 15:35:09 +01:00
Germain Souquet 1fa6671a17 Remove change passphrase logic and rely on keytar 2021-04-23 15:17:50 +01:00
RiotRobot 6526127998 v1.7.26-rc.1 2021-04-21 17:48:52 +01:00
RiotRobot b640d5e7e4 Prepare changelog for v1.7.26-rc.1 2021-04-21 17:48:52 +01:00
Germain Souquet 3f9495f19d Fix event index passphrase change process 2021-04-21 12:20:29 +01:00
Hubert Chathi 1ff5387f1d Merge pull request #170 from hiqua/develop
Remove Debian dependency libappindicator3-1
2021-04-19 14:06:19 -04:00
Germain 5ae736e861 Merge pull request #185 from vector-im/gsouquet-exit-shortcut
Fix exit shortcuts for non QWERTY keyboards
2021-04-15 17:25:44 +01:00
Germain Souquet 29d22aefd7 Fix exit shortcuts for non QWERTY keyboards 2021-04-15 16:50:35 +01:00
Germain 11602bb578 Merge pull request #182 from tsnowlan/remove-missing-setDebVersion 2021-04-14 11:40:38 +01:00
Tor Solli-NowlanandGermain 46ee80837a Update scripts/fetch-package.js
Co-authored-by: Germain <germain@souquet.com>
2021-04-14 12:34:53 +02:00
Tor Solli-Nowlan 97178f4297 setDebVersion function no longer exists
Signed-off-by: Tor Solli-Nowlan <tor.solli-nowlan@medisin.uio.no>
2021-04-13 12:22:32 +02:00
RiotRobot cd93f29691 Merge branch 'master' into develop 2021-04-12 15:35:40 +01:00
RiotRobot 48132c9eab v1.7.25 2021-04-12 15:35:26 +01:00
RiotRobot 4f58ba1b22 Prepare changelog for v1.7.25 2021-04-12 15:35:25 +01:00
Quentin Hibon 955be8417b Use libappindicator3-1 as Recommends dep 2021-04-10 22:48:37 +02:00
Quentin Hibon c136f2cafc Remove Debian dependency libappindicator3-1
libappindicator has been deprecated by Debian[0] and will not be shipped from
Debian Bullseye on.

[0]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=895037
2021-04-10 22:48:37 +02:00
Travis Ralston adfa845d9c Merge pull request #181 from vector-im/travis/no-staging
Switch nightly to not-staging Scalar by default
2021-04-07 10:31:18 -06:00
Travis Ralston 017cfd70f4 Switch nightly to not-staging Scalar by default 2021-04-07 10:21:33 -06:00
RiotRobot d63c27c50a v1.7.25-rc.1 2021-04-07 13:17:54 +01:00
RiotRobot 7edea00d4e Prepare changelog for v1.7.25-rc.1 2021-04-07 13:17:54 +01:00
J. Ryan Stinnett ce26e7964d Merge pull request #179 from SimonBrandner/disable-spell-check
Fix disabling spellchecker
2021-04-07 12:07:50 +01:00
Tom Van EyckandŠimon Brandner 14a65fb0af Clarify HardwareMediaKeyHandling disable flag.
Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com>
Signed-off-by: Tom Van Eyck <tom.vaneyck@telenet.be>
2021-04-03 14:26:08 +02:00
Tom Van Eyck cdbda52d9a Disabled HardwareMediaKeyHandling, fixes vector-im/element-web#15704
Signed-off-by: Tom Van Eyck <tom.vaneyck@telenet.be>
2021-04-02 16:52:30 +02:00
Šimon Brandner 55dffc8c52 Fix disabling spellchecker
This is quite ugly. We have to use the store here to get this working since spellCheckerEnabled isn't persistent

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-04-02 12:07:33 +02:00
J. Ryan Stinnett 100f08161d Merge pull request #178 from vector-im/jryans/electron-12.0.2
Upgrade to Electron 12.0.2
2021-04-01 17:22:22 +01:00
Germain d4bf14b47f Merge pull request #177 from vector-im/gsouquet-exit-shortcut 2021-04-01 15:25:57 +01:00
J. Ryan Stinnett dabca5dc33 Upgrade electron-builder to 22.10.5
This upgrade will help prepare us for macOS aarch64 support
(https://github.com/vector-im/element-web/issues/16075) as well as pulling in
other smaller fixes.
2021-04-01 12:11:56 +01:00
J. Ryan Stinnett d11a7e77ac Upgrade to Electron 12.0.2
This is a [major release](https://www.electronjs.org/blog/electron-12-0)
upgrade. There are a few breaking changes, but none seem to affect us.

We believe moving to Electron 12 will help with some graphics issues on certain
systems.

Fixes https://github.com/vector-im/element-web/issues/15869
2021-04-01 12:11:56 +01:00
Germain Souquet adfb4a424a remove unused imports 2021-04-01 09:30:15 +01:00
Germain Souquet 5fc871492e make shortcut pressed variable more explanatory 2021-03-31 17:18:39 +01:00
Germain 3c68fe796f Merge pull request #176 from vector-im/gsouquet-docs
Migrate native-node-modules docs to element-desktop
2021-03-31 12:53:09 +01:00
GermainandJ. Ryan Stinnett a996aff19b Update punctuation for native module docs
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2021-03-31 12:51:22 +01:00
Germain Souquet 84990559ec Avoid exit listener to hijack other application shortcuts 2021-03-31 08:58:24 +01:00
Germain Souquet fdf216ca75 Clarify native modules build options 2021-03-30 09:38:19 +01:00
Germain Souquet f460cfa99a Migrate native-node-modules docs to element-desktop 2021-03-29 16:01:11 +01:00
RiotRobot d2bc3a8a03 Merge branch 'master' into develop 2021-03-29 13:49:40 +01:00
RiotRobot 6a107f7095 v1.7.24 2021-03-29 13:49:24 +01:00
RiotRobot ff4ebd4b39 Prepare changelog for v1.7.24 2021-03-29 13:49:24 +01:00
Germain 76eef82274 Merge pull request #173 from vector-im/gsouquet-warn-before-exit 2021-03-29 12:12:27 +01:00
Germain Souquet d986555517 Only prompt exit warning for keyboard shortcuts 2021-03-29 12:10:27 +01:00
J. Ryan Stinnett 939c5b4588 Merge pull request #172 from vector-im/jryans/electron-11.4.1
Upgrade to Electron 11.4.1
2021-03-26 09:59:56 +00:00
Germain f51001a460 Merge pull request #174 from vector-im/gsouquet-fix-dockerbuild-typo
Fix docker:build:native documentation typo
2021-03-25 17:38:42 +00:00
Germain db2fd9dd53 Fix docker:build:native documentation typo 2021-03-25 15:40:47 +00:00
Germain Souquet 3d18ff16d1 Attempt to minimise the window first rather than exiting 2021-03-25 14:50:33 +00:00
Germain Souquet 9cdea580d3 Remove checkbox options for exit dialog 2021-03-25 14:34:02 +00:00
Germain Souquet 68587e84ed Add user settings for warn before exit 2021-03-25 14:15:04 +00:00
J. Ryan Stinnett 58be4c62f7 Upgrade to Electron 11.4.1 2021-03-25 13:57:29 +00:00
Germain Souquet c9c0ceb757 Add prompt to warn before quitting the application 2021-03-25 12:46:10 +00:00
RiotRobot a46698559f v1.7.24-rc.1 2021-03-25 12:36:14 +00:00
RiotRobot c18b213699 Prepare changelog for v1.7.24-rc.1 2021-03-25 12:36:14 +00:00
RiotRobot b309562244 v1.7.23 2021-03-15 15:05:22 +00:00
RiotRobot 6c6a7d1bd6 Prepare changelog for v1.7.23 2021-03-15 15:05:21 +00:00
RiotRobot 6bff9f9a20 v1.7.23-rc.1 2021-03-11 10:13:06 +00:00
RiotRobot 42139ec30d Prepare changelog for v1.7.23-rc.1 2021-03-11 10:13:05 +00:00
J. Ryan Stinnett 6edc4cb965 Merge pull request #171 from SimonBrandner/fix-disabling-spell-check
Fix disabling spell-checker
2021-03-08 14:11:20 +00:00
Šimon Brandner 121bba1f35 Set an empty array to disable spell-checker
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-03-03 14:49:07 +01:00
J. Ryan Stinnett b8adc66898 Merge pull request #154 from SimonBrandner/feature-multi-language-spell-check
Add multi language spell check
2021-03-02 14:38:37 +00:00
RiotRobot 323c42bb72 v1.7.22 2021-03-01 13:28:11 +00:00
RiotRobot 8e51f6299c Prepare changelog for v1.7.22 2021-03-01 13:28:10 +00:00
RiotRobot 888ce434ff v1.7.22-rc.1 2021-02-24 17:44:10 +00:00
RiotRobot a223489511 Prepare changelog for v1.7.22-rc.1 2021-02-24 17:44:10 +00:00
Šimon Brandner 9ca19d7de6 Use getSpellCheckLanguages() instead of a setting
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-02-18 20:12:47 +01:00
Šimon Brandner dce524f5bc Use try-catch
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-02-18 18:39:51 +01:00
Šimon Brandner 48d66c0031 Merge branch 'feature-multi-language-spell-check' of https://github.com/SimonBrandner/element-desktop into feature-multi-language-spell-check 2021-02-18 18:30:37 +01:00
Šimon Brandner 36438479fc Merge branch 'develop' into feature-multi-language-spell-check 2021-02-18 18:25:21 +01:00
Šimon BrandnerandJ. Ryan Stinnett f51acb78e0 Update src/electron-main.js
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2021-02-18 18:05:37 +01:00
RiotRobot 343215925a Merge branch 'master' into develop 2021-02-16 11:24:49 +00:00
RiotRobot a535efc1cc v1.7.21 2021-02-16 11:24:31 +00:00
RiotRobot 57496d89e5 Prepare changelog for v1.7.21 2021-02-16 11:24:31 +00:00
J. Ryan Stinnett 5dc9ba94ca Merge pull request #169 from vector-im/jryans/disable-countly
Disable Countly
2021-02-11 15:26:55 +00:00
J. Ryan Stinnett 3d519f571f Disable Countly
The Countly experiment has ended, so this removes the configuration to enable
it.
2021-02-11 15:18:45 +00:00
J. Ryan Stinnett d9702e2f92 Merge pull request #168 from vector-im/jryans/electron-11.2.3
Upgrade to Electron 11.2.3
2021-02-10 20:40:30 +00:00
RiotRobot 23ecc8573d v1.7.21-rc.1 2021-02-10 17:07:33 +00:00
RiotRobot 7199a697f4 Prepare changelog for v1.7.21-rc.1 2021-02-10 17:07:33 +00:00
J. Ryan Stinnett ecbcafe9ea Upgrade to Electron 11.2.3
No breaking changes, so let's see how this works for a wider audience. In
particular, we'll want to check
https://github.com/vector-im/element-web/issues/15869 again.
2021-02-10 16:52:47 +00:00
David Baker 8828838e8a Merge pull request #161 from SimonBrandner/fix-screen-sharing
Fix desktop Matrix screen sharing
2021-02-08 13:54:57 +00:00
RiotRobot c7c56f2f97 v1.7.20 2021-02-04 12:42:04 +00:00
RiotRobot 2c619a3a3f Prepare changelog for v1.7.20 2021-02-04 12:42:04 +00:00
RiotRobot a4f6d68001 v1.7.19 2021-02-03 12:31:40 +00:00
RiotRobot d4c48f68ec Prepare changelog for v1.7.19 2021-02-03 12:31:40 +00:00
RiotRobot 6ce89b667e v1.7.19-rc.1 2021-01-29 17:40:02 +00:00
RiotRobot d9bfd239c5 Prepare changelog for v1.7.19-rc.1 2021-01-29 17:40:01 +00:00
RiotRobot 030fe38834 Merge branch 'master' into develop 2021-01-26 12:31:31 +00:00
RiotRobot 70c3446339 v1.7.18 2021-01-26 12:31:13 +00:00
RiotRobot de0e7483a9 Prepare changelog for v1.7.18 2021-01-26 12:31:13 +00:00
J. Ryan Stinnett 0b01b32e98 Merge pull request #167 from vector-im/jryans/rm-buildkite
Remove Buildkite pipeline file
2021-01-25 12:46:51 +00:00
J. Ryan Stinnett f7e5d0aa5f Remove Buildkite pipeline file
These are managed from a separate repo now
(https://github.com/matrix-org/pipelines).
2021-01-25 12:37:38 +00:00
J. Ryan Stinnett 21f3847ccc Merge pull request #166 from vector-im/jryans/upgrade-deps-2021-01-18
Upgrade deps 2021-01-18
2021-01-20 10:54:00 +00:00
J. Ryan Stinnett e826c04c03 Upgrade various misc packages 2021-01-18 15:50:23 +00:00
J. Ryan Stinnett 39404a62e6 Upgrade electron-store 2021-01-18 15:46:07 +00:00
J. Ryan Stinnett 4b7a442a73 Upgrade electron-window-state
This may help with window disappearing issues on monitor change.
2021-01-18 15:43:10 +00:00
J. Ryan Stinnett 6de76f5b02 Upgrade Electron packaging utils 2021-01-18 15:40:58 +00:00
RiotRobot 7058196c25 Merge branch 'master' into develop 2021-01-18 15:26:34 +00:00
RiotRobot 1cd2ce9d34 v1.7.17 2021-01-18 15:26:16 +00:00
RiotRobot 542e2c6891 Prepare changelog for v1.7.17 2021-01-18 15:26:16 +00:00
J. Ryan Stinnett 03ce222464 Merge pull request #165 from vector-im/bump-seshat-release
[Release] package: Bump our seshat version
2021-01-18 10:57:40 +00:00
Damir Jelić 00fd261dc1 package: Bump our seshat version 2021-01-15 13:07:33 +00:00
J. Ryan Stinnett 74ebc6cb22 Merge pull request #164 from vector-im/bump-seshat2
package: Bump our seshat version
2021-01-15 11:45:31 +00:00
Damir Jelić a64516483b package: Bump our seshat version 2021-01-15 12:18:26 +01:00
Šimon Brandner 44c8f2c30f Merge 'upstream/develop' and use contextBridge
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-01-14 08:31:52 +01:00
J. Ryan Stinnett faa217c767 Merge pull request #163 from vector-im/jryans/context-isolation
Enable context isolation, bridge expected IPC
2021-01-13 16:50:26 +00:00
J. Ryan Stinnett 5ad0967b07 Enable context isolation, bridge expected IPC
This enables Electron's context isolation mode as recommended in their guidance.
We use the context bridge feature to regain access to only the IPC channels we
expect to have access to.
2021-01-13 15:21:00 +00:00
RiotRobot cda9f3f190 v1.7.17-rc.1 2021-01-13 13:20:56 +00:00
RiotRobot 2c2addb282 Prepare changelog for v1.7.17-rc.1 2021-01-13 13:20:56 +00:00
J. Ryan Stinnett 19515b614f Merge pull request #162 from vector-im/bump-seshat
package: Bump our Seshat version
2021-01-12 11:48:08 +00:00
Damir Jelić b646f78897 package: Bump our Seshat version 2021-01-12 12:45:30 +01:00
Šimon Brandner 3b496c362b Don't wait for loaded
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-01-05 19:45:34 +01:00
Šimon Brandner c4b7e856db Expose desktopCapturer instead of the awfullness
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2020-12-26 08:28:35 +01:00
Šimon Brandner cb1626cb9f Merge branch 'develop' into fix-screen-sharing 2020-12-25 16:28:16 +01:00
Šimon Brandner a36321b697 Some improvements
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2020-12-25 16:24:21 +01:00
Šimon Brandner 353f5b35df Fix screen-sharing
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2020-12-25 15:54:13 +01:00
RiotRobot 8ae1a518fa Merge branch 'master' into develop 2020-12-21 17:50:26 +00:00
RiotRobot edea42e30e v1.7.16 2020-12-21 17:50:09 +00:00
RiotRobot fafd8fb206 Prepare changelog for v1.7.16 2020-12-21 17:50:09 +00:00
J. Ryan Stinnett f9e61d09c9 Merge pull request #159 from vector-im/jryans/electron-10.2.0
Upgrade to Electron 10.2.0
2020-12-17 18:53:12 +00:00
J. Ryan Stinnett 974514e2e6 Upgrade to Electron 10.2.0 2020-12-17 12:18:51 +00:00
RiotRobot b8d0d990bb v1.7.16-rc.1 2020-12-16 16:47:35 +00:00
RiotRobot ed1b9247c1 Prepare changelog for v1.7.16-rc.1 2020-12-16 16:47:35 +00:00
J. Ryan Stinnett d3adfe3777 Merge pull request #158 from vector-im/dependabot/npm_and_yarn/ini-1.3.8
Bump ini from 1.3.5 to 1.3.8
2020-12-14 12:17:45 +00:00
dependabot[bot] d45007cd1b Bump ini from 1.3.5 to 1.3.8
Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.8.
- [Release notes](https://github.com/isaacs/ini/releases)
- [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.8)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-12 03:11:34 +00:00
RiotRobot ed00cfada3 Merge branch 'master' into develop 2020-12-07 13:05:07 +00:00
RiotRobot 3a660b2461 v1.7.15 2020-12-07 13:04:50 +00:00
RiotRobot c6bbff5ffe Prepare changelog for v1.7.15 2020-12-07 13:04:50 +00:00
J. Ryan Stinnett fa8aef94af Merge pull request #157 from vector-im/jryans/add-gitter
Add gitter.im to room directory
2020-12-04 11:06:23 +00:00
J. Ryan Stinnett b7c31f17b5 Add gitter.im to room directory 2020-12-04 11:01:33 +00:00
Šimon Brandner 62b6aa26ff Merge branch 'develop' into feature-multi-language-spell-check 2020-12-03 12:03:56 +01:00
RiotRobot d69f2a6d44 v1.7.15-rc.1 2020-12-02 15:07:44 +00:00
J. Ryan Stinnett c1ed8ab377 Merge pull request #156 from vector-im/jryans/electron-10.x-rollback
Revert back to the 10.x series
2020-12-02 12:22:08 +00:00
J. Ryan Stinnett df1c7f2498 Revert back to the 10.x series
The latest 11.x still exhibits
https://github.com/vector-im/element-web/issues/15869, so let's try the latest
10.x version instead.
2020-12-02 12:17:03 +00:00
Šimon Brandner 0d00f3ea6c Fix more formatting 2020-12-01 20:27:09 +01:00
Šimon Brandner 2ef3c8c1ab Fix formatting 2020-12-01 20:22:51 +01:00
Šimon Brandner e373c03b2a Cleanup 2020-12-01 20:19:12 +01:00
J. Ryan Stinnett 99c13923ea Merge pull request #155 from vector-im/jryans/electron-11.0.3
Upgrade to Electron 11.0.3
2020-12-01 12:42:52 +00:00
J. Ryan Stinnett 80cb503c48 Upgrade to Electron 11.0.3
We're hoping this may help with frozen window issues in https://github.com/vector-im/element-web/issues/15869.
2020-12-01 12:40:04 +00:00
Šimon Brandner 107efba6f3 Added getAvailableSpellCheckLanguages case 2020-11-29 20:50:57 +01:00
J. Ryan Stinnett 239bab38ca Merge pull request #153 from vector-im/jryans/rebrand-packaged-artifact
Update branding of packaging artifacts
2020-11-25 11:16:57 +00:00
J. Ryan Stinnett e952b479ac Update branding of packaging artifacts
This updates the names of various packaging and build artifacts to match current
branding.

Part of https://github.com/vector-im/element-web/issues/14896
2020-11-24 12:48:37 +00:00
J. Ryan Stinnett 231ac2bbb9 Merge pull request #152 from vector-im/jryans/electron-11.0.1
Upgrade to Electron 11.0.1
2020-11-23 19:00:25 +00:00
RiotRobot 58543cacc8 v1.7.14 2020-11-23 16:54:03 +00:00
RiotRobot 8582e360b5 Prepare changelog for v1.7.14 2020-11-23 16:54:03 +00:00
J. Ryan Stinnett 0e919f9992 Upgrade to Electron 11.0.1
No breaking changes we need to adjust for as far as I can tell. Tested on macOS
only so far, appears to be working.
2020-11-18 16:56:35 +00:00
RiotRobot b0a5003eaa v1.7.14-rc.1 2020-11-18 16:38:21 +00:00
RiotRobot 6c0d8d5bda Prepare changelog for v1.7.14-rc.1 2020-11-18 16:38:21 +00:00
J. Ryan Stinnett 302f25054a Merge pull request #151 from EdwardBetts/spelling
Correct spelling mistakes
2020-11-16 13:27:47 +00:00
Edward Betts 82c88ca654 Correct spelling mistakes 2020-11-14 21:54:07 +00:00
RiotRobot b9b7dcb264 v1.7.13 2020-11-09 16:44:51 +00:00
RiotRobot 90d5612548 Prepare changelog for v1.7.13 2020-11-09 16:44:50 +00:00
RiotRobot e4583ed752 v1.7.13-rc.1 2020-11-04 14:25:33 +00:00
RiotRobot 20dace2679 Prepare changelog for v1.7.13-rc.1 2020-11-04 14:25:32 +00:00
Michael Telatynski bc7231fb00 Merge pull request #150 from vector-im/t3chguy/countly
Add countly experiment to develop/nightly configs
2020-10-30 13:09:09 +00:00
Michael Telatynski 270daf1356 Add countly experiment to develop/nightly configs 2020-10-30 10:32:21 +00:00
RiotRobot 4957e9e24f v1.7.12 2020-10-28 15:12:32 +00:00
RiotRobot 7be314caf8 Prepare changelog for v1.7.12 2020-10-28 15:12:32 +00:00
RiotRobot 2b0ec9eb2f v1.7.11 2020-10-26 17:24:28 +00:00
RiotRobot 5220abbfd4 Prepare changelog for v1.7.11 2020-10-26 17:24:28 +00:00
RiotRobot 272f317415 v1.7.11-rc.1 2020-10-21 14:54:46 +01:00
RiotRobot 0023fb25a2 Prepare changelog for v1.7.11-rc.1 2020-10-21 14:54:46 +01:00
RiotRobot 783117fea9 Merge branch 'master' into develop 2020-10-20 11:31:41 +01:00
RiotRobot 4e61aad299 v1.7.10 2020-10-20 11:31:22 +01:00
RiotRobot 94dee7bece Prepare changelog for v1.7.10 2020-10-20 11:31:22 +01:00
Travis Ralston 92f57ca880 Merge pull request #148 from vector-im/dependabot/npm_and_yarn/npm-user-validate-1.0.1
Bump npm-user-validate from 1.0.0 to 1.0.1
2020-10-16 13:40:10 -06:00
dependabot[bot] 7bd70e2eb6 Bump npm-user-validate from 1.0.0 to 1.0.1
Bumps [npm-user-validate](https://github.com/npm/npm-user-validate) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/npm/npm-user-validate/releases)
- [Commits](https://github.com/npm/npm-user-validate/compare/v1.0.0...v1.0.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-10-16 19:33:28 +00:00
Damir Jelić 8add8d7717 electron-main: Fix some lint issues. 2020-10-13 17:07:39 +02:00
Damir Jelić 1d811b6f4b electron-main: Use keytar to for the seshat passphrase.
This will also change the passphrase for existing setups if no
passphrase is found in the secret store.
2020-10-13 15:59:21 +02:00
Damir Jelić 50a4069893 electron-main: Refactor out the randomArray method. 2020-10-13 15:58:35 +02:00
RiotRobot 14415e2707 Merge branch 'master' into develop 2020-10-12 13:52:44 +01:00
RiotRobot 367dd5640c v1.7.9 2020-10-12 13:52:24 +01:00
RiotRobot 08ee24dfb6 Prepare changelog for v1.7.9 2020-10-12 13:52:23 +01:00
J. Ryan Stinnett 9bb386f2b5 Merge pull request #146 from vector-im/jryans/electron-10.1.3
Upgrade to Electron 10.1.3
2020-10-07 15:24:19 +01:00
J. Ryan Stinnett 0f94667dea Upgrade to Electron 10.1.3 2020-10-07 15:02:51 +01:00
RiotRobot a71ac70a13 v1.7.9-rc.1 2020-10-07 14:23:43 +01:00
RiotRobot 5a0f686b28 Prepare changelog for v1.7.9-rc.1 2020-10-07 14:23:43 +01:00
poljar 2170e494fb Merge pull request #145 from vector-im/poljar/seshat-bump
package.json: Bump the seshat version.
2020-10-05 18:30:27 +02:00
Damir Jelić 6ced94914f package.json: Bump the seshat version. 2020-10-05 18:23:32 +02:00
Michael Telatynski 5ca16bf2fc Merge pull request #144 from vector-im/t3chguy/fix/15311
Explicitly depend on `request` as webcontents-handler requires it
2020-09-29 13:03:41 +01:00
Michael Telatynski f56dadd0ad Explicitly depend on request as webcontents-handler requires it
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-09-29 12:53:08 +01:00
J. Ryan Stinnett 215babb081 Merge pull request #143 from vector-im/jryans/upgrade-pti-2020
Upgrade png-to-ico
2020-09-28 16:35:37 +01:00
J. Ryan Stinnett f71e2bf232 Upgrade png-to-ico
This is a major version upgrade, but seems API compatible for our case. This
helps bring several dependencies up to modern versions.
2020-09-28 16:22:30 +01:00
RiotRobot b146f50e91 Merge branch 'master' into develop 2020-09-28 16:13:25 +01:00
RiotRobot e86e784359 v1.7.8 2020-09-28 16:13:06 +01:00
RiotRobot afd578df71 Prepare changelog for v1.7.8 2020-09-28 16:13:06 +01:00
David Baker b54ebc9008 Merge pull request #142 from vector-im/dbkr/fix_new_issue_link
Point 'new issue' link at issue-type choice page
2020-09-28 12:52:18 +01:00
David Baker 30d03d64b3 Point 'new issue' link at issue-type choice page
Fixes https://github.com/vector-im/element-web/issues/15289
2020-09-28 11:37:34 +01:00
RiotRobot e14c43a2fe v1.7.8-rc.1 2020-09-23 15:27:17 +01:00
RiotRobot 8e16b1b5e0 Prepare changelog for v1.7.8-rc.1 2020-09-23 15:27:17 +01:00
J. Ryan Stinnett 161b024bf2 Merge pull request #141 from vector-im/jryans/neon-seshat
Fix neon error by upgrading Seshat
2020-09-21 14:55:17 +01:00
J. Ryan Stinnett 434215b24b Fix neon error by upgrading Seshat 2020-09-21 14:52:26 +01:00
RiotRobot df958ff56b Merge branch 'master' into develop 2020-09-14 16:05:19 +01:00
RiotRobot 89d4be6cb6 v1.7.7 2020-09-14 16:05:02 +01:00
RiotRobot e9ecdde704 Prepare changelog for v1.7.7 2020-09-14 16:05:02 +01:00
RiotRobot 0e6ae2514a Merge branch 'master' into develop 2020-09-14 13:45:34 +01:00
RiotRobot f5b51aecfe v1.7.6 2020-09-14 13:45:15 +01:00
RiotRobot a88d1a838c Prepare changelog for v1.7.6 2020-09-14 13:45:15 +01:00
RiotRobot 3a3b9641e9 v1.7.6-rc.1 2020-09-09 15:59:31 +01:00
RiotRobot 6e9407e7c1 Prepare changelog for v1.7.6-rc.1 2020-09-09 15:59:31 +01:00
J. Ryan Stinnett 7d3c203464 Merge pull request #140 from vector-im/jryans/electron-10.1.1
Upgrade to Electron 10.1.1
2020-09-09 15:10:26 +01:00
J. Ryan Stinnett e9b4fb2245 Upgrade to Electron 10.1.1 2020-09-09 14:57:09 +01:00
J. Ryan Stinnett 2382cc56b1 Merge pull request #139 from vector-im/jryans/rename-pipeline
Update to Element pipeline name
2020-09-09 11:10:19 +01:00
J. Ryan Stinnett b7a2810dc3 Update to Element pipeline name 2020-09-09 11:09:10 +01:00
Travis Ralston 9eb6932f11 Merge pull request #137 from vector-im/dependabot/npm_and_yarn/bl-4.0.3
Bump bl from 4.0.2 to 4.0.3
2020-09-02 10:39:57 -06:00
dependabot[bot] d1883aa2e8 Bump bl from 4.0.2 to 4.0.3
Bumps [bl](https://github.com/rvagg/bl) from 4.0.2 to 4.0.3.
- [Release notes](https://github.com/rvagg/bl/releases)
- [Commits](https://github.com/rvagg/bl/compare/v4.0.2...v4.0.3)

Signed-off-by: dependabot[bot] <support@github.com>
2020-09-02 16:24:05 +00:00
RiotRobot 2308ab9a83 v1.7.5 2020-09-01 17:24:09 +01:00
RiotRobot b33205d607 Prepare changelog for v1.7.5 2020-09-01 17:24:09 +01:00
RiotRobot df3d37586e v1.7.5-rc.1 2020-08-26 12:17:37 +01:00
RiotRobot fd68a83c08 Prepare changelog for v1.7.5-rc.1 2020-08-26 12:17:37 +01:00
Travis Ralston b0f4a4debc Merge pull request #135 from vector-im/travis/settings-v3
Settings v3: Update configs for new feature flag behaviour
2020-08-19 11:56:53 -06:00
Travis Ralston 7fac3a9b7c Update configs for new settings structure 2020-08-17 13:44:17 -06:00
RiotRobot 711967d19b Merge branch 'master' into develop 2020-08-17 12:53:54 +01:00
RiotRobot e00eb4b952 v1.7.4 2020-08-17 12:53:31 +01:00
RiotRobot caff0ef9f0 Prepare changelog for v1.7.4 2020-08-17 12:53:31 +01:00
Michael Telatynski 065f5d7adc Merge pull request #134 from vector-im/t3chguy-patch-1
Add reaction preview labs flags to nightly
2020-08-17 11:15:52 +01:00
Michael Telatynski 67f0570af4 Add reaction preview labs flags to nightly 2020-08-17 11:10:11 +01:00
RiotRobot 87125f4c59 v1.7.4-rc.1 2020-08-13 12:04:28 +01:00
RiotRobot bae3f08936 Prepare changelog for v1.7.4-rc.1 2020-08-13 12:04:28 +01:00
J. Ryan Stinnett efc8baf1df Merge pull request #132 from vector-im/jryans/rebrand-policy
Update policy links to element.io
2020-08-13 11:30:44 +01:00
J. Ryan Stinnett c0ca8cd240 Merge pull request #131 from vector-im/jryans/rebrand-rageshakes
Update bug report submission URL
2020-08-10 11:11:42 +01:00
J. Ryan Stinnett 501611fa30 Update policy links to element.io
Part of https://github.com/vector-im/element-web/issues/14904
2020-08-07 11:38:48 +01:00
J. Ryan Stinnett 9d6cd6c7c0 Update bug report submission URL
Part of https://github.com/vector-im/element-web/issues/14892
2020-08-07 10:53:15 +01:00
J. Ryan Stinnett d67f75779e Merge pull request #130 from vector-im/jryans/new-cert
Update code signing cert for Windows
2020-08-05 19:04:10 +01:00
J. Ryan Stinnett 26f283b56d Update code signing cert for Windows
The existing Windows code signing cert was due to expire 2020-08-23, so this
replaces it with a renewed cert.
2020-08-05 18:59:02 +01:00
RiotRobot e1b1020700 Merge branch 'master' into develop 2020-08-05 15:34:06 +01:00
RiotRobot 53d46343b8 v1.7.3 2020-08-05 15:33:43 +01:00
RiotRobot aaddcef169 Prepare changelog for v1.7.3 2020-08-05 15:33:43 +01:00
J. Ryan Stinnett ba0210f8c1 Merge pull request #129 from vector-im/jryans/riot-to-element
Replace Riot with Element in docs and comments
2020-08-04 10:07:32 +01:00
David Baker 99d1ed4ff1 Merge pull request #128 from vector-im/dbkr/readme_build_order
Fix order of README steps
2020-08-04 08:23:34 +01:00
J. Ryan Stinnett 045f122688 Replace Riot with Element in docs and comments
This only covers the simple cases of references to issues and repos. More
complex areas, such as deployment scripts, will be handled separately.

Part of https://github.com/vector-im/element-web/issues/14864
2020-08-03 18:32:42 +01:00
David Baker cbfb247ade Fix order of README steps
to be in the order they needd to be run.
2020-07-31 21:04:54 +01:00
J. Ryan Stinnett eb4bf9e401 Merge pull request #127 from vector-im/jryans/electron-9.1.2
Upgrade to Electron 9.1.2
2020-07-31 13:20:33 +01:00
RiotRobot 0cdf85e20b v1.7.3-rc.1 2020-07-31 13:18:34 +01:00
RiotRobot 6e455f6bd4 Prepare changelog for v1.7.3-rc.1 2020-07-31 13:18:33 +01:00
J. Ryan Stinnett 0892ea5006 Upgrade to Electron 9.1.2 2020-07-31 12:56:47 +01:00
J. Ryan Stinnett f344d8cac4 Merge pull request #126 from vector-im/jryans/cleanup-lint
Clean up linting
2020-07-28 18:38:43 +01:00
J. Ryan Stinnett 3decdb060e Remove redundant lint dependencies
We can let the linting package pull these in transitively for us.
2020-07-28 16:56:15 +01:00
J. Ryan Stinnett 92f48eced9 Remove JS SDK, no longer needed for lint rules
The JS SDK was previously only here for the ESLint config, but this is now part
of a separate package.
2020-07-28 16:37:46 +01:00
David Baker 045f6f8b42 Merge pull request #125 from vector-im/dbkr/more_renaming_faff
Update renaming workaround for 'Element' name
2020-07-28 16:16:32 +01:00
David Baker 358e3b8f7d Update rebrand stub to run 'Element.exe' 2020-07-28 16:02:40 +01:00
David Baker c6ab88508f Remove the Element (Riot) shortcuts too 2020-07-28 15:56:05 +01:00
RiotRobot a4cbe3acab Reset matrix-js-sdk back to develop branch 2020-07-27 21:11:27 +01:00
RiotRobot 4c7bdb35dd v1.7.2 2020-07-27 21:10:48 +01:00
RiotRobot 5735a0abdd Prepare changelog for v1.7.2 2020-07-27 21:10:48 +01:00
RiotRobot 0e882b80d2 Upgrade matrix-js-sdk to 8.0.0 2020-07-27 21:05:45 +01:00
David Baker 6b75b83c00 Merge pull request #124 from vector-im/dbkr/catch_exceptions_fetch_scripts
Catch exceptions from main method in fetch script
2020-07-23 11:21:47 +01:00
David Baker d9e8fa34e7 Catch exceptions from main method in fetch script 2020-07-23 11:14:26 +01:00
Jorik Schellekens 300eac197d Merge pull request #122 from vector-im/joriks/eslint-config
Use new eslint package
2020-07-22 16:53:57 +01:00
David Baker d49625e253 Merge pull request #123 from vector-im/dbkr/remove_bracketed_riot
Remove ' (Riot)' from app name
2020-07-21 18:11:48 +01:00
David Baker 94086f247a Remove ' (Riot)' from app name
And remove the hacks to make the user data path different from the
app name. Also add the profile dir to the legacy user data dir too.

Fixes https://github.com/vector-im/riot-web/issues/14619
Fixes https://github.com/vector-im/riot-web/issues/14623
2020-07-21 17:57:54 +01:00
Jorik Schellekens 422a827b82 Use new eslint package 2020-07-21 15:06:38 +01:00
RiotRobot f21c1bee11 Reset matrix-js-sdk back to develop branch 2020-07-16 16:13:19 +01:00
RiotRobot a6c86b131d v1.7.1 2020-07-16 16:12:44 +01:00
RiotRobot 777003d9a3 Prepare changelog for v1.7.1 2020-07-16 16:12:44 +01:00
RiotRobot 72334b8cd4 Upgrade matrix-js-sdk to 7.1.0 2020-07-16 16:12:07 +01:00
J. Ryan Stinnett 5ae86cd728 Merge pull request #121 from vector-im/dependabot/npm_and_yarn/lodash-4.17.19
Bump lodash from 4.17.15 to 4.17.19
2020-07-16 14:07:42 +01:00
dependabot[bot] adf4453903 Bump lodash from 4.17.15 to 4.17.19
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-16 08:55:42 +00:00
David Baker 180710f54c Merge pull request #120 from vector-im/dbkr/userdata_support_nightly
Don't forget nightly when computing userData path
2020-07-16 09:55:09 +01:00
David Baker afa40de885 Merge pull request #119 from vector-im/dbkr/hostinglink
Fix hosting link
2020-07-16 09:30:38 +01:00
J. Ryan Stinnett 96c9b85e11 Merge pull request #117 from vector-im/neilalexander/icns
New macOS icon
2020-07-15 22:34:58 +01:00
David Baker 9d15c1bbd0 Don't forget nightly when computing userData path
We were assuming we were always 'Element'
2020-07-15 20:21:06 +01:00
David Baker 9004ce4fa5 Merge remote-tracking branch 'origin/develop' into dbkr/hostinglink 2020-07-15 20:16:57 +01:00
David Baker 174aaa684e Apparently this has been changed and should be changed here too 2020-07-15 20:05:43 +01:00
David Baker 583caa0aaa Fix hosting link
Fixes https://github.com/vector-im/riot-web/issues/14500
2020-07-15 20:03:02 +01:00
J. Ryan Stinnett 62736b86f1 Merge pull request #118 from theoryshaw/patch-1
Update README.md
2020-07-15 17:39:50 +01:00
Ryan Schultz 16c6f9839b Update README.md 2020-07-15 11:25:02 -05:00
Neil Alexander e3e79fdfe1 New macOS icon 2020-07-15 15:52:31 +01:00
David Baker 764835a43c Merge pull request #115 from vector-im/dbkr/update_more_icons
More icon updates
2020-07-15 13:57:56 +01:00
David Baker 769d4cf647 Merge remote-tracking branch 'old-origin/develop' into dbkr/update_more_icons 2020-07-15 13:53:04 +01:00
David Baker b06bba2c69 More icon updates 2020-07-15 13:50:00 +01:00
David Baker 80746c1f22 Merge pull request #114 from vector-im/dbkr/yarn_install
Don't forget to yarn install
2020-07-15 13:28:51 +01:00
David Baker c2a39a4a8e Merge remote-tracking branch 'old-origin/develop' into dbkr/yarn_install 2020-07-15 12:55:58 +01:00
David Baker e7190e3168 Don't forget to yarn install 2020-07-15 12:53:50 +01:00
RiotRobot 78a601fbeb Reset matrix-js-sdk back to develop branch 2020-07-15 12:12:12 +01:00
RiotRobot 6c3edb9a13 v1.7.0 2020-07-15 12:11:21 +01:00
RiotRobot def85eef19 Prepare changelog for v1.7.0 2020-07-15 12:11:20 +01:00
RiotRobot b25479093b Upgrade matrix-js-sdk to 7.1.0 2020-07-15 12:08:07 +01:00
David Baker b839264d9f Merge pull request #113 from vector-im/dbkr/move_function_for_linter
Fix lint error
2020-07-15 11:43:54 +01:00
David Baker 5f01bbd9e0 Fix lint error 2020-07-15 11:41:30 +01:00
J. Ryan Stinnett 71c8ea417d Merge remote-tracking branch 'origin/develop' into element-develop 2020-07-15 10:44:25 +01:00
J. Ryan Stinnett c2cfed72df Merge branch 'jryans/update-packages' into 'develop'
Update nightly transitional package

See merge request new-vector/element/element-desktop!8
2020-07-15 08:32:28 +00:00
J. Ryan Stinnett da58f1d3d1 Update nightly transitional package 2020-07-15 09:25:00 +01:00
Jorik Schellekens 735ba9ce75 Merge pull request #112 from vector-im/joriks/delabs-font-scaling
Delabs font-scaling
2020-07-14 22:01:17 +01:00
David Baker ed9a0a60de Merge branch 'dbkr/windows_rebrand' into 'develop'
Some terribleness to make updating work on windows

See merge request new-vector/element/element-desktop!7
2020-07-14 18:20:01 +00:00
David Baker 3a253fe742 Some terribleness to make updating work on windows
Squirrel doesn't handle the executable changing name, as hopefully
explained in comments
2020-07-14 19:05:28 +01:00
J. Ryan Stinnett a00d98a95a Merge branch 'jryans/update-brand' into 'develop'
Update brand name in config

See merge request new-vector/element/element-desktop!6
2020-07-13 20:44:27 +00:00
Jorik Schellekens 2cc25f699b Delabs font-scaling 2020-07-13 19:10:59 +01:00
J. Ryan Stinnett 0978a5042c Update brand name in config 2020-07-13 18:40:21 +01:00
David Baker 3e80cdedd8 Merge branch 'dbkr/rebrand_icons' into 'develop'
New icons (expect install spinner)

See merge request new-vector/element/element-desktop!5
2020-07-13 16:12:59 +00:00
David Baker 358fe6f878 New install spinner 2020-07-13 17:10:31 +01:00
David Baker 8c9352dff0 colour profile on 512x512 icon 2020-07-13 16:59:04 +01:00
David Baker 483860fb00 add back the 512x512 icon 2020-07-13 15:57:14 +01:00
David Baker 7f6a2c6a50 Change mac icons to display p3 colourspace
so the logo is the right colour (on wide gamut displays)
2020-07-13 15:15:23 +01:00
Travis Ralston 94b2ac703a Merge pull request #109 from vector-im/travis/room-list/enable
Remove room list labs flag from config
2020-07-13 06:56:19 -06:00
David Baker 332d52cfdc New icons (expect install spinner) 2020-07-13 13:21:21 +01:00
Travis Ralston e88ef97b87 Merge branch 'develop' into travis/room-list/enable 2020-07-10 21:35:47 -06:00
Jorik Schellekens c7683d70b4 Merge pull request #111 from vector-im/joriks/delabs-irc-layout
Remove the irc layout setting from labs
2020-07-09 16:20:41 +01:00
Jorik Schellekens 53950e69ad Remove the irc layout setting from labs 2020-07-09 15:59:16 +01:00
David Baker 9d650eacbb Merge branch 'dbkr/add_brackets' into 'develop'
Add old app name in brackets

See merge request new-vector/element/element-desktop!4
2020-07-08 11:01:25 +00:00
Travis Ralston d9047d7960 Merge pull request #108 from vector-im/travis/update-npm
Update npm to ^6.14.6
2020-07-07 14:49:35 -06:00
Travis Ralston 5e2876649d Update npm to ^6.14.6 2020-07-07 14:48:36 -06:00
Travis Ralston bed2eb2c41 Remove labs flag from config 2020-07-07 13:58:33 -06:00
David Baker 4a488c9ab2 Add old app name in brackets
And fix user data path to be non-bracketed version always.
2020-07-07 18:57:29 +01:00
David Baker 6cc225059a Merge branch 'dbkr/debian_package_rename' into 'develop'
Rename riot package

See merge request new-vector/element/element-desktop!3
2020-07-03 16:29:14 +00:00
David Baker 2862870bb5 Remove transitional packages from the main control file
because this generated a broken package
2020-07-03 16:14:41 +01:00
RiotRobot 4f844d9a64 Reset matrix-js-sdk back to develop branch 2020-07-03 13:23:36 +01:00
RiotRobot d91034a938 v1.6.8 2020-07-03 13:23:00 +01:00
RiotRobot 46d5e0508b Prepare changelog for v1.6.8 2020-07-03 13:23:00 +01:00
RiotRobot ed3a07e61b Upgrade matrix-js-sdk to 7.1.0 2020-07-03 13:22:09 +01:00
David Baker 197f1dc451 Rename riot package
Add a transitional package which hopefully does the upgrade in the
right way (following https://wiki.debian.org/RenamingPackages
except that adding the transitional package to the new package's
control file make a package that reprepro rejects...)

The transitional packages can be built with:

```
dpkg -b riot-desktop_1.7.0_all
```

The nightly transitional package is named / versioned assuming a
release on Monday the 13th and will need to be edited & renamed
as approriate (it just needs to be greater than whatever the latest
nightly is at that point).
2020-07-03 12:30:01 +01:00
David Baker fdb02b93e5 Merge branch 'dbkr/rebrand_step_2' into 'develop'
Rebrand step 2

See merge request new-vector/element/element-desktop!2
2020-07-02 14:01:17 +00:00
David Baker c048dff4de Apply 1 suggestion(s) to 1 file(s) 2020-07-02 13:42:45 +00:00
David Baker 85dd2504db Rebrand step 2
* Continue to use Riot user data directory if it exists and the new
   one doesn't, so users stay logged in.
 * Move the auto-launcher over to new name.
 * Look for keytar password under both names.
2020-07-02 13:30:11 +01:00
David Baker 6d5ada7e3f Merge branch 'dbkr/rebrand_step_1' into 'develop'
Rebrand step 1: s/riot/element/ in the places where it's reasonably simple

See merge request new-vector/element/element-desktop!1
2020-07-01 16:49:46 +00:00
David Baker 72c88c8c87 change domain for fetching key 2020-07-01 17:46:17 +01:00
David Baker ff84841b52 Apply suggestion to README.md 2020-07-01 16:42:50 +00:00
David Baker 3a2176443c Apply suggestion to README.md 2020-07-01 16:42:39 +00:00
David Baker 5b2139a048 Apply suggestion to README.md 2020-07-01 16:42:24 +00:00
David Baker 386e0be08d This one's easy too 2020-07-01 15:40:23 +01:00
David Baker 466a871094 Rebrand step 1: s/riot/element/ in the places where it's reasonably simple 2020-07-01 15:30:53 +01:00
RiotRobot 1ea9a9d8be v1.6.8-rc.1 2020-07-01 14:31:37 +01:00
RiotRobot c859c78621 Prepare changelog for v1.6.8-rc.1 2020-07-01 14:31:37 +01:00
RiotRobot c057dde907 Upgrade matrix-js-sdk to 7.1.0-rc.1 2020-07-01 14:23:47 +01:00
Michael Telatynski 4ca58eebf9 Merge pull request #106 from vector-im/t3chguy/download_toast
Show expiring toast on completed downloads to prompt user to open
2020-06-30 20:18:56 +01:00
J. Ryan Stinnett b337f41a93 Merge pull request #107 from vector-im/jryans/e-9.0.5
Upgrade to Electron 9.0.5
2020-06-30 17:32:20 +01:00
J. Ryan Stinnett 60d01d1a33 Upgrade to Electron 9.0.5 2020-06-30 16:55:14 +01:00
Andrew Morgan fb6c87200e Merge pull request #105 from vector-im/anoa/new_spinner_feature_flag
Add new spinner labs option to config.json
2020-06-29 17:09:20 +01:00
RiotRobot 9c92b57193 Reset matrix-js-sdk back to develop branch 2020-06-29 16:17:45 +01:00
RiotRobot 910cd9824b Merge branch 'master' into develop 2020-06-29 16:17:16 +01:00
Michael Telatynski 891e7ca234 Show expiring toast on completed downloads to prompt user to open
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-06-29 16:08:39 +01:00
Andrew Morgan 6c04a56579 Add new spinner labs option to config.json
Previously added to Riot Web's config.json: https://github.com/vector-im/riot-web/pull/14213
2020-06-28 19:26:25 +01:00
Damir Jelić a11feaca32 Merge branch 'poljar/skip-unneeded-reindex' into develop 2020-06-24 16:59:29 +02:00
Damir Jelić b23cc417e1 package.json: Bump the required Seshat version. 2020-06-24 16:31:49 +02:00
Damir Jelić 2da6bc6a1e electron-main: Rename the deletion method for the index. 2020-06-24 11:06:09 +02:00
Damir Jelić 141107c678 electron-main: Skip the reindex if we're going to delete the db anyways. 2020-06-23 16:42:27 +02:00
RiotRobot 503442e189 Reset matrix-js-sdk back to develop branch 2020-06-23 15:20:45 +01:00
RiotRobot 43e9c19f8d Merge branch 'master' into develop 2020-06-23 15:20:01 +01:00
Damir Jelić 748f4dccb4 riot-desktop: Bump the required seshat version. 2020-06-19 10:52:02 +02:00
Damir Jelić 069f009d85 Merge remote-tracking branch 'origin/poljar/eventindex-user-version' into develop 2020-06-19 09:54:29 +02:00
Damir Jelić c1646e882a Merge remote-tracking branch 'origin/poljar/eventindex-newly-encrypted-room' into develop 2020-06-19 09:54:19 +02:00
Michael Telatynski 3597f43b73 Merge pull request #94 from vector-im/t3chguy/electron9
Upgrade to Electron 9
2020-06-17 20:59:14 +01:00
Michael Telatynski 17cbc88d39 Bump to electron 9.0.4
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-06-17 16:58:36 +01:00
Michael Telatynski a95e40506b Merge branches 'develop' and 't3chguy/electron9' of https://github.com/vector-im/riot-desktop into t3chguy/electron9 2020-06-17 16:57:17 +01:00
Damir Jelić a9b4110d65 electron-main: Add support to set and get the user version. 2020-06-17 17:19:47 +02:00
Damir Jelić 193dd0f9e3 main: Add an event index IPC method to check if a room is being indexed. 2020-06-08 16:41:15 +02:00
Michael Telatynski 3da78268d8 Upgrade to Electron 9
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-23 11:57:10 +01:00
153 changed files with 14188 additions and 5625 deletions

No files matched your search

-8
View File
@@ -1,8 +0,0 @@
steps:
- label: ":eslint: Lint"
command:
- "yarn install"
- "yarn lint"
plugins:
- docker#v3.0.1:
image: "node:10"
+27 -16
View File
@@ -1,8 +1,10 @@
const jsSdkEslintCfg = require('matrix-js-sdk/.eslintrc');
module.exports = {
plugins: ["matrix-org"],
extends: [
"plugin:matrix-org/javascript",
],
parserOptions: {
ecmaVersion: 8,
ecmaVersion: 2021,
},
env: {
es6: true,
@@ -10,17 +12,26 @@ module.exports = {
// we also have some browser code (ie. the preload script)
browser: true,
},
extends: ["eslint:recommended", "google"],
rules: jsSdkEslintCfg.rules,
}
// NOTE: These rules are frozen and new rules should not be added here.
// New changes belong in https://github.com/matrix-org/eslint-plugin-matrix-org/
rules: {
"quotes": "off",
"indent": "off",
"prefer-promise-reject-errors": "off",
"no-async-promise-executor": "off",
},
overrides: [{
files: ["{src,scripts,hak}/**/*.{ts,tsx}"],
extends: [
"plugin:matrix-org/typescript",
],
rules: {
// Things we do that break the ideal style
"prefer-promise-reject-errors": "off",
"quotes": "off",
// js-sdk uses a babel rule which we can't use because we
// don't use babel, so remove it & put the original back
delete module.exports.rules["babel/no-invalid-this"];
module.exports.rules["no-invalid-this"] = "error";
// also override the line length to be consistent with
// vector-web / react-sdk rather than js-sdk
module.exports.rules["max-len"] = ["warn", {
code: 120,
}];
// We disable this while we're transitioning
"@typescript-eslint/no-explicit-any": "off",
},
}],
};
+1
View File
@@ -0,0 +1 @@
* @vector-im/element-web
+13
View File
@@ -0,0 +1,13 @@
<!-- Thanks for submitting a PR! Please ensure the following requirements are met in order for us to review your PR -->
## Checklist
* [ ] Ensure your code works with manual testing
* [ ] Linter and other CI checks pass
* [ ] Sign-off given on the changes (see [CONTRIBUTING.md](https://github.com/vector-im/element-desktop/blob/develop/CONTRIBUTING.md))
<!--
If you would like to specify text for the changelog entry other than your PR title, add the following:
Notes: Add super cool feature
-->
+6
View File
@@ -0,0 +1,6 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"github>matrix-org/renovate-config-element-web"
]
}
+30
View File
@@ -0,0 +1,30 @@
name: Backport
on:
pull_request_target:
types:
- closed
- labeled
branches:
- develop
jobs:
backport:
name: Backport
runs-on: ubuntu-latest
# Only react to merged PRs for security reasons.
# See https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target.
if: >
github.event.pull_request.merged
&& (
github.event.action == 'closed'
|| (
github.event.action == 'labeled'
&& contains(github.event.label.name, 'backport')
)
)
steps:
- uses: tibdex/backport@v2
with:
labels_template: "<%= JSON.stringify([...labels, 'X-Release-Blocker']) %>"
# We can't use GITHUB_TOKEN here or CI won't run on the new PR
github_token: ${{ secrets.ELEMENT_BOT_TOKEN }}
+288
View File
@@ -0,0 +1,288 @@
name: Build and Test
on:
pull_request: { }
push:
branches: [ develop, master ]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
fetch:
name: Prepare
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
cache: "yarn"
node-version: 16
- name: Install Deps
run: "yarn install --pure-lockfile"
- name: Fetch Element Web (develop)
if: github.event.pull_request.base.ref == 'develop'
run: yarn run fetch --noverify develop -d element.io/nightly
- name: Fetch Element Web
if: github.event.pull_request.base.ref != 'develop'
run: yarn run fetch --noverify --cfgdir element.io/release
- uses: actions/upload-artifact@v3
with:
name: webapp
retention-days: 1
path: |
webapp.asar
package.json
windows:
needs: fetch
strategy:
matrix:
include:
- target: x86_64-pc-windows-msvc
arch: x64
- target: i686-pc-windows-msvc
arch: x86
build-args: --ia32
name: Windows (${{ matrix.arch }})
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: webapp
- name: Cache .hak
uses: actions/cache@v3
with:
key: ${{ runner.os }}-${{ hashFiles('./yarn.lock') }}
path: |
./.hak
- name: Set up build tools
uses: ilammy/msvc-dev-cmd@v1
with:
arch: ${{ matrix.arch }}
# ActiveTCL package on choco is from 2015,
# this one is newer but includes more than we need
- name: Choco install tclsh
shell: pwsh
run: |
choco install -y magicsplat-tcl-tk --no-progress
echo "${HOME}/AppData/Local/Apps/Tcl86/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Choco install NetWide Assembler
shell: pwsh
run: |
choco install -y nasm --no-progress
echo "C:/Program Files/NASM" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: ${{ matrix.target }}
- uses: actions/setup-node@v3
with:
cache: "yarn"
node-version: 16
# Does not need branch matching as only analyses this layer
- name: Install Deps
run: "yarn install --pure-lockfile"
- name: Build Natives
run: |
refreshenv
yarn build:native --target ${{ matrix.target }}
- name: Build App
run: "yarn build --publish never -w ${{ matrix.build-args }}"
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: win-${{ matrix.arch }}
path: dist
retention-days: 1
linux:
needs: fetch
strategy:
matrix:
include:
- sqlcipher: system
- sqlcipher: static
static: 1
name: 'Linux (sqlcipher: ${{ matrix.sqlcipher }})'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: webapp
- name: Cache .hak
uses: actions/cache@v3
with:
key: ${{ hashFiles('./yarn.lock') }}
path: |
./.hak
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: Install libsqlcipher-dev
if: matrix.sqlcipher == 'system'
run: sudo apt-get install -y libsqlcipher-dev
- uses: actions/setup-node@v3
with:
cache: "yarn"
node-version: 16
# Does not need branch matching as only analyses this layer
- name: Install Deps
run: "yarn install --pure-lockfile"
- name: Build Natives
run: "yarn build:native"
env:
SQLCIPHER_STATIC: ${{ matrix.static }}
- name: Build App
run: "yarn build --publish never"
- name: Install .deb
run: "sudo apt install ./dist/*.deb"
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: linux-sqlcipher-${{ matrix.sqlcipher }}
path: dist
retention-days: 1
macos:
needs: fetch
name: macOS (universal)
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: webapp
- name: Cache .hak
uses: actions/cache@v3
with:
key: ${{ hashFiles('./yarn.lock') }}
path: |
./.hak
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: aarch64-apple-darwin
- uses: actions/setup-node@v3
with:
cache: "yarn"
node-version: 16
# Does not need branch matching as only analyses this layer
- name: Install Deps
run: "yarn install --pure-lockfile"
- name: Build Natives
run: "yarn build:native:universal"
- name: Build App
run: "yarn build:universal --publish never"
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: macos
path: dist
retention-days: 1
test:
needs:
- macos
- linux
- windows
strategy:
matrix:
include:
# Disable macOS tests for now, they fail to run in CI, needs investigation.
# - name: macOS Universal
# os: macos
# artifact: macos
# executable: "./dist/mac-universal/Element.app/Contents/MacOS/Element"
# prepare_cmd: "chmod +x ./dist/mac-universal/Element.app/Contents/MacOS/Element"
- name: 'Linux (sqlcipher: system)'
os: ubuntu
artifact: linux-sqlcipher-system
executable: "element-desktop"
prepare_cmd: "sudo apt install ./dist/*.deb"
- name: 'Linux (sqlcipher: static)'
os: ubuntu
artifact: linux-sqlcipher-static
executable: "element-desktop"
prepare_cmd: "sudo apt install ./dist/*.deb"
- name: Windows (x86)
os: windows
artifact: win-x86
executable: "./dist/win-ia32-unpacked/Element.exe"
- name: Windows (x64)
os: windows
artifact: win-x64
executable: "./dist/win-unpacked/Element.exe"
name: Test ${{ matrix.name }}
runs-on: ${{ matrix.os }}-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
cache: "yarn"
node-version: 16
- name: Install Deps
run: "yarn install --pure-lockfile"
- uses: actions/download-artifact@v3
with:
name: ${{ matrix.artifact }}
path: dist
- name: Prepare for tests
run: ${{ matrix.prepare_cmd }}
if: matrix.prepare_cmd
- name: Run tests
uses: GabrielBB/xvfb-action@v1
timeout-minutes: 5
with:
run: "yarn test"
env:
ELEMENT_DESKTOP_EXECUTABLE: ${{ matrix.executable }}
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.artifact }}
path: test_artifacts
retention-days: 1
+12
View File
@@ -0,0 +1,12 @@
name: Pull Request
on:
pull_request_target:
types: [ opened, edited, labeled, unlabeled, synchronize ]
concurrency: ${{ github.workflow }}-${{ github.event.pull_request.head.ref }}
jobs:
action:
uses: matrix-org/matrix-js-sdk/.github/workflows/pull_request.yaml@develop
with:
labels: "T-Defect,T-Enhancement,T-Task"
secrets:
ELEMENT_BOT_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
+45
View File
@@ -0,0 +1,45 @@
name: Static Analysis
on:
pull_request: { }
push:
branches: [ develop, master ]
jobs:
ts_lint:
name: "Typescript Syntax Check"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v3
with:
cache: 'yarn'
node-version: 16
# Does not need branch matching as only analyses this layer
- name: Install Deps
run: "yarn install --pure-lockfile"
- name: Typecheck
run: "yarn run lint:types"
i18n_lint:
name: "i18n Check"
uses: matrix-org/matrix-react-sdk/.github/workflows/i18n_check.yml@develop
js_lint:
name: "ESLint"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v3
with:
cache: 'yarn'
node-version: 16
# Does not need branch matching as only analyses this layer
- name: Install Deps
run: "yarn install --pure-lockfile"
- name: Run Linter
run: "yarn run lint:js"
@@ -0,0 +1,8 @@
name: Upgrade Dependencies
on:
workflow_dispatch: { }
jobs:
upgrade:
uses: matrix-org/matrix-js-sdk/.github/workflows/upgrade_dependencies.yml@develop
secrets:
ELEMENT_BOT_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
+5
View File
@@ -1,4 +1,5 @@
/dist
/lib
/webapp
/webapp.asar
/packages
@@ -10,3 +11,7 @@
/.yarnrc
/docker
/.npmrc
.vscode
.vscode/
/test_artifacts/
/coverage/
+2394 -1
View File
File diff suppressed because it is too large. Load diff
+71 -52
View File
@@ -1,90 +1,91 @@
Riot Desktop
============
![Build](https://github.com/vector-im/element-desktop/actions/workflows/build.yaml/badge.svg)
![Static Analysis](https://github.com/vector-im/element-desktop/actions/workflows/static_analysis.yaml/badge.svg)
[![Weblate](https://translate.element.io/widgets/element-desktop/-/element-desktop/svg-badge.svg)](https://translate.element.io/engage/element-desktop/)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=element-desktop&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=element-desktop)
[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=element-desktop&metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=element-desktop)
[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=element-desktop&metric=bugs)](https://sonarcloud.io/summary/new_code?id=element-desktop)
This is Riot desktop app as of release 1.6.
Element Desktop
===============
Fetching Riot
=============
Since this package is just the Electron wrapper for Riot, it doesn't contain any of the Riot code,
so the first step is to get a working copy of Riot. There are a few ways of doing this:
Element Desktop is a Matrix client for desktop platforms with Element Web at its core.
First Steps
===========
Before you do anything else, fetch the dependencies:
```
# Fetch the prebuilt release Riot package from the riot.im GitHub releases page. The version
# fetched will be the same as the local riot-desktop package.
# We're explicitly asking for no config, so the package Riot will have no config.json.
yarn run fetch --noverify --cfgdir ''
yarn install
```
Fetching Element
================
Since this package is just the Electron wrapper for Element Web, it doesn't contain any of the Element Web code,
so the first step is to get a working copy of Element Web. There are a few ways of doing this:
```
# Fetch the prebuilt release Element package from the element-web GitHub releases page. The version
# fetched will be the same as the local element-desktop package.
# We're explicitly asking for no config, so the packaged Element will have no config.json.
yarn run fetch --noverify --cfgdir ""
```
...or if you'd like to use GPG to verify the downloaded package:
```
# Fetch the Riot public key from the riot.im web server over a secure connection and import
# Fetch the Element public key from the element.io web server over a secure connection and import
# it into your local GPG keychain (you'll need GPG installed). You only need to to do this
# once.
yarn run fetch --importkey
# Fetch the package and verify the signature
yarn run fetch --cfgdir ''
yarn run fetch --cfgdir ""
```
...or either of the above, but fetching a specific version of Riot:
...or either of the above, but fetching a specific version of Element:
```
# Fetch the prebuilt release Riot package from the riot.im GitHub releases page. The version
# fetched will be the same as the local riot-desktop package.
yarn run fetch --noverify --cfgdir '' v1.5.6
# Fetch the prebuilt release Element package from the element-web GitHub releases page. The version
# fetched will be the same as the local element-desktop package.
yarn run fetch --noverify --cfgdir "" v1.5.6
```
If you only want to run the app locally and don't need to build packages, you can
provide the `webapp` directory directly:
```
# Assuming you've checked out and built a copy of riot-web in ../riot-web
ln -s ../riot-web/webapp ./
# Assuming you've checked out and built a copy of element-web in ../element-web
ln -s ../element-web/webapp ./
```
[TODO: add support for fetching develop builds, arbitrary URLs and arbitrary paths]
Building
========
Now you have a copy of Riot, you're ready to build packages. If you'd just like to
run Riot locally, skip to the next section.
## Native Build
TODO: List native pre-requisites
Optionally, [build the native modules](https://github.com/vector-im/element-desktop/blob/develop/docs/native-node-modules.md),
which include support for searching in encrypted rooms and secure storage. Skipping this step is fine, you just won't have those features.
Then, run
```
yarn run build
```
This will do a couple of things:
* Run the `setversion` script to set the local package version to match whatever
version of Riot you installed above.
version of Element you installed above.
* Run electron-builder to build a package. The package built will match the operating system
you're running the build process on.
If you're on Windows, you can choose to build specifically for 32 or 64 bit:
```
yarn run build32
```
or
```
yarn run build64
```
## Docker
This build step will not build any native modules.
If you'd like to build the native modules (for searching in encrypted rooms):
This will take 10 minutes or so, and will require a number of native tools
to be installed, depending on your OS (eg. rust, tcl, make/nmake).
```
yarn run build:native
```
On Windows, this will automatically determine the architecture to build for based
on the environment (ie. set up by vcvarsall.bat).
You can also build using docker, which will always produce the linux package:
Alternatively, you can also build using docker, which will always produce the linux package:
```
# Run this once to make the docker image
yarn run docker:setup
yarn run docker:install
# if you want to build the native modules (this will take a while)
yarn run docker:buildnative
yarn run docker:build:native
yarn run docker:build
```
@@ -102,7 +103,7 @@ yarn start
Config
======
If you'd like the packaged Riot to have a configuration file, you can create a
If you'd like the packaged Element to have a configuration file, you can create a
config directory and place `config.json` in there, then specify this directory
with the `--cfgdir` option to `yarn run fetch`, eg:
```
@@ -110,15 +111,15 @@ mkdir myconfig
cp /path/to/my/config.json myconfig/
yarn run fetch --cfgdir myconfig
```
The config dir for the official Riot.im app is in `riot.im`. If you use this,
your app will auto-update itself using builds from Riot.im.
The config dir for the official Element app is in `element.io`. If you use this,
your app will auto-update itself using builds from element.io.
Profiles
========
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-desktop --profile Work` for it to run a separate profile and
identifier, e.g `element-desktop --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
@@ -128,8 +129,26 @@ User-specified config.json
==========================
+ `%APPDATA%\$NAME\config.json` on Windows
+ `$XDG_CONFIG_HOME\$NAME\config.json` or `~/.config/$NAME/config.json` on Linux
+ `$XDG_CONFIG_HOME/$NAME/config.json` or `~/.config/$NAME/config.json` on Linux
+ `~/Library/Application Support/$NAME/config.json` on macOS
In the paths above, `$NAME` is typically `Riot`, unless you use `--profile
$PROFILE` in which case it becomes `Riot-$PROFILE`.
In the paths above, `$NAME` is typically `Element`, unless you use `--profile
$PROFILE` in which case it becomes `Element-$PROFILE`, or it is using one of
the above created by a pre-1.7 install, in which case it will be `Riot` or
`Riot-$PROFILE`.
Translations
==========================
To add a new translation, head to the [translating doc](https://github.com/vector-im/element-web/blob/develop/docs/translating.md).
For a developer guide, see the [translating dev doc](https://github.com/vector-im/element-web/blob/develop/docs/translating-dev.md).
[<img src="https://translate.element.io/widgets/element-desktop/-/multi-auto.svg" alt="translationsstatus" width="340">](https://translate.element.io/engage/element-desktop/?utm_source=widget)
Report bugs & give feedback
==========================
If you run into any bugs or have feedback you'd like to share, please let us know on GitHub.
To help avoid duplicate issues, please [view existing issues](https://github.com/vector-im/element-web/issues?q=is%3Aopen+is%3Aissue+sort%3Areactions-%2B1-desc) first (and add a +1) or [create a new issue](https://github.com/vector-im/element-web/issues/new/choose) if you can't find it. Please note that this issue tracker is associated with the [element-web](https://github.com/vector-im/element-web) repo, but is also applied to the code in this repo as well.
+6
View File
@@ -0,0 +1,6 @@
module.exports = {
presets: [
['@babel/preset-env', { targets: { node: 'current' } }],
'@babel/preset-typescript',
],
};
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 702 B

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 256 KiB

+51
View File
@@ -0,0 +1,51 @@
#include <windows.h>
#include <stdio.h>
#include <string.h>
#include <tchar.h>
/*
* This just runs 'Element.exe' with the same args as
* this process was invoked with. This gets around the fact that
* squirrel always tries to run an executable with the same name,
* so fails to restart if the app's name has changed.
*/
void _tmain( int argc, TCHAR *argv[] )
{
LPSTR myCmdLine = GetCommandLineA();
char cmdLine[32767];
LPSTR cmdLinePos = cmdLine;
LPSTR toRun = "\"Element.exe\" ";
strncpy(cmdLinePos, toRun, strlen(toRun));
cmdLinePos += strlen(toRun);
if (myCmdLine[0] == '"') ++myCmdLine;
myCmdLine += strlen(argv[0]);
if (myCmdLine[0] == '"') ++myCmdLine;
if (myCmdLine[0] == ' ') ++myCmdLine;
strncpy(cmdLinePos, myCmdLine, (cmdLine + 32767) - cmdLinePos);
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
if (!CreateProcess(NULL,
cmdLine, // Command line
NULL, // Process handle not inheritable
NULL, // Thread handle not inheritable
FALSE, // Set handle inheritance to FALSE
0, // No creation flags
NULL, // Use parent's environment block
NULL, // Use parent's starting directory
&si, // Pointer to STARTUPINFO structure
&pi ) // Pointer to PROCESS_INFORMATION structure
)
{
printf("CreateProcess failed (%d).\n", GetLastError());
return;
}
}
Binary file not shown.
+5 -4
View File
@@ -1,4 +1,4 @@
FROM buildpack-deps:xenial-curl
FROM buildpack-deps:bionic-curl
ENV DEBIAN_FRONTEND noninteractive
@@ -9,11 +9,12 @@ RUN apt-get -qq update && apt-get -qq dist-upgrade && \
# git ssh for using as docker image on CircleCI
# python for node-gyp
# rpm is required for FPM to build rpm package
# tclsh is required for building SQLite as part of SQLCipher
# libsecret-1-dev and libgnome-keyring-dev are required even for prebuild keytar
apt-get -qq install --no-install-recommends qtbase5-dev bsdtar build-essential autoconf libssl-dev gcc-multilib g++-multilib lzip rpm python libcurl3 git git-lfs ssh unzip \
apt-get -qq install --no-install-recommends qtbase5-dev bsdtar build-essential autoconf libssl-dev gcc-multilib g++-multilib lzip rpm python libcurl4 git git-lfs ssh unzip tcl \
libsecret-1-dev libgnome-keyring-dev \
libopenjp2-tools \
# Used by Seshat
# Used by seshat (when not SQLCIPHER_STATIC) \
libsqlcipher-dev && \
# git-lfs
git lfs install && \
@@ -30,7 +31,7 @@ ENV LC_ALL C.UTF-8
ENV DEBUG_COLORS true
ENV FORCE_COLOR true
ENV NODE_VERSION 12.16.1
ENV NODE_VERSION 14.17.0
# this package is used for snapcraft and we should not clear apt list - to avoid apt-get update during snap build
RUN curl -L https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.gz | tar xz -C /usr/local --strip-components=1 && \
+149
View File
@@ -0,0 +1,149 @@
# Native Node Modules
For some features, the desktop version of Element can make use of native Node
modules. These allow Element to integrate with the desktop in ways that a browser
cannot.
While native modules enable powerful new features, they must be complied for
each operating system. For official Element releases, we will always build these
modules from source to ensure we can trust the compiled output. In the future,
we may offer a pre-compiled path for those who want to use these features in a
custom build of Element without installing the various build tools required.
The process is automated by [vector-im/element-builder](https://github.com/vector-im/element-builder)
when releasing.
## Building
Install the pre-requisites for your system:
* [Windows pre-requisites](https://github.com/vector-im/element-desktop/blob/develop/docs/windows-requirements.md)
* Linux: TODO
* OS X: TODO
Then optionally, [add seshat and dependencies to support search in E2E rooms](#adding-seshat-for-search-in-e2e-encrypted-rooms).
Then, to build for an architecture selected automatically based on your system (recommended), run:
```
yarn run build:native
```
If you need to build for a specific architecture, see [here](#compiling-for-specific-architectures).
## Adding Seshat for search in E2E encrypted rooms
Seshat is a native Node module that adds support for local event indexing and
full text search in E2E encrypted rooms.
Since Seshat is written in Rust, the Rust compiler and related tools need to be
installed before installing Seshat itself. To install Rust please consult the
official Rust [documentation](https://www.rust-lang.org/tools/install).
Seshat also depends on the SQLCipher library to store its data in encrypted form
on disk. You'll need to install it via your OS package manager.
After installing the Rust compiler and SQLCipher, Seshat support can be added
using yarn at the root of this project:
yarn add matrix-seshat
You will have to rebuild the native libraries against electron's version
of node rather than your system node, using the `electron-build-env` tool.
This is also needed to when pulling in changes to Seshat using `yarn link`.
yarn add electron-build-env
Recompiling Seshat itself can be done like so:
yarn run electron-build-env -- --electron 6.1.1 -- neon build matrix-seshat --release
Please make sure to include all the `--` as well as the `--release` command line
switch at the end. Modify your electron version accordingly depending on the
version that is installed on your system.
After this is done the Electron version of Element can be run from the main folder
as usual using:
yarn start
### Statically linking libsqlcipher
On Windows & macOS we always statically link libsqlcipher for it is not generally available.
On Linux by default we will use a system package, on debian & ubuntu this is `libsqlcipher0`,
but this is problematic for some other packages.
By including `SQLCIPHER_STATIC=1` in the build environment, the build scripts will statically link sqlcipher,
note that this will want a `libcrypto1.1` shared library available in the system.
More info can be found at https://github.com/matrix-org/seshat/issues/102
and https://github.com/vector-im/element-web/issues/20926.
## Compiling for specific architectures
### macOS
On macOS, you can build universal native modules too:
```
yarn run build:native:universal
```
...or you can build for a specific architecture:
```
yarn run build:native --target x86_64-apple-darwin
```
or
```
yarn run build:native --target aarch64-apple-darwin
```
You'll then need to create a built bundle with the same architecture.
To bundle a universal build for macOS, run:
```
yarn run build:universal
```
### Windows
If you're on Windows, you can choose to build specifically for 32 or 64 bit:
```
yarn run build:32
```
or
```
yarn run build:64
```
### Cross compiling
Compiling a module for a particular operating system (Linux/macOS/Windows) needs
to be done on that operating system. Cross-compiling from a host OS for a different
target OS may be possible, but we don't support this flow with Element dependencies
at this time.
### Switching between architectures
The native module build system keeps the different architectures
separate, so you can keep native modules for several architectures at the same
time and switch which are active using a `yarn run hak copy` command, passing
the appropriate architectures. This will error if you haven't yet built those
architectures. eg:
```
yarn run build:native --target x86_64-apple-darwin
# We've now built & linked into place native modules for Intel
yarn run build:native --target aarch64-apple-darwin
# We've now built Apple Silicon modules too, and linked them into place as the active ones
yarn run hak copy --target x86_64-apple-darwin
# We've now switched back to our Intel modules
yarn run hak copy --target x86_64-apple-darwin --target aarch64-apple-darwin
# Now our native modules are universal x86_64+aarch64 binaries
```
The current set of native modules are stored in `.hak/hakModules`,
so you can use this to check what architecture is currently in place, eg:
```
$ lipo -info .hak/hakModules/keytar/build/Release/keytar.node
Architectures in the fat file: .hak/hakModules/keytar/build/Release/keytar.node are: x86_64 arm64
```
+35
View File
@@ -0,0 +1,35 @@
# Windows
## Requirements to build native modules
If you want to build native modules, make sure that the following tools are installed on your system.
- [Git for Windows](https://git-scm.com/download/win)
- [Node 14](https://nodejs.org)
- [Python 3](https://www.python.org/downloads/) (if you type 'python' into command prompt it will offer to install it from the windows store)
- [Strawberry Perl](https://strawberryperl.com/)
- [Rustup](https://rustup.rs/)
- [NASM](https://www.nasm.us/)
- [Build Tools for Visual Studio 2019](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019) with the following configuration:
- On the Workloads tab:
- Desktop & Mobile -> C++ build tools
- On the Individual components tab:
- MSVC VS 2019 C++ build tools
- Windows 10 SDK (latest version available)
- C++ CMake tools for Windows
Once installed make sure all those utilities are accessible in your `PATH`.
If you want to be able to build x86 targets from an x64 host install the right toolchain:
```cmd
rustup toolchain install stable-i686-pc-windows-msvc
rustup target add i686-pc-windows-msvc
```
In order to load all the C++ utilities installed by Visual Studio you can run the following in a terminal window.
```
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" amd64
```
You can replace `amd64` with `x86` depending on your CPU architecture.
+34
View File
@@ -0,0 +1,34 @@
-----BEGIN CERTIFICATE-----
MIIF8DCCBNigAwIBAgIRAIZSd8hNVs3w8AhJIsQSoYYwDQYJKoZIhvcNAQELBQAw
gZExCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMTcwNQYD
VQQDEy5DT01PRE8gUlNBIEV4dGVuZGVkIFZhbGlkYXRpb24gQ29kZSBTaWduaW5n
IENBMB4XDTIwMDczMDAwMDAwMFoXDTIzMDczMDIzNTk1OVowgfMxETAPBgNVBAUT
CDEwODczNjYxMRMwEQYLKwYBBAGCNzwCAQMTAkdCMR0wGwYDVQQPExRQcml2YXRl
IE9yZ2FuaXphdGlvbjELMAkGA1UEBhMCR0IxDzANBgNVBBEMBlc0IDFRVTEYMBYG
A1UECAwPTG9uZG9uLCBDaXR5IG9mMQ8wDQYDVQQHDAZMb25kb24xJzAlBgNVBAkM
HjE0IFR1cm5oYW0gR3JlZW4sIFRlcnJhY2UgTWV3czEbMBkGA1UECgwSTmV3IFZl
Y3RvciBMaW1pdGVkMRswGQYDVQQDDBJOZXcgVmVjdG9yIExpbWl0ZWQwggEiMA0G
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDKDnGul2M7oCCN+3veGf7yfakSfMjK
Kqeylyo0Nj8dUleNQvsRo0OHxIWJlbHDYglxebT109MqgyASr0SoeiqvXOSSFACD
MYFoyerRGMnXEuomTU0y7+FE3p/hcim8+C5gS+rHr3YaJJuzzXRztjjCBGoY4was
h9V8kYiyMMK0xi2WftOCBa1yYS32CInHIZVmdhzoK4k4YzSYIp57BWvnIUlDyCYk
slNfp0SFbDrOGa7kbmy8HRfWPLjNmW5PPIrsf8LlnVRBfmTeUIJtV31w/FuMjeir
pzYjzooXmpIrj96ecxdc9thP6etCUazvpowjfewu7UNWRUhGPtYn8v8rAgMBAAGj
ggHdMIIB2TAfBgNVHSMEGDAWgBTfj/MgDOnKpgTYW1g3Kj2rRtyDSTAdBgNVHQ4E
FgQUB9su4pCQXE5ZWFhB1eo48992LEcwDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB
/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwMwEQYJYIZIAYb4QgEBBAQDAgQQMEkG
A1UdIARCMEAwNQYMKwYBBAGyMQECAQYBMCUwIwYIKwYBBQUHAgEWF2h0dHBzOi8v
c2VjdGlnby5jb20vQ1BTMAcGBWeBDAEDMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6
Ly9jcmwuY29tb2RvY2EuY29tL0NPTU9ET1JTQUV4dGVuZGVkVmFsaWRhdGlvbkNv
ZGVTaWduaW5nQ0EuY3JsMIGGBggrBgEFBQcBAQR6MHgwUAYIKwYBBQUHMAKGRGh0
dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9ET1JTQUV4dGVuZGVkVmFsaWRhdGlv
bkNvZGVTaWduaW5nQ0EuY3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21v
ZG9jYS5jb20wJgYDVR0RBB8wHaAbBggrBgEFBQcIA6APMA0MC0dCLTEwODczNjYx
MA0GCSqGSIb3DQEBCwUAA4IBAQBZ8/YtqW/+VUoV8knKpdhMR2uTn8AEyVmfmoZA
Ly5kdCRoKvFm/z4VK4cqF7gsUDxRIgDuMKKbWTtr1FEXuaZkUkOjicNcdYxc0pDn
nFKBWAv5pN5OmnC9cVqIG7PtvD+8bKVzDdQRjpGMy6PY4rN2PYGfQ7KGgddEDD6m
oM51jI/OTvCeU0Tyl0bixKEmpUJvbeQM9Ul2Y1o5Enx1Q9uda8xATb0HCMKgJ+GC
iFHL2DNC3j1xK4QoZEIYgbTscj9rK4OMEov3PT/e1FwQyB5V9xdJ5i1MDBDD9fAf
OiVgf90SffT7TgWUbA4Z+PtQHq/qNma0+dZWyeq7zYn2IIX3
-----END CERTIFICATE-----
+6
View File
@@ -0,0 +1,6 @@
This directory contains the config file for the official element.io distribution
of Element Desktop.
You probably do not want to build with this config unless you're building the
official element.io distribution, or you'll find your builds will replace
themselves with the element.io build.
+56
View File
@@ -0,0 +1,56 @@
{
"update_base_url": "https://packages.element.io/nightly/update/",
"default_server_name": "matrix.org",
"brand": "Element Nightly",
"integrations_ui_url": "https://scalar.vector.im/",
"integrations_rest_url": "https://scalar.vector.im/api",
"integrations_widgets_urls": [
"https://scalar.vector.im/_matrix/integrations/v1",
"https://scalar.vector.im/api",
"https://scalar-staging.vector.im/_matrix/integrations/v1",
"https://scalar-staging.vector.im/api",
"https://scalar-staging.riot.im/scalar/api"
],
"hosting_signup_link": "https://element.io/matrix-services?utm_source=element-web&utm_medium=web",
"bug_report_endpoint_url": "https://element.io/bugreports/submit",
"uisi_autorageshake_app": "element-auto-uisi",
"showLabsSettings": true,
"roomDirectory": {
"servers": [
"matrix.org",
"gitter.im",
"libera.chat"
]
},
"enable_presence_by_hs_url": {
"https://matrix.org": false,
"https://matrix-client.matrix.org": false
},
"terms_and_conditions_links": [
{
"url": "https://element.io/privacy",
"text": "Privacy Policy"
},
{
"url": "https://element.io/cookie-policy",
"text": "Cookie Policy"
}
],
"sentry": {
"dsn": "https://029a0eb289f942508ae0fb17935bd8c5@sentry.matrix.org/6",
"environment": "nightly"
},
"posthog": {
"projectApiKey": "phc_Jzsm6DTm6V2705zeU5dcNvQDlonOR68XvX2sh1sEOHO",
"apiHost": "https://posthog.element.io"
},
"privacy_policy_url": "https://element.io/cookie-policy",
"features": {
"feature_spotlight": true,
"feature_video_rooms": true
},
"element_call": {
"url": "https://element-call.netlify.app"
},
"map_style_url": "https://api.maptiler.com/maps/streets/style.json?key=fU3vlMsMn4Jb6dnEIFsx"
}
+12
View File
@@ -0,0 +1,12 @@
Package: element-nightly
License: Apache-2.0
Vendor: support@element.io
Architecture: amd64
Maintainer: support@element.io
Depends: libgtk-3-0, libnotify4, libnss3, libxss1, libxtst6, xdg-utils, libatspi2.0-0, libuuid1, libsecret-1-0
Recommends: libappindicator3-1, libsqlcipher0
Section: net
Priority: extra
Homepage: https://element.io/
Description:
riot.im A feature-rich client for Matrix.org (nightly unstable build).
@@ -0,0 +1,9 @@
Package: riot-nightly
Version: 2020071502
Depends: element-nightly
Maintainer: packages@element.io
Architecture: all
Priority: optional
Section: oldlibs
Description: transitional package
This is a transitional package. It can safely be removed.
File renamed without changes.
+45
View File
@@ -0,0 +1,45 @@
{
"update_base_url": "https://packages.element.io/desktop/update/",
"default_server_name": "matrix.org",
"brand": "Element",
"integrations_ui_url": "https://scalar.vector.im/",
"integrations_rest_url": "https://scalar.vector.im/api",
"integrations_widgets_urls": [
"https://scalar.vector.im/_matrix/integrations/v1",
"https://scalar.vector.im/api",
"https://scalar-staging.vector.im/_matrix/integrations/v1",
"https://scalar-staging.vector.im/api",
"https://scalar-staging.riot.im/scalar/api"
],
"hosting_signup_link": "https://element.io/matrix-services?utm_source=element-web&utm_medium=web",
"bug_report_endpoint_url": "https://element.io/bugreports/submit",
"uisi_autorageshake_app": "element-auto-uisi",
"roomDirectory": {
"servers": [
"matrix.org",
"gitter.im",
"libera.chat"
]
},
"showLabsSettings": false,
"enable_presence_by_hs_url": {
"https://matrix.org": false,
"https://matrix-client.matrix.org": false
},
"terms_and_conditions_links": [
{
"url": "https://element.io/privacy",
"text": "Privacy Policy"
},
{
"url": "https://element.io/cookie-policy",
"text": "Cookie Policy"
}
],
"posthog": {
"projectApiKey": "phc_Jzsm6DTm6V2705zeU5dcNvQDlonOR68XvX2sh1sEOHO",
"apiHost": "https://posthog.element.io"
},
"privacy_policy_url": "https://element.io/cookie-policy",
"map_style_url": "https://api.maptiler.com/maps/streets/style.json?key=fU3vlMsMn4Jb6dnEIFsx"
}
+14
View File
@@ -0,0 +1,14 @@
Package: element-desktop
License: Apache-2.0
Vendor: support@element.io
Architecture: amd64
Maintainer: support@element.io
Depends: libgtk-3-0, libnotify4, libnss3, libxss1, libxtst6, xdg-utils, libatspi2.0-0, libuuid1, libsecret-1-0
Recommends: libappindicator3-1, libsqlcipher0
Replaces: riot-desktop (<< 1.7.0), riot-web (<< 1.7.0)
Breaks: riot-desktop (<< 1.7.0), riot-web (<< 1.7.0)
Section: net
Priority: extra
Homepage: https://element.io/
Description:
A feature-rich client for Matrix.org
@@ -0,0 +1,9 @@
Package: riot-desktop
Version: 1.7.0
Depends: element-desktop
Maintainer: packages@element.io
Architecture: all
Priority: optional
Section: oldlibs
Description: transitional package
This is a transitional package. It can safely be removed.
+6 -7
View File
@@ -14,18 +14,17 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
const path = require('path');
const childProcess = require('child_process');
import path from 'path';
import childProcess from 'child_process';
module.exports = async function(hakEnv, moduleInfo) {
await buildKeytar(hakEnv, moduleInfo);
};
import HakEnv from '../../scripts/hak/hakEnv';
import { DependencyInfo } from '../../scripts/hak/dep';
async function buildKeytar(hakEnv, moduleInfo) {
export default async function buildKeytar(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
const env = hakEnv.makeGypEnv();
console.log("Running yarn with env", env);
await new Promise((resolve, reject) => {
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(
path.join(moduleInfo.nodeModuleBinDir, 'node-gyp' + (hakEnv.isWin() ? '.cmd' : '')),
['rebuild'],
+7 -4
View File
@@ -14,13 +14,16 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
const childProcess = require('child_process');
import childProcess from 'child_process';
module.exports = async function(hakEnv, moduleInfo) {
import HakEnv from '../../scripts/hak/hakEnv';
import { DependencyInfo } from '../../scripts/hak/dep';
export default async function(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
const tools = [['python', '--version']]; // node-gyp uses python for reasons beyond comprehension
for (const tool of tools) {
await new Promise((resolve, reject) => {
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(tool[0], tool.slice(1), {
stdio: ['ignore'],
});
@@ -33,4 +36,4 @@ module.exports = async function(hakEnv, moduleInfo) {
});
});
}
};
}
+2 -2
View File
@@ -1,7 +1,7 @@
{
"scripts": {
"check": "check.js",
"build": "build.js"
"check": "check.ts",
"build": "build.ts"
},
"copy": "build/Release/keytar.node",
"dependencies": {
@@ -1,5 +1,5 @@
/*
Copyright 2020 The Matrix.org Foundation C.I.C.
Copyright 2020-2021 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,38 +14,40 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
const path = require('path');
const childProcess = require('child_process');
import path from 'path';
import childProcess from 'child_process';
import mkdirp from 'mkdirp';
import fsExtra from 'fs-extra';
const mkdirp = require('mkdirp');
const fsExtra = require('fs-extra');
import HakEnv from '../../scripts/hak/hakEnv';
import { DependencyInfo } from '../../scripts/hak/dep';
module.exports = async function(hakEnv, moduleInfo) {
export default async function(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
if (hakEnv.isWin()) {
await buildOpenSslWin(hakEnv, moduleInfo);
await buildSqlCipherWin(hakEnv, moduleInfo);
} else if (hakEnv.isMac()) {
} else if (hakEnv.wantsStaticSqlCipherUnix()) {
await buildSqlCipherUnix(hakEnv, moduleInfo);
}
await buildMatrixSeshat(hakEnv, moduleInfo);
};
}
async function buildOpenSslWin(hakEnv, moduleInfo) {
async function buildOpenSslWin(hakEnv: HakEnv, moduleInfo: DependencyInfo) {
const version = moduleInfo.cfg.dependencies.openssl;
const openSslDir = path.join(moduleInfo.moduleDotHakDir, `openssl-${version}`);
const openSslDir = path.join(moduleInfo.moduleTargetDotHakDir, `openssl-${version}`);
const openSslArch = hakEnv.arch === 'x64' ? 'VC-WIN64A' : 'VC-WIN32';
const openSslArch = hakEnv.getTargetArch() === 'x64' ? 'VC-WIN64A' : 'VC-WIN32';
console.log("Building openssl in " + openSslDir);
await new Promise((resolve, reject) => {
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(
'perl',
[
'Configure',
'--prefix=' + moduleInfo.depPrefix,
// sqlcipher only uses about a tiny part of openssl. We link statically
// so will only pull in the symbols we use, but we may as well turn off
// as much as possible to save on build time.
// sqlcipher only uses about a tiny part of openssl. We link statically
// so will only pull in the symbols we use, but we may as well turn off
// as much as possible to save on build time.
'no-afalgeng',
'no-capieng',
'no-cms',
@@ -103,7 +105,7 @@ async function buildOpenSslWin(hakEnv, moduleInfo) {
});
});
await new Promise((resolve, reject) => {
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(
'nmake',
['build_libs'],
@@ -117,7 +119,7 @@ async function buildOpenSslWin(hakEnv, moduleInfo) {
});
});
await new Promise((resolve, reject) => {
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(
'nmake',
['install_dev'],
@@ -132,14 +134,14 @@ async function buildOpenSslWin(hakEnv, moduleInfo) {
});
}
async function buildSqlCipherWin(hakEnv, moduleInfo) {
async function buildSqlCipherWin(hakEnv: HakEnv, moduleInfo: DependencyInfo) {
const version = moduleInfo.cfg.dependencies.sqlcipher;
const sqlCipherDir = path.join(moduleInfo.moduleDotHakDir, `sqlcipher-${version}`);
const sqlCipherDir = path.join(moduleInfo.moduleTargetDotHakDir, `sqlcipher-${version}`);
const buildDir = path.join(sqlCipherDir, 'bld');
await mkdirp(buildDir);
await new Promise((resolve, reject) => {
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(
'nmake',
['/f', path.join('..', 'Makefile.msc'), 'libsqlite3.lib', 'TOP=..'],
@@ -169,25 +171,61 @@ async function buildSqlCipherWin(hakEnv, moduleInfo) {
);
}
async function buildSqlCipherUnix(hakEnv, moduleInfo) {
async function buildSqlCipherUnix(hakEnv: HakEnv, moduleInfo: DependencyInfo) {
const version = moduleInfo.cfg.dependencies.sqlcipher;
const sqlCipherDir = path.join(moduleInfo.moduleDotHakDir, `sqlcipher-${version}`);
const sqlCipherDir = path.join(moduleInfo.moduleTargetDotHakDir, `sqlcipher-${version}`);
const args = [
'--prefix=' + moduleInfo.depPrefix + '',
'--enable-tempstore=yes',
'--enable-shared=no',
'--enable-tcl=no',
];
if (hakEnv.isMac()) {
args.push('--with-crypto-lib=commoncrypto');
}
args.push('CFLAGS=-DSQLITE_HAS_CODEC');
if (hakEnv.isMac()) {
args.push('LDFLAGS=-framework Security -framework Foundation');
if (hakEnv.wantsStaticSqlCipherUnix()) {
args.push('--enable-tcl=no');
if (hakEnv.isLinux()) {
args.push('--with-pic=yes');
}
}
await new Promise((resolve, reject) => {
if (!hakEnv.isHost()) {
// In the nonsense world of `configure`, it is assumed you are building
// a compiler like `gcc`, so the `host` option actually means the target
// the build output runs on.
args.push(`--host=${hakEnv.getTargetId()}`);
}
const cflags = [
'-DSQLITE_HAS_CODEC',
];
if (!hakEnv.isHost()) {
// `clang` uses more logical option naming.
cflags.push(`--target=${hakEnv.getTargetId()}`);
}
if (cflags.length) {
args.push(`CFLAGS=${cflags.join(' ')}`);
}
const ldflags: string[] = [];
if (hakEnv.isMac()) {
ldflags.push('-framework Security');
ldflags.push('-framework Foundation');
}
if (ldflags.length) {
args.push(`LDFLAGS=${ldflags.join(' ')}`);
}
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(
path.join(sqlCipherDir, 'configure'),
args,
@@ -201,7 +239,7 @@ async function buildSqlCipherUnix(hakEnv, moduleInfo) {
});
});
await new Promise((resolve, reject) => {
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(
'make',
[],
@@ -215,7 +253,7 @@ async function buildSqlCipherUnix(hakEnv, moduleInfo) {
});
});
await new Promise((resolve, reject) => {
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(
'make',
['install'],
@@ -230,10 +268,13 @@ async function buildSqlCipherUnix(hakEnv, moduleInfo) {
});
}
async function buildMatrixSeshat(hakEnv, moduleInfo) {
async function buildMatrixSeshat(hakEnv: HakEnv, moduleInfo: DependencyInfo) {
// seshat now uses n-api so we shouldn't need to specify a node version to
// build against, but it does seems to still need something in here, so leaving
// it for now: we should confirm how much of this it still actually needs.
const env = hakEnv.makeGypEnv();
if (!hakEnv.isLinux()) {
if (!hakEnv.isLinux() || hakEnv.wantsStaticSqlCipherUnix()) {
Object.assign(env, {
SQLCIPHER_STATIC: 1,
SQLCIPHER_LIB_DIR: path.join(moduleInfo.depPrefix, 'lib'),
@@ -241,6 +282,25 @@ async function buildMatrixSeshat(hakEnv, moduleInfo) {
});
}
if (hakEnv.isLinux() && hakEnv.wantsStaticSqlCipherUnix()) {
// Ensure Element uses the statically-linked seshat build, and prevent other applications
// from attempting to use this one. Detailed explanation:
//
// RUSTFLAGS
// An environment variable containing a list of arguments to pass to rustc.
// -Clink-arg=VALUE
// A rustc argument to pass a single argument to the linker.
// -Wl,
// gcc syntax to pass an argument (from gcc) to the linker (ld).
// -Bsymbolic:
// Prefer local/statically linked symbols over those in the environment.
// Prevent overriding native libraries by LD_PRELOAD etc.
// --exclude-libs ALL
// Prevent symbols from being exported by any archive libraries.
// Reduces output filesize and prevents being dynamically linked against.
env.RUSTFLAGS = '-Clink-arg=-Wl,-Bsymbolic -Clink-arg=-Wl,--exclude-libs,ALL';
}
if (hakEnv.isWin()) {
env.RUSTFLAGS = '-Ctarget-feature=+crt-static -Clink-args=libcrypto.lib';
// Note that in general, you can specify targets in Rust without having to have
@@ -248,11 +308,15 @@ async function buildMatrixSeshat(hakEnv, moduleInfo) {
// the build scripts since they run on the host, but vcvarsall.bat sets the c
// compiler in the path to be the one for the target, so we just use the matching
// toolchain for the target architecture which makes everything happy.
env.RUSTUP_TOOLCHAIN = hakEnv.arch == 'x64' ? 'stable-x86_64-pc-windows-msvc' : 'stable-i686-pc-windows-msvc';
env.RUSTUP_TOOLCHAIN = `stable-${hakEnv.getTargetId()}`;
}
if (!hakEnv.isHost()) {
env.CARGO_BUILD_TARGET = hakEnv.getTargetId();
}
console.log("Running neon with env", env);
await new Promise((resolve, reject) => {
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(
path.join(moduleInfo.nodeModuleBinDir, 'neon' + (hakEnv.isWin() ? '.cmd' : '')),
['build', '--release'],
@@ -1,5 +1,5 @@
/*
Copyright 2020 The Matrix.org Foundation C.I.C.
Copyright 2020-2021 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,12 +14,16 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
const childProcess = require('child_process');
import childProcess from 'child_process';
import fsProm from 'fs/promises';
module.exports = async function(hakEnv, moduleInfo) {
// of course tcl doesn't have a --version
if (!hakEnv.isLinux()) {
await new Promise((resolve, reject) => {
import HakEnv from '../../scripts/hak/hakEnv';
import { DependencyInfo } from '../../scripts/hak/dep';
export default async function(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
if (hakEnv.wantsStaticSqlCipher()) {
// of course tcl doesn't have a --version
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn('tclsh', [], {
stdio: ['pipe', 'ignore', 'ignore'],
});
@@ -34,9 +38,13 @@ module.exports = async function(hakEnv, moduleInfo) {
});
}
const tools = [['python', '--version']]; // node-gyp uses python for reasons beyond comprehension
const tools = [
['rustc', '--version'],
['python', '--version'], // node-gyp uses python for reasons beyond comprehension
];
if (hakEnv.isWin()) {
tools.push(['perl', '--version']); // for openssl configure
tools.push(['nasm', '-v']); // for openssl building
tools.push(['patch', '--version']); // to patch sqlcipher Makefile.msc
tools.push(['nmake', '/?']);
} else {
@@ -44,7 +52,7 @@ module.exports = async function(hakEnv, moduleInfo) {
}
for (const tool of tools) {
await new Promise((resolve, reject) => {
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(tool[0], tool.slice(1), {
stdio: ['ignore'],
});
@@ -57,4 +65,22 @@ module.exports = async function(hakEnv, moduleInfo) {
});
});
}
};
// Ensure Rust target exists (nb. we avoid depending on rustup)
await new Promise((resolve, reject) => {
const rustc = childProcess.execFile('rustc', [
'--target', hakEnv.getTargetId(), '-o', 'tmp', '-',
], (err, out) => {
if (err) {
reject(
"rustc can't build for target " + hakEnv.getTargetId() +
": ensure target is installed via `rustup target add " + hakEnv.getTargetId() + "` " +
"or your package manager if not using `rustup`",
);
}
fsProm.unlink('tmp').then(resolve);
});
rustc.stdin.write('fn main() {}');
rustc.stdin.end();
});
}
@@ -14,29 +14,31 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
const path = require('path');
const childProcess = require('child_process');
import path from 'path';
import childProcess from 'child_process';
import fs from 'fs';
import fsProm from 'fs/promises';
import needle from 'needle';
import tar from 'tar';
const fs = require('fs');
const fsProm = require('fs').promises;
const needle = require('needle');
const tar = require('tar');
import HakEnv from '../../scripts/hak/hakEnv';
import { DependencyInfo } from '../../scripts/hak/dep';
module.exports = async function(hakEnv, moduleInfo) {
if (!hakEnv.isLinux()) {
export default async function(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
if (hakEnv.wantsStaticSqlCipher()) {
await getSqlCipher(hakEnv, moduleInfo);
}
if (hakEnv.isWin()) {
await getOpenSsl(hakEnv, moduleInfo);
}
};
}
async function getSqlCipher(hakEnv, moduleInfo) {
async function getSqlCipher(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
const version = moduleInfo.cfg.dependencies.sqlcipher;
const sqlCipherDir = path.join(moduleInfo.moduleDotHakDir, `sqlcipher-${version}`);
const sqlCipherDir = path.join(moduleInfo.moduleTargetDotHakDir, `sqlcipher-${version}`);
let haveSqlcipher;
let haveSqlcipher: boolean;
try {
await fsProm.stat(sqlCipherDir);
haveSqlcipher = true;
@@ -47,7 +49,7 @@ async function getSqlCipher(hakEnv, moduleInfo) {
if (haveSqlcipher) return;
const sqlCipherTarball = path.join(moduleInfo.moduleDotHakDir, `sqlcipher-${version}.tar.gz`);
let haveSqlcipherTar;
let haveSqlcipherTar: boolean;
try {
await fsProm.stat(sqlCipherTarball);
haveSqlcipherTar = true;
@@ -62,9 +64,10 @@ async function getSqlCipher(hakEnv, moduleInfo) {
await bob;
}
// Extract the tarball to per-target directories, then we avoid cross-contaiminating archs
await tar.x({
file: sqlCipherTarball,
cwd: moduleInfo.moduleDotHakDir,
cwd: moduleInfo.moduleTargetDotHakDir,
});
if (hakEnv.isWin()) {
@@ -73,8 +76,8 @@ async function getSqlCipher(hakEnv, moduleInfo) {
// set it to 2 (default to memory).
const patchFile = path.join(moduleInfo.moduleHakDir, `sqlcipher-${version}-win.patch`);
await new Promise((resolve, reject) => {
const readStream = fs.createReadStream(patchFile);
await new Promise<void>((resolve, reject) => {
const readStream = fs.createReadStream(patchFile);
const proc = childProcess.spawn(
'patch',
@@ -92,11 +95,11 @@ async function getSqlCipher(hakEnv, moduleInfo) {
}
}
async function getOpenSsl(hakEnv, moduleInfo) {
async function getOpenSsl(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
const version = moduleInfo.cfg.dependencies.openssl;
const openSslDir = path.join(moduleInfo.moduleDotHakDir, `openssl-${version}`);
const openSslDir = path.join(moduleInfo.moduleTargetDotHakDir, `openssl-${version}`);
let haveOpenSsl;
let haveOpenSsl: boolean;
try {
await fsProm.stat(openSslDir);
haveOpenSsl = true;
@@ -107,7 +110,7 @@ async function getOpenSsl(hakEnv, moduleInfo) {
if (haveOpenSsl) return;
const openSslTarball = path.join(moduleInfo.moduleDotHakDir, `openssl-${version}.tar.gz`);
let haveOpenSslTar;
let haveOpenSslTar: boolean;
try {
await fsProm.stat(openSslTarball);
haveOpenSslTar = true;
@@ -121,9 +124,9 @@ async function getOpenSsl(hakEnv, moduleInfo) {
});
}
console.log("extracting " + openSslTarball + " in " + moduleInfo.moduleDotHakDir);
console.log("extracting " + openSslTarball + " in " + moduleInfo.moduleTargetDotHakDir);
await tar.x({
file: openSslTarball,
cwd: moduleInfo.moduleDotHakDir,
cwd: moduleInfo.moduleTargetDotHakDir,
});
}
+3 -3
View File
@@ -1,8 +1,8 @@
{
"scripts": {
"check": "check.js",
"fetchDeps": "fetchDeps.js",
"build": "build.js"
"check": "check.ts",
"fetchDeps": "fetchDeps.ts",
"build": "build.ts"
},
"prune": "native",
"copy": "native/index.node",
+17
View File
@@ -0,0 +1,17 @@
{
"compilerOptions": {
"moduleResolution": "node",
"esModuleInterop": true,
"target": "es2016",
"sourceMap": false,
"lib": [
"es2019",
]
},
"include": [
"./**/*.ts"
],
"ts-node": {
"transpileOnly": true
}
}
+96 -41
View File
@@ -1,76 +1,117 @@
{
"name": "riot-desktop",
"productName": "Riot",
"main": "src/electron-main.js",
"version": "1.6.7",
"name": "element-desktop",
"productName": "Element",
"main": "lib/electron-main.js",
"version": "1.11.10",
"description": "A feature-rich client for Matrix.org",
"author": "New Vector Ltd.",
"author": "Element",
"repository": {
"type": "git",
"url": "https://github.com/vector-im/riot-desktop"
"url": "https://github.com/vector-im/element-desktop"
},
"license": "Apache-2.0",
"files": [],
"scripts": {
"i18n": "matrix-gen-i18n",
"prunei18n": "matrix-prune-i18n",
"diff-i18n": "cp src/i18n/strings/en_EN.json src/i18n/strings/en_EN_orig.json && matrix-gen-i18n && matrix-compare-i18n-files src/i18n/strings/en_EN_orig.json src/i18n/strings/en_EN.json",
"mkdirs": "mkdirp packages deploys",
"fetch": "yarn run mkdirs && node scripts/fetch-package.js",
"asar-webapp": "asar p webapp webapp.asar",
"start": "electron .",
"lint": "eslint src/ scripts/ hak/",
"start": "yarn run build:ts && yarn run build:res && electron .",
"lint": "yarn lint:types && yarn lint:js",
"lint:js": "eslint --max-warnings 0 src scripts hak",
"lint:js-fix": "eslint --fix src scripts hak",
"lint:types": "tsc --noEmit && tsc -p scripts/hak/tsconfig.json --noEmit && tsc -p hak/tsconfig.json --noEmit",
"build:native": "yarn run hak",
"build32": "electron-builder --ia32",
"build64": "electron-builder --x64",
"build": "electron-builder",
"docker:setup": "docker build -t riot-desktop-dockerbuild dockerbuild",
"build:native:universal": "yarn run hak --target x86_64-apple-darwin fetchandbuild && yarn run hak --target aarch64-apple-darwin fetchandbuild && yarn run hak --target x86_64-apple-darwin --target aarch64-apple-darwin copyandlink",
"build:32": "yarn run build:ts && yarn run build:res && electron-builder --ia32",
"build:64": "yarn run build:ts && yarn run build:res && electron-builder --x64",
"build:universal": "yarn run build:ts && yarn run build:res && electron-builder --universal",
"build": "yarn run build:ts && yarn run build:res && electron-builder",
"build:ts": "tsc",
"build:res": "node scripts/copy-res.js",
"docker:setup": "docker build -t element-desktop-dockerbuild dockerbuild",
"docker:build:native": "scripts/in-docker.sh yarn run hak",
"docker:build": "scripts/in-docker.sh yarn run build",
"docker:install": "scripts/in-docker.sh yarn install",
"debrepo": "scripts/mkrepo.sh",
"clean": "rimraf webapp.asar dist packages deploys",
"hak": "node scripts/hak/index.js"
"clean": "rimraf webapp.asar dist packages deploys lib",
"hak": "ts-node scripts/hak/index.ts",
"test": "jest"
},
"dependencies": {
"auto-launch": "^5.0.1",
"electron-store": "^2.0.0",
"electron-window-state": "^4.1.0",
"minimist": "^1.2.3",
"png-to-ico": "^1.0.2"
"auto-launch": "^5.0.5",
"counterpart": "^0.18.6",
"electron-store": "^8.0.2",
"electron-window-state": "^5.0.3",
"minimist": "^1.2.6",
"png-to-ico": "^2.1.1",
"request": "^2.88.2"
},
"devDependencies": {
"@babel/core": "^7.18.10",
"@babel/preset-env": "^7.18.10",
"@babel/preset-typescript": "^7.18.6",
"@types/auto-launch": "^5.0.1",
"@types/counterpart": "^0.18.1",
"@types/detect-libc": "^1.0.0",
"@types/jest": "^28",
"@types/minimist": "^1.2.1",
"@types/mkdirp": "^1.0.2",
"@types/pacote": "^11.1.1",
"@types/rimraf": "^3.0.2",
"@typescript-eslint/eslint-plugin": "^5.6.0",
"@typescript-eslint/parser": "^5.6.0",
"allchange": "^1.0.6",
"app-builder-lib": "^22.14.10",
"asar": "^2.0.1",
"electron-builder": "^22.3.2",
"electron-builder-squirrel-windows": "^22.3.2",
"electron-devtools-installer": "^2.2.4",
"electron-notarize": "^0.2.0",
"eslint": "^5.8.0",
"eslint-config-google": "^0.7.1",
"eslint-plugin-babel": "^4.1.2",
"babel-jest": "^28.1.3",
"chokidar": "^3.5.2",
"detect-libc": "^1.0.3",
"electron": "^20",
"electron-builder": "22.11.4",
"electron-builder-squirrel-windows": "22.11.4",
"electron-devtools-installer": "^3.1.1",
"electron-notarize": "^1.0.0",
"eslint": "7.18.0",
"eslint-config-google": "^0.14.0",
"eslint-plugin-import": "^2.25.4",
"eslint-plugin-matrix-org": "^0.4.0",
"expect-playwright": "^0.8.0",
"find-npm-prefix": "^1.0.2",
"fs-extra": "^8.1.0",
"glob": "^7.1.6",
"matrix-js-sdk": "7.0.0",
"jest": "^28",
"matrix-web-i18n": "^1.3.0",
"mkdirp": "^1.0.3",
"needle": "^2.5.0",
"node-pre-gyp": "^0.15.0",
"npm": "^6.13.7",
"pacote": "^11.3.5",
"playwright": "^1.25.0",
"rimraf": "^3.0.2",
"semver": "^7.1.3",
"tar": "^6.0.1"
"tar": "^6.1.2",
"ts-jest": "^28.0.8",
"ts-node": "^10.4.0",
"typescript": "4.5.5"
},
"hakDependencies": {
"matrix-seshat": "^1.3.3",
"keytar": "^5.6.0"
"matrix-seshat": "^2.3.3",
"keytar": "^7.9.0"
},
"resolutions": {
"@types/node": "16.11.38"
},
"build": {
"appId": "im.riot.app",
"electronVersion": "8.0.3",
"asarUnpack": "**/*.node",
"files": [
"package.json",
{
"from": ".hak/hakModules",
"to": "node_modules"
},
"src/**"
"lib/**"
],
"extraResources": [
{
@@ -82,9 +123,9 @@
"linux": {
"target": "deb",
"category": "Network;InstantMessaging;Chat",
"maintainer": "support@riot.im",
"maintainer": "support@element.io",
"desktop": {
"StartupWMClass": "riot"
"StartupWMClass": "element"
}
},
"mac": {
@@ -92,22 +133,36 @@
"darkModeSupport": true
},
"win": {
"target": {
"target": "squirrel"
},
"target": [
"squirrel",
"msi"
],
"sign": "scripts/electron_winSign"
},
"msi": {
"perMachine": true
},
"directories": {
"output": "dist"
},
"afterPack": "scripts/electron_afterPack",
"afterSign": "scripts/electron_afterSign",
"protocols": [
{
"name": "riot",
"name": "element",
"schemes": [
"riot"
"element"
]
}
]
},
"jest": {
"testEnvironment": "node",
"testMatch": [
"<rootDir>/test/**/*-test.[jt]s?(x)"
],
"setupFilesAfterEnv": [
"expect-playwright"
]
}
}
+3 -54
View File
@@ -1,60 +1,9 @@
#!/bin/bash
#
# Script to perform a release of riot-desktop.
#
# Requires githib-changelog-generator; to install, do
# pip install git+https://github.com/matrix-org/github-changelog-generator.git
# Script to perform a release of element-desktop.
set -e
cd `dirname $0`
cd "$(dirname "$0")"
for i in matrix-js-sdk
do
echo "Checking version of $i..."
depver=`cat package.json | jq -r .devDependencies[\"$i\"]`
latestver=`yarn info -s $i dist-tags.next`
if [ "$depver" != "$latestver" ]
then
echo "The latest version of $i is $latestver but package.json depends on $depver."
echo -n "Type 'u' to auto-upgrade, 'c' to continue anyway, or 'a' to abort:"
read resp
if [ "$resp" != "u" ] && [ "$resp" != "c" ]
then
echo "Aborting."
exit 1
fi
if [ "$resp" == "u" ]
then
echo "Upgrading $i to $latestver..."
yarn add -ED $i@$latestver
git add -u
# The `-e` flag opens the editor and gives you a chance to check
# the upgrade for correctness.
git commit -m "Upgrade $i to $latestver" -e
fi
fi
done
./node_modules/matrix-js-sdk/release.sh -n -z "$@"
release="${1#v}"
prerelease=0
# We check if this build is a prerelease by looking to
# see if the version has a hyphen in it. Crude,
# but semver doesn't support postreleases so anything
# with a hyphen is a prerelease.
echo $release | grep -q '-' && prerelease=1
if [ $prerelease -eq 0 ]
then
# For a release, reset SDK deps back to the `develop` branch.
for i in matrix-js-sdk
do
echo "Resetting $i to develop branch..."
yarn add -D github:matrix-org/$i#develop
git add -u
git commit -m "Reset $i back to develop branch"
done
git push origin develop
fi
./node_modules/matrix-js-sdk/release.sh "$@"
+6
View File
@@ -1 +1,7 @@
signing_id: releases@riot.im
subprojects:
element-web:
includeByDefault: true
# Because element-web is not in our dependencies, but the versions
# follow those of this project (well, vice-versa really)
mirrorVersion: true
Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

-34
View File
@@ -1,34 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIF0jCCBLqgAwIBAgIRAISYBqZi3VvCUeSfHXF+cbwwDQYJKoZIhvcNAQELBQAw
gZExCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMTcwNQYD
VQQDEy5DT01PRE8gUlNBIEV4dGVuZGVkIFZhbGlkYXRpb24gQ29kZSBTaWduaW5n
IENBMB4XDTE3MDgyMzAwMDAwMFoXDTIwMDgyMjIzNTk1OVowgdgxETAPBgNVBAUT
CDEwODczNjYxMRMwEQYLKwYBBAGCNzwCAQMTAkdCMR0wGwYDVQQPExRQcml2YXRl
IE9yZ2FuaXphdGlvbjELMAkGA1UEBhMCR0IxETAPBgNVBBEMCFdDMVIgNEFHMQ8w
DQYDVQQIDAZMb25kb24xDzANBgNVBAcMBkxvbmRvbjEbMBkGA1UECQwSMjYgUmVk
IExpb24gU3F1YXJlMRcwFQYDVQQKDA5OZXcgVmVjdG9yIEx0ZDEXMBUGA1UEAwwO
TmV3IFZlY3RvciBMdGQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7
X0HP3oM/SVr6PboD03ndtYTONZDcJ/GJ3EyYi6UNrcbKjuDHwPktx9hjAhNjcVkG
lmuTEPluPj9DbvjaTrers0cQsAS1vJ0RHjLfA93Flg1ys9Q6OThUMw77FtFPtiJU
z5cSYzfFAhn/4dv7BcgGptn+Mv/8CaTu+RUZJUgoSlRWcT1TREmxkzWotbblqsHO
zjDmUg20tL5/qpt6BSWsNespf5udKQFXMtqkczBcLvBLmql0vurVcQy8BibB+Q89
QKwRzwLgaIa7O8WEssFcW8uJe9s0SNtUy8ehbuoSxpA/DbHFwsiDbNA78vp7HrqM
qY6t6OIgLtDYBFCfe/btAgMBAAGjggHaMIIB1jAfBgNVHSMEGDAWgBTfj/MgDOnK
pgTYW1g3Kj2rRtyDSTAdBgNVHQ4EFgQUH+mDOdRkF3bYDxCWEaGB4lxiCxcwDgYD
VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwMw
EQYJYIZIAYb4QgEBBAQDAgQQMEYGA1UdIAQ/MD0wOwYMKwYBBAGyMQECAQYBMCsw
KQYIKwYBBQUHAgEWHWh0dHBzOi8vc2VjdXJlLmNvbW9kby5jb20vQ1BTMFUGA1Ud
HwROMEwwSqBIoEaGRGh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL0NPTU9ET1JTQUV4
dGVuZGVkVmFsaWRhdGlvbkNvZGVTaWduaW5nQ0EuY3JsMIGGBggrBgEFBQcBAQR6
MHgwUAYIKwYBBQUHMAKGRGh0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9ET1JT
QUV4dGVuZGVkVmFsaWRhdGlvbkNvZGVTaWduaW5nQ0EuY3J0MCQGCCsGAQUFBzAB
hhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wJgYDVR0RBB8wHaAbBggrBgEFBQcI
A6APMA0MC0dCLTEwODczNjYxMA0GCSqGSIb3DQEBCwUAA4IBAQBJ2aH4aixh0aiz
4WKlK+LMVLHpQ2POE3FZYNpAW7o1q2YDGEADXdGrygPE9NCGNBXKo0CAemCYNWfX
Ov/jdoiMfeqW3vrZ66oEy8OqbvJSwK1xmomWuYw3wYPWcPVG+YbWYD2CGdQu8jTz
fzAJCpvAuY3Wji3fQjiecAC7JCSB4fBHa0ALJOmiSqKQUUpkXs5kW7O0lPBnHzNF
2tQGltXMSIrq1QfFtcreMyKlwDOxPIh360dv5aHhaeSRDRKxq7uq5ikQF2gjKx4k
ieg2HRbAW6fVPpFr4zRS5umpeZV3i06i11VQQPS/mA/OBEXyaqzx4mr6B7U6ptrp
jMqiUv2w
-----END CERTIFICATE-----
-6
View File
@@ -1,6 +0,0 @@
This directory contains the config file for the official riot.im distribution
of Riot Desktop.
You probably do not want to build with this config unless you're building the
official riot.im distribution, or you'll find your builds will replace
themselves with the riot.im build.
-55
View File
@@ -1,55 +0,0 @@
{
"update_base_url": "https://packages.riot.im/nightly/update/",
"default_server_name": "matrix.org",
"brand": "Riot Nightly",
"integrations_ui_url": "https://scalar-staging.vector.im/",
"integrations_rest_url": "https://scalar-staging.vector.im/api",
"integrations_widgets_urls": [
"https://scalar.vector.im/_matrix/integrations/v1",
"https://scalar.vector.im/api",
"https://scalar-staging.vector.im/_matrix/integrations/v1",
"https://scalar-staging.vector.im/api",
"https://scalar-staging.riot.im/scalar/api"
],
"hosting_signup_link": "https://modular.im/services/matrix-hosting-riot?utm_source=riot-web&utm_medium=web",
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
"features": {
"feature_pinning": "labs",
"feature_custom_status": "labs",
"feature_custom_tags": "labs",
"feature_state_counters": "labs",
"feature_many_integration_managers": "labs",
"feature_mjolnir": "labs",
"feature_dm_verification": "labs",
"feature_bridge_state": "labs",
"feature_presence_in_room_list": "labs",
"feature_custom_themes": "labs",
"feature_new_room_list": "labs",
"feature_irc_ui": "labs",
"feature_font_scaling": "labs"
},
"piwik": {
"url": "https://piwik.riot.im/",
"siteId": 1,
"policyUrl": "https://matrix.org/legal/riot-im-cookie-policy"
},
"roomDirectory": {
"servers": [
"matrix.org"
]
},
"enable_presence_by_hs_url": {
"https://matrix.org": false,
"https://matrix-client.matrix.org": false
},
"terms_and_conditions_links": [
{
"url": "https://riot.im/privacy",
"text": "Privacy Policy"
},
{
"url": "https://matrix.org/legal/riot-im-cookie-policy",
"text": "Cookie Policy"
}
]
}
-11
View File
@@ -1,11 +0,0 @@
Package: riot-nightly
License: Apache-2.0
Vendor: support@riot.im
Architecture: amd64
Maintainer: support@riot.im
Depends: libgtk-3-0, libnotify4, libnss3, libxss1, libxtst6, xdg-utils, libatspi2.0-0, libuuid1, libappindicator3-1, libsecret-1-0, libsqlcipher0
Section: net
Priority: extra
Homepage: https://riot.im/
Description:
A feature-rich client for Matrix.org (nightly unstable build).
-40
View File
@@ -1,40 +0,0 @@
{
"update_base_url": "https://packages.riot.im/desktop/update/",
"default_server_name": "matrix.org",
"brand": "Riot",
"integrations_ui_url": "https://scalar.vector.im/",
"integrations_rest_url": "https://scalar.vector.im/api",
"integrations_widgets_urls": [
"https://scalar.vector.im/_matrix/integrations/v1",
"https://scalar.vector.im/api",
"https://scalar-staging.vector.im/_matrix/integrations/v1",
"https://scalar-staging.vector.im/api",
"https://scalar-staging.riot.im/scalar/api"
],
"hosting_signup_link": "https://modular.im/services/matrix-hosting-riot?utm_source=riot-web&utm_medium=web",
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
"roomDirectory": {
"servers": [
"matrix.org"
]
},
"piwik": {
"url": "https://piwik.riot.im/",
"siteId": 1,
"policyUrl": "https://matrix.org/legal/riot-im-cookie-policy"
},
"enable_presence_by_hs_url": {
"https://matrix.org": false,
"https://matrix-client.matrix.org": false
},
"terms_and_conditions_links": [
{
"url": "https://riot.im/privacy",
"text": "Privacy Policy"
},
{
"url": "https://matrix.org/legal/riot-im-cookie-policy",
"text": "Cookie Policy"
}
]
}
-13
View File
@@ -1,13 +0,0 @@
Package: riot-desktop
License: Apache-2.0
Vendor: support@riot.im
Architecture: amd64
Maintainer: support@riot.im
Depends: libgtk-3-0, libnotify4, libnss3, libxss1, libxtst6, xdg-utils, libatspi2.0-0, libuuid1, libappindicator3-1, libsecret-1-0, libsqlcipher0
Provides: riot-web
Replaces: riot-web
Section: net
Priority: extra
Homepage: https://riot.im/
Description:
A feature-rich client for Matrix.org
-13
View File
@@ -1,13 +0,0 @@
#!/bin/bash
set -ex
scripts/fetchdep.sh matrix-org matrix-js-sdk
pushd matrix-js-sdk
yarn link
yarn install $@
popd
yarn link matrix-js-sdk
yarn install $@
+127
View File
@@ -0,0 +1,127 @@
#!/usr/bin/env node
// copies resources into the lib directory.
const parseArgs = require('minimist');
const chokidar = require('chokidar');
const path = require('path');
const fs = require('fs');
const argv = parseArgs(process.argv.slice(2), {});
const watch = argv.w;
const verbose = argv.v;
function errCheck(err) {
if (err) {
console.error(err.message);
process.exit(1);
}
}
const I18N_BASE_PATH = "src/i18n/strings/";
const INCLUDE_LANGS = fs.readdirSync(I18N_BASE_PATH).filter(fn => fn.endsWith(".json"));
// Ensure lib, lib/i18n and lib/i18n/strings all exist
fs.mkdirSync('lib/i18n/strings', { recursive: true });
function genLangFile(file, dest) {
let translations = {};
[file].forEach(function(f) {
if (fs.existsSync(f)) {
try {
Object.assign(
translations,
JSON.parse(fs.readFileSync(f).toString()),
);
} catch (e) {
console.error("Failed: " + f, e);
throw e;
}
}
});
translations = weblateToCounterpart(translations);
const json = JSON.stringify(translations, null, 4);
const filename = path.basename(file);
fs.writeFileSync(dest + filename, json);
if (verbose) {
console.log("Generated language file: " + filename);
}
}
/*
* Convert translation key from weblate format
* (which only supports a single level) to counterpart
* which requires object values for 'count' translations.
*
* eg.
* "there are %(count)s badgers|one": "a badger",
* "there are %(count)s badgers|other": "%(count)s badgers"
* becomes
* "there are %(count)s badgers": {
* "one": "a badger",
* "other": "%(count)s badgers"
* }
*/
function weblateToCounterpart(inTrs) {
const outTrs = {};
for (const key of Object.keys(inTrs)) {
const keyParts = key.split('|', 2);
if (keyParts.length === 2) {
let obj = outTrs[keyParts[0]];
if (obj === undefined) {
obj = outTrs[keyParts[0]] = {};
} else if (typeof obj === "string") {
// This is a transitional edge case if a string went from singular to pluralised and both still remain
// in the translation json file. Use the singular translation as `other` and merge pluralisation atop.
obj = outTrs[keyParts[0]] = {
"other": inTrs[key],
};
console.warn("Found entry in i18n file in both singular and pluralised form", keyParts[0]);
}
obj[keyParts[1]] = inTrs[key];
} else {
outTrs[key] = inTrs[key];
}
}
return outTrs;
}
/*
watch the input files for a given language,
regenerate the file, and regenerating languages.json with the new filename
*/
function watchLanguage(file, dest) {
// XXX: Use a debounce because for some reason if we read the language
// file immediately after the FS event is received, the file contents
// appears empty. Possibly https://github.com/nodejs/node/issues/6112
let makeLangDebouncer;
const makeLang = () => {
if (makeLangDebouncer) {
clearTimeout(makeLangDebouncer);
}
makeLangDebouncer = setTimeout(() => {
genLangFile(file, dest);
}, 500);
};
chokidar.watch(file)
.on('add', makeLang)
.on('change', makeLang)
.on('error', errCheck);
}
// language resources
const I18N_DEST = "lib/i18n/strings/";
INCLUDE_LANGS.forEach((file) => {
genLangFile(I18N_BASE_PATH + file, I18N_DEST);
}, {});
if (watch) {
INCLUDE_LANGS.forEach(file => watchLanguage(I18N_BASE_PATH + file, I18N_DEST));
}
-170
View File
@@ -1,170 +0,0 @@
#!/bin/bash
usage() {
echo "Usage: $0 -v <version> -d <config directory> [-n]"
echo
echo "version: commit-ish to check out and build"
echo "config directory: a path to a directory containing"
echo "config.json, a json config file to ship with the build"
echo "and env.sh, a file to source environment variables"
echo "from."
echo "-n: build with no config file."
echo
echo "The update_base_url value from config.json is used to set up auto-update."
echo
echo "Environment variables:"
echo " OSSLSIGNCODE_SIGNARGS: Arguments to pass to osslsigncode when signing"
echo " NOTARIZE_APPLE_ID: Apple ID to use for notarisation. The password for"
echo " this account must be set in NOTARIZE_CREDS in the keychain."
}
confdir=
version=
skipcfg=0
while getopts "d:v:n" opt; do
case $opt in
d)
confdir=$OPTARG
;;
v)
version=$OPTARG
;;
n)
skipcfg=1
;;
\?)
echo "Invalid option: -$OPTARG" >&2
usage
exit
;;
esac
done
if [ -z "$version" ]; then
echo "No version supplied"
usage
exit
fi
conffile="$confdir/config.json"
if [ -z "$conffile" ] && [ "$skipcfg" = 0 ]; then
echo "No config file given. Use -c to supply a config file or"
echo "-n to build with no config file (and no auto update)."
exit
fi
if [ -n "$conffile" ]; then
update_base_url=`jq -r .update_base_url $conffile`
if [ -z "$update_base_url" ]; then
echo "No update URL supplied. Use update_base_url: null if you really"
echo "want a build with no auto-update."
usage
exit
fi
# Make sure the base URL ends in a slash if it doesn't already
update_base_url=`echo $update_base_url | sed -e 's#\([^\/]\)$#\1\/#'`
fi
if [ ! -f package.json ]; then
echo "No package.json found. This script must be run from"
echo "the riot-web directory."
exit
fi
[ -f "$confdir/env.sh" ] && . "$confdir/env.sh"
if [ -z "$NOTARIZE_APPLE_ID" ]; then
echo "NOTARIZE_APPLE_ID is not set"
exit
fi
osslsigncode -h 2> /dev/null
if [ $? -ne 255 ]; then # osslsigncode exits with 255 after printing usage...
echo "osslsigncode not found"
exit
fi
# Test that altool can get its credentials for notarising the mac app
xcrun altool -u "$NOTARIZE_APPLE_ID" -p '@keychain:NOTARIZE_CREDS' --list-apps || exit
# Get the token password: we'll need it later, but get it now so we fail early if it's not there
token_password=`security find-generic-password -s riot_signing_token -w`
if [ $? -ne 0 ]; then
echo "riot_signing_token not found in keychain"
exit
fi
set -e
echo "Building $version using Update base URL $update_base_url"
projdir=`pwd`
builddir=`mktemp -d 2>/dev/null || mktemp -d -t 'buildtmp'`
pushd "$builddir"
git clone "$projdir" .
git checkout "$version"
# Figure out what version we're building
vername=`jq -r .version package.json`
if [ -n "$conffile" ]; then
popd
cp "$conffile" "$builddir/"
pushd "$builddir"
fi
# We use Git branch / commit dependencies for some packages, and Yarn seems
# to have a hard time getting that right. See also
# https://github.com/yarnpkg/yarn/issues/4734. As a workaround, we clean the
# global cache here to ensure we get the right thing.
yarn cache clean
yarn install
yarn build:electron
popd
distdir="$builddir/electron_app/dist"
pubdir="$projdir/electron_app/pub"
rm -r "$pubdir" || true
mkdir -p "$pubdir"
rm -r "$projdir/electron_app/dist" || true
mkdir -p "$projdir/electron_app/dist"
# Install packages: what the user downloads the first time,
# (DMGs for mac, exe installer for windows)
mkdir -p "$pubdir/install/macos"
cp $distdir/*.dmg "$pubdir/install/macos/"
mkdir -p "$pubdir/install/win32/ia32/"
cp $distdir/squirrel-windows-ia32/*.exe "$pubdir/install/win32/ia32/"
mkdir -p "$pubdir/install/win32/x64/"
cp $distdir/squirrel-windows/*.exe "$pubdir/install/win32/x64/"
# Packages for auto-update
mkdir -p "$pubdir/update/macos"
cp $distdir/*-mac.zip "$pubdir/update/macos/"
echo "$vername" > "$pubdir/update/macos/latest"
mkdir -p "$pubdir/update/win32/ia32/"
cp $distdir/squirrel-windows-ia32/*.nupkg "$pubdir/update/win32/ia32/"
cp $distdir/squirrel-windows-ia32/RELEASES "$pubdir/update/win32/ia32/"
mkdir -p "$pubdir/update/win32/x64/"
cp $distdir/squirrel-windows/*.nupkg "$pubdir/update/win32/x64/"
cp $distdir/squirrel-windows/RELEASES "$pubdir/update/win32/x64/"
# Move the deb to the main project dir's dist folder
# (just the 64 bit one - the 32 bit one still gets built because
# it's one arch argument for all platforms and we still want 32 bit
# windows, but 32 bit linux is unsupported as of electron 4 and no
# longer appears to work).
cp $distdir/*_amd64.deb "$projdir/electron_app/dist/"
rm -rf "$builddir"
echo "$pubdir can now be hosted on your web server."
echo "deb archives are in electron_app/dist/ - these should be added into your debian repository"
+15
View File
@@ -0,0 +1,15 @@
const fsProm = require('fs').promises;
const path = require('path');
exports.default = async function(context) {
const { electronPlatformName, appOutDir } = context;
// Squirrel windows will try to relaunch the app using an executable of the same name as
// before in the new version, so will fail if the executable is now called something else.
// We add a fake Riot.exe that it can run which runs the real one.
// This also gets signed automatically, presumably because electron-build just looks for all
// exe files and signs them all...
if (electronPlatformName === 'win32') {
await fsProm.copyFile('build/rebrand_stub/rebrand_stub.exe', path.join(appOutDir, "Riot.exe"));
}
};
+8 -4
View File
@@ -1,5 +1,6 @@
const { notarize } = require('electron-notarize');
let warned = false;
exports.default = async function(context) {
const { electronPlatformName, appOutDir } = context;
const appId = context.packager.info.appInfo.id;
@@ -11,10 +12,13 @@ exports.default = async function(context) {
// from the keychain, so we need to get it from the environment.
const userId = process.env.NOTARIZE_APPLE_ID;
if (userId === undefined) {
console.log("*************************************");
console.log("* NOTARIZE_APPLE_ID is not set. *");
console.log("* This build will NOT be notarised. *");
console.log("*************************************");
if (!warned) {
console.log("*************************************");
console.log("* NOTARIZE_APPLE_ID is not set. *");
console.log("* This build will NOT be notarised. *");
console.log("*************************************");
warned = true;
}
return;
}
+11 -7
View File
@@ -24,7 +24,7 @@ function computeSignToolArgs(options, keyContainer) {
// so we don't have to hard-code this here
// fwiw https://stackoverflow.com/questions/17927895/automate-extended-validation-ev-code-signing
// is about the most useful resource on automating code signing...
args.push('/f', 'riot.im\\New_Vector_Ltd.pem');
args.push('/f', 'element.io\\New_Vector_Ltd.pem');
if (options.hash !== "sha1") {
args.push("/fd", options.hash);
@@ -46,15 +46,19 @@ function computeSignToolArgs(options, keyContainer) {
return args;
}
let warned = false;
exports.default = async function(options) {
const keyContainer = process.env.SIGNING_KEY_CONTAINER;
if (keyContainer === undefined) {
console.warn(
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" +
"! Skipping Windows signing. !\n" +
"! SIGNING_KEY_CONTAINER not defined. !\n" +
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",
);
if (!warned) {
console.warn(
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" +
"! Skipping Windows signing. !\n" +
"! SIGNING_KEY_CONTAINER not defined. !\n" +
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",
);
warned = true;
}
return;
}
Executable → Regular
+30 -85
View File
@@ -10,75 +10,13 @@ const asar = require('asar');
const needle = require('needle');
const riotDesktopPackageJson = require('../package.json');
const { setPackageVersion } = require('./set-version.js');
const PUB_KEY_URL = "https://packages.riot.im/riot-release-key.asc";
const PACKAGE_URL_PREFIX = "https://github.com/vector-im/riot-web/releases/download/";
const PUB_KEY_URL = "https://packages.riot.im/element-release-key.asc";
const PACKAGE_URL_PREFIX = "https://github.com/vector-im/element-web/releases/download/";
const DEVELOP_TGZ_URL = "https://vector-im.github.io/element-web/develop.tar.gz";
const ASAR_PATH = 'webapp.asar';
const {setPackageVersion, setDebVersion} = require('./set-version.js');
async function getLatestDevelopUrl(bkToken) {
const buildsResult = await needle('get',
"https://api.buildkite.com/v2/organizations/matrix-dot-org/pipelines/riot-web/builds",
{
branch: 'develop',
state: 'passed',
per_page: 1,
},
{
headers: {
authorization: "Bearer " + bkToken,
},
},
);
const latestBuild = buildsResult.body[0];
console.log("Latest build is " + latestBuild.number);
let artifactUrl;
for (const job of latestBuild.jobs) {
// Strip any colon-form emoji from the build name
if (job.name && job.name.replace(/:\w*:\s*/, '') === 'Package') {
artifactUrl = job.artifacts_url;
break;
}
}
if (artifactUrl === undefined) {
throw new Error("Couldn't find artifact URL - has the name of the package job changed?");
}
const artifactsResult = await needle('get', artifactUrl, {},
{
headers: {
authorization: "Bearer " + bkToken,
},
},
);
let dlUrl;
let dlFilename;
for (const artifact of artifactsResult.body) {
if (artifact.filename && /^riot-.*\.tar.gz$/.test(artifact.filename)) {
dlUrl = artifact.download_url;
dlFilename = artifact.filename;
break;
}
}
if (dlUrl === undefined) {
throw new Error("Couldn't find artifact download URL - has the artifact filename changed?");
}
console.log("Fetching artifact URL...");
const dlResult = await needle('get', dlUrl, {},
{
headers: {
authorization: "Bearer " + bkToken,
},
// This URL will give us a Location header, but will also give us
// a JSON object with the direct URL. We'll take the URL and pass it
// back, then we can easily support specifying a URL directly.
follow_max: 0,
},
);
return [dlFilename, dlResult.body.url];
}
async function downloadToFile(url, filename) {
console.log("Downloading " + url + "...");
@@ -149,24 +87,21 @@ async function main() {
if (targetVersion === undefined) {
targetVersion = 'v' + riotDesktopPackageJson.version;
filename = 'riot-' + targetVersion + '.tar.gz';
url = PACKAGE_URL_PREFIX + targetVersion + '/' + filename;
} else if (targetVersion === 'develop') {
const buildKiteApiKey = process.env.BUILDKITE_API_KEY;
if (buildKiteApiKey === undefined) {
console.log("Set BUILDKITE_API_KEY to fetch latest develop version");
console.log(
"Sorry - Buildkite's API requires authentication to access builds, " +
"even if those builds are accessible on the web with no auth.",
);
process.exit(1);
}
[filename, url] = await getLatestDevelopUrl(buildKiteApiKey);
} else if (targetVersion !== 'develop') {
setVersion = true; // version was specified
}
if (targetVersion === 'develop') {
filename = 'develop.tar.gz';
url = DEVELOP_TGZ_URL;
verify = false; // develop builds aren't signed
} else if (targetVersion.includes("://")) {
filename = targetVersion.substring(targetVersion.lastIndexOf("/") + 1);
url = targetVersion;
verify = false; // manually verified
} else {
filename = 'riot-' + targetVersion + '.tar.gz';
filename = `element-${targetVersion}.tar.gz`;
url = PACKAGE_URL_PREFIX + targetVersion + '/' + filename;
setVersion = true;
}
const haveGpg = await new Promise((resolve) => {
@@ -208,7 +143,7 @@ async function main() {
}
let haveDeploy = false;
const expectedDeployDir = path.join(deployDir, path.basename(filename).replace(/\.tar\.gz/, ''));
let expectedDeployDir = path.join(deployDir, path.basename(filename).replace(/\.tar\.gz/, ''));
try {
await fs.opendir(expectedDeployDir);
console.log(expectedDeployDir + "already exists");
@@ -257,6 +192,12 @@ async function main() {
await tar.x({
file: outPath,
cwd: deployDir,
onentry: entry => {
// Find the appropriate extraction path, only needed for `develop` where the dir name is unknown
if (entry.type === "Directory" && !path.join(deployDir, entry.path).startsWith(expectedDeployDir)) {
expectedDeployDir = path.join(deployDir, entry.path);
}
},
});
}
@@ -280,13 +221,17 @@ async function main() {
await asar.createPackage(expectedDeployDir, ASAR_PATH);
if (setVersion) {
const semVer = targetVersion.slice(1);
const semVer = fs.readFileSync(path.join(expectedDeployDir, "version"), "utf-8").trim();
console.log("Updating version to " + semVer);
await setPackageVersion(semVer);
await setDebVersion(semVer);
}
console.log("Done!");
}
main().then((ret) => process.exit(ret));
main().then((ret) => {
process.exit(ret);
}).catch(e => {
console.error(e);
process.exit(1);
});
+2 -1
View File
@@ -17,7 +17,8 @@ clone() {
if [ -n "$branch" ]
then
echo "Trying to use $org/$repo#$branch"
git clone git://github.com/$org/$repo.git $repo --branch "$branch" --depth 1 && exit 0
# Disable auth prompts: https://serverfault.com/a/665959
GIT_TERMINAL_PROMPT=0 git clone https://github.com/$org/$repo.git $repo --branch "$branch" --depth 1 && exit 0
fi
}
+1 -1
View File
@@ -1,7 +1,7 @@
hak
===
This tool builds native dependencies for riot-desktop. Here follows some very minimal
This tool builds native dependencies for element-desktop. Here follows some very minimal
documentation for it.
Goals:
@@ -14,8 +14,9 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
async function build(hakEnv, moduleInfo) {
import { DependencyInfo } from "./dep";
import HakEnv from "./hakEnv";
export default async function build(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
await moduleInfo.scripts.build(hakEnv, moduleInfo);
}
module.exports = build;
@@ -14,10 +14,11 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
async function check(hakEnv, moduleInfo) {
import { DependencyInfo } from "./dep";
import HakEnv from "./hakEnv";
export default async function check(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
if (moduleInfo.scripts.check) {
await moduleInfo.scripts.check(hakEnv, moduleInfo);
}
}
module.exports = check;
+11 -11
View File
@@ -14,13 +14,15 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
const path = require('path');
import path from 'path';
import rimraf from 'rimraf';
const rimraf = require('rimraf');
import { DependencyInfo } from './dep';
import HakEnv from './hakEnv';
async function clean(hakEnv, moduleInfo) {
await new Promise((resolve, reject) => {
rimraf(moduleInfo.moduleDotHakDir, (err) => {
export default async function clean(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
await new Promise<void>((resolve, reject) => {
rimraf(moduleInfo.moduleDotHakDir, (err: Error) => {
if (err) {
reject(err);
} else {
@@ -29,8 +31,8 @@ async function clean(hakEnv, moduleInfo) {
});
});
await new Promise((resolve, reject) => {
rimraf(path.join(hakEnv.dotHakDir, 'links', moduleInfo.name), (err) => {
await new Promise<void>((resolve, reject) => {
rimraf(path.join(hakEnv.dotHakDir, 'links', moduleInfo.name), (err: Error) => {
if (err) {
reject(err);
} else {
@@ -39,8 +41,8 @@ async function clean(hakEnv, moduleInfo) {
});
});
await new Promise((resolve, reject) => {
rimraf(path.join(hakEnv.projectRoot, 'node_modules', moduleInfo.name), (err) => {
await new Promise<void>((resolve, reject) => {
rimraf(path.join(hakEnv.projectRoot, 'node_modules', moduleInfo.name), (err: Error) => {
if (err) {
reject(err);
} else {
@@ -49,5 +51,3 @@ async function clean(hakEnv, moduleInfo) {
});
});
}
module.exports = clean;
-67
View File
@@ -1,67 +0,0 @@
/*
Copyright 2020 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
const path = require('path');
const fsProm = require('fs').promises;
const rimraf = require('rimraf');
const glob = require('glob');
const mkdirp = require('mkdirp');
async function copy(hakEnv, moduleInfo) {
if (moduleInfo.cfg.prune) {
console.log("Removing " + moduleInfo.cfg.prune + " from " + moduleInfo.moduleOutDir);
// rimraf doesn't have a 'cwd' option: it always uses process.cwd()
// (and if you set glob.cwd it just breaks because it can't find the files)
const oldCwd = process.cwd();
try {
process.chdir(moduleInfo.moduleOutDir);
await new Promise((resolve, reject) => {
rimraf(moduleInfo.cfg.prune, {}, err => {
err ? reject(err) : resolve();
});
});
} finally {
process.chdir(oldCwd);
}
}
if (moduleInfo.cfg.copy) {
console.log(
"Copying " + moduleInfo.cfg.prune + " from " +
moduleInfo.moduleOutDir + " to " + moduleInfo.moduleOutDir,
);
const files = await new Promise(async (resolve, reject) => {
glob(moduleInfo.cfg.copy, {
nosort: true,
silent: true,
cwd: moduleInfo.moduleBuildDir,
}, (err, files) => {
err ? reject(err) : resolve(files);
});
});
for (const f of files) {
console.log("\t" + f);
const src = path.join(moduleInfo.moduleBuildDir, f);
const dst = path.join(moduleInfo.moduleOutDir, f);
await mkdirp(path.dirname(dst));
await fsProm.copyFile(src, dst);
}
}
}
module.exports = copy;
+101
View File
@@ -0,0 +1,101 @@
/*
Copyright 2020-2021 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import path from 'path';
import fsProm from 'fs/promises';
import childProcess from 'child_process';
import rimraf from 'rimraf';
import glob from 'glob';
import mkdirp from 'mkdirp';
import HakEnv from './hakEnv';
import { DependencyInfo } from './dep';
export default async function copy(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
if (moduleInfo.cfg.prune) {
console.log("Removing " + moduleInfo.cfg.prune + " from " + moduleInfo.moduleOutDir);
// rimraf doesn't have a 'cwd' option: it always uses process.cwd()
// (and if you set glob.cwd it just breaks because it can't find the files)
const oldCwd = process.cwd();
try {
await mkdirp(moduleInfo.moduleOutDir);
process.chdir(moduleInfo.moduleOutDir);
await new Promise<void>((resolve, reject) => {
rimraf(moduleInfo.cfg.prune, {}, err => {
err ? reject(err) : resolve();
});
});
} finally {
process.chdir(oldCwd);
}
}
if (moduleInfo.cfg.copy) {
// If there are multiple moduleBuildDirs, singular moduleBuildDir
// is the same as moduleBuildDirs[0], so we're just listing the contents
// of the first one.
const files = await new Promise<string[]>((resolve, reject) => {
glob(moduleInfo.cfg.copy, {
nosort: true,
silent: true,
cwd: moduleInfo.moduleBuildDir,
}, (err, files) => {
err ? reject(err) : resolve(files);
});
});
if (moduleInfo.moduleBuildDirs.length > 1) {
if (!hakEnv.isMac()) {
console.error(
"You asked me to copy multiple targets but I've only been taught " +
"how to do that on macOS.",
);
throw new Error("Can't copy multiple targets on this platform");
}
for (const f of files) {
const components = moduleInfo.moduleBuildDirs.map(dir => path.join(dir, f));
const dst = path.join(moduleInfo.moduleOutDir, f);
await mkdirp(path.dirname(dst));
await new Promise<void>((resolve, reject) => {
childProcess.execFile('lipo',
['-create', '-output', dst, ...components], (err) => {
if (err) {
reject(err);
} else {
resolve();
}
},
);
});
}
} else {
console.log(
"Copying files from " +
moduleInfo.moduleBuildDir + " to " + moduleInfo.moduleOutDir,
);
for (const f of files) {
console.log("\t" + f);
const src = path.join(moduleInfo.moduleBuildDir, f);
const dst = path.join(moduleInfo.moduleOutDir, f);
await mkdirp(path.dirname(dst));
await fsProm.copyFile(src, dst);
}
}
}
}
+32
View File
@@ -0,0 +1,32 @@
/*
Copyright 2021 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import HakEnv from "./hakEnv";
export interface DependencyInfo {
name: string;
version: string;
cfg: Record<string, any>;
moduleHakDir: string;
moduleDotHakDir: string;
moduleTargetDotHakDir: string;
moduleBuildDir: string;
moduleBuildDirs: string[];
moduleOutDir: string;
nodeModuleBinDir: string;
depPrefix: string;
scripts: Record<string, (hakEnv: HakEnv, moduleInfo: DependencyInfo) => Promise<void> >;
}
-125
View File
@@ -1,125 +0,0 @@
/*
Copyright 2020 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
const path = require('path');
const url = require('url');
const fsProm = require('fs').promises;
const childProcess = require('child_process');
const npm = require('npm');
const semver = require('semver');
const needle = require('needle');
const mkdirp = require('mkdirp');
const tar = require('tar');
async function fetch(hakEnv, moduleInfo) {
let haveModuleBuildDir;
try {
const stats = await fsProm.stat(moduleInfo.moduleBuildDir);
haveModuleBuildDir = stats.isDirectory();
} catch (e) {
haveModuleBuildDir = false;
}
if (haveModuleBuildDir) return;
await new Promise((resolve) => {
npm.load({'loglevel': 'silent'}, resolve);
});
console.log("Fetching " + moduleInfo.name + " at version " + moduleInfo.version);
const versions = await new Promise((resolve, reject) => {
npm.view([
moduleInfo.name + '@' + moduleInfo.version,
'dist.tarball',
(err, versions) => {
if (err) {
reject(err);
} else {
resolve(versions);
}
},
]);
});
const orderedVersions = Object.keys(versions);
semver.sort(orderedVersions);
console.log("Resolved version " + orderedVersions[0] + " for " + moduleInfo.name);
const tarballUrl = versions[orderedVersions[0]]['dist.tarball'];
await mkdirp(moduleInfo.moduleDotHakDir);
const parsedUrl = url.parse(tarballUrl);
const tarballFile = path.join(moduleInfo.moduleDotHakDir, path.basename(parsedUrl.path));
let haveTarball;
try {
await fsProm.stat(tarballFile);
haveTarball = true;
} catch (e) {
haveTarball = false;
}
if (!haveTarball) {
console.log("Downloading " + tarballUrl);
await needle('get', tarballUrl, { output: tarballFile });
} else {
console.log(tarballFile + " already exists.");
}
await mkdirp(moduleInfo.moduleBuildDir);
await tar.x({
file: tarballFile,
cwd: moduleInfo.moduleBuildDir,
strip: 1,
});
console.log("Running yarn install in " + moduleInfo.moduleBuildDir);
await new Promise((resolve, reject) => {
const proc = childProcess.spawn(
hakEnv.isWin() ? 'yarn.cmd' : 'yarn',
['install', '--ignore-scripts'],
{
stdio: 'inherit',
cwd: moduleInfo.moduleBuildDir,
},
);
proc.on('exit', code => {
code ? reject(code) : resolve();
});
});
// also extract another copy to the output directory at this point
// nb. we do not yarn install in the output copy: we could install in
// production mode to get only runtime dependencies and not devDependencies,
// but usually native modules come with dependencies that are needed for
// building/fetching the native modules (eg. node-pre-gyp) rather than
// actually used at runtime: we do not want to bundle these into our app.
// We therefore just install no dependencies at all, and accept that any
// actual runtime dependencies will have to be added to the main app's
// dependencies. We can't tell what dependencies are real runtime deps
// and which are just used for native module building.
await mkdirp(moduleInfo.moduleOutDir);
await tar.x({
file: tarballFile,
cwd: moduleInfo.moduleOutDir,
strip: 1,
});
}
module.exports = fetch;
+70
View File
@@ -0,0 +1,70 @@
/*
Copyright 2020 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import fsProm from 'fs/promises';
import childProcess from 'child_process';
import pacote from 'pacote';
import HakEnv from './hakEnv';
import { DependencyInfo } from './dep';
export default async function fetch(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
let haveModuleBuildDir;
try {
const stats = await fsProm.stat(moduleInfo.moduleBuildDir);
haveModuleBuildDir = stats.isDirectory();
} catch (e) {
haveModuleBuildDir = false;
}
if (haveModuleBuildDir) return;
console.log("Fetching " + moduleInfo.name + "@" + moduleInfo.version);
const packumentCache = new Map();
await pacote.extract(`${moduleInfo.name}@${moduleInfo.version}`, moduleInfo.moduleBuildDir, {
packumentCache,
});
console.log("Running yarn install in " + moduleInfo.moduleBuildDir);
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(
hakEnv.isWin() ? 'yarn.cmd' : 'yarn',
['install', '--ignore-scripts'],
{
stdio: 'inherit',
cwd: moduleInfo.moduleBuildDir,
},
);
proc.on('exit', code => {
code ? reject(code) : resolve();
});
});
// also extract another copy to the output directory at this point
// nb. we do not yarn install in the output copy: we could install in
// production mode to get only runtime dependencies and not devDependencies,
// but usually native modules come with dependencies that are needed for
// building/fetching the native modules (eg. node-pre-gyp) rather than
// actually used at runtime: we do not want to bundle these into our app.
// We therefore just install no dependencies at all, and accept that any
// actual runtime dependencies will have to be added to the main app's
// dependencies. We can't tell what dependencies are real runtime deps
// and which are just used for native module building.
await pacote.extract(`${moduleInfo.name}@${moduleInfo.version}`, moduleInfo.moduleOutDir, {
packumentCache,
});
}
@@ -14,13 +14,14 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
const mkdirp = require('mkdirp');
import mkdirp from 'mkdirp';
async function fetchDeps(hakEnv, moduleInfo) {
import { DependencyInfo } from './dep';
import HakEnv from './hakEnv';
export default async function fetchDeps(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
await mkdirp(moduleInfo.moduleDotHakDir);
if (moduleInfo.scripts.fetchDeps) {
await moduleInfo.scripts.fetchDeps(hakEnv, moduleInfo);
}
}
module.exports = fetchDeps;
-115
View File
@@ -1,115 +0,0 @@
/*
Copyright 2020 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
const path = require('path');
const os = require('os');
const nodePreGypVersioning = require('node-pre-gyp/lib/util/versioning');
function getElectronVersion(packageJson) {
// should we pick the version of an installed electron
// dependency, and if so, before or after electronVersion?
if (packageJson.build && packageJson.build.electronVersion) {
return packageJson.build.electronVersion;
}
return null;
}
function getRuntime(packageJson) {
const electronVersion = getElectronVersion(packageJson);
return electronVersion ? 'electron' : 'node-webkit';
}
function getTarget(packageJson) {
const electronVersion = getElectronVersion(packageJson);
if (electronVersion) {
return electronVersion;
} else {
return process.version.substr(1);
}
}
function detectArch() {
if (process.platform === 'win32') {
// vcvarsall.bat (the script that sets up the environment for
// visual studio build tools) sets an env var to tell us what
// architecture the active build tools target, so we auto-detect
// this.
const targetArch = process.env.VSCMD_ARG_TGT_ARCH;
if (targetArch === 'x86') {
return 'ia32';
} else if (targetArch === 'x64') {
return 'x64';
}
}
return process.arch;
}
module.exports = class HakEnv {
constructor(prefix, packageJson) {
Object.assign(this, {
// what we're targeting
runtime: getRuntime(packageJson),
target: getTarget(packageJson),
platform: process.platform,
arch: detectArch(),
// paths
projectRoot: prefix,
dotHakDir: path.join(prefix, '.hak'),
});
}
getRuntimeAbi() {
return nodePreGypVersioning.get_runtime_abi(
this.runtime,
this.target,
);
}
// {node_abi}-{platform}-{arch}
getNodeTriple() {
return this.getRuntimeAbi() + '-' + this.platform + '-' + this.arch;
}
isWin() {
return this.platform === 'win32';
}
isMac() {
return this.platform === 'darwin';
}
isLinux() {
return this.platform === 'linux';
}
makeGypEnv() {
return Object.assign({}, process.env, {
npm_config_target: this.target,
npm_config_arch: this.arch,
npm_config_target_arch: this.arch,
npm_config_disturl: 'https://atom.io/download/electron',
npm_config_runtime: this.runtime,
npm_config_build_from_source: true,
npm_config_devdir: path.join(os.homedir(), ".electron-gyp"),
});
}
getNodeModuleBin(name) {
return path.join(this.projectRoot, 'node_modules', '.bin', name);
}
};
+121
View File
@@ -0,0 +1,121 @@
/*
Copyright 2020-2021 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import path from 'path';
import os from 'os';
import nodePreGypVersioning from "node-pre-gyp/lib/util/versioning";
import { getElectronVersion } from "app-builder-lib/out/electron/electronVersion";
import { Arch, Target, TARGETS, getHost, isHostId, TargetId } from './target';
async function getRuntime(projectRoot: string): Promise<string> {
const electronVersion = await getElectronVersion(projectRoot);
return electronVersion ? 'electron' : 'node-webkit';
}
async function getRuntimeVersion(projectRoot: string): Promise<string> {
const electronVersion = await getElectronVersion(projectRoot);
if (electronVersion) {
return electronVersion;
} else {
return process.version.substr(1);
}
}
export default class HakEnv {
public readonly target: Target;
public runtime: string;
public runtimeVersion: string;
public dotHakDir: string;
constructor(public readonly projectRoot: string, targetId: TargetId | null) {
if (targetId) {
this.target = TARGETS[targetId];
} else {
this.target = getHost();
}
if (!this.target) {
throw new Error(`Unknown target ${targetId}!`);
}
this.dotHakDir = path.join(this.projectRoot, '.hak');
}
public async init() {
this.runtime = await getRuntime(this.projectRoot);
this.runtimeVersion = await getRuntimeVersion(this.projectRoot);
}
public getRuntimeAbi(): string {
return nodePreGypVersioning.get_runtime_abi(
this.runtime,
this.runtimeVersion,
);
}
// {node_abi}-{platform}-{arch}
public getNodeTriple(): string {
return this.getRuntimeAbi() + '-' + this.target.platform + '-' + this.target.arch;
}
public getTargetId(): TargetId {
return this.target.id;
}
public isWin(): boolean {
return this.target.platform === 'win32';
}
public isMac(): boolean {
return this.target.platform === 'darwin';
}
public isLinux(): boolean {
return this.target.platform === 'linux';
}
public getTargetArch(): Arch {
return this.target.arch;
}
public isHost(): boolean {
return isHostId(this.target.id);
}
public makeGypEnv(): Record<string, string> {
return Object.assign({}, process.env, {
npm_config_arch: this.target.arch,
npm_config_target_arch: this.target.arch,
npm_config_disturl: 'https://electronjs.org/headers',
npm_config_runtime: this.runtime,
npm_config_target: this.runtimeVersion,
npm_config_build_from_source: true,
npm_config_devdir: path.join(os.homedir(), ".electron-gyp"),
});
}
public getNodeModuleBin(name: string): string {
return path.join(this.projectRoot, 'node_modules', '.bin', name);
}
public wantsStaticSqlCipherUnix(): boolean {
return this.isMac() || process.env.SQLCIPHER_STATIC == '1';
}
public wantsStaticSqlCipher(): boolean {
return this.isWin() || this.wantsStaticSqlCipherUnix();
}
}
+62 -15
View File
@@ -1,5 +1,5 @@
/*
Copyright 2020 The Matrix.org Foundation C.I.C.
Copyright 2020-2021 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,11 +14,12 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
const path = require('path');
import path from 'path';
import findNpmPrefix from 'find-npm-prefix';
const findNpmPrefix = require('find-npm-prefix');
const HakEnv = require('./hakEnv');
import HakEnv from './hakEnv';
import { TargetId } from './target';
import { DependencyInfo } from './dep';
const GENERALCOMMANDS = [
'target',
@@ -35,6 +36,13 @@ const MODULECOMMANDS = [
'clean',
];
// Shortcuts for multiple commands at once (useful for building universal binaries
// because you can run the fetch/fetchDeps/build for each arch and then copy/link once)
const METACOMMANDS = {
'fetchandbuild': ['check', 'fetch', 'fetchDeps', 'build'],
'copyandlink': ['copy', 'link'],
};
// Scripts valid in a hak.json 'scripts' section
const HAKSCRIPTS = [
'check',
@@ -53,15 +61,36 @@ async function main() {
process.exit(1);
}
const hakEnv = new HakEnv(prefix, packageJson);
const targetIds: TargetId[] = [];
// Apply `--target <target>` option if specified
// Can be specified multiple times for the copy command to bundle
// multiple archs into a single universal output module)
while (true) { // eslint-disable-line no-constant-condition
const targetIndex = process.argv.indexOf('--target');
if (targetIndex === -1) break;
const deps = {};
if ((targetIndex + 1) >= process.argv.length) {
console.error("--target option specified without a target");
process.exit(1);
}
// Extract target ID and remove from args
targetIds.push(process.argv.splice(targetIndex, 2)[1] as TargetId);
}
const hakEnvs = targetIds.map(tid => new HakEnv(prefix, tid));
if (hakEnvs.length == 0) hakEnvs.push(new HakEnv(prefix, null));
for (const h of hakEnvs) {
await h.init();
}
const hakEnv = hakEnvs[0];
const deps: Record<string, DependencyInfo> = {};
const hakDepsCfg = packageJson.hakDependencies || {};
for (const dep of Object.keys(hakDepsCfg)) {
const hakJsonPath = path.join(prefix, 'hak', dep, 'hak.json');
let hakJson;
let hakJson: Record<string, any>;
try {
hakJson = await require(hakJsonPath);
} catch (e) {
@@ -75,27 +104,42 @@ async function main() {
cfg: hakJson,
moduleHakDir: path.join(prefix, 'hak', dep),
moduleDotHakDir: path.join(hakEnv.dotHakDir, dep),
moduleBuildDir: path.join(hakEnv.dotHakDir, dep, 'build'),
moduleTargetDotHakDir: path.join(hakEnv.dotHakDir, dep, hakEnv.getTargetId()),
moduleBuildDir: path.join(hakEnv.dotHakDir, dep, hakEnv.getTargetId(), 'build'),
moduleBuildDirs: hakEnvs.map(h => path.join(h.dotHakDir, dep, h.getTargetId(), 'build')),
moduleOutDir: path.join(hakEnv.dotHakDir, 'hakModules', dep),
nodeModuleBinDir: path.join(hakEnv.dotHakDir, dep, 'build', 'node_modules', '.bin'),
depPrefix: path.join(hakEnv.dotHakDir, dep, 'opt'),
nodeModuleBinDir: path.join(hakEnv.dotHakDir, dep, hakEnv.getTargetId(), 'build', 'node_modules', '.bin'),
depPrefix: path.join(hakEnv.dotHakDir, dep, hakEnv.getTargetId(), 'opt'),
scripts: {},
};
for (const s of HAKSCRIPTS) {
if (hakJson.scripts && hakJson.scripts[s]) {
deps[dep].scripts[s] = require(path.join(prefix, 'hak', dep, hakJson.scripts[s]));
const scriptModule = await import(path.join(prefix, 'hak', dep, hakJson.scripts[s]));
if (scriptModule.__esModule) {
deps[dep].scripts[s] = scriptModule.default;
} else {
deps[dep].scripts[s] = scriptModule;
}
}
}
}
let cmds;
let cmds: string[];
if (process.argv.length < 3) {
cmds = ['check', 'fetch', 'fetchDeps', 'build', 'copy', 'link'];
} else if (METACOMMANDS[process.argv[2]]) {
cmds = METACOMMANDS[process.argv[2]];
} else {
cmds = [process.argv[2]];
}
if (hakEnvs.length > 1 && cmds.some(c => !['copy', 'link'].includes(c))) {
// We allow link here too for convenience because it's completely arch independent
console.error("Multiple targets only supported with the copy command");
return;
}
let modules = process.argv.slice(3);
if (modules.length === 0) modules = Object.keys(deps);
@@ -116,7 +160,7 @@ async function main() {
process.exit(1);
}
const cmdFunc = require('./' + cmd);
const cmdFunc = (await import('./' + cmd)).default;
for (const mod of modules) {
const depInfo = deps[mod];
@@ -133,4 +177,7 @@ async function main() {
}
}
main().catch(() => process.exit(1));
main().catch(err => {
console.error(err);
process.exit(1);
});
+10 -9
View File
@@ -14,12 +14,15 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
const path = require('path');
const os = require('os');
const fsProm = require('fs').promises;
const childProcess = require('child_process');
import path from 'path';
import os from 'os';
import fsProm from 'fs/promises';
import childProcess from 'child_process';
async function link(hakEnv, moduleInfo) {
import HakEnv from './hakEnv';
import { DependencyInfo } from './dep';
export default async function link(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
const yarnrc = path.join(hakEnv.projectRoot, '.yarnrc');
// this is fairly terrible but it's reasonably clunky to either parse a yarnrc
// properly or get yarn to do it, so this will probably suffice for now.
@@ -46,7 +49,7 @@ async function link(hakEnv, moduleInfo) {
const yarnCmd = 'yarn' + (hakEnv.isWin() ? '.cmd' : '');
await new Promise((resolve, reject) => {
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(yarnCmd, ['link'], {
cwd: moduleInfo.moduleOutDir,
stdio: 'inherit',
@@ -56,7 +59,7 @@ async function link(hakEnv, moduleInfo) {
});
});
await new Promise((resolve, reject) => {
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(yarnCmd, ['link', moduleInfo.name], {
cwd: hakEnv.projectRoot,
stdio: 'inherit',
@@ -66,5 +69,3 @@ async function link(hakEnv, moduleInfo) {
});
});
}
module.exports = link;
+196
View File
@@ -0,0 +1,196 @@
/*
Copyright 2021 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import { GLIBC, MUSL, family as processLibC } from "detect-libc";
// We borrow Rust's target naming scheme as a way of expressing all target
// details in a single string.
// See https://doc.rust-lang.org/rustc/platform-support.html.
export type TargetId =
'aarch64-apple-darwin' |
'x86_64-apple-darwin' |
'universal-apple-darwin' |
'i686-pc-windows-msvc' |
'x86_64-pc-windows-msvc' |
'i686-unknown-linux-musl' |
'i686-unknown-linux-gnu' |
'x86_64-unknown-linux-musl' |
'x86_64-unknown-linux-gnu' |
'aarch64-unknown-linux-musl' |
'aarch64-unknown-linux-gnu' |
'powerpc64le-unknown-linux-musl' |
'powerpc64le-unknown-linux-gnu';
// Values are expected to match those used in `process.platform`.
export type Platform = 'darwin' | 'linux' | 'win32';
// Values are expected to match those used in `process.arch`.
export type Arch = 'arm64' | 'ia32' | 'x64' | 'ppc64' | 'universal';
// Values are expected to match those used by Visual Studio's `vcvarsall.bat`.
// See https://docs.microsoft.com/cpp/build/building-on-the-command-line?view=msvc-160#vcvarsall-syntax
export type VcVarsArch = 'amd64' | 'arm64' | 'x86';
export type Target = {
id: TargetId;
platform: Platform;
arch: Arch;
};
export type WindowsTarget = Target & {
platform: 'win32';
vcVarsArch: VcVarsArch;
};
export type LinuxTarget = Target & {
platform: 'linux';
libC: typeof processLibC;
};
export type UniversalTarget = Target & {
arch: 'universal';
subtargets: Target[];
};
const aarch64AppleDarwin: Target = {
id: 'aarch64-apple-darwin',
platform: 'darwin',
arch: 'arm64',
};
const x8664AppleDarwin: Target = {
id: 'x86_64-apple-darwin',
platform: 'darwin',
arch: 'x64',
};
const universalAppleDarwin: UniversalTarget = {
id: 'universal-apple-darwin',
platform: 'darwin',
arch: 'universal',
subtargets: [
aarch64AppleDarwin,
x8664AppleDarwin,
],
};
const i686PcWindowsMsvc: WindowsTarget = {
id: 'i686-pc-windows-msvc',
platform: 'win32',
arch: 'ia32',
vcVarsArch: 'x86',
};
const x8664PcWindowsMsvc: WindowsTarget = {
id: 'x86_64-pc-windows-msvc',
platform: 'win32',
arch: 'x64',
vcVarsArch: 'amd64',
};
const x8664UnknownLinuxGnu: LinuxTarget = {
id: 'x86_64-unknown-linux-gnu',
platform: 'linux',
arch: 'x64',
libC: GLIBC,
};
const x8664UnknownLinuxMusl: LinuxTarget = {
id: 'x86_64-unknown-linux-musl',
platform: 'linux',
arch: 'x64',
libC: MUSL,
};
const i686UnknownLinuxGnu: LinuxTarget = {
id: 'i686-unknown-linux-gnu',
platform: 'linux',
arch: 'ia32',
libC: GLIBC,
};
const i686UnknownLinuxMusl: LinuxTarget = {
id: 'i686-unknown-linux-musl',
platform: 'linux',
arch: 'ia32',
libC: MUSL,
};
const aarch64UnknownLinuxGnu: LinuxTarget = {
id: 'aarch64-unknown-linux-gnu',
platform: 'linux',
arch: 'arm64',
libC: GLIBC,
};
const aarch64UnknownLinuxMusl: LinuxTarget = {
id: 'aarch64-unknown-linux-musl',
platform: 'linux',
arch: 'arm64',
libC: MUSL,
};
const powerpc64leUnknownLinuxGnu: LinuxTarget = {
id: 'powerpc64le-unknown-linux-gnu',
platform: 'linux',
arch: 'ppc64',
libC: GLIBC,
};
const powerpc64leUnknownLinuxMusl: LinuxTarget = {
id: 'powerpc64le-unknown-linux-musl',
platform: 'linux',
arch: 'ppc64',
libC: MUSL,
};
export const TARGETS: Record<TargetId, Target> = {
// macOS
'aarch64-apple-darwin': aarch64AppleDarwin,
'x86_64-apple-darwin': x8664AppleDarwin,
'universal-apple-darwin': universalAppleDarwin,
// Windows
'i686-pc-windows-msvc': i686PcWindowsMsvc,
'x86_64-pc-windows-msvc': x8664PcWindowsMsvc,
// Linux
'i686-unknown-linux-musl': i686UnknownLinuxMusl,
'i686-unknown-linux-gnu': i686UnknownLinuxGnu,
'x86_64-unknown-linux-musl': x8664UnknownLinuxMusl,
'x86_64-unknown-linux-gnu': x8664UnknownLinuxGnu,
'aarch64-unknown-linux-musl': aarch64UnknownLinuxMusl,
'aarch64-unknown-linux-gnu': aarch64UnknownLinuxGnu,
'powerpc64le-unknown-linux-musl': powerpc64leUnknownLinuxMusl,
'powerpc64le-unknown-linux-gnu': powerpc64leUnknownLinuxGnu,
};
export function getHost(): Target | undefined {
return Object.values(TARGETS).find(target => (
target.platform === process.platform &&
target.arch === process.arch &&
(
process.platform !== 'linux' ||
(target as LinuxTarget).libC === processLibC
)
));
}
export function isHostId(id: TargetId): boolean {
return getHost()?.id === id;
}
export function isHost(target: Target): boolean {
return getHost()?.id === target.id;
}
+18
View File
@@ -0,0 +1,18 @@
{
"compilerOptions": {
"moduleResolution": "node",
"esModuleInterop": true,
"target": "es2017",
"module": "commonjs",
"sourceMap": false,
"lib": [
"es2019",
]
},
"include": [
"./**/*.ts"
],
"ts-node": {
"transpileOnly": true
}
}
+7 -4
View File
@@ -1,14 +1,17 @@
#!/bin/bash
docker inspect riot-desktop-dockerbuild 2> /dev/null > /dev/null
IMAGE=${DOCKER_IMAGE_NAME:-"element-desktop-dockerbuild"}
docker inspect "$IMAGE" 2> /dev/null > /dev/null
if [ $? != 0 ]; then
echo "Docker image riot-desktop-dockerbuild not found. Have you run yarn run docker:setup?"
echo "Docker image $IMAGE not found. Have you run yarn run docker:setup?"
exit 1
fi
# Taken from https://www.electron.build/multi-platform-build#docker
# Pass through any vars prefixed with INDOCKER_, removing the prefix
docker run --rm -ti \
--env-file <(env | grep -iE '^BUILDKITE_API_KEY=') \
--env-file <(env | grep -E '^INDOCKER_' | sed -e 's/^INDOCKER_//') \
--env ELECTRON_CACHE="/root/.cache/electron" \
--env ELECTRON_BUILDER_CACHE="/root/.cache/electron-builder" \
-v ${PWD}:/project \
@@ -17,4 +20,4 @@ docker run --rm -ti \
-v ${PWD}/docker/.gnupg:/root/.gnupg \
-v ~/.cache/electron:/root/.cache/electron \
-v ~/.cache/electron-builder:/root/.cache/electron-builder \
riot-desktop-dockerbuild "$@"
"$IMAGE" "$@"
+2 -2
View File
@@ -22,10 +22,10 @@ cp $confdir/conf_distributions $repodir/conf/distributions
pushd $repodir
for i in `cat conf/distributions | grep Codename | cut -d ' ' -f 2`
do
reprepro includedeb $i $distdir/riot-desktop_${ver}_amd64.deb
reprepro includedeb $i $distdir/element-desktop_${ver}_amd64.deb
done
tar cvzf $distdir/riot-desktop_repo_$ver.tar.gz .
tar cvzf $distdir/element-desktop_repo_$ver.tar.gz .
popd
+1 -1
View File
@@ -52,4 +52,4 @@ if (require.main === module) {
main(process.argv.slice(2)).then((ret) => process.exit(ret));
}
module.exports = {versionFromAsar, setPackageVersion};
module.exports = { versionFromAsar, setPackageVersion };
+46
View File
@@ -0,0 +1,46 @@
/*
Copyright 2021 - 2022 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import { BrowserWindow } from "electron";
import Store from "electron-store";
import AutoLaunch from "auto-launch";
import { AppLocalization } from "../language-helper";
declare global {
namespace NodeJS {
interface Global {
mainWindow: BrowserWindow;
appQuitting: boolean;
appLocalization: AppLocalization;
launcher: AutoLaunch;
vectorConfig: Record<string, any>;
trayConfig: {
// eslint-disable-next-line camelcase
icon_path: string;
brand: string;
};
store: Store<{
warnBeforeExit?: boolean;
minimizeToTray?: boolean;
spellCheckerEnabled?: boolean;
autoHideMenuBar?: boolean;
locale?: string | string[];
disableHardwareAcceleration?: boolean;
}>;
}
}
}
+54
View File
@@ -0,0 +1,54 @@
// Based on https://github.com/atom/node-keytar/blob/master/keytar.d.ts because keytar is a hak-dependency and not a normal one
// Definitions by: Milan Burda <https://github.com/miniak>, Brendan Forster <https://github.com/shiftkey>, Hari Juturu <https://github.com/juturu>
// Adapted from DefinitelyTyped: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/keytar/index.d.ts
declare module "keytar" {
/**
* Get the stored password for the service and account.
*
* @param service The string service name.
* @param account The string account name.
*
* @returns A promise for the password string.
*/
export function getPassword(service: string, account: string): Promise<string | null>;
/**
* Add the password for the service and account to the keychain.
*
* @param service The string service name.
* @param account The string account name.
* @param password The string password.
*
* @returns A promise for the set password completion.
*/
export function setPassword(service: string, account: string, password: string): Promise<void>;
/**
* Delete the stored password for the service and account.
*
* @param service The string service name.
* @param account The string account name.
*
* @returns A promise for the deletion status. True on success.
*/
export function deletePassword(service: string, account: string): Promise<boolean>;
/**
* Find a password for the service in the keychain.
*
* @param service The string service name.
*
* @returns A promise for the password string.
*/
export function findPassword(service: string): Promise<string | null>;
/**
* Find all accounts and passwords for `service` in the keychain.
*
* @param service The string service name.
*
* @returns A promise for the array of found credentials.
*/
export function findCredentials(service: string): Promise<Array<{ account: string, password: string}>>;
}
+145
View File
@@ -0,0 +1,145 @@
/*
Copyright 2022 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
declare module "matrix-seshat" {
interface IConfig {
language?: string;
passphrase?: string;
}
/* eslint-disable camelcase */
interface IMatrixEvent {
event_id: string;
sender: string;
room_id: string;
origin_server_ts: number;
content: Record<string, any>;
}
interface IMatrixProfile {
displayname?: string;
avatar_url?: string;
}
interface ISearchArgs {
searchTerm: number;
limit: number;
before_limit: number;
after_limit: number;
order_by_recency: boolean;
next_batch?: string;
}
interface ISearchContext {
events_before: IMatrixEvent[];
events_after: IMatrixEvent[];
profile_info: { [userId: string]: IMatrixProfile };
}
interface ISearchResult {
next_batch: string;
count: number;
results: Array<{
rank: number;
result: IMatrixEvent;
context: ISearchContext;
}>;
}
/* eslint-enable camelcase */
interface ICheckpoint {
roomId: string;
token: string;
fullCrawl: boolean;
direction: "b" | "f";
}
interface IDatabaseStats {
size: number;
eventCount: number;
roomCount: number;
}
interface ILoadArgs {
roomId: string;
limit: number;
fromEvent: string;
direction: "b" | "f";
}
interface ILoadResult {
event: IMatrixEvent;
matrixProfile: IMatrixProfile;
}
export class Seshat {
constructor(path: string, config?: IConfig);
public addEvent(matrixEvent: IMatrixEvent, profile?: IMatrixProfile): void;
public deleteEvent(eventId: string): Promise<boolean>;
public commit(force?: boolean): Promise<number>;
public commitSync(wait?: boolean, force?: boolean): number;
public reload(): void;
public search(args: ISearchArgs): Promise<ISearchResult>;
public searchSync(
term: string,
limit?: number,
beforeLimit?: number,
afterLimit?: number,
orderByRecency?: boolean,
): ISearchResult;
public addHistoricEventsSync(
events: IMatrixEvent[],
newCheckpoint?: ICheckpoint,
oldCheckpoint?: ICheckpoint,
): boolean;
public addHistoricEvents(
events: IMatrixEvent[],
newCheckpoint?: ICheckpoint,
oldCheckpoint?: ICheckpoint,
): Promise<boolean>;
public addCrawlerCheckpoint(checkpoint: ICheckpoint): Promise<void>;
public removeCrawlerCheckpoint(checkpoint: ICheckpoint): Promise<void>;
public loadCheckpoints(): Promise<ICheckpoint[]>;
public getSize(): Promise<number>;
public getStats(): Promise<IDatabaseStats>;
public delete(): Promise<void>;
public shutdown(): Promise<void>;
public changePassphrase(newPassphrase: string): Promise<void>;
public isEmpty(): Promise<boolean>;
public isRoomIndexed(roomId: string): Promise<boolean>;
public getUserVersion(): Promise<number>;
public setUserVersion(version: number): Promise<void>;
public loadFileEvents(args: ILoadArgs): Promise<ILoadResult[]>;
}
interface IRecoveryInfo {
totalEvents: number;
reindexedEvents: number;
done: number;
}
export class SeshatRecovery {
constructor(path: string, config?: IConfig);
public info(): IRecoveryInfo;
public getUserVersion(): Promise<number>;
public shutdown(): Promise<void>;
public reindex(): Promise<void>;
}
export class ReindexError extends Error {
constructor(message?: string);
}
}
-867
View File
@@ -1,867 +0,0 @@
/*
Copyright 2016 Aviral Dasgupta
Copyright 2016 OpenMarket Ltd
Copyright 2018, 2019 New Vector Ltd
Copyright 2017, 2019 Michael Telatynski <7t3chguy@gmail.com>
Copyright 2020 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Squirrel on windows starts the app with various flags
// as hooks to tell us when we've been installed/uninstalled
// etc.
const checkSquirrelHooks = require('./squirrelhooks');
if (checkSquirrelHooks()) return;
const argv = require('minimist')(process.argv, {
alias: {help: "h"},
});
const {app, ipcMain, powerSaveBlocker, BrowserWindow, Menu, autoUpdater, protocol} = require('electron');
const AutoLaunch = require('auto-launch');
const path = require('path');
const tray = require('./tray');
const vectorMenu = require('./vectormenu');
const webContentsHandler = require('./webcontents-handler');
const updater = require('./updater');
const {getProfileFromDeeplink, protocolInit, recordSSOSession} = require('./protocol');
const windowStateKeeper = require('electron-window-state');
const Store = require('electron-store');
const fs = require('fs');
const afs = fs.promises;
const crypto = require('crypto');
let keytar;
try {
keytar = require('keytar');
} catch (e) {
if (e.code === "MODULE_NOT_FOUND") {
console.log("Keytar isn't installed; secure key storage is disabled.");
} else {
console.warn("Keytar unexpected error:", e);
}
}
let seshatSupported = false;
let Seshat;
let SeshatRecovery;
let ReindexError;
const seshatPassphrase = "DEFAULT_PASSPHRASE";
try {
const seshatModule = require('matrix-seshat');
Seshat = seshatModule.Seshat;
SeshatRecovery = seshatModule.SeshatRecovery;
ReindexError = seshatModule.ReindexError;
seshatSupported = true;
} catch (e) {
if (e.code === "MODULE_NOT_FOUND") {
console.log("Seshat isn't installed, event indexing is disabled.");
} else {
console.warn("Seshat unexpected error:", e);
}
}
// Things we need throughout the file but need to be created
// async to are initialised in setupGlobals()
let asarPath;
let resPath;
let vectorConfig;
let iconPath;
let trayConfig;
let launcher;
if (argv["help"]) {
console.log("Options:");
console.log(" --profile-dir {path}: Path to where to store the profile.");
console.log(" --profile {name}: Name of alternate profile to use, allows for running multiple accounts.");
console.log(" --devtools: Install and use react-devtools and react-perf.");
console.log(" --no-update: Disable automatic updating.");
console.log(" --hidden: Start the application hidden in the system tray.");
console.log(" --help: Displays this help message.");
console.log("And more such as --proxy, see:" +
"https://electronjs.org/docs/api/command-line-switches");
app.exit();
}
// check if we are passed a profile in the SSO callback url
const userDataPathInProtocol = getProfileFromDeeplink(argv["_"]);
if (userDataPathInProtocol) {
app.setPath('userData', userDataPathInProtocol);
} else if (argv['profile-dir']) {
app.setPath('userData', argv['profile-dir']);
} else if (argv['profile']) {
app.setPath('userData', `${app.getPath('userData')}-${argv['profile']}`);
}
async function tryPaths(name, root, rawPaths) {
// Make everything relative to root
const paths = rawPaths.map(p => path.join(root, p));
for (const p of paths) {
try {
await afs.stat(p);
return p + '/';
} catch (e) {
}
}
console.log(`Couldn't find ${name} files in any of: `);
for (const p of paths) {
console.log("\t"+path.resolve(p));
}
throw new Error(`Failed to find ${name} files`);
}
// Find the webapp resources and set up things that require them
async function setupGlobals() {
// find the webapp asar.
asarPath = await tryPaths("webapp", __dirname, [
// If run from the source checkout, this will be in the directory above
'../webapp.asar',
// but if run from a packaged application, electron-main.js will be in
// a different asar file so it will be two levels above
'../../webapp.asar',
// also try without the 'asar' suffix to allow symlinking in a directory
'../webapp',
// from a packaged application
'../../webapp',
]);
// we assume the resources path is in the same place as the asar
resPath = await tryPaths("res", path.dirname(asarPath), [
// If run from the source checkout
'res',
// if run from packaged application
'',
]);
try {
vectorConfig = require(asarPath + 'config.json');
} catch (e) {
// it would be nice to check the error code here and bail if the config
// is unparseable, but we get MODULE_NOT_FOUND in the case of a missing
// file or invalid json, so node is just very unhelpful.
// Continue with the defaults (ie. an empty config)
vectorConfig = {};
}
try {
// Load local config and use it to override values from the one baked with the build
const localConfig = require(path.join(app.getPath('userData'), 'config.json'));
// If the local config has a homeserver defined, don't use the homeserver from the build
// config. This is to avoid a problem where Riot thinks there are multiple homeservers
// defined, and panics as a result.
const homeserverProps = ['default_is_url', 'default_hs_url', 'default_server_name', 'default_server_config'];
if (Object.keys(localConfig).find(k => homeserverProps.includes(k))) {
// Rip out all the homeserver options from the vector config
vectorConfig = Object.keys(vectorConfig)
.filter(k => !homeserverProps.includes(k))
.reduce((obj, key) => {obj[key] = vectorConfig[key]; return obj;}, {});
}
vectorConfig = Object.assign(vectorConfig, localConfig);
} catch (e) {
// Could not load local config, this is expected in most cases.
}
// The tray icon
// It's important to call `path.join` so we don't end up with the packaged asar in the final path.
const iconFile = `riot.${process.platform === 'win32' ? 'ico' : 'png'}`;
iconPath = path.join(resPath, "img", iconFile);
trayConfig = {
icon_path: iconPath,
brand: vectorConfig.brand || 'Riot',
};
// launcher
launcher = new AutoLaunch({
name: vectorConfig.brand || 'Riot',
isHidden: true,
mac: {
useLaunchAgent: true,
},
});
}
const eventStorePath = path.join(app.getPath('userData'), 'EventStore');
const store = new Store({ name: "electron-config" });
let eventIndex = null;
let mainWindow = null;
global.appQuitting = false;
// handle uncaught errors otherwise it displays
// stack traces in popup dialogs, which is terrible (which
// it will do any time the auto update poke fails, and there's
// no other way to catch this error).
// Assuming we generally run from the console when developing,
// this is far preferable.
process.on('uncaughtException', function(error) {
console.log('Unhandled exception', error);
});
let focusHandlerAttached = false;
ipcMain.on('setBadgeCount', function(ev, count) {
app.badgeCount = count;
if (count === 0 && mainWindow) {
mainWindow.flashFrame(false);
}
});
ipcMain.on('loudNotification', function() {
if (process.platform === 'win32' && mainWindow && !mainWindow.isFocused() && !focusHandlerAttached) {
mainWindow.flashFrame(true);
mainWindow.once('focus', () => {
mainWindow.flashFrame(false);
focusHandlerAttached = false;
});
focusHandlerAttached = true;
}
});
let powerSaveBlockerId = null;
ipcMain.on('app_onAction', function(ev, payload) {
switch (payload.action) {
case 'call_state':
if (powerSaveBlockerId !== null && powerSaveBlocker.isStarted(powerSaveBlockerId)) {
if (payload.state === 'ended') {
powerSaveBlocker.stop(powerSaveBlockerId);
powerSaveBlockerId = null;
}
} else {
if (powerSaveBlockerId === null && payload.state === 'connected') {
powerSaveBlockerId = powerSaveBlocker.start('prevent-display-sleep');
}
}
break;
}
});
ipcMain.on('ipcCall', async function(ev, payload) {
if (!mainWindow) return;
const args = payload.args || [];
let ret;
switch (payload.name) {
case 'getUpdateFeedUrl':
ret = autoUpdater.getFeedURL();
break;
case 'getAutoLaunchEnabled':
ret = await launcher.isEnabled();
break;
case 'setAutoLaunchEnabled':
if (args[0]) {
launcher.enable();
} else {
launcher.disable();
}
break;
case 'getMinimizeToTrayEnabled':
ret = tray.hasTray();
break;
case 'setMinimizeToTrayEnabled':
if (args[0]) {
// Create trayIcon icon
tray.create(trayConfig);
} else {
tray.destroy();
}
store.set('minimizeToTray', args[0]);
break;
case 'getAutoHideMenuBarEnabled':
ret = global.mainWindow.autoHideMenuBar;
break;
case 'setAutoHideMenuBarEnabled':
store.set('autoHideMenuBar', args[0]);
global.mainWindow.autoHideMenuBar = Boolean(args[0]);
global.mainWindow.setMenuBarVisibility(!args[0]);
break;
case 'getAppVersion':
ret = app.getVersion();
break;
case 'focusWindow':
if (mainWindow.isMinimized()) {
mainWindow.restore();
} else if (!mainWindow.isVisible()) {
mainWindow.show();
} else {
mainWindow.focus();
}
break;
case 'getConfig':
ret = vectorConfig;
break;
case 'navigateBack':
if (mainWindow.webContents.canGoBack()) {
mainWindow.webContents.goBack();
}
break;
case 'navigateForward':
if (mainWindow.webContents.canGoForward()) {
mainWindow.webContents.goForward();
}
break;
case 'setLanguage': {
// work around `setSpellCheckerLanguages` being case-sensitive by converting to expected case
const caseMap = {};
const availableLanguages = mainWindow.webContents.session.availableSpellCheckerLanguages;
availableLanguages.forEach(lang => {
caseMap[lang.toLowerCase()] = lang;
});
if (!caseMap["en"]) {
// default special-case for `en` as in Riot is actually implies `en-GB`. `en-US` is distinct.
// this way if `en` is requested and not available and `en-GB` is available it'll be used.
caseMap["en"] = caseMap["en-gb"];
}
const languages = new Set();
args[0].forEach(lang => {
const lcLang = lang.toLowerCase();
if (caseMap[lcLang]) {
languages.add(caseMap[lcLang]);
return;
}
// as a fallback if the language is unknown check if the language group is known, e.g en for en-AU
const langGroup = lcLang.split("-")[0];
if (caseMap[langGroup]) {
languages.add(caseMap[langGroup]);
return;
}
// as a further fallback, pick all other matching variants from the same language group
// this means that if we cannot find `ar-dz` or `ar` for example, we will pick `ar-*` to
// offer a spellcheck which is least likely to wrongly red underline something.
availableLanguages.forEach(availableLang => {
if (availableLang.startsWith(langGroup)) {
languages.add(availableLang);
}
});
});
if (languages.size > 0) {
mainWindow.webContents.session.setSpellCheckerLanguages([...languages]);
}
break;
}
case 'startSSOFlow':
recordSSOSession(args[0]);
break;
case 'getPickleKey':
try {
ret = await keytar.getPassword("riot.im", `${args[0]}|${args[1]}`);
} catch (e) {
// if an error is thrown (e.g. keytar can't connect to the keychain),
// then return null, which means the default pickle key will be used
ret = null;
}
break;
case 'createPickleKey':
try {
const randomArray = await new Promise((resolve, reject) => {
crypto.randomBytes(32, (err, buf) => {
if (err) {
reject(err);
} else {
resolve(buf);
}
});
});
const pickleKey = randomArray.toString("base64").replace(/=+$/g, '');
await keytar.setPassword("riot.im", `${args[0]}|${args[1]}`, pickleKey);
ret = pickleKey;
} catch (e) {
ret = null;
}
break;
case 'destroyPickleKey':
try {
await keytar.deletePassword("riot.im", `${args[0]}|${args[1]}`);
} catch (e) {}
break;
default:
mainWindow.webContents.send('ipcReply', {
id: payload.id,
error: "Unknown IPC Call: " + payload.name,
});
return;
}
mainWindow.webContents.send('ipcReply', {
id: payload.id,
reply: ret,
});
});
ipcMain.on('seshat', async function(ev, payload) {
if (!mainWindow) return;
const sendError = (id, e) => {
const error = {
message: e.message,
};
mainWindow.webContents.send('seshatReply', {
id: id,
error: error,
});
};
const args = payload.args || [];
let ret;
switch (payload.name) {
case 'supportsEventIndexing':
ret = seshatSupported;
break;
case 'initEventIndex':
if (eventIndex === null) {
try {
await afs.mkdir(eventStorePath, {recursive: true});
eventIndex = new Seshat(eventStorePath, {passphrase: seshatPassphrase});
} catch (e) {
if (e instanceof ReindexError) {
// If this is a reindex error, the index schema
// changed. Try to open the database in recovery mode,
// reindex the database and finally try to open the
// database again.
try {
const recoveryIndex = new SeshatRecovery(eventStorePath, {
passphrase: seshatPassphrase,
});
await recoveryIndex.reindex();
eventIndex = new Seshat(eventStorePath, {
passphrase: seshatPassphrase,
});
} catch (e) {
sendError(payload.id, e);
return;
}
} else {
sendError(payload.id, e);
return;
}
}
}
break;
case 'closeEventIndex':
if (eventIndex !== null) {
const index = eventIndex;
eventIndex = null;
try {
await index.shutdown();
} catch (e) {
sendError(payload.id, e);
return;
}
}
break;
case 'deleteEventIndex':
{
const deleteFolderRecursive = async (p) => {
for (const entry of await afs.readdir(p)) {
const curPath = path.join(p, entry);
await afs.unlink(curPath);
}
};
try {
await deleteFolderRecursive(eventStorePath);
} catch (e) {
}
}
break;
case 'isEventIndexEmpty':
if (eventIndex === null) ret = true;
else ret = await eventIndex.isEmpty();
break;
case 'addEventToIndex':
try {
eventIndex.addEvent(args[0], args[1]);
} catch (e) {
sendError(payload.id, e);
return;
}
break;
case 'deleteEvent':
try {
ret = await eventIndex.deleteEvent(args[0]);
} catch (e) {
sendError(payload.id, e);
return;
}
break;
case 'commitLiveEvents':
try {
ret = await eventIndex.commit();
} catch (e) {
sendError(payload.id, e);
return;
}
break;
case 'searchEventIndex':
try {
ret = await eventIndex.search(args[0]);
} catch (e) {
sendError(payload.id, e);
return;
}
break;
case 'addHistoricEvents':
if (eventIndex === null) ret = false;
else {
try {
ret = await eventIndex.addHistoricEvents(
args[0], args[1], args[2]);
} catch (e) {
sendError(payload.id, e);
return;
}
}
break;
case 'getStats':
if (eventIndex === null) ret = 0;
else {
try {
ret = await eventIndex.getStats();
} catch (e) {
sendError(payload.id, e);
return;
}
}
break;
case 'removeCrawlerCheckpoint':
if (eventIndex === null) ret = false;
else {
try {
ret = await eventIndex.removeCrawlerCheckpoint(args[0]);
} catch (e) {
sendError(payload.id, e);
return;
}
}
break;
case 'addCrawlerCheckpoint':
if (eventIndex === null) ret = false;
else {
try {
ret = await eventIndex.addCrawlerCheckpoint(args[0]);
} catch (e) {
sendError(payload.id, e);
return;
}
}
break;
case 'loadFileEvents':
if (eventIndex === null) ret = [];
else {
try {
ret = await eventIndex.loadFileEvents(args[0]);
} catch (e) {
sendError(payload.id, e);
return;
}
}
break;
case 'loadCheckpoints':
if (eventIndex === null) ret = [];
else {
try {
ret = await eventIndex.loadCheckpoints();
} catch (e) {
ret = [];
}
}
break;
default:
mainWindow.webContents.send('seshatReply', {
id: payload.id,
error: "Unknown IPC Call: " + payload.name,
});
return;
}
mainWindow.webContents.send('seshatReply', {
id: payload.id,
reply: ret,
});
});
app.commandLine.appendSwitch('--enable-usermedia-screen-capturing');
const gotLock = app.requestSingleInstanceLock();
if (!gotLock) {
console.log('Other instance detected: exiting');
app.exit();
}
// do this after we know we are the primary instance of the app
protocolInit();
// Register the scheme the app is served from as 'standard'
// which allows things like relative URLs and IndexedDB to
// work.
// Also mark it as secure (ie. accessing resources from this
// protocol and HTTPS won't trigger mixed content warnings).
protocol.registerSchemesAsPrivileged([{
scheme: 'vector',
privileges: {
standard: true,
secure: true,
supportFetchAPI: true,
},
}]);
// Turn the sandbox on for *all* windows we might generate. Doing this means we don't
// have to specify a `sandbox: true` to each BrowserWindow.
//
// This also fixes an issue with window.open where if we only specified the sandbox
// on the main window we'd run into cryptic "ipc_renderer be broke" errors. Turns out
// it's trying to jump the sandbox and make some calls into electron, which it can't
// do when half of it is sandboxed. By turning on the sandbox for everything, the new
// window (no matter how temporary it may be) is also sandboxed, allowing for a clean
// transition into the user's browser.
app.enableSandbox();
app.on('ready', async () => {
try {
await setupGlobals();
} catch (e) {
console.log("App setup failed: exiting", e);
process.exit(1);
// process.exit doesn't cause node to stop running code immediately,
// so return (we could let the exception propagate but then we end up
// with node printing all sorts of stuff about unhandled exceptions
// when we want the actual error to be as obvious as possible).
return;
}
if (argv['devtools']) {
try {
const { default: installExt, REACT_DEVELOPER_TOOLS, REACT_PERF } = require('electron-devtools-installer');
installExt(REACT_DEVELOPER_TOOLS)
.then((name) => console.log(`Added Extension: ${name}`))
.catch((err) => console.log('An error occurred: ', err));
installExt(REACT_PERF)
.then((name) => console.log(`Added Extension: ${name}`))
.catch((err) => console.log('An error occurred: ', err));
} catch (e) {
console.log(e);
}
}
protocol.registerFileProtocol('vector', (request, callback) => {
if (request.method !== 'GET') {
callback({error: -322}); // METHOD_NOT_SUPPORTED from chromium/src/net/base/net_error_list.h
return null;
}
const parsedUrl = new URL(request.url);
if (parsedUrl.protocol !== 'vector:') {
callback({error: -302}); // UNKNOWN_URL_SCHEME
return;
}
if (parsedUrl.host !== 'vector') {
callback({error: -105}); // NAME_NOT_RESOLVED
return;
}
const target = parsedUrl.pathname.split('/');
// path starts with a '/'
if (target[0] !== '') {
callback({error: -6}); // FILE_NOT_FOUND
return;
}
if (target[target.length - 1] == '') {
target[target.length - 1] = 'index.html';
}
let baseDir;
if (target[1] === 'webapp') {
baseDir = asarPath;
} else {
callback({error: -6}); // FILE_NOT_FOUND
return;
}
// Normalise the base dir and the target path separately, then make sure
// the target path isn't trying to back out beyond its root
baseDir = path.normalize(baseDir);
const relTarget = path.normalize(path.join(...target.slice(2)));
if (relTarget.startsWith('..')) {
callback({error: -6}); // FILE_NOT_FOUND
return;
}
const absTarget = path.join(baseDir, relTarget);
callback({
path: absTarget,
});
});
if (argv['no-update']) {
console.log('Auto update disabled via command line flag "--no-update"');
} else if (vectorConfig['update_base_url']) {
console.log(`Starting auto update with base URL: ${vectorConfig['update_base_url']}`);
updater.start(vectorConfig['update_base_url']);
} else {
console.log('No update_base_url is defined: auto update is disabled');
}
// Load the previous window state with fallback to defaults
const mainWindowState = windowStateKeeper({
defaultWidth: 1024,
defaultHeight: 768,
});
const preloadScript = path.normalize(`${__dirname}/preload.js`);
mainWindow = global.mainWindow = new BrowserWindow({
// https://www.electronjs.org/docs/faq#the-font-looks-blurry-what-is-this-and-what-can-i-do
backgroundColor: '#fff',
icon: iconPath,
show: false,
autoHideMenuBar: store.get('autoHideMenuBar', true),
x: mainWindowState.x,
y: mainWindowState.y,
width: mainWindowState.width,
height: mainWindowState.height,
webPreferences: {
preload: preloadScript,
nodeIntegration: false,
//sandbox: true, // We enable sandboxing from app.enableSandbox() above
enableRemoteModule: false,
// We don't use this: it's useful for the preload script to
// share a context with the main page so we can give select
// objects to the main page. The sandbox option isolates the
// main page from the background script.
contextIsolation: false,
webgl: false,
spellcheck: true,
},
});
mainWindow.loadURL('vector://vector/webapp/');
Menu.setApplicationMenu(vectorMenu);
// Create trayIcon icon
if (store.get('minimizeToTray', true)) tray.create(trayConfig);
mainWindow.once('ready-to-show', () => {
mainWindowState.manage(mainWindow);
if (!argv['hidden']) {
mainWindow.show();
} else {
// hide here explicitly because window manage above sometimes shows it
mainWindow.hide();
}
});
mainWindow.on('closed', () => {
mainWindow = global.mainWindow = null;
});
mainWindow.on('close', (e) => {
// If we are not quitting and have a tray icon then minimize to tray
if (!global.appQuitting && (tray.hasTray() || process.platform === 'darwin')) {
// On Mac, closing the window just hides it
// (this is generally how single-window Mac apps
// behave, eg. Mail.app)
e.preventDefault();
mainWindow.hide();
return false;
}
});
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);
});
app.on('window-all-closed', () => {
app.quit();
});
app.on('activate', () => {
mainWindow.show();
});
function beforeQuit() {
global.appQuitting = true;
if (mainWindow) {
mainWindow.webContents.send('before-quit');
}
}
app.on('before-quit', beforeQuit);
app.on('before-quit-for-update', beforeQuit);
app.on('second-instance', (ev, commandLine, workingDirectory) => {
// If other instance launched with --hidden then skip showing window
if (commandLine.includes('--hidden')) return;
// Someone tried to run a second instance, we should focus our window.
if (mainWindow) {
if (!mainWindow.isVisible()) mainWindow.show();
if (mainWindow.isMinimized()) mainWindow.restore();
mainWindow.focus();
}
});
// Set the App User Model ID to match what the squirrel
// installer uses for the shortcut icon.
// This makes notifications work on windows 8.1 (and is
// a noop on other platforms).
app.setAppUserModelId('com.squirrel.riot-web.Riot');
+536
View File
@@ -0,0 +1,536 @@
/*
Copyright 2016 Aviral Dasgupta
Copyright 2016 OpenMarket Ltd
Copyright 2017, 2019 Michael Telatynski <7t3chguy@gmail.com>
Copyright 2018 - 2021 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Squirrel on windows starts the app with various flags as hooks to tell us when we've been installed/uninstalled etc.
import "./squirrelhooks";
import {
app,
BrowserWindow,
Menu,
autoUpdater,
protocol,
dialog,
} from "electron";
import AutoLaunch from "auto-launch";
import path from "path";
import windowStateKeeper from 'electron-window-state';
import Store from 'electron-store';
import fs, { promises as afs } from "fs";
import { URL } from "url";
import minimist from "minimist";
import "./ipc";
import "./keytar";
import "./seshat";
import "./settings";
import * as tray from "./tray";
import { buildMenuTemplate } from './vectormenu';
import webContentsHandler from './webcontents-handler';
import * as updater from './updater';
import { getProfileFromDeeplink, protocolInit } from './protocol';
import { _t, AppLocalization } from './language-helper';
import Input = Electron.Input;
const argv = minimist(process.argv, {
alias: { help: "h" },
});
// Things we need throughout the file but need to be created
// async to are initialised in setupGlobals()
let asarPath: string;
let resPath: string;
let iconPath: string;
if (argv["help"]) {
console.log("Options:");
console.log(" --profile-dir {path}: Path to where to store the profile.");
console.log(" --profile {name}: Name of alternate profile to use, allows for running multiple accounts.");
console.log(" --devtools: Install and use react-devtools and react-perf.");
console.log(" --no-update: Disable automatic updating.");
console.log(" --hidden: Start the application hidden in the system tray.");
console.log(" --help: Displays this help message.");
console.log("And more such as --proxy, see:" +
"https://electronjs.org/docs/api/command-line-switches");
app.exit();
}
// Electron creates the user data directory (with just an empty 'Dictionaries' directory...)
// as soon as the app path is set, so pick a random path in it that must exist if it's a
// real user data directory.
function isRealUserDataDir(d: string): boolean {
return fs.existsSync(path.join(d, 'IndexedDB'));
}
// check if we are passed a profile in the SSO callback url
let userDataPath: string;
const userDataPathInProtocol = getProfileFromDeeplink(argv["_"]);
if (userDataPathInProtocol) {
userDataPath = userDataPathInProtocol;
} else if (argv['profile-dir']) {
userDataPath = argv['profile-dir'];
} else {
let newUserDataPath = app.getPath('userData');
if (argv['profile']) {
newUserDataPath += '-' + argv['profile'];
}
const newUserDataPathExists = isRealUserDataDir(newUserDataPath);
let oldUserDataPath = path.join(app.getPath('appData'), app.getName().replace('Element', 'Riot'));
if (argv['profile']) {
oldUserDataPath += '-' + argv['profile'];
}
const oldUserDataPathExists = isRealUserDataDir(oldUserDataPath);
console.log(newUserDataPath + " exists: " + (newUserDataPathExists ? 'yes' : 'no'));
console.log(oldUserDataPath + " exists: " + (oldUserDataPathExists ? 'yes' : 'no'));
if (!newUserDataPathExists && oldUserDataPathExists) {
console.log("Using legacy user data path: " + oldUserDataPath);
userDataPath = oldUserDataPath;
} else {
userDataPath = newUserDataPath;
}
}
app.setPath('userData', userDataPath);
async function tryPaths(name: string, root: string, rawPaths: string[]): Promise<string> {
// Make everything relative to root
const paths = rawPaths.map(p => path.join(root, p));
for (const p of paths) {
try {
await afs.stat(p);
return p + '/';
} catch (e) {
}
}
console.log(`Couldn't find ${name} files in any of: `);
for (const p of paths) {
console.log("\t"+path.resolve(p));
}
throw new Error(`Failed to find ${name} files`);
}
// Find the webapp resources and set up things that require them
async function setupGlobals(): Promise<void> {
// find the webapp asar.
asarPath = await tryPaths("webapp", __dirname, [
// If run from the source checkout, this will be in the directory above
'../webapp.asar',
// but if run from a packaged application, electron-main.js will be in
// a different asar file so it will be two levels above
'../../webapp.asar',
// also try without the 'asar' suffix to allow symlinking in a directory
'../webapp',
// from a packaged application
'../../webapp',
]);
// we assume the resources path is in the same place as the asar
resPath = await tryPaths("res", path.dirname(asarPath), [
// If run from the source checkout
'res',
// if run from packaged application
'',
]);
try {
// eslint-disable-next-line @typescript-eslint/no-var-requires
global.vectorConfig = require(asarPath + 'config.json');
} catch (e) {
// it would be nice to check the error code here and bail if the config
// is unparsable, but we get MODULE_NOT_FOUND in the case of a missing
// file or invalid json, so node is just very unhelpful.
// Continue with the defaults (ie. an empty config)
global.vectorConfig = {};
}
try {
// Load local config and use it to override values from the one baked with the build
// eslint-disable-next-line @typescript-eslint/no-var-requires
const localConfig = require(path.join(app.getPath('userData'), 'config.json'));
// If the local config has a homeserver defined, don't use the homeserver from the build
// config. This is to avoid a problem where Riot thinks there are multiple homeservers
// defined, and panics as a result.
const homeserverProps = ['default_is_url', 'default_hs_url', 'default_server_name', 'default_server_config'];
if (Object.keys(localConfig).find(k => homeserverProps.includes(k))) {
// Rip out all the homeserver options from the vector config
global.vectorConfig = Object.keys(global.vectorConfig)
.filter(k => !homeserverProps.includes(k))
.reduce((obj, key) => {obj[key] = global.vectorConfig[key]; return obj;}, {});
}
global.vectorConfig = Object.assign(global.vectorConfig, localConfig);
} catch (e) {
if (e instanceof SyntaxError) {
dialog.showMessageBox({
type: "error",
title: `Your ${global.vectorConfig.brand || 'Element'} is misconfigured`,
message: `Your custom ${global.vectorConfig.brand || 'Element'} configuration contains invalid JSON. ` +
`Please correct the problem and reopen ${global.vectorConfig.brand || 'Element'}.`,
detail: e.message || "",
});
}
// Could not load local config, this is expected in most cases.
}
// The tray icon
// It's important to call `path.join` so we don't end up with the packaged asar in the final path.
const iconFile = `element.${process.platform === 'win32' ? 'ico' : 'png'}`;
iconPath = path.join(resPath, "img", iconFile);
global.trayConfig = {
icon_path: iconPath,
brand: global.vectorConfig.brand || 'Element',
};
// launcher
global.launcher = new AutoLaunch({
name: global.vectorConfig.brand || 'Element',
isHidden: true,
mac: {
useLaunchAgent: true,
},
});
}
async function moveAutoLauncher(): Promise<void> {
// Look for an auto-launcher under 'Riot' and if we find one, port it's
// enabled/disabled-ness over to the new 'Element' launcher
if (!global.vectorConfig.brand || global.vectorConfig.brand === 'Element') {
const oldLauncher = new AutoLaunch({
name: 'Riot',
isHidden: true,
mac: {
useLaunchAgent: true,
},
});
const wasEnabled = await oldLauncher.isEnabled();
if (wasEnabled) {
await oldLauncher.disable();
await global.launcher.enable();
}
}
}
global.store = new Store({ name: "electron-config" });
global.appQuitting = false;
const exitShortcuts: Array<(input: Input, platform: string) => boolean> = [
(input, platform) => platform !== 'darwin' && input.alt && input.key.toUpperCase() === 'F4',
(input, platform) => platform !== 'darwin' && input.control && input.key.toUpperCase() === 'Q',
(input, platform) => platform === 'darwin' && input.meta && input.key.toUpperCase() === 'Q',
];
const warnBeforeExit = (event: Event, input: Input): void => {
const shouldWarnBeforeExit = global.store.get('warnBeforeExit', true);
const exitShortcutPressed =
input.type === 'keyDown' && exitShortcuts.some(shortcutFn => shortcutFn(input, process.platform));
if (shouldWarnBeforeExit && exitShortcutPressed) {
const shouldCancelCloseRequest = dialog.showMessageBoxSync(global.mainWindow, {
type: "question",
buttons: [_t("Cancel"), _t("Close Element")],
message: _t("Are you sure you want to quit?"),
defaultId: 1,
cancelId: 0,
}) === 0;
if (shouldCancelCloseRequest) {
event.preventDefault();
}
}
};
// handle uncaught errors otherwise it displays
// stack traces in popup dialogs, which is terrible (which
// it will do any time the auto update poke fails, and there's
// no other way to catch this error).
// Assuming we generally run from the console when developing,
// this is far preferable.
process.on('uncaughtException', function(error: Error): void {
console.log('Unhandled exception', error);
});
app.commandLine.appendSwitch('--enable-usermedia-screen-capturing');
if (!app.commandLine.hasSwitch('enable-features')) {
app.commandLine.appendSwitch('enable-features', 'WebRTCPipeWireCapturer');
}
const gotLock = app.requestSingleInstanceLock();
if (!gotLock) {
console.log('Other instance detected: exiting');
app.exit();
}
// do this after we know we are the primary instance of the app
protocolInit();
// Register the scheme the app is served from as 'standard'
// which allows things like relative URLs and IndexedDB to
// work.
// Also mark it as secure (ie. accessing resources from this
// protocol and HTTPS won't trigger mixed content warnings).
protocol.registerSchemesAsPrivileged([{
scheme: 'vector',
privileges: {
standard: true,
secure: true,
supportFetchAPI: true,
},
}]);
// Turn the sandbox on for *all* windows we might generate. Doing this means we don't
// have to specify a `sandbox: true` to each BrowserWindow.
//
// This also fixes an issue with window.open where if we only specified the sandbox
// on the main window we'd run into cryptic "ipc_renderer be broke" errors. Turns out
// it's trying to jump the sandbox and make some calls into electron, which it can't
// do when half of it is sandboxed. By turning on the sandbox for everything, the new
// window (no matter how temporary it may be) is also sandboxed, allowing for a clean
// transition into the user's browser.
app.enableSandbox();
// We disable media controls here. We do this because calls use audio and video elements and they sometimes capture the media keys. See https://github.com/vector-im/element-web/issues/15704
app.commandLine.appendSwitch('disable-features', 'HardwareMediaKeyHandling,MediaSessionService');
// Disable hardware acceleration if the setting has been set.
if (global.store.get('disableHardwareAcceleration', false) === true) {
console.log("Disabling hardware acceleration.");
app.disableHardwareAcceleration();
}
app.on('ready', async () => {
try {
await setupGlobals();
await moveAutoLauncher();
} catch (e) {
console.log("App setup failed: exiting", e);
process.exit(1);
// process.exit doesn't cause node to stop running code immediately,
// so return (we could let the exception propagate but then we end up
// with node printing all sorts of stuff about unhandled exceptions
// when we want the actual error to be as obvious as possible).
return;
}
if (argv['devtools']) {
try {
// eslint-disable-next-line @typescript-eslint/no-var-requires
const { default: installExt, REACT_DEVELOPER_TOOLS, REACT_PERF } = require('electron-devtools-installer');
installExt(REACT_DEVELOPER_TOOLS)
.then((name) => console.log(`Added Extension: ${name}`))
.catch((err) => console.log('An error occurred: ', err));
installExt(REACT_PERF)
.then((name) => console.log(`Added Extension: ${name}`))
.catch((err) => console.log('An error occurred: ', err));
} catch (e) {
console.log(e);
}
}
protocol.registerFileProtocol('vector', (request, callback) => {
if (request.method !== 'GET') {
callback({ error: -322 }); // METHOD_NOT_SUPPORTED from chromium/src/net/base/net_error_list.h
return null;
}
const parsedUrl = new URL(request.url);
if (parsedUrl.protocol !== 'vector:') {
callback({ error: -302 }); // UNKNOWN_URL_SCHEME
return;
}
if (parsedUrl.host !== 'vector') {
callback({ error: -105 }); // NAME_NOT_RESOLVED
return;
}
const target = parsedUrl.pathname.split('/');
// path starts with a '/'
if (target[0] !== '') {
callback({ error: -6 }); // FILE_NOT_FOUND
return;
}
if (target[target.length - 1] == '') {
target[target.length - 1] = 'index.html';
}
let baseDir: string;
if (target[1] === 'webapp') {
baseDir = asarPath;
} else {
callback({ error: -6 }); // FILE_NOT_FOUND
return;
}
// Normalise the base dir and the target path separately, then make sure
// the target path isn't trying to back out beyond its root
baseDir = path.normalize(baseDir);
const relTarget = path.normalize(path.join(...target.slice(2)));
if (relTarget.startsWith('..')) {
callback({ error: -6 }); // FILE_NOT_FOUND
return;
}
const absTarget = path.join(baseDir, relTarget);
callback({
path: absTarget,
});
});
if (argv['no-update']) {
console.log('Auto update disabled via command line flag "--no-update"');
} else if (global.vectorConfig['update_base_url']) {
console.log(`Starting auto update with base URL: ${global.vectorConfig['update_base_url']}`);
updater.start(global.vectorConfig['update_base_url']);
} else {
console.log('No update_base_url is defined: auto update is disabled');
}
// Load the previous window state with fallback to defaults
const mainWindowState = windowStateKeeper({
defaultWidth: 1024,
defaultHeight: 768,
});
const preloadScript = path.normalize(`${__dirname}/preload.js`);
global.mainWindow = new BrowserWindow({
// https://www.electronjs.org/docs/faq#the-font-looks-blurry-what-is-this-and-what-can-i-do
backgroundColor: '#fff',
icon: iconPath,
show: false,
autoHideMenuBar: global.store.get('autoHideMenuBar', true),
x: mainWindowState.x,
y: mainWindowState.y,
width: mainWindowState.width,
height: mainWindowState.height,
webPreferences: {
preload: preloadScript,
nodeIntegration: false,
//sandbox: true, // We enable sandboxing from app.enableSandbox() above
contextIsolation: true,
webgl: true,
},
});
global.mainWindow.loadURL('vector://vector/webapp/');
// Handle spellchecker
// For some reason spellCheckerEnabled isn't persisted, so we have to use the store here
global.mainWindow.webContents.session.setSpellCheckerEnabled(global.store.get("spellCheckerEnabled", true));
// Create trayIcon icon
if (global.store.get('minimizeToTray', true)) tray.create(global.trayConfig);
global.mainWindow.once('ready-to-show', () => {
mainWindowState.manage(global.mainWindow);
if (!argv['hidden']) {
global.mainWindow.show();
} else {
// hide here explicitly because window manage above sometimes shows it
global.mainWindow.hide();
}
});
global.mainWindow.webContents.on('before-input-event', warnBeforeExit);
global.mainWindow.on('closed', () => {
global.mainWindow = null;
});
global.mainWindow.on('close', async (e) => {
// If we are not quitting and have a tray icon then minimize to tray
if (!global.appQuitting && (tray.hasTray() || process.platform === 'darwin')) {
// On Mac, closing the window just hides it
// (this is generally how single-window Mac apps
// behave, eg. Mail.app)
e.preventDefault();
if (global.mainWindow.isFullScreen()) {
global.mainWindow.once('leave-full-screen', () => global.mainWindow.hide());
global.mainWindow.setFullScreen(false);
} else {
global.mainWindow.hide();
}
return false;
}
});
if (process.platform === 'win32') {
// Handle forward/backward mouse buttons in Windows
global.mainWindow.on('app-command', (e, cmd) => {
if (cmd === 'browser-backward' && global.mainWindow.webContents.canGoBack()) {
global.mainWindow.webContents.goBack();
} else if (cmd === 'browser-forward' && global.mainWindow.webContents.canGoForward()) {
global.mainWindow.webContents.goForward();
}
});
}
webContentsHandler(global.mainWindow.webContents);
global.appLocalization = new AppLocalization({
store: global.store,
components: [
() => tray.initApplicationMenu(),
() => Menu.setApplicationMenu(buildMenuTemplate()),
],
});
});
app.on('window-all-closed', () => {
app.quit();
});
app.on('activate', () => {
global.mainWindow.show();
});
function beforeQuit(): void {
global.appQuitting = true;
global.mainWindow?.webContents.send('before-quit');
}
app.on('before-quit', beforeQuit);
autoUpdater.on('before-quit-for-update', beforeQuit);
app.on('second-instance', (ev, commandLine, workingDirectory) => {
// If other instance launched with --hidden then skip showing window
if (commandLine.includes('--hidden')) return;
// Someone tried to run a second instance, we should focus our window.
if (global.mainWindow) {
if (!global.mainWindow.isVisible()) global.mainWindow.show();
if (global.mainWindow.isMinimized()) global.mainWindow.restore();
global.mainWindow.focus();
}
});
// Set the App User Model ID to match what the squirrel
// installer uses for the shortcut icon.
// This makes notifications work on windows 8.1 (and is
// a noop on other platforms).
app.setAppUserModelId('com.squirrel.element-desktop.Element');
+46
View File
@@ -0,0 +1,46 @@
{
"File": "ملف",
"Close": "أغلِق",
"Actual Size": "المقاس الفعلي",
"View": "منظور",
"Select All": "حدّد الكل",
"Delete": "احذف",
"Copy": "انسخ",
"Edit": "تحرير",
"Close Element": "أغلِق Element",
"Cancel": "ألغِ",
"Bring All to Front": "ضَع الكل في المقدّمة",
"Speech": "نطق",
"Add to dictionary": "أضِف إلى القاموس",
"The image failed to save": "فشل حفظ الصورة",
"Failed to save image": "فشل حفظ الصورة",
"Save image as...": "احفظ الصورة كَ‍...",
"Copy link address": "انسخ عنوان الرابط",
"Copy email address": "انسخ عنوان البريد الإلكتروني",
"Copy image": "انسخ الصورة",
"Zoom": "تقريب",
"Stop Speaking": "أوقِف النطق",
"Start Speaking": "ابدأ النطق",
"Unhide": "اعرض",
"Hide Others": "أخفِ البقية",
"Hide": "أخفِ",
"Services": "الخدمات",
"About": "عن",
"Element Help": "مساعدة Element",
"Help": "مساعدة",
"Minimize": "صغّر",
"Window": "نافذة",
"Toggle Developer Tools": "فعّل/عطّل أدوات المطوّرين",
"Toggle Full Screen": "فعّل/عطّل ملء الشاشة",
"Preferences": "التفضيلات",
"Zoom In": "قرّب",
"Zoom Out": "بعّد",
"Paste and Match Style": "ألصِق وطابِق النمط",
"Paste": "ألصِق",
"Cut": "قصّ",
"Redo": "أعِد",
"Undo": "تراجَع",
"Quit": "غادِر",
"Show/Hide": "اعرض/أخفِ",
"Are you sure you want to quit?": "أمتأكّد من الإغلاق؟"
}
+1
View File
@@ -0,0 +1 @@
{}
+46
View File
@@ -0,0 +1,46 @@
{
"Add to dictionary": "Дадаць у слоўнік",
"The image failed to save": "Не атрымалася захаваць малюнак",
"Failed to save image": "Не атрымалася захаваць малюнак",
"Save image as...": "Захаваць малюнак як...",
"Copy link address": "Скапіраваць спасылку",
"Copy email address": "Скапіраваць адрас пошты",
"Copy image": "Скапіраваць малюнак",
"File": "Файл",
"Bring All to Front": "Вынесці ўсё наперад",
"Zoom": "Маштаб",
"Stop Speaking": "Перастаць гаварыць",
"Start Speaking": "Гаварыць",
"Speech": "Голас",
"Unhide": "Паказаць",
"Hide Others": "Схаваць іншыя",
"Hide": "Схаваць",
"Services": "Сервісы",
"About": "Аб праграме",
"Element Help": "Даведка Element",
"Help": "Даведка",
"Close": "Зачыніць",
"Minimize": "Згарнуць",
"Window": "Акно",
"Toggle Developer Tools": "Пераключэнне інструментаў распрацоўніка",
"Toggle Full Screen": "Пераключэнне на ўвесь экран",
"Preferences": "Параметры",
"Zoom Out": "Паменшыць",
"Zoom In": "Павялічыць",
"Actual Size": "Фактычны Памер",
"View": "Прагляд",
"Select All": "Выбраць усё",
"Delete": "Выдаліць",
"Paste and Match Style": "Уставіць і супаставіць стыль",
"Paste": "Уставіць",
"Copy": "Капіяваць",
"Cut": "Выразаць",
"Redo": "Паўтарыць",
"Undo": "Адмяніць",
"Edit": "Змяніць",
"Quit": "Выйсці",
"Show/Hide": "Паказаць / схаваць",
"Are you sure you want to quit?": "Вы ўпэўненыя, што хочаце выйсці?",
"Close Element": "Зачыніць Element",
"Cancel": "Адмена"
}
+47
View File
@@ -0,0 +1,47 @@
{
"Add to dictionary": "Добави към речника",
"The image failed to save": "Изображението не успя да се запази",
"Failed to save image": "Неуспешно запазване на изображението",
"Save image as...": "Запази изображението като...",
"Copy link address": "Копирай линка",
"Copy image address": "Копирай адреса на изображението",
"Copy email address": "Копирай имейл адрес",
"Copy image": "Копирай изображение",
"File": "Файл",
"Bring All to Front": "Покажи всички най-отгоре",
"Zoom": "Мащабирай",
"Stop Speaking": "Спри да говориш",
"Start Speaking": "Започни да говориш",
"Speech": "Говор",
"Unhide": "Покажи",
"Hide Others": "Скрий Останалите",
"Hide": "Скрий",
"Services": "Услуги",
"About": "Относно",
"Element Help": "Помощ за Елемент",
"Help": "Помощ",
"Close": "Затвори",
"Minimize": "Минимизирай",
"Window": "Прозорец",
"Toggle Developer Tools": "Превключи инструментите за разработчици",
"Toggle Full Screen": "Превключи на Цял екран",
"Preferences": "Предпочитания",
"Zoom Out": "Намали",
"Zoom In": "Увеличи",
"Actual Size": "Действителен Размер",
"View": "Преглед",
"Select All": "Избери Всичко",
"Delete": "Изтрий",
"Paste and Match Style": "Постави и Използвай текущия стил",
"Paste": "Постави",
"Copy": "Копирай",
"Cut": "Изрежи",
"Redo": "Върни",
"Undo": "Отмени",
"Edit": "Редактирай",
"Quit": "Напусни",
"Show/Hide": "Покажи/Скрий",
"Are you sure you want to quit?": "Сигурен ли си че искаш да напуснеш?",
"Close Element": "Затвори Елемент",
"Cancel": "Отказ"
}
+47
View File
@@ -0,0 +1,47 @@
{
"Are you sure you want to quit?": "তুমি কি আসলেই বের হতে চাও?",
"Close Element": "এলিমেন্ট বন্ধ করো",
"Cancel": "বাতিল",
"Save image as...": "ছবি সংরক্ষণের ধরন...",
"Failed to save image": "ছবি সংরক্ষণ ব্যর্থ",
"The image failed to save": "ছবি সংরক্ষণ ব্যর্থ",
"Add to dictionary": "অভিধানে যোগ করি",
"Copy link address": "সংযোগের ঠিকানা অনুলিপি করো",
"Copy image address": "ছবির ঠিকানা অনুলিপি করো",
"Copy email address": "ইমেইল ঠিকানা অনুলিপি করো",
"Copy image": "ছবি অনুলিপি করো",
"File": "নথি",
"Bring All to Front": "সবকিছু সামনে আনো",
"Zoom": "বড় করা",
"Stop Speaking": "কথা বন্ধ করো",
"Start Speaking": "কথা শুরু করো",
"Speech": "বাচন",
"Unhide": "দেখাও",
"Hide Others": "অন্যগুলো লুকাও",
"Hide": "লুকাও",
"Services": "সেবা",
"About": "আমাদের সম্পর্কে",
"Element Help": "এলিমেন্ট সাহায্য",
"Help": "সাহায্য",
"Close": "বন্ধ",
"Minimize": "সংকোচন",
"Window": "জানালা",
"Toggle Developer Tools": "ডেভেলপার সরঞ্জামাদি",
"Toggle Full Screen": "পূর্ণ পর্দা করো/বের হও",
"Preferences": "পছন্দসমূহ",
"Zoom Out": "ছোট করো",
"Zoom In": "বড়ো করো",
"Actual Size": "আসল আকার",
"View": "দেখো",
"Select All": "সব নির্বাচন",
"Delete": "অপসারণ",
"Paste and Match Style": "লেপন ও একই ধরনে",
"Paste": "লেপন",
"Copy": "অনুলিপি",
"Cut": "কাটো",
"Redo": "পুন",
"Undo": "ফিরত",
"Edit": "সম্পাদনা",
"Quit": "প্রস্থান",
"Show/Hide": "দেখাও/লুকাও"
}
+46
View File
@@ -0,0 +1,46 @@
{
"Add to dictionary": "Afegeix al diccionari",
"The image failed to save": "S'ha fallat en desar la imatge",
"Failed to save image": "S'ha fallat en desar la imatge",
"Save image as...": "Anomena i desa la imatge...",
"Copy link address": "Copia l'adreça de l'enllaç",
"Copy email address": "Copia l'adreça de correu electrònic",
"Copy image": "Copia la imatge",
"File": "Fitxer",
"Bring All to Front": "Porta-ho tot al davant",
"Zoom": "Escala",
"Stop Speaking": "Para la veu",
"Start Speaking": "Comença la veu",
"Speech": "Veu",
"Unhide": "Deixa d'amagar",
"Hide Others": "Amaga les altres",
"Hide": "Amaga",
"Services": "Serveis",
"About": "Quant a",
"Element Help": "Ajuda sobre l'Element",
"Help": "Ajuda",
"Close": "Tanca",
"Minimize": "Minimitza",
"Window": "Finestra",
"Toggle Developer Tools": "Commuta les eines per a desenvolupadors",
"Toggle Full Screen": "Commuta la pantalla completa",
"Preferences": "Preferències",
"Zoom Out": "Allunya",
"Zoom In": "Apropia",
"Actual Size": "Mida real",
"View": "Visualitza",
"Select All": "Selecciona-ho tot",
"Delete": "Suprimeix",
"Paste and Match Style": "Enganxa i fes coincidir l'estil",
"Paste": "Enganxa",
"Copy": "Copia",
"Cut": "Retalla",
"Redo": "Refés",
"Undo": "Desfés",
"Edit": "Edita",
"Quit": "Surt",
"Show/Hide": "Mostra/Amaga",
"Are you sure you want to quit?": "Esteu segur que voleu sortir?",
"Close Element": "Tanca l'Element",
"Cancel": "Cancel·la"
}
+47
View File
@@ -0,0 +1,47 @@
{
"Speech": "Sprache",
"Paste and Match Style": "Einfügen und Formatierung beibehalten",
"Stop Speaking": "Aufnahme beenden",
"Start Speaking": "Aufnahme starten",
"Services": "Dienste",
"Are you sure you want to quit?": "Wirklich beenden?",
"Add to dictionary": "Wörterbuch hinzufügen",
"The image failed to save": "Das Bild konnte nicht gespeichert werden",
"Failed to save image": "Bild kann nicht gespeichert werden",
"Save image as...": "Bild speichern unter...",
"Copy link address": "Link-Adresse kopieren",
"Copy email address": "Email-Adresse kopieren",
"Copy image": "Bild kopieren",
"File": "Datei",
"Bring All to Front": "Alles in den Vordergrund",
"Zoom": "Zoom",
"Unhide": "Wieder anzeigen",
"Hide Others": "Andere verstecken",
"Hide": "Verstecken",
"About": "Über",
"Element Help": "Hilfe zu Element",
"Help": "Hilfe",
"Close": "Schließen",
"Minimize": "Minimieren",
"Window": "Fenster",
"Toggle Developer Tools": "Developer-Tools an/aus",
"Toggle Full Screen": "Vollbildschirm an/aus",
"Preferences": "Einstellungen",
"Zoom Out": "Verkleinern",
"Zoom In": "Vergrößern",
"Actual Size": "Tatsächliche Größe",
"View": "Ansicht",
"Select All": "Alles auswählen",
"Delete": "Löschen",
"Paste": "Einfügen",
"Copy": "Kopieren",
"Cut": "Ausschneiden",
"Redo": "Wiederherstellen",
"Undo": "Rückgängig",
"Edit": "Bearbeiten",
"Quit": "Beenden",
"Show/Hide": "Anzeigen/Ausblenden",
"Close Element": "Element schließen",
"Cancel": "Abbrechen",
"Copy image address": "Bild-Adresse kopieren"
}
+47
View File
@@ -0,0 +1,47 @@
{
"Are you sure you want to quit?": "Είστε βέβαιος ότι θέλετε να εγκαταλείψετε;",
"Zoom": "Ζουμ",
"Unhide": "Εμφάνιση",
"Window": "Παράθυρο",
"Toggle Developer Tools": "Άνοιγμα Εργαλείων Προγραμματιστή",
"Toggle Full Screen": "Εναλλαγή σε Πλήρη Οθόνη",
"Copy email address": "Αντιγραφή διεύθυνσης email",
"File": "Αρχείο",
"Bring All to Front": "Μεταφορά Όλων στο Προσκήνιο",
"Stop Speaking": "Τερματίστε να μιλάτε",
"Start Speaking": "Ξεκινήστε να μιλάτε",
"Speech": "Ομιλία",
"Hide Others": "Απόκρυψη Άλλων",
"Hide": "Απόκρυψη",
"Services": "Υπηρεσίες",
"About": "Σχετικά με",
"Element Help": "Βοήθεια για το Element",
"Help": "Βοήθεια",
"Close": "Κλείσιμο",
"Minimize": "Ελαχιστοποίηση",
"Preferences": "Προτιμήσεις",
"Zoom Out": "Σμίκρυνση",
"Zoom In": "Μεγέθυνση",
"Actual Size": "Πραγματικό Μέγεθος",
"View": "Προβολή",
"Select All": "Επιλογή Όλων",
"Delete": "Διαγραφή",
"Paste and Match Style": "Επικόλληση και Ταίριασμα Στυλ",
"Paste": "Επικόλληση",
"Copy": "Αντιγραφή",
"Cut": "Αποκοπή",
"Redo": "Επανάληψη",
"Undo": "Αναίρεση",
"Edit": "Επεξεργασία",
"Quit": "Κλείσιμο",
"Show/Hide": "Eμφάνιση/Απόκρυψη",
"Close Element": "Κλείστε το Element",
"Cancel": "Ακύρωση",
"Add to dictionary": "Προσθήκη στο λεξικό",
"The image failed to save": "Η αποθήκευση της εικόνας απέτυχε",
"Failed to save image": "Αποτυχία αποθήκευσης εικόνας",
"Save image as...": "Αποθήκευση εικόνας ως...",
"Copy link address": "Αντιγραφή διεύθυνσης συνδέσμου",
"Copy image address": "Αντιγραφή διεύθυνσης εικόνας",
"Copy image": "Αντιγραφή εικόνας"
}
Loaded 100 of 153 files, more files were not shown because too many files have changed in this diff. Show more