Compare commits

..

1061 Commits

Author SHA1 Message Date
RiotRobot
c66eab3048 v1.11.79 2024-10-01 12:27:26 +00:00
RiotRobot
9b59384759 v1.11.78 2024-09-24 12:58:48 +00:00
RiotRobot
5b3acbbafb v1.11.78-rc.0 2024-09-19 12:42:42 +00:00
RiotRobot
22d4297f15 v1.11.77 2024-09-10 14:02:10 +00:00
RiotRobot
95bda97de7 v1.11.77-rc.0 2024-09-03 12:56:36 +00:00
RiotRobot
05735eb62c Merge branch 'master' into develop 2024-08-27 13:04:43 +00:00
RiotRobot
7e7e6bee59 v1.11.76 2024-08-27 13:04:09 +00:00
renovate[bot]
e735ce9974 Update typescript-eslint monorepo to v7.18.0 (#1836)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-23 13:27:00 +01:00
renovate[bot]
6aa3216562 Update tj-actions/changed-files action to v45 (#1838)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-23 11:10:15 +01:00
renovate[bot]
9d7d53723b Update dependency eslint-plugin-unicorn to v55 (#1837)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-23 11:09:18 +01:00
renovate[bot]
990bbd468b Update all non-major dependencies (#1831)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-23 11:06:38 +01:00
renovate[bot]
96713a2f3c Update dependency @playwright/test to v1.46.1 (#1835)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-22 16:43:06 +01:00
renovate[bot]
d5e28e71f3 Update docker (#1833)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-22 16:42:08 +01:00
renovate[bot]
c3ec9c1028 Update tj-actions/changed-files digest to c65cd88 (#1834)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-22 16:41:43 +01:00
renovate[bot]
4de4c12eeb Update babel monorepo to v7.25.2 (#1832)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-22 16:41:17 +01:00
renovate[bot]
b81daa22cb Update definitelyTyped (#1830)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-22 16:38:17 +01:00
RiotRobot
6a2d4bb5ed v1.11.76-rc.0 2024-08-21 13:31:16 +00:00
RiotRobot
5f5e1666cf Merge branch 'master' into develop 2024-08-20 11:55:33 +00:00
RiotRobot
13315ad63c v1.11.75 2024-08-20 11:54:58 +00:00
RiotRobot
162e3e2a89 Merge branch 'master' into develop 2024-08-13 12:31:38 +00:00
RiotRobot
7a24784628 v1.11.74 2024-08-13 12:31:05 +00:00
Michael Telatynski
6fca680085 Refactor media auth redirects to not kick in if the user is not logged in (#1817) 2024-08-07 09:44:18 +01:00
RiotRobot
a1a48a76ec v1.11.74-rc.0 2024-08-06 12:53:19 +00:00
Michael Telatynski
38c3bc440e Merge branch 'master' into develop 2024-08-06 11:49:04 +01:00
RiotRobot
52715a8a89 v1.11.73 2024-08-06 10:42:03 +00:00
Michael Telatynski
ca05241e72 Switch ts target to es2022 (#1811) 2024-08-01 16:16:12 +01:00
Michael Telatynski
13a0d0d3e2 Make sonarcloud happier (#1810) 2024-07-31 15:08:06 +01:00
renovate[bot]
6239aa5d9f Update dependency electron to v31.3.0 (#1809)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-30 17:23:20 +01:00
RiotRobot
e603dad2fc v1.11.72 2024-07-30 12:59:40 +00:00
renovate[bot]
d7281358da Lock file maintenance (#1802)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-24 18:30:08 +00:00
renovate[bot]
4b2126187c Update all non-major dependencies (#1796)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-24 12:46:13 +00:00
renovate[bot]
266a6a83dc Update dependency typescript to v5.5.4 (#1800)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-24 12:22:54 +00:00
renovate[bot]
a204fbafd9 Update babel monorepo to v7.24.9 (#1797)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-24 12:20:52 +00:00
renovate[bot]
fe2c4b9984 Update dependency @playwright/test to v1.45.3 (#1798)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-24 12:20:35 +00:00
renovate[bot]
02db8659c1 Update dependency @types/node to v18.19.41 (#1799)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-24 12:19:08 +00:00
renovate[bot]
a59c660b25 Update typescript-eslint monorepo to v7.16.1 (#1801)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-24 12:16:59 +00:00
renovate[bot]
4ec81df715 Update docker (#1794)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-24 12:15:01 +00:00
renovate[bot]
de229a446f Update tj-actions/changed-files digest to 6b2903b (#1795)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-24 12:14:20 +00:00
RiotRobot
cd91442510 v1.11.72-rc.0 2024-07-24 11:42:53 +00:00
Michael Telatynski
472aca04a2 Fix Docker tooling for building native components (#1779) 2024-07-17 13:54:42 +01:00
renovate[bot]
effe3239db Update dependency @playwright/test to v1.45.2 (#1780)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-16 17:27:35 +01:00
RiotRobot
d1bd7a737a Merge branch 'master' into develop 2024-07-16 12:55:41 +00:00
RiotRobot
8f40ec2bdd v1.11.71 2024-07-16 12:55:06 +00:00
Michael Telatynski
9918467a8d Add self-hosted runner arch sanity check (#1767) 2024-07-15 11:04:02 +01:00
renovate[bot]
525c984e8a Lock file maintenance (#1307)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-10 18:50:50 +01:00
Michael Telatynski
9fb6e02c73 Remove glob workaround (#1760) 2024-07-10 17:41:54 +01:00
renovate[bot]
5f2a664a32 Update all non-major dependencies (#1772)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-10 16:37:33 +00:00
renovate[bot]
6afd264bc5 Update dependency glob to v11 (#1765)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-10 16:29:53 +00:00
renovate[bot]
be0677cba7 Update docker (#1761)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-07-10 17:13:38 +01:00
renovate[bot]
a627ce93d7 Update dependency @playwright/test to v1.45.1 (#1762)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-07-10 17:12:44 +01:00
renovate[bot]
78e0cc2859 Update dependency typescript to v5.5.3 (#1763)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-07-10 17:12:29 +01:00
renovate[bot]
71e85a32fc Update dependency rimraf to v6 (#1766)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-07-10 17:11:59 +01:00
renovate[bot]
b406c90905 Update typescript-eslint monorepo to v7.15.0 (#1764)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-07-10 17:10:56 +01:00
Michael Telatynski
2af4f67d41 Workaround macOS permission issues in Github Actions CI (#1771) 2024-07-10 15:01:04 +00:00
Travis Ralston
8754fa5fa2 Support authenticated media downloads in Desktop too (#1757)
* Support authenticated media downloads in Desktop too

We can't use service workers for a variety of reasons/errors, so we instead intercept HTTP(S) requests from the renderer process. With a bit of help from the IPC channels, we're able to emulate what the Element Web ServiceWorker does.

The IPC channel is considered "safe" for transmitting sensitive details like the user access token: if we can't trust the IPC, we can't trust much of anything. This is unlike the `postMessage` API in a web browser where browser extensions may be listening: we don't have extensions in this environment.

* Remove unused import

* Appease the linter
2024-07-10 07:41:27 -06:00
renovate[bot]
14a24be4ea Update all non-major dependencies (#1753)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-07-09 18:57:54 +01:00
Michael Telatynski
d3f21ca1e1 Stabilise linux tests 2024-07-09 15:37:30 +01:00
RiotRobot
b799e20ce2 v1.11.71-rc.0 2024-07-09 13:45:09 +00:00
RiotRobot
751efa4490 Merge branch 'master' into develop 2024-07-08 12:38:57 +00:00
RiotRobot
f0aab74c7c v1.11.70 2024-07-08 12:38:23 +00:00
frankenstein91
ab254ef453 remove Libera.Chat bridge from room_directory (#1756) 2024-07-05 08:10:47 +01:00
RiotRobot
ff100df8cb v1.11.70-rc.1 2024-07-04 13:15:45 +00:00
Michael Telatynski
15052d23d4 Remove redundant reusable workflow input (#1740) 2024-07-02 16:16:27 +01:00
renovate[bot]
2143be64bc Update docker/build-push-action digest to 1556069 (#1752)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-02 15:54:53 +01:00
renovate[bot]
00a8561995 Update dependency @types/uuid to v10 (#1747)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-25 16:08:03 +00:00
renovate[bot]
f7d8540695 Update docker/build-push-action action to v6 (#1749)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-25 16:04:20 +00:00
renovate[bot]
f7c4d6731d Update typescript-eslint monorepo to v7.14.1 (#1746)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-25 16:03:52 +00:00
renovate[bot]
580d7f82cd Update dependency typescript to v5.5.2 (#1745)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-25 16:03:37 +00:00
renovate[bot]
56f49701aa Update dependency @playwright/test to v1.45.0 (#1744)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-25 16:03:21 +00:00
renovate[bot]
7b03223218 Update all non-major dependencies (#1742)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-25 16:02:31 +00:00
renovate[bot]
2ae77c64a1 Update tj-actions/changed-files digest to cc73385 (#1741)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-25 16:01:40 +00:00
renovate[bot]
63698b6efa Update dependency eslint-plugin-unicorn to v54 (#1748)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-25 16:01:18 +00:00
renovate[bot]
af23620d3e Update dependency @types/node to v18.19.39 (#1743)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-25 16:00:33 +00:00
RiotRobot
debe323247 v1.11.70-rc.0 2024-06-25 13:34:47 +00:00
renovate[bot]
1390e1ea3b Update typescript-eslint monorepo to v7.13.1 (#1733)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-19 10:24:14 +01:00
renovate[bot]
beafe2c2fd Update all non-major dependencies (#1734)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-19 10:22:57 +01:00
Michael Telatynski
a0665f5499 Remove deprecated packages (#1732) 2024-06-19 10:20:17 +01:00
RiotRobot
f21ac771eb Merge branch 'master' into develop 2024-06-18 12:28:42 +00:00
RiotRobot
fb3c102b1c v1.11.69 2024-06-18 12:28:10 +00:00
Michael Telatynski
04905a39a7 Tighten macOS entitlements (#1731) 2024-06-17 17:54:08 +01:00
RiotRobot
fce9ad2801 v1.11.69-rc.1 2024-06-14 13:08:31 +00:00
Michael Telatynski
2018a51469 Conform to no-floating-promises (#1725) 2024-06-12 17:17:24 +01:00
renovate[bot]
5c23a23f39 Update dependency @sentry/electron to v5 (#1724)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-11 14:21:09 +00:00
renovate[bot]
5ce99c9c61 Update all non-major dependencies (#1722)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-11 14:05:07 +00:00
renovate[bot]
bc0a9d3d6f Update babel monorepo to v7.24.7 (#1721)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-11 13:26:01 +00:00
renovate[bot]
22f6a4df54 Update dependency uuid to v10 (#1720)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-11 14:08:20 +01:00
renovate[bot]
597f3562e4 Update dependency electron to v31 (#1719)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-11 13:08:09 +00:00
renovate[bot]
5061452d57 Update typescript-eslint monorepo to v7.12.0 (#1723)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-11 14:06:50 +01:00
dependabot[bot]
00d68c8193 Bump braces from 3.0.2 to 3.0.3 (#1718)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-11 12:32:32 +00:00
renovate[bot]
3e871f07c4 Update docker (#1711)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-11 13:28:46 +01:00
renovate[bot]
270657a1a5 Update tj-actions/changed-files digest to d6babd6 (#1712)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-11 13:28:32 +01:00
renovate[bot]
ca6edccaf4 Update dependency @types/node to v18.19.34 (#1674)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-11 12:28:07 +00:00
RiotRobot
e683196ae2 v1.11.69-rc.0 2024-06-11 12:26:01 +00:00
Mathieu Velten
79bd380ba2 Switch debs to use the SQLCipher static version (#1001)
Co-authored-by: Mathieu Velten <mathieuv@matrix.org>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-06-11 12:04:56 +00:00
Richard van der Hoff
99e6503896 Roll out Rust crypto to 60% of existing users of stable Element Desktop (#1706) 2024-06-10 15:01:28 +01:00
RiotRobot
831274930b v1.11.68 2024-06-04 13:42:40 +00:00
RiotRobot
c37d0fa72a v1.11.68-rc.0 2024-05-29 13:30:02 +00:00
renovate[bot]
95eab1c0bd Update dependency @playwright/test to v1.44.1 (#1675)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-28 08:48:00 +01:00
RiotRobot
d986dc06c1 Merge branch 'master' into develop 2024-05-22 12:29:41 +00:00
RiotRobot
3059810f1a v1.11.67 2024-05-22 12:29:09 +00:00
Alex Meridian
c49f7e6b21 enable flashFrame usage on linux (#1683)
Signed-off-by: Alex Meridian <alex@meridian.family>
2024-05-20 10:06:12 +01:00
renovate[bot]
ad31ceaea3 Update dependency eslint-plugin-unicorn to v53 (#1679)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-15 17:57:07 +01:00
Johannes Marbach
4fbf82be51 Enable new room header by default on nightly (#1345)
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-05-15 16:45:39 +01:00
RiotRobot
79d038d0e1 v1.11.67-rc.1 2024-05-15 14:07:05 +00:00
Michael Telatynski
118dfa267a Update package.json 2024-05-15 15:06:28 +01:00
RiotRobot
12b9340273 v1.11.67-rc.01 2024-05-15 13:53:39 +00:00
dependabot[bot]
c3f19b5a6a Bump ejs from 3.1.9 to 3.1.10 (#1681)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-05-15 12:12:44 +00:00
Michael Telatynski
d5f60e05ab Fix Linux build docker tag for release builds 2024-05-15 13:05:11 +01:00
Michael Telatynski
2edaea021c Fix Linux build docker tag for release builds (#1680) 2024-05-15 12:57:44 +01:00
renovate[bot]
4be47c7077 Update all non-major dependencies (#1673)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-15 12:54:13 +01:00
renovate[bot]
ac9f8efd82 Update tj-actions/changed-files digest to a29e8b5 (#1672)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-15 12:27:47 +01:00
renovate[bot]
ed76d290c7 Update docker/login-action digest to 406e1d7 (#1671)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-15 11:48:51 +01:00
renovate[bot]
6eb89e375a Update dependency electron to v30 (#1676)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-15 11:47:29 +01:00
RiotRobot
8f6ce99e6c v1.11.67-rc.0 2024-05-15 09:27:47 +00:00
Michael Telatynski
a83003e0bd Distribute aarch64 Linux tarball builds (#1664) 2024-05-14 23:13:03 +01:00
Michael Telatynski
d81521e5ab Improve tests to run on arm64 & smoketest seshat (#1668) 2024-05-14 15:56:25 +01:00
Michael Telatynski
74729d1a28 Add glibc check to Linux build (#1669) 2024-05-14 08:31:28 +01:00
Misty De Méo
c89872f2dc fix: correctly focus window from notification (#1665)
Signed-off-by: Misty De Meo <mistydemeo@gmail.com>
2024-05-13 18:20:11 +01:00
Richard van der Hoff
dc599018cd Fix contributing link in PR template (#1667) 2024-05-13 14:39:17 +01:00
Michael Telatynski
6c98dbed0e Add support for io.element.desktop scheme for OIDC (#1662) 2024-05-13 11:25:13 +01:00
Michael Telatynski
031d5a5d8f Fix deploy running even if a packaging stage fails (#1659) 2024-05-08 10:12:28 +01:00
RiotRobot
f81adfea0c Merge branch 'master' into develop 2024-05-07 12:48:26 +00:00
RiotRobot
1ded927393 v1.11.66 2024-05-07 12:47:54 +00:00
ElementRobot
abcbc99c59 [Backport staging] Roll back electron to v29 (#1654)
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2024-05-03 09:15:13 +00:00
Richard van der Hoff
6a3d99481c Roll back electron to v29 (#1653)
We've had a few problems with segfaults from v30. Let's roll back to v29 while
the electron folks work on it.
2024-05-03 09:58:16 +01:00
ElementRobot
d9afd0c910 [Backport staging] Update dependency electron to v30.0.2 (#1652)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-02 16:01:05 +00:00
RiotRobot
5142ef75cd v1.11.66-rc.1 2024-05-02 15:23:08 +00:00
renovate[bot]
a774224081 Update dependency electron to v30.0.2 (#1651)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-02 09:35:55 +00:00
Richard van der Hoff
2fba93d5e0 Roll out Rust crypto to 30% of existing users (#1650) 2024-05-01 15:47:56 +01:00
renovate[bot]
aacf1a105f Update dependency pacote to v18.0.3 (#1649)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-01 11:22:43 +01:00
renovate[bot]
834b1c1ed6 Update babel monorepo to v7.24.5 (#1646)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-30 14:30:13 +01:00
renovate[bot]
cc981a438d Update typescript-eslint monorepo to v7.7.1 (#1647)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-30 14:27:41 +01:00
renovate[bot]
f07deb9e43 Update definitelyTyped (#1599)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
2024-04-30 13:27:20 +00:00
RiotRobot
425b03c54a v1.11.66-rc.0 2024-04-30 12:34:25 +00:00
renovate[bot]
4162825fc9 Update all non-major dependencies (#1645)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-30 09:42:40 +01:00
Johannes Marbach
db184f9971 Switch to mapbox-scoped node-pre-gyp package (#1640) 2024-04-25 10:41:35 +01:00
RiotRobot
28b202f59a Merge branch 'master' into develop 2024-04-23 13:14:32 +00:00
RiotRobot
78992f458b v1.11.65 2024-04-23 13:14:00 +00:00
David Baker
8fb847ed36 Enable TAC in nightly config (#1635)
While we work through fixing all the tests on https://github.com/matrix-org/matrix-react-sdk/pull/12439
enable the TAC on nightly so we can get wider testing.
2024-04-22 13:31:23 +01:00
renovate[bot]
ea556ff1c4 Update all non-major dependencies (#1615)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-04-17 15:02:46 +00:00
ElementRobot
af0a56061f [Backport staging] Update scripts for compatibility with latest NodeJS Security Release (#1629)
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-04-17 16:02:38 +01:00
ElementRobot
f7f171e0c1 Merge pull request #1626 from element-hq/actions/localazy-download
Localazy Download
2024-04-17 15:30:30 +01:00
Michael Telatynski
93abf2bceb Merge branch 'develop' into actions/localazy-download 2024-04-17 15:12:52 +01:00
Michael Telatynski
193de5182f Update scripts for compatibility with latest NodeJS Security Release (#1628)
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
2024-04-17 15:12:29 +01:00
t3chguy
99c8a498ff [create-pull-request] automated change 2024-04-17 06:04:50 +00:00
renovate[bot]
d1fd69f938 Update tj-actions/changed-files digest to 635f118 (#1613)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 15:28:32 +01:00
renovate[bot]
155bfa7d1a Update dependency typescript to v5.4.5 (#1614)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 14:55:50 +01:00
renovate[bot]
bb8fbea5ba Update dependency @playwright/test to v1.43.1 (#1616)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 14:55:24 +01:00
renovate[bot]
cbba098e75 Update typescript-eslint monorepo to v7.6.0 (#1617)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 14:54:55 +01:00
renovate[bot]
92f446a8d3 Update aws-actions/configure-aws-credentials action to v4 (#1618)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 14:54:43 +01:00
renovate[bot]
9eb7d06e08 Update dependency electron to v30 (#1619)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 14:54:15 +01:00
renovate[bot]
cf393f3dfd Update dependency pacote to v18 (#1621)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 14:49:58 +01:00
renovate[bot]
2df67ae400 Update dependency eslint-plugin-unicorn to v52 (#1600)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 13:42:55 +01:00
RiotRobot
201c904c61 v1.11.65-rc.0 2024-04-16 12:41:35 +00:00
Michael Telatynski
3c8bbb5b1a Re-enable msi perMachine builds (#1587) 2024-04-15 17:33:30 +01:00
Stephan Raab
778b39b9bd Bugfix: Failed to save image (#1608)
Signed-off-by: Stephan Raab <raab.stephan@googlemail.com>
2024-04-15 13:39:43 +01:00
RiotRobot
2175842a8e Merge branch 'master' into develop 2024-04-09 10:26:59 +00:00
RiotRobot
f6c70ffe54 v1.11.64 2024-04-09 10:26:28 +00:00
Michael Telatynski
0461df82af Convert electron-builder config file to TS (#1591) 2024-04-08 11:38:54 +01:00
renovate[bot]
9b3e6ab084 Update all non-major dependencies (#1592)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-04 16:26:41 +01:00
David Baker
ca54b70869 Upgrade electron version (#1602)
split out from https://github.com/element-hq/element-desktop/pull/1592
which is failing
2024-04-04 15:11:44 +01:00
renovate[bot]
b1ad751c9d Update tj-actions/changed-files action to v44 (#1601)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-04 13:01:46 +01:00
renovate[bot]
da9d10a7c4 Update dependency @types/mkdirp to v2 (#1598)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-04 12:44:57 +01:00
renovate[bot]
7fd2c3bd32 Update typescript-eslint monorepo to v7.4.0 (#1597)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-04 12:27:35 +01:00
renovate[bot]
ef0dc136b6 Update dependency @types/node to v18.19.28 (#1596)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-04 12:25:40 +01:00
renovate[bot]
f9075a8656 Update babel monorepo to v7.24.3 (#1595)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-04 12:07:31 +01:00
renovate[bot]
5e922f9036 Update tj-actions/changed-files digest to 20576b4 (#1594)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-04 12:06:35 +01:00
renovate[bot]
22e6bc7149 Update docker/login-action digest to 5f4866a (#1593)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-04 10:12:28 +01:00
Valere
55bc807370 Merge pull request #1518 from element-hq/valere/rust_rollout_phase_1
Start rolling out rust crypto stack to existing users
2024-04-04 10:09:40 +02:00
RiotRobot
87e89c27b7 v1.11.64-rc.0 2024-04-02 16:37:44 +00:00
RiotRobot
f619aa76a2 Merge branch 'master' into develop 2024-03-28 17:15:35 +00:00
RiotRobot
d779526382 v1.11.63 2024-03-28 17:14:57 +00:00
RiotRobot
4b2cf66362 Merge branch 'master' into develop 2024-03-26 17:09:42 +00:00
RiotRobot
64e121741d v1.11.62 2024-03-26 17:08:56 +00:00
renovate[bot]
214d45914e Update all non-major dependencies (#1585)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-26 09:08:25 +00:00
renovate[bot]
7e5bcb8251 Update dependency typescript to v5.4.3 (#1584)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-26 09:08:18 +00:00
ElementRobot
c810682c78 Merge pull request #1583 from element-hq/actions/localazy-download
Localazy Download
2024-03-22 06:19:31 +00:00
t3chguy
91499bff9d [create-pull-request] automated change 2024-03-22 06:05:11 +00:00
renovate[bot]
6c525d4850 Update dependency typescript to v5.4.2 (#1579)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-19 16:42:54 +00:00
renovate[bot]
656c6d22fc Update tj-actions/changed-files action to v43 (#1581)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-19 16:42:16 +00:00
renovate[bot]
5b56a5acd0 Update docker (#1576)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-19 16:40:59 +00:00
renovate[bot]
f8161f2fc5 Update typescript-eslint monorepo to v7.2.0 (#1580)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-19 16:39:58 +00:00
renovate[bot]
b0319bcea0 Update dependency @types/node to v18.19.24 (#1578)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-19 16:38:38 +00:00
renovate[bot]
8aeb94dc50 Update babel monorepo to v7.24.1 (#1577)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-19 16:38:14 +00:00
renovate[bot]
c67507a95d Update all non-major dependencies (#1559)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-19 16:13:09 +00:00
RiotRobot
a1397c1425 v1.11.62-rc.0 2024-03-19 16:10:46 +00:00
RiotRobot
1e6761d474 Merge branch 'master' into develop 2024-03-14 17:44:44 +00:00
RiotRobot
0820643e9d v1.11.61 2024-03-14 17:42:25 +00:00
dependabot[bot]
3d6ec70911 Bump ip from 2.0.0 to 2.0.1 (#1567)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 19:16:03 +00:00
RiotRobot
37bc6a0884 Merge branch 'master' into develop 2024-03-12 18:53:07 +00:00
RiotRobot
7d5c604769 v1.11.60 2024-03-12 18:52:23 +00:00
renovate[bot]
525d633d79 Update dependency electron to v29 (#1557)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-12 18:31:13 +00:00
renovate[bot]
7e1ef1ad5d Update electron-builder to v24.13.3 (#1560)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-07 11:52:50 +00:00
renovate[bot]
296e060990 Update dependency @playwright/test to v1.42.1 (#1555)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-05 16:42:39 +00:00
renovate[bot]
1382a36a0c Update definitelyTyped (#1482)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-03-05 16:30:02 +00:00
renovate[bot]
f3854377e4 Update tj-actions/changed-files digest to 800a282 (#1551)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-05 15:56:13 +00:00
renovate[bot]
b34f3d2323 Update all non-major dependencies (#1553)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-03-05 15:53:32 +00:00
renovate[bot]
43ae561920 Update docker/login-action digest to 5139682 (#1550)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-05 15:17:04 +00:00
renovate[bot]
aea99a2cc7 Update typescript-eslint monorepo to v7.1.0 (#1556)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-05 15:16:14 +00:00
renovate[bot]
2b86deb648 Update babel monorepo to v7.24.0 (#1554)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-05 15:15:28 +00:00
renovate[bot]
3460eb32e0 Update electron-builder to v24.13.2 (#1552)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-05 15:12:46 +00:00
RiotRobot
0811eec002 v1.11.60-rc.0 2024-03-05 14:34:45 +00:00
Michael Telatynski
d51299bbc9 Release automation improvements (#1541) 2024-03-05 09:57:44 +00:00
Michael Telatynski
421a666fe9 Prevent "Element" hardcoded in i18n files (#1545) 2024-02-29 13:02:44 +00:00
David Langley
65215ea6f4 Merge pull request #1547 from element-hq/langleyd/add_issues_to_new_triage_project
Add job to automate adding new issues to the new project
2024-02-29 12:49:53 +00:00
David Langley
bf4c866934 add job to automate adding new issues to the new project 2024-02-29 12:17:03 +00:00
Richard van der Hoff
d747a93b35 Merge pull request #1542 from element-hq/rav/tsdoc_in_pr_template
PR template: reminder to document your stuff
2024-02-28 14:18:03 +00:00
Richard van der Hoff
85f1b5c672 Merge branch 'develop' into rav/tsdoc_in_pr_template 2024-02-28 14:03:38 +00:00
Richard van der Hoff
14221734bd add full stops 2024-02-28 13:07:08 +00:00
Richard van der Hoff
0f700829ff PR template: reminder to document your stuff 2024-02-28 12:58:30 +00:00
RiotRobot
643f9effb9 Merge branch 'master' into develop 2024-02-27 13:18:00 +00:00
RiotRobot
56a4f7df41 v1.11.59 2024-02-27 13:17:28 +00:00
renovate[bot]
3b88449ba4 Update typescript-eslint monorepo to v7 (major) (#1533)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-22 09:14:11 +00:00
renovate[bot]
ea30e84bc6 Update dependency knip to v5 (#1532)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-22 09:13:57 +00:00
renovate[bot]
0c1f6dd8d6 Update docker (#1529)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-22 09:03:17 +00:00
renovate[bot]
c39e087cd4 Update electron-builder (#1530)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-21 20:14:39 +00:00
renovate[bot]
81075085d9 Update dependency eslint-plugin-unicorn to v51 (#1531)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-21 19:04:51 +00:00
renovate[bot]
6d4aebbea9 Update all non-major dependencies (#1484)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-02-21 18:42:09 +00:00
RiotRobot
84ce4d4f86 v1.11.59-rc.0 2024-02-21 18:33:15 +00:00
Michael Telatynski
4bcdf72184 Update setup-xvfb action to fix node16 deprecation warning (#1511) 2024-02-21 09:17:44 +00:00
Michael Telatynski
1366a553b2 Fix i18n json file paths (#1527) 2024-02-20 11:36:49 +00:00
Michael Telatynski
4851a32e23 Fix Native OIDC for Element Desktop (#1510) 2024-02-19 15:51:47 +00:00
Michael Telatynski
760099e226 Improve loading of JSON files to avoid implicit behaviours of Node require (#1519)
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2024-02-19 15:22:40 +00:00
Michael Telatynski
742aeb32a3 Saner releases clean up (#1512) 2024-02-19 12:32:31 +00:00
Valere
ce3e00ce6a Update rust phased rollout for EDR 2024-02-19 10:28:56 +01:00
Michael Telatynski
599b7b8e01 Update eSigner CKA (#1501) 2024-02-14 13:07:59 +00:00
RiotRobot
88bbb85aac Merge branch 'master' into develop 2024-02-13 15:15:56 +00:00
RiotRobot
17b085d64b v1.11.58 2024-02-13 15:15:15 +00:00
Michael Telatynski
7fdefaab7a Update variable-mapper to silence actions warnings (#1502) 2024-02-13 11:07:00 +00:00
RiotRobot
814f46c238 v1.11.58-rc.1 2024-02-06 16:04:08 +00:00
renovate[bot]
58fd8b2339 Update peter-evans/repository-dispatch action to v3 (#1487)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-02 17:41:10 +00:00
renovate[bot]
47f902dd50 Update dependency @playwright/test to v1.41.2 (#1483)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-02 17:37:29 +00:00
renovate[bot]
626e2cbbfc Update babel monorepo to v7.23.9 (#1481)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-02 17:34:16 +00:00
renovate[bot]
1f5ef2407e Update typescript-eslint monorepo to v6.20.0 (#1486)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-02 17:08:46 +00:00
renovate[bot]
1f60b70f15 Update electron-builder to v24.12.0 (#1485)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-02 17:05:50 +00:00
RiotRobot
496247d123 v1.11.58-rc.0 2024-02-02 16:34:49 +00:00
Michael Telatynski
613b83cbf7 Fix missing needs clause
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-02-02 16:23:54 +00:00
Michael Telatynski
2862a68f12 Revert "Use ELEMENT_BOT_TOKEN for release-drafter-workflow.yml"
This reverts commit 2e11c2a8a4.
2024-02-02 15:44:44 +00:00
Michael Telatynski
2e11c2a8a4 Use ELEMENT_BOT_TOKEN for release-drafter-workflow.yml
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-02-02 15:41:16 +00:00
Michael Telatynski
960984b619 Add waits for post-release steps for improved visibility (#1480) 2024-02-02 14:17:45 +00:00
Michael Telatynski
056bb21585 Reuse release-drafter-workflow from js-sdk (#1475) 2024-02-01 18:13:58 +00:00
Michael Telatynski
e4e44c4eaf Update Node version in Dockerfile to comply with engine minimum (#1473) 2024-01-31 16:19:53 +00:00
RiotRobot
ea4269a283 Merge branch 'master' into develop 2024-01-31 15:19:57 +00:00
RiotRobot
2727a22e2d v1.11.57 2024-01-31 15:19:23 +00:00
Michael Telatynski
d6bcbecab2 Update packaging.md 2024-01-31 14:30:28 +00:00
Michael Telatynski
f3694ae736 Update build_windows.yaml 2024-01-31 14:29:25 +00:00
R Midhun Suresh
443647c9af Merge pull request #1474 from element-hq/fix-broken-windows-build
Use powershell shell instead of pwsh
2024-01-31 19:33:46 +05:30
R Midhun Suresh
3f82adbebc Format 2024-01-31 19:15:14 +05:30
Michael Telatynski
15914b54d8 Switch to M1 runner for macOS builds (#1472) 2024-01-31 13:05:08 +00:00
R Midhun Suresh
b54bd8f3e0 Use powershell throughout 2024-01-31 18:16:51 +05:30
R Midhun Suresh
88d89dd81d Move to correct step 2024-01-31 18:03:56 +05:30
R Midhun Suresh
93524d34be Use powershell shell instead of pwsh 2024-01-31 18:00:03 +05:30
Michael Telatynski
07fe7ac647 Fix development issue on Windows (#1466) 2024-01-30 14:02:16 +00:00
Timo
18c4c9df93 Merge pull request #1413 from element-hq/toger5/force-ec-video-rooms
Force Element Call video rooms
2024-01-25 16:32:34 +01:00
Michael Telatynski
39736db9ce Fix stash debs deploy dry-run action 2024-01-25 15:16:46 +00:00
RiotRobot
bb32124ff1 v1.11.57-rc.1 2024-01-24 16:56:57 +00:00
Michael Telatynski
b6e805e100 Fix Github actions output getting cast to string causing spurious deploys
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-01-24 16:33:37 +00:00
Timo K
f04c1d86ad Force ec video rooms
Signed-off-by: Timo K <toger5@hotmail.de>
2024-01-24 14:50:22 +01:00
renovate[bot]
4990a49d40 Update all non-major dependencies (#1454)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-01-24 09:22:03 +00:00
renovate[bot]
f75ebb7763 Update tj-actions/changed-files action to v42 (#1458)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-23 21:28:39 +00:00
renovate[bot]
29ab7121f8 Update dependency @playwright/test to v1.41.1 (#1455)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-23 21:17:59 +00:00
renovate[bot]
ff89431141 Update tj-actions/changed-files digest to cbda684 (#1453)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-23 21:14:45 +00:00
renovate[bot]
7c86f9bed0 Update docker/metadata-action digest to dbef880 (#1452)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-01-23 20:11:43 +00:00
renovate[bot]
609e5ff236 Update typescript-eslint monorepo to v6.19.0 (#1456)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-23 20:05:34 +00:00
renovate[bot]
dd5b17b6a4 Update actions/cache action to v4 (#1457)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-23 20:03:17 +00:00
RiotRobot
9ca6cf916c v1.11.56-rc.0 2024-01-23 19:05:51 +00:00
ElementRobot
6ede562b3e Merge pull request #1449 from element-hq/actions/localazy-download
Localazy Download
2024-01-22 09:41:17 +01:00
t3chguy
891611078f [create-pull-request] automated change 2024-01-22 06:05:42 +00:00
RiotRobot
52ff21b5b5 Merge branch 'master' into develop 2024-01-19 14:24:32 +00:00
RiotRobot
3e18f441c4 Merge branch 'staging' 2024-01-19 14:23:53 +00:00
RiotRobot
7f9f0dba3a v1.11.55 2024-01-19 14:23:49 +00:00
Michael Telatynski
efde228da6 Add knip unused code & dependency analyser (#1441) 2024-01-18 10:10:51 +00:00
Michael Telatynski
ae187445af Run more of the deploy code for pre-releases (#1440) 2024-01-17 15:23:11 +00:00
renovate[bot]
bc4c4159dc Update all non-major dependencies (#1438)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-01-17 09:47:57 +00:00
renovate[bot]
ec3bb34e90 Update actions/upload-artifact action to v4 (#1439)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-17 09:32:54 +00:00
Michael Telatynski
2cae8e50f5 Update CHANGELOG.md 2024-01-16 21:28:50 +00:00
RiotRobot
69ea53502e Merge branch 'master' into develop 2024-01-16 21:11:28 +00:00
RiotRobot
8602637f74 Merge branch 'staging' 2024-01-16 21:10:46 +00:00
RiotRobot
738ef04871 v1.11.54 2024-01-16 21:10:42 +00:00
Michael Telatynski
857c623d48 Fix symlinks 2024-01-16 21:08:00 +00:00
RiotRobot
7ed5cb1cc9 Merge branch 'master' into develop 2024-01-16 20:09:25 +00:00
RiotRobot
82580d9da5 Merge branch 'staging' 2024-01-16 20:08:20 +00:00
RiotRobot
d9a0be604e v1.11.54 2024-01-16 20:08:15 +00:00
Michael Telatynski
094926f849 Fix release symlinks 2024-01-16 19:53:47 +00:00
RiotRobot
ac2da2f36b Merge branch 'master' into develop 2024-01-16 18:39:24 +00:00
RiotRobot
ae0916d7e4 Merge branch 'staging' 2024-01-16 18:38:40 +00:00
RiotRobot
1fccadd42e v1.11.54 2024-01-16 18:38:35 +00:00
Michael Telatynski
1964baad42 Update build_and_deploy.yaml 2024-01-16 18:26:19 +00:00
RiotRobot
7afdff63be Merge branch 'master' into develop 2024-01-16 18:19:22 +00:00
Michael Telatynski
90eed7b5d6 Fix release artifact symlinking 2024-01-16 18:18:41 +00:00
RiotRobot
27e59633a4 Merge branch 'master' into develop 2024-01-16 17:49:39 +00:00
RiotRobot
0be0d6629d v1.11.54 2024-01-16 17:48:50 +00:00
renovate[bot]
c4e697edd7 Update dependency playwright to v1.40.1 (#1242)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-01-11 18:49:20 +00:00
Michael Telatynski
ab7002e687 Update build_prepare.yaml 2024-01-11 12:03:55 +00:00
Michael Telatynski
de7e99edab Fix Element Nightly debian packaging (#1434) 2024-01-11 11:35:21 +00:00
renovate[bot]
d37e1af103 Update dependency electron to v28.1.3 (#1432)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-11 11:02:36 +00:00
renovate[bot]
4fb2add57a Update ilammy/msvc-dev-cmd digest to 1a76314 (#1420)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-01-10 01:10:54 +00:00
renovate[bot]
1968c406f5 Update electron-builder to v24.11.0 (#1431)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-10 01:10:48 +00:00
renovate[bot]
d39788e176 Update dependency @types/node to v16.18.70 (#1430)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-10 00:52:45 +00:00
renovate[bot]
0750b6f303 Update dependency eslint-plugin-unicorn to v50 (#1426)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-10 00:47:51 +00:00
renovate[bot]
e8cc78f7af Update babel monorepo to v7.23.7 (#1421)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-10 00:08:07 +00:00
renovate[bot]
eb293bbf85 Update tj-actions/changed-files action to v41 (#1427)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-10 00:05:12 +00:00
renovate[bot]
fdb24d7744 Update dependency @types/node to v16.18.69 (#1422)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-10 00:04:43 +00:00
renovate[bot]
5d5014904f Update typescript-eslint monorepo to v6.18.0 (#1425)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-10 00:04:04 +00:00
renovate[bot]
24d290178e Update dependency app-builder-lib to v24.10.0 (#1424)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-10 00:03:43 +00:00
renovate[bot]
8749fe0e33 Update all non-major dependencies (#1423)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-09 18:57:29 +00:00
RiotRobot
5c76ff351c v1.11.54-rc.0 2024-01-09 18:14:48 +00:00
Michael Telatynski
b479798f42 Burn Node-related Electron fuses as a proactive hardening measure (#1412)
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Valere <valeref@matrix.org>
2024-01-09 15:56:04 +00:00
Michael Telatynski
69da4935b9 Switch to artifact-v4 and move packages.element.io packing to deploy workflow (#1411) 2024-01-08 12:40:59 +00:00
RiotRobot
5582461de4 Merge branch 'master' into develop 2024-01-04 14:54:55 +00:00
RiotRobot
afc22a15c3 v1.11.53 2024-01-04 14:54:09 +00:00
Michael Telatynski
927285ae54 Update build_windows.yaml 2024-01-04 09:19:22 +00:00
Michael Telatynski
6617b29028 Move electron-builder config to javascript file (#1402) 2024-01-03 16:29:48 +00:00
David Langley
a0045050f2 Merge pull request #1410 from element-hq/langleyd/update_team_names
Update teams names in CODEOWNERS
2024-01-03 11:23:59 +00:00
David Langley
b025c9f6f9 update teams names in CODEOWNERS 2024-01-03 11:06:39 +00:00
renovate[bot]
18eea3eb11 Update dependency detect-libc to v2 (#1407)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-01-02 18:15:58 +00:00
renovate[bot]
3bfe26a1f8 Update dependency prettier to v3 (#1405)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-01-02 18:12:16 +00:00
Michael Telatynski
29550847f9 Fix docker commands to work on ARM systems like macOS M1 (#1408) 2024-01-02 17:39:20 +00:00
renovate[bot]
5f722691e7 Update actions/setup-node action to v4 (#1404)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-02 17:37:20 +00:00
renovate[bot]
d8169dac6f Update typescript-eslint monorepo to v6 (major) (#1403)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-02 17:37:13 +00:00
renovate[bot]
b48524698f Update actions/checkout action to v4 (#1406)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-02 17:24:45 +00:00
Michael Telatynski
058bb09bf4 Revert "Upgrade to {upload,download}-artifact@v4 for better performance" (#1396) 2023-12-20 10:01:54 +00:00
Michael Telatynski
de503fa72c Upgrade to {upload,download}-artifact@v4 for better performance (#1390) 2023-12-19 16:12:07 +00:00
RiotRobot
0fdf55b171 Merge branch 'master' into develop 2023-12-19 16:05:49 +00:00
RiotRobot
10f11acfa8 v1.11.52 2023-12-19 16:05:06 +00:00
Michael Telatynski
610389244a Upgrade to glibc 2.28 in the Docker image for Node20 compatibility (#1391) 2023-12-18 15:38:42 +00:00
renovate[bot]
a7d44591aa Update all non-major dependencies (#1380)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-12-13 14:33:27 +00:00
ElementRobot
1501837960 Merge pull request #1370 from element-hq/actions/localazy-download
Localazy Download
2023-12-13 14:25:26 +00:00
Michael Telatynski
11051a1b9e Merge branch 'develop' into actions/localazy-download 2023-12-13 14:01:27 +00:00
David Langley
d194fbcd34 Merge pull request #1382 from element-hq/backport-1375-to-staging
Backport 1375 to staging
2023-12-13 13:38:57 +00:00
renovate[bot]
1e816ea626 Update tj-actions/changed-files digest to 9454999 (#1374)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-12-13 13:23:05 +00:00
renovate[bot]
6fe02e9bba Update dependency electron to v28 (#1381)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-12-13 13:22:47 +00:00
renovate[bot]
e877d1e624 Update definitelyTyped (#1334)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-12-13 13:21:21 +00:00
renovate[bot]
eddd869a87 Update dependency app-builder-lib to v24.9.4 (#1378)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-12-13 13:20:47 +00:00
renovate[bot]
fe6f382848 Update dependency typescript to v5.3.3 (#1379)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-12-13 13:20:02 +00:00
renovate[bot]
a2f97a4244 Update docker/metadata-action digest to 31cebac (#1373)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-12-13 13:17:14 +00:00
renovate[bot]
8df705b3e5 Update babel monorepo to v7.23.5 (#1376)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-12-13 13:16:16 +00:00
renovate[bot]
a1ad12a0a6 Update dependency @types/jest to v29.5.11 (#1377)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-12-13 13:15:27 +00:00
David Langley
788a4ca721 Merge pull request #1375 from element-hq/langleyd/update_org_in_workflows
Update org in workflows and scripts

(cherry picked from commit 9586a17faf)
2023-12-13 13:07:19 +00:00
David Langley
9586a17faf Merge pull request #1375 from element-hq/langleyd/update_org_in_workflows
Update org in workflows and scripts
2023-12-13 12:44:31 +00:00
David Langley
07eb156555 Update org is workflows and scripts 2023-12-13 10:02:45 +00:00
t3chguy
13c5d378e4 [create-pull-request] automated change 2023-12-13 06:05:18 +00:00
RiotRobot
79c4b6f7e7 v1.11.52-rc.0 2023-12-12 17:09:53 +00:00
David Langley
066c5c9d93 Merge pull request #1369 from element-hq/langleyd/update_org_in_codeowners
Update org to element-hq in CODEOWNERS
2023-12-12 11:33:01 +00:00
David Langley
e51337ce0c update org to element-hq 2023-12-11 20:23:27 +00:00
RiotRobot
58da1477de Merge branch 'master' into develop 2023-12-05 14:27:44 +00:00
RiotRobot
eebea8b839 v1.11.51 2023-12-05 14:26:51 +00:00
Johannes Marbach
1b3bafa2a4 Merge pull request #1360 from vector-im/Johennes-patch-1 2023-11-30 16:08:17 +01:00
Johannes Marbach
e413b05d74 Activate automatic label sync 2023-11-30 15:46:31 +01:00
Johannes Marbach
cde2357ea1 Merge pull request #1359 from vector-im/Johennes-patch-1 2023-11-30 15:44:55 +01:00
Johannes Marbach
4bdbc3abc6 Remove space 2023-11-30 14:33:39 +01:00
Johannes Marbach
a75d7ec7ae Add missing labels 2023-11-30 14:33:06 +01:00
Johannes Marbach
71149f368c Merge pull request #1358 from vector-im/johannes/label-sync 2023-11-30 13:56:54 +01:00
Johannes Marbach
92298641ac Set up label sync for testing 2023-11-29 13:17:14 +01:00
ElementRobot
5b7f230d20 Merge pull request #1356 from vector-im/actions/localazy-download
Localazy Download
2023-11-29 07:25:21 +01:00
t3chguy
d148e0dda2 [create-pull-request] automated change 2023-11-29 06:05:11 +00:00
renovate[bot]
68f3344000 Update all non-major dependencies (#1352)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-28 19:17:43 +00:00
renovate[bot]
66375e5182 Update dependency typescript to v5.3.2 (#1354)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-28 18:33:07 +00:00
renovate[bot]
b72f8f1223 Update dependency @types/jest to v29.5.10 (#1353)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-28 18:31:05 +00:00
renovate[bot]
419e4eea86 Update docker (#1349)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-28 18:30:38 +00:00
renovate[bot]
110f9118b7 Update electron-builder to v24.9.1 (#1355)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-28 18:30:05 +00:00
renovate[bot]
20810f0248 Update tj-actions/changed-files digest to da093c1 (#1351)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-28 18:28:22 +00:00
RiotRobot
eda328d8fb v1.11.51-rc.0 2023-11-28 17:41:21 +00:00
Johannes Marbach
dc4b04af2d Merge pull request #1347 from vector-im/johannes/release-make 2023-11-24 15:54:40 +01:00
Johannes Marbach
70167d42f4 Adapt to renaming of release-action workflow 2023-11-24 15:33:55 +01:00
Michael Telatynski
268e61ec5a Update build_and_deploy.yaml 2023-11-23 08:21:09 +00:00
Johannes Marbach
b7cc0cf5f2 Merge pull request #1344 from vector-im/johannes/action-validator 2023-11-22 16:36:08 +01:00
Johannes Marbach
b0fa486d97 Set up CI to lint workflows with action-validator 2023-11-22 16:13:47 +01:00
Michael Telatynski
ea22bcf1eb Simplify reprepro using new composite action (#1320) 2023-11-22 08:31:25 +00:00
Michael Telatynski
06df6e97fe Update CHANGELOG.md 2023-11-21 12:32:28 +00:00
RiotRobot
41ce1c4ceb Merge branch 'master' into develop 2023-11-21 11:49:47 +00:00
RiotRobot
9a7ac5166e Merge branch 'staging' 2023-11-21 11:49:08 +00:00
RiotRobot
6ef4c62fb1 v1.11.50 2023-11-21 11:49:03 +00:00
Michael Telatynski
de59ed995a Update release-gitflow.yml 2023-11-21 11:35:12 +00:00
Michael Telatynski
699282c34a Add documentation around releases (#1341) 2023-11-21 08:38:14 +00:00
ElementRobot
be2639aeb8 Merge pull request #1340 from vector-im/actions/localazy-download
Localazy Download
2023-11-17 07:25:06 +01:00
t3chguy
0ad43a64f5 [create-pull-request] automated change 2023-11-17 06:05:17 +00:00
Michael Telatynski
95186da047 Run Localazy Download on a schedule 3 times a week instead of during release process (#1326) 2023-11-16 09:48:10 +00:00
renovate[bot]
376efe46cc Update dependency @types/jest to v29.5.8 (#1335)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-11-15 23:12:03 +00:00
renovate[bot]
07cbe8f033 Update all non-major dependencies (#1332)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-11-15 23:09:07 +00:00
renovate[bot]
9c762b9ec0 Update babel monorepo to v7.23.3 (#1333)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-11-15 23:06:16 +00:00
renovate[bot]
8b7a39155f Update dependency app-builder-lib to v24.8.1 (#1336)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-15 22:34:54 +00:00
renovate[bot]
da46964e69 Update tj-actions/changed-files digest to 25ef392 (#1331)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-15 22:27:28 +00:00
RiotRobot
509c0c5678 v1.11.50-rc.1 2023-11-14 16:57:06 +00:00
RiotRobot
cdf3ce8fd6 v1.11.50-rc.0 2023-11-14 16:29:15 +00:00
Michael Telatynski
421919d146 Explicitly specify secrets
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2023-11-14 16:27:31 +01:00
Michael Telatynski
473e8068dc Update release-drafter.yml 2023-11-14 14:43:43 +00:00
Michael Telatynski
7c65dbf549 New release automations (#1318) 2023-11-14 10:54:42 +00:00
Michael Telatynski
7bf2fbb0ac Update build_macos.yaml 2023-11-13 12:09:18 +00:00
Michael Telatynski
b4d90bafae Update build_macos.yaml 2023-11-13 12:04:39 +00:00
Michael Telatynski
b2b7bcb5af Workaround for macos-latest switching to Python 3.12 (#1328) 2023-11-13 12:03:37 +00:00
ElementRobot
7e10269009 Merge branch 'master' into develop 2023-11-13 10:38:10 +00:00
ElementRobot
145b58611a v1.11.49 2023-11-13 10:38:02 +00:00
ElementRobot
a200cc402d Prepare changelog for v1.11.49 2023-11-13 10:38:02 +00:00
Michael Telatynski
24dc38d99d Remove unused dependency (#1323) 2023-11-13 09:44:09 +00:00
Michael Telatynski
53902c0fd6 Update CODEOWNERS 2023-11-13 09:20:52 +00:00
ElementRobot
b8e0e26a30 Merge branch 'master' into develop 2023-11-07 15:31:08 +00:00
ElementRobot
a5ce2c122f v1.11.48 2023-11-07 15:31:01 +00:00
ElementRobot
860385d8b8 Prepare changelog for v1.11.48 2023-11-07 15:31:01 +00:00
Johannes Marbach
572b3b6b05 Merge pull request #1312 from vector-im/Johennes-patch-1 2023-11-07 10:48:43 +01:00
Johannes Marbach
afe8956123 Inherit secrets 2023-11-07 09:40:04 +01:00
Johannes Marbach
655af71613 Forward ELEMENT_BOT_TOKEN when calling workflow 2023-11-06 15:54:28 +01:00
Johannes Marbach
cb3cb91c2b Merge pull request #1295 from vector-im/Johennes-patch-1 2023-11-06 14:56:01 +01:00
Johannes Marbach
8b363f300f Merge branch 'develop' into Johennes-patch-1 2023-11-06 14:22:45 +01:00
Johannes Marbach
4a7258cc87 Call workflow from element-web 2023-11-06 14:14:19 +01:00
renovate[bot]
7214c7e48e Update definitelyTyped (#1300)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-01 09:28:10 +00:00
renovate[bot]
cc6e1fefae Update dependency app-builder-lib to v24.8.0 (#1303)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-01 08:38:46 +00:00
renovate[bot]
e4f60fce10 Update docker (#1298)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-01 08:36:54 +00:00
renovate[bot]
0cc6e2aeb1 Update all non-major dependencies (#1302)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-01 08:36:48 +00:00
renovate[bot]
d3c5c736f8 Update tj-actions/changed-files digest to 4052680 (#1299)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-01 08:34:40 +00:00
renovate[bot]
a8deae3950 Update tj-actions/changed-files action to v40 (#1306)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-10-31 18:56:25 +00:00
renovate[bot]
06200aa663 Update dependency eslint-plugin-unicorn to v49 (#1305)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-31 18:40:08 +00:00
renovate[bot]
fefc92d513 Update dependency @types/jest to v29.5.6 (#1301)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-31 18:20:03 +00:00
ElementRobot
fb11841070 v1.11.48-rc.1 2023-10-31 15:23:58 +00:00
ElementRobot
09d4815d8a Prepare changelog for v1.11.48-rc.1 2023-10-31 15:23:58 +00:00
Johannes Marbach
51dda630d1 Create triage-labelled.yml
This copies https://github.com/vector-im/element-web/blob/develop/.github/workflows/triage-labelled.yml as I believe we want the same label automation in both repositories.
2023-10-27 16:24:30 +02:00
Michael Telatynski
e330d0c3e7 Fix edge cases around macos draggability (#1291) 2023-10-25 10:10:52 +01:00
ElementRobot
6637923701 Merge branch 'master' into develop 2023-10-24 15:49:09 +01:00
ElementRobot
a9003d1abd v1.11.47 2023-10-24 15:49:01 +01:00
ElementRobot
8c4b9e9f41 Prepare changelog for v1.11.47 2023-10-24 15:49:00 +01:00
Michael Telatynski
ade277af89 Delete .github/workflows/upgrade_dependencies.yml 2023-10-24 00:48:04 +01:00
Michael Telatynski
ca0a48196c Fix Nightly builds not bailing on failure (#1289) 2023-10-23 12:04:58 +01:00
renovate[bot]
203ce96d0b Lock file maintenance (#1224)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-18 10:49:38 +00:00
renovate[bot]
dac155ebe7 Update all non-major dependencies (#1253)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-10-17 20:14:44 +01:00
renovate[bot]
05527b784c Update dependency typescript to v5.2.2 (#1243)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-10-17 17:43:01 +01:00
renovate[bot]
850eccca79 Update docker/build-push-action digest to fdf7f43 (#1282)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-10-17 17:10:50 +01:00
renovate[bot]
777277163b Update dependency electron to v27 (#1283)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-17 17:10:40 +01:00
renovate[bot]
88788b42a5 Update tj-actions/changed-files digest to 95690f9 (#1260)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-17 15:14:46 +00:00
renovate[bot]
4a92992c26 Update dependency app-builder-lib to v24.7.0 (#1263)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-17 16:11:03 +01:00
renovate[bot]
5142d4aefd Update babel monorepo to v7.23.2 (#1262)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-17 16:10:55 +01:00
renovate[bot]
68b289d779 Update definitelyTyped (#1261)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-17 16:09:59 +01:00
ElementRobot
6198190095 v1.11.47-rc.1 2023-10-17 15:47:14 +01:00
ElementRobot
02080bbe2e Prepare changelog for v1.11.47-rc.1 2023-10-17 15:47:13 +01:00
ElementRobot
71738c3dfc [create-pull-request] automated change (#1281)
Co-authored-by: t3chguy <t3chguy@users.noreply.github.com>
2023-10-17 15:05:22 +01:00
Michael Telatynski
9890109ebf Update localazy_upload.yaml 2023-10-17 10:48:32 +01:00
Michael Telatynski
da9d9e1730 Allow overwriting app.element.io when popping out widgets (#1277) 2023-10-16 14:20:58 +01:00
Michael Telatynski
2738dca96f Write mdbook summary (#1273) 2023-10-16 08:40:15 +01:00
Robin
485fee3a77 Merge pull request #1274 from robintown/element-call-url
Update the Element Call unstable URL
2023-10-13 12:53:36 -04:00
Robin
9d63ba5d41 Update the Element Call unstable URL
We've switched from Netlify to an in-house Kubernetes deployment with a new URL.
2023-10-13 12:21:49 -04:00
Germain
507fd77b21 Implement macos title bar negative space (#1272) 2023-10-12 15:14:21 +01:00
RiotRobot
ecf8a2814b v1.11.46 2023-10-10 09:41:17 +01:00
RiotRobot
3758623283 Prepare changelog for v1.11.46 2023-10-10 09:41:16 +01:00
RiotRobot
1bfaa948a0 v1.11.46-rc.2 2023-10-03 15:06:17 +01:00
RiotRobot
2e6a85a239 Prepare changelog for v1.11.46-rc.2 2023-10-03 15:06:17 +01:00
Andy Balaam
f563d8c4cd Bump matrix-web-i18n to 3.1.3 for KEY_SEPARATOR (#1259) 2023-10-03 15:03:02 +01:00
RiotRobot
a2e800e301 v1.11.46-rc.1 2023-10-03 12:17:51 +01:00
RiotRobot
49b87dfb53 Prepare changelog for v1.11.46-rc.1 2023-10-03 12:17:50 +01:00
RiotRobot
00c27c4475 Merge branch 'master' into develop 2023-09-29 11:45:30 +01:00
RiotRobot
0f268891cd v1.11.45 2023-09-29 11:45:16 +01:00
RiotRobot
7377787b2f Prepare changelog for v1.11.45 2023-09-29 11:45:15 +01:00
ElementRobot
696e7d2652 Bump electron to 26.2.4 (#1254) (#1255)
(cherry picked from commit 3eb32d9ff3)

Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
2023-09-29 11:06:58 +01:00
Andy Balaam
3eb32d9ff3 Bump electron to 26.2.4 (#1254) 2023-09-29 09:15:27 +00:00
RiotRobot
14b264e353 Merge branch 'master' into develop 2023-09-26 14:17:21 +01:00
RiotRobot
089810ec60 v1.11.44 2023-09-26 14:17:07 +01:00
RiotRobot
9afcaf54fc Prepare changelog for v1.11.44 2023-09-26 14:17:06 +01:00
renovate[bot]
fdc230ff17 Update jest to v29.5.5 (#1240)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-22 01:28:21 +00:00
renovate[bot]
0af8b8e420 Update definitelyTyped (#1237)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-22 01:06:16 +00:00
renovate[bot]
565c662b25 Update babel monorepo to v7.22.20 (#1238)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-22 01:00:45 +00:00
renovate[bot]
173e658b3c Update docker (#1235)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-22 01:23:17 +01:00
renovate[bot]
2f901cab6a Update tj-actions/changed-files digest to 4196030 (#1236)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-22 01:22:53 +01:00
renovate[bot]
59069c316f Update dependency app-builder-lib to v24.6.5 (#1239)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-22 01:21:42 +01:00
renovate[bot]
d73e3b0f0c Update all non-major dependencies (#1241)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-22 01:20:45 +01:00
RiotRobot
422bb150c9 v1.11.44-rc.1 2023-09-19 12:58:45 +01:00
RiotRobot
b6daedae89 Prepare changelog for v1.11.44-rc.1 2023-09-19 12:58:44 +01:00
Johannes Marbach
bcfc057879 Merge pull request #1231 from vector-im/johannes/undefault-new-room-header 2023-09-18 16:09:44 +02:00
Johannes Marbach
d3b84266a4 Turn off new room header by default 2023-09-18 09:52:39 +02:00
Johannes Marbach
94a0347946 Merge pull request #1194 from vector-im/germain-gg/room-ui-develop 2023-09-15 15:43:51 +02:00
RiotRobot
c87e72c4a1 Merge branch 'master' into develop 2023-09-15 12:25:42 +01:00
RiotRobot
ac1acc1591 v1.11.43 2023-09-15 12:24:35 +01:00
RiotRobot
0bd8a1720e Prepare changelog for v1.11.43 2023-09-15 12:24:34 +01:00
RiotRobot
58f2f99ca4 Update yarn.lock for changed dependencies 2023-09-15 12:22:14 +01:00
Andy Balaam
5e56cd59ef upgrade electron to 26.2.1 to fix CVE-2023-4863 (#1226) (#1228)
Signed-off-by: lauren n. liberda <lauren@selfisekai.rocks>
(cherry picked from commit ca43ab8a6f)

Co-authored-by: lauren n. liberda <msgh@selfisekai.rocks>
2023-09-15 12:01:56 +01:00
lauren n. liberda
ca43ab8a6f upgrade electron to 26.2.1 to fix CVE-2023-4863 (#1226)
Signed-off-by: lauren n. liberda <lauren@selfisekai.rocks>
2023-09-15 10:01:48 +01:00
Johannes Marbach
ece7240345 Merge branch 'develop' into germain-gg/room-ui-develop 2023-09-15 09:10:50 +02:00
Michael Telatynski
f45f83f0f5 Improve edge cases around macOS drag handles (#1219)
* Allow dragging macOS window by area around mx_UserMenu

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix context menus overlapping drag regions being unclickable

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix captcha overlapping drag region being unclickable

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Expand drag handle on top left user menu surround

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2023-09-14 08:55:11 +01:00
RiotRobot
1905e4759b Merge branch 'master' into develop 2023-09-13 13:05:23 +01:00
RiotRobot
4278447157 v1.11.42 2023-09-13 13:05:09 +01:00
RiotRobot
e840ba55c1 Prepare changelog for v1.11.42 2023-09-13 13:05:08 +01:00
ElementRobot
4ec7d29488 Merge branch 'master' into develop 2023-09-12 17:23:47 +01:00
ElementRobot
e2ef97cc15 v1.11.41 2023-09-12 17:23:39 +01:00
ElementRobot
8602435994 Prepare changelog for v1.11.41 2023-09-12 17:23:39 +01:00
renovate[bot]
624d941950 Update tj-actions/changed-files digest to 6ee9cdc (#1204)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-12 03:17:38 +00:00
ElementRobot
bdca72cc19 v1.11.41-rc.2 2023-09-08 12:12:06 +01:00
ElementRobot
eabd0af515 Prepare changelog for v1.11.41-rc.2 2023-09-08 12:12:06 +01:00
Michael Telatynski
e5e0a4cdbb Update localazy.json 2023-09-08 10:45:20 +01:00
ElementRobot
9d15a270e2 Merge pull request #1214 from vector-im/actions/localazy-download
Localazy Download
2023-09-08 11:36:09 +02:00
t3chguy
889e7cfa0c [create-pull-request] automated change 2023-09-08 09:08:41 +00:00
Michael Telatynski
b67270d324 Update package.json 2023-09-08 09:54:25 +01:00
Michael Telatynski
a99b30f839 Consolidate de.json into de_DE.json
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2023-09-08 09:40:47 +01:00
renovate[bot]
a094a06465 Update dependency electron to v26.2.0 (#1212)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-07 08:14:41 +00:00
renovate[bot]
1f43456984 Update dependency electron-builder-squirrel-windows to v24.6.4 (#1181)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-06 20:39:19 +01:00
Michael Telatynski
8edaf46557 Update backport.yml 2023-09-06 18:13:03 +01:00
renovate[bot]
3549d38cfd Lock file maintenance (#1210)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-09-06 18:10:31 +01:00
Michael Telatynski
383377493c Localazy Download 2023-09-06 18:08:25 +01:00
renovate[bot]
37bf22b92c Update peter-evans/repository-dispatch digest to bf47d10 (#1203)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-09-06 13:41:51 +01:00
renovate[bot]
ac40e365e5 Update definitelyTyped (#1206)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-06 09:47:24 +00:00
renovate[bot]
42c45a51ca Update tj-actions/changed-files action to v39 (#1209)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-06 09:47:19 +00:00
renovate[bot]
dc780491c8 Update babel monorepo (#1205)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-06 10:45:07 +01:00
renovate[bot]
2d102bdc19 Update docker (#1202)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-06 10:43:22 +01:00
renovate[bot]
2b1e88f16e Update electron-builder to v24.6.4 (#1207)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-05 20:24:52 +00:00
renovate[bot]
9b83e2d515 Update dependency pacote to v17 (#1184)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-09-05 21:23:00 +01:00
renovate[bot]
7c13a58b51 Update jest to v29.6.4 (#1180)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-05 17:01:44 +00:00
ElementRobot
a974b5bab5 v1.11.41-rc.1 2023-09-05 17:10:41 +01:00
ElementRobot
0db7363a58 Prepare changelog for v1.11.41-rc.1 2023-09-05 17:10:41 +01:00
Michael Telatynski
86832a1793 Migrate translations to keys and switch to Localazy (#1198) 2023-09-05 17:09:47 +01:00
Johannes Marbach
2c62efa6e8 Merge pull request #1193 from vector-im/germain-gg/room-header-no-drag-zone 2023-09-05 12:40:24 +02:00
Johannes Marbach
bae8b58c17 Merge branch 'develop' into germain-gg/room-header-no-drag-zone 2023-09-05 11:36:39 +02:00
renovate[bot]
724c545b0c Update tj-actions/changed-files digest to 2f7246c (#1156)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-02 01:18:28 +00:00
Element Translate Bot
2deacf6d41 Translations update from Weblate (#1196)
Co-authored-by: phardyle <bradney_ccea@aleeas.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Glandos <bugs-github@antipoul.fr>
2023-09-01 12:26:37 +01:00
Germain
d7c4e9b74a Enable new room UI by default on nightly 2023-08-31 22:32:12 +01:00
Germain
d929da6869 Updated no drag zones 2023-08-31 21:14:38 +01:00
RiotRobot
d830d0ef10 Merge branch 'master' into develop 2023-08-29 11:29:42 +01:00
RiotRobot
6a72f53d0b v1.11.40 2023-08-29 11:29:26 +01:00
RiotRobot
0f82a070dc Prepare changelog for v1.11.40 2023-08-29 11:29:26 +01:00
renovate[bot]
85901ef2a9 Update docker (#1178)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-28 09:04:59 +00:00
renovate[bot]
426ad15f8c Update electron-builder to v24.6.3 (#1158)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-24 14:21:53 +00:00
renovate[bot]
33787efd1c Update dependency @types/node to v16.18.41 (#1179)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-24 14:12:04 +00:00
renovate[bot]
d4de1a362f Update dependency electron to v26 (#1183)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-24 13:26:26 +00:00
renovate[bot]
90492d61e6 Update tj-actions/changed-files action to v38 (#1185)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-24 14:17:47 +01:00
renovate[bot]
1bbced71b8 Lock file maintenance (#1116)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-23 12:59:55 +00:00
renovate[bot]
a1f86e83dc Update tibdex/backport digest to 7005ef8 (#1155)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-23 12:36:00 +00:00
RiotRobot
95c0fab46a v1.11.40-rc.1 2023-08-23 12:08:56 +01:00
RiotRobot
ce10394e58 Prepare changelog for v1.11.40-rc.1 2023-08-23 12:08:55 +01:00
Zhaofeng Li
e51e248052 Don't intercept Ctrl + Cmd + Q on macOS (#1174) 2023-08-18 11:25:11 +01:00
Michael Telatynski
d718f008e7 Switch to nested object pluralisation format for i18n files (#1172) 2023-08-17 09:37:56 +01:00
Michael Telatynski
0da5ec88d6 Improve selectors for macos app draggable regions (#1170)
Disable background drag handles when modals are open as they interfere through the modal body
2023-08-17 05:20:58 +01:00
ElementRobot
47e98c55b2 Merge branch 'master' into develop 2023-08-15 13:40:23 +01:00
ElementRobot
060ac5b650 v1.11.39 2023-08-15 13:40:15 +01:00
ElementRobot
d06bf5b062 Prepare changelog for v1.11.39 2023-08-15 13:40:15 +01:00
Li-Wen Hsu
a0f92941fc Add FreeBSD support (#1163)
Co-authored-by: Hiroki Tagato <tagattie@gmail.com>
2023-08-09 10:11:27 +01:00
Michael Telatynski
2b61ea82ec Update build_and_deploy.yaml 2023-08-08 21:59:58 +01:00
renovate[bot]
d9c5c4be07 Update jest to v29.6.2 (#1159)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-08 16:27:26 +00:00
renovate[bot]
d15bedda5a Update dependency eslint-config-prettier to v9 (#1160)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-08 16:13:56 +00:00
renovate[bot]
04d91ef5b8 Update babel monorepo to v7.22.10 (#1157)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-08 16:07:34 +00:00
renovate[bot]
7d1dd90b2a Update all non-major dependencies (#1117)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-08-08 14:56:25 +00:00
ElementRobot
dd6ba612d0 v1.11.39-rc.1 2023-08-08 15:30:20 +01:00
ElementRobot
45c6a2b9f3 Prepare changelog for v1.11.39-rc.1 2023-08-08 15:30:20 +01:00
Element Translate Bot
cdd16c9cbd Translations update from Weblate (#1151)
Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
2023-08-08 14:47:55 +01:00
RiotRobot
6319ba04d3 Merge branch 'master' into develop 2023-08-04 09:48:26 +01:00
RiotRobot
ae7fe02018 v1.11.38 2023-08-04 09:48:13 +01:00
RiotRobot
6adc753b30 Prepare changelog for v1.11.38 2023-08-04 09:48:12 +01:00
Michael Telatynski
1929351e91 Automatically trigger desktop packages on releases (#630) 2023-08-04 09:12:53 +01:00
renovate[bot]
0208c4d087 Update tj-actions/changed-files digest to 920e7b9 (#1110)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-03 22:08:51 +00:00
Michael Telatynski
d67822dae3 Simplify desktop packaging (#896) 2023-08-03 16:32:53 +01:00
Michael Telatynski
e2f7393ad5 Prevent the media lightbox sender info clipping with traffic light on macos (#1141) 2023-08-03 14:38:00 +01:00
Michael Telatynski
bc97be9ab7 Stop using abandoned actions-rs/toolchain action (#1132) 2023-08-02 14:34:38 +01:00
Michael Telatynski
ae1d8a896d Update build_and_deploy.yaml fix typo 2023-08-02 13:06:52 +01:00
Michael Telatynski
fd66c14544 Fix deploy not working if you skip any OSes
https://github.com/actions/runner/issues/491 for context
2023-08-02 13:05:22 +01:00
Germain
07523ecfdd Restore macOs room header dragability (#1136) 2023-08-02 07:05:13 +00:00
ElementRobot
6aac68ca9a Merge branch 'master' into develop 2023-08-01 12:54:56 +01:00
ElementRobot
ef457ca9d7 v1.11.37 2023-08-01 12:54:49 +01:00
ElementRobot
2dc0eb58dd Prepare changelog for v1.11.37 2023-08-01 12:54:49 +01:00
Michael Telatynski
1debdbeb47 Fix ability to interact with room topic in header (#1126) 2023-07-31 10:33:38 +02:00
Michael Telatynski
ef170eb94e Fix macos titlebar dragging not blocking the right panel (#1120) 2023-07-29 06:47:10 +01:00
Michael Telatynski
1234db90aa Switch to hidden titleBar on macOS to integrate the app better (#1101) 2023-07-28 12:51:33 +01:00
renovate[bot]
58bf462c47 Update all non-major dependencies (#1113)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-27 12:21:24 +01:00
renovate[bot]
5ceed282a0 Update dependency playwright to v1.36.1 (#1112)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-27 12:09:00 +01:00
renovate[bot]
6b2314e54e Update electron-builder to v24.6.2 (#1114)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-27 11:32:38 +01:00
renovate[bot]
95c56b9168 Update dependency @types/node to v16.18.39 (#1111)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-27 11:32:04 +01:00
renovate[bot]
11664eb97b Update dependency eslint-plugin-unicorn to v48 (#1115)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-27 11:31:50 +01:00
ElementRobot
436214df2e v1.11.37-rc.1 2023-07-27 09:56:29 +01:00
ElementRobot
6bfd6fe310 Prepare changelog for v1.11.37-rc.1 2023-07-27 09:56:29 +01:00
Element Translate Bot
4517225540 Translations update from Weblate (#1109)
Co-authored-by: James Choi <tienipia@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Srebrni <kiborg@novko.si>
Co-authored-by: iaiz <git@iapellaniz.com>
Co-authored-by: Edgars Andersons <Edgars+Element-translations@gaitenis.id.lv>
2023-07-27 08:53:27 +01:00
Michael Telatynski
0b31c6d510 Avoid using deprecated config.json key casing (#1099) 2023-07-24 08:36:57 +01:00
RiotRobot
62e29796de Merge branch 'master' into develop 2023-07-18 15:25:38 +01:00
RiotRobot
a61197518e v1.11.36 2023-07-18 15:25:18 +01:00
RiotRobot
c3f00bfbcc Prepare changelog for v1.11.36 2023-07-18 15:25:17 +01:00
renovate[bot]
29a16451cb Update docker/metadata-action digest to 35e9aff (#1064)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-17 18:51:16 +00:00
Šimon Brandner
fedaba9583 Merge pull request #1081 from vector-im/SimonBrandner/feat/better-desk-ss
Switch to the new `session` API for screen-sharing
2023-07-14 22:05:26 +02:00
RiotRobot
a922eb000c v1.11.36-rc.2 2023-07-14 16:43:57 +01:00
RiotRobot
9e87edfcf4 Prepare changelog for v1.11.36-rc.2 2023-07-14 16:43:57 +01:00
Šimon Brandner
a21e5afb84 Switch to the new session API for screen-sharing
See https://github.com/electron/electron/pull/30702 - this has the benefit of the js-sdk and LiveKit not having to add custom logic for Electron

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2023-07-14 12:09:12 +02:00
renovate[bot]
6c7d36dce6 Update tj-actions/changed-files digest to 1f20fb8 (#1065)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 22:31:48 +00:00
renovate[bot]
10f4cc6293 Update all non-major dependencies (#1069)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 15:04:56 +00:00
renovate[bot]
4e69dda7d2 Lock file maintenance (#1018)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 11:27:24 +00:00
renovate[bot]
ae26804bac Update jest to v29.6.1 (#1070)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 10:55:00 +00:00
renovate[bot]
6e086dc505 Update dependency app-builder-lib to v24.5.2 (#1068)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 10:30:30 +00:00
renovate[bot]
9c885cd8b8 Update babel monorepo to v7.22.8 (#1066)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 10:29:27 +00:00
renovate[bot]
edad10fdad Update dependency @types/node to v16.18.38 (#1067)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 10:26:03 +00:00
renovate[bot]
3c4be89c0b Update typescript-eslint monorepo to v5.61.0 (#1071)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 10:28:09 +01:00
renovate[bot]
f85f98d34d Update docker/login-action digest to a979406 (#1063)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 10:21:26 +01:00
renovate[bot]
a76c5b224c Update docker/build-push-action digest to 4fad532 (#1062)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 10:21:03 +01:00
Michael Telatynski
9ddd26b2a3 Fix Tray icon in Windows forgetting your settings (#1059) 2023-07-11 17:00:24 +01:00
RiotRobot
3ac0158b9c v1.11.36-rc.1 2023-07-11 16:10:25 +01:00
RiotRobot
067ce4763d Prepare changelog for v1.11.36-rc.1 2023-07-11 16:10:25 +01:00
Element Translate Bot
eb5251057c Translations update from Weblate (#1060)
* 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 (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 (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 (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 (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 (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/

---------

Co-authored-by: Someone <hahahahacker2009@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: LinAGKar <linus.kardell@gmail.com>
Co-authored-by: Руся <qqrustzz@gmail.com>
Co-authored-by: P <paulpub@ya.ru>
Co-authored-by: Dimitris Vagiakakos <dimitrislinuxos@gmail.com>
Co-authored-by: Nui Harime <harime.nui@yandex.ru>
2023-07-11 11:53:39 +01:00
Michael Telatynski
6c7771f170 Add fallback default_server_config to element.io configs (#1056) 2023-07-10 16:01:35 +01:00
ElementRobot
229d0a9f78 Merge branch 'master' into develop 2023-07-04 15:29:07 +01:00
ElementRobot
81459e89ef v1.11.35 2023-07-04 15:28:58 +01:00
ElementRobot
822b7390fa Prepare changelog for v1.11.35 2023-07-04 15:28:57 +01:00
renovate[bot]
758c38983c Update tj-actions/changed-files action to v37 (#1036)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-28 15:21:33 +01:00
renovate[bot]
196243854b Update all non-major dependencies (#1016)
* Update all non-major dependencies

* Remove wrap-ansi-cjs

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-06-27 17:17:37 +00:00
renovate[bot]
e254b82ba9 Update dependency app-builder-lib to v24.5.0 (#1034)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-06-27 14:29:37 +01:00
renovate[bot]
d6cbe706f7 Update dependency @electron/notarize to v2 (#1035)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-27 13:03:45 +00:00
renovate[bot]
4697612103 Update dependency @types/node to v16.18.37 (#1033)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-27 13:00:38 +00:00
renovate[bot]
3fdfc84c81 Update typescript-eslint monorepo to v5.60.0 (#1015)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-06-27 12:58:25 +00:00
renovate[bot]
e9edaddda2 Update tj-actions/changed-files digest to 54479c3 (#1012)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-27 11:35:59 +00:00
renovate[bot]
8a0a102edd Update docker/metadata-action digest to ef25336 (#1011)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-27 12:27:24 +01:00
renovate[bot]
ae2076d2f7 Update docker/build-push-action digest to 2eb1c19 (#1009)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-27 12:27:16 +01:00
renovate[bot]
0fc4fb470c Update babel monorepo to v7.22.5 (#1013)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-27 12:22:07 +01:00
ElementRobot
207408704a v1.11.35-rc.1 2023-06-27 12:16:41 +01:00
ElementRobot
4212f7f28a Prepare changelog for v1.11.35-rc.1 2023-06-27 12:16:41 +01:00
Element Translate Bot
75f4829505 Translations update from Weblate (#1031)
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Vri <element@vrifox.cc>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: waclaw66 <waclaw66@seznam.cz>
Co-authored-by: Priit Jõerüüt <riot@joeruut.com>
Co-authored-by: Jeff Huang <s8321414@gmail.com>
Co-authored-by: random <dictionary@tutamail.com>
Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Makkkkus <nygardboi@protonmail.com>
Co-authored-by: raspin0 <marcinekk13@interia.pl>
2023-06-27 10:43:32 +01:00
renovate[bot]
e5da625947 Update dependency @types/node to v16.18.36 (#1014)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 15:34:59 +01:00
renovate[bot]
6ec0c27764 Update dependency playwright to v1.35.1 (#1017)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 15:34:30 +01:00
Robin
35f52a5ab0 Merge pull request #1028 from robintown/element-call-livekit
Point Nightly to our Element Call + LiveKit experiment
2023-06-23 16:17:27 -04:00
Robin
d4432946bc Merge branch 'develop' into element-call-livekit 2023-06-23 15:49:12 -04:00
renovate[bot]
5169c5a339 Update docker/login-action digest to 465a078 (#1010)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-22 13:43:45 +00:00
Robin Townsend
598326afba Point Nightly to our Element Call + LiveKit experiment
This is an experimental version of Element Call using a LiveKit SFU that we'd like to start dogfooding and gaining confidence on internally, so the current plan is to trial it on develop.element.io and Nightly for a while.
2023-06-20 11:53:20 -04:00
RiotRobot
e171a6acbe Merge branch 'master' into develop 2023-06-20 10:34:50 +01:00
RiotRobot
faa5479b5d v1.11.34 2023-06-20 10:34:37 +01:00
RiotRobot
08c50b8e4e Prepare changelog for v1.11.34 2023-06-20 10:34:36 +01:00
Michael Telatynski
a6e175268e Use brand and help url from config (#1008) 2023-06-14 07:58:37 +00:00
RiotRobot
afdad2d31c v1.11.34-rc1 2023-06-13 13:10:40 +01:00
RiotRobot
dad964aca0 Prepare changelog for v1.11.34-rc1 2023-06-13 13:10:39 +01:00
renovate[bot]
3d2006ca50 Update dependency electron to v25 (#997)
* Update dependency electron to v25

* Update dependency electron to v25

* Fix types

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-06-09 11:11:00 +00:00
RiotRobot
4d05739ca0 Merge branch 'master' into develop 2023-06-09 10:36:25 +01:00
RiotRobot
077ed14743 v1.11.33 2023-06-09 10:36:12 +01:00
RiotRobot
184873843a Prepare changelog for v1.11.33 2023-06-09 10:36:11 +01:00
RiotRobot
ddc374b6ee Merge branch 'master' into develop 2023-06-06 14:50:18 +01:00
RiotRobot
bbd8c8c959 v1.11.32 2023-06-06 14:50:04 +01:00
RiotRobot
18235b1dcd Prepare changelog for v1.11.32 2023-06-06 14:50:03 +01:00
renovate[bot]
8f2390dc2a Lock file maintenance (#999)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-02 14:21:23 +01:00
renovate[bot]
241c7d23f1 Update all non-major dependencies (#991)
* Update all non-major dependencies

* Strip name wrap-ansi-cjs

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-06-02 08:52:48 +00:00
renovate[bot]
e4fa2f76a5 Update babel monorepo to v7.22.1 (#995)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-01 18:06:32 +00:00
renovate[bot]
aafa9b1a31 Update dependency playwright to v1.34.3 (#996)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-01 18:06:07 +00:00
renovate[bot]
1f258cf4f1 Update tj-actions/changed-files action to v36 (#998)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-01 18:05:18 +00:00
renovate[bot]
e649cd6631 Update typescript-eslint monorepo to v5.59.7 (#994)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-01 18:04:30 +00:00
renovate[bot]
9f5bb05bab Update dependency @types/node to v16.18.34 (#993)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-01 18:02:50 +00:00
renovate[bot]
5551539a68 Update dependency @types/jest to v29.5.2 (#992)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-01 18:01:47 +00:00
renovate[bot]
1bbdd31eac Update docker/build-push-action digest to f9efed5 (#990)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-01 17:45:21 +00:00
ElementRobot
c87e8977c7 v1.11.32-rc.3 2023-06-01 17:13:25 +01:00
ElementRobot
005640787a Prepare changelog for v1.11.32-rc.3 2023-06-01 17:13:25 +01:00
ElementRobot
16b4beb50b Merge branch 'develop' into staging 2023-06-01 16:45:48 +01:00
ElementRobot
0aa079974f v1.11.32-rc.2 2023-05-19 17:16:49 +01:00
ElementRobot
4439ac3519 Prepare changelog for v1.11.32-rc.2 2023-05-19 17:16:48 +01:00
Michael Telatynski
dde3bb3caf Include web bundle hash in nightly summary (#953) 2023-05-19 13:16:27 +01:00
Michael Telatynski
e834f4a108 Fix accidental change of nightly deb name (#977)
* Fix accidental change of nightly deb name

* Remove stale deb-custom-control arg
2023-05-18 19:49:45 +01:00
renovate[bot]
4fa44d6942 Update all non-major dependencies (#970)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-17 21:02:35 +00:00
renovate[bot]
c0b0000ad1 Lock file maintenance (#973)
* Lock file maintenance

* Hold back from minipass 6

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-05-17 08:19:01 +00:00
renovate[bot]
3f1f5ef892 Update dependency eslint-plugin-unicorn to v47 (#972)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-05-16 16:58:59 +00:00
renovate[bot]
ec8f31a5fa Update typescript-eslint monorepo to v5.59.6 (#971)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 16:40:22 +00:00
renovate[bot]
10369e7028 Update actions-rs/toolchain digest to 88dc235 (#965)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 16:32:45 +00:00
renovate[bot]
24459ca2c2 Update docker/build-push-action digest to 91df6b8 (#966)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 16:31:13 +00:00
Michael Telatynski
bc41108e2a Revert "Update tibdex/backport digest to b1bb2aa" (#974) 2023-05-16 17:27:47 +01:00
renovate[bot]
97ed939574 Update dependency @types/node to v16.18.30 (#969)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 17:26:53 +01:00
renovate[bot]
3daab12f4c Update tibdex/backport digest to b1bb2aa (#968)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 15:44:42 +00:00
ElementRobot
f2d0676ed1 v1.11.32-rc.1 2023-05-16 15:25:35 +01:00
ElementRobot
5be0bbc819 Prepare changelog for v1.11.32-rc.1 2023-05-16 15:25:34 +01:00
Michael Telatynski
6a93e685d9 Update to seshat 3.0.1 (#960) 2023-05-16 11:23:42 +00:00
Element Translate Bot
4df47fc772 Translations update from Weblate (#963)
Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: someone1611 <hahahahacker2009@outlook.com>
Co-authored-by: raspin0 <marcinekk13@interia.pl>
2023-05-16 12:10:33 +01:00
Michael Telatynski
c7c063f129 Simplify element builder workflow (#898) 2023-05-15 09:40:39 +01:00
renovate[bot]
cb29a10c5e Lock file maintenance (#646)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-12 12:59:40 +00:00
Michael Telatynski
1e64ebb61a Update electron-builder (#952) 2023-05-12 09:52:48 +01:00
Andy Balaam
f6fc792f61 Merge pull request #941 from vector-im/andybalaam/increase-timeouts-in-tests
Increase timeouts in tests to try and reduce flakiness
2023-05-11 09:23:31 +01:00
RiotRobot
02f353223a Merge branch 'master' into develop 2023-05-10 14:21:50 +01:00
RiotRobot
b7668aec15 v1.11.31 2023-05-10 14:21:36 +01:00
RiotRobot
f930dbcd3e Prepare changelog for v1.11.31 2023-05-10 14:21:35 +01:00
ElementRobot
8a424b9d87 [Backport staging] Fix wrong version being passed to prepare job (#951)
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-05-10 11:22:33 +01:00
Michael Telatynski
f178fc129c Update build_and_deploy.yaml 2023-05-10 08:53:14 +01:00
Michael Telatynski
19f15c5baf Fix wrong version being passed to prepare job (#950) 2023-05-09 22:23:38 +01:00
renovate[bot]
af9ae38efd Update babel monorepo (#935)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-09 17:13:58 +00:00
renovate[bot]
31a61ebfea Update all non-major dependencies (#938)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-09 11:07:23 +00:00
Michael Telatynski
d8f5cdb40d Specify hashes for github actions (#634) 2023-05-09 12:01:35 +01:00
Michael Telatynski
3ed6a1591d Fix nightly summary 2023-05-09 10:35:54 +01:00
Michael Telatynski
19a4778da7 Update build_prepare.yaml 2023-05-09 10:26:24 +01:00
Michael Telatynski
f928d59208 Null guard global mainWindow better (#948) 2023-05-09 09:23:01 +01:00
Michael Telatynski
0b01b94316 Print a summary on nightly builds to make versions easier to trace (#947) 2023-05-09 09:22:35 +01:00
renovate[bot]
6f6e1b4ac2 Update docker/metadata-action digest to c4ee3ad (#638)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-09 17:53:36 +12:00
renovate[bot]
56d6cd9aa4 Update tj-actions/changed-files digest to b2d17f5 (#934)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-08 15:02:32 +02:00
RiotRobot
14f08c95b5 v1.11.31-rc.2 2023-05-05 15:33:45 +01:00
RiotRobot
d8efa5188f Prepare changelog for v1.11.31-rc.2 2023-05-05 15:33:44 +01:00
ElementRobot
068fc63a53 [Backport staging] Fix macos update check exploding (#945)
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-05-05 14:28:25 +01:00
Michael Telatynski
d8bd12a302 Fix macos update check exploding (#944) 2023-05-05 12:37:09 +00:00
renovate[bot]
d3f687d040 Update dependency @types/jest to v29.5.1 (#936)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-05 13:24:46 +12:00
renovate[bot]
b5f1c3089d Update dependency playwright to v1.33.0 (#939)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-04 16:07:27 +01:00
Andy Balaam
e98c50a669 Increase timeouts in tests to try and reduce flakiness 2023-05-04 09:42:12 +01:00
renovate[bot]
b9a86feaa9 Update dependency @types/node to v16.18.25 (#937)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-04 09:35:46 +12:00
renovate[bot]
9398ae1bbd Update typescript-eslint monorepo to v5.59.1 (#642)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Kerry <kerrya@element.io>
2023-05-03 21:35:33 +00:00
renovate[bot]
ad3c1dbc20 Update docker/login-action digest to 40891eb (#637)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-04 09:16:30 +12:00
RiotRobot
da9ab70b39 v1.11.31-rc.1 2023-05-02 11:56:17 +01:00
RiotRobot
6fb152d4ca Prepare changelog for v1.11.31-rc.1 2023-05-02 11:56:16 +01:00
Element Translate Bot
f45714e88f Translations update from Weblate (#933)
* 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 (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/

---------

Co-authored-by: Theo <tbousiou@gmail.com>
Co-authored-by: raspin0 <marcinekk13@interia.pl>
2023-05-02 10:23:12 +00:00
Michael Telatynski
8aee984b04 Enable ES2020 to match matrix-react-sdk (#931) 2023-04-27 19:10:51 +01:00
renovate[bot]
02bd6e7690 Update docker/build-push-action digest to eafaea8 (#636)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-27 09:38:24 +01:00
Michael Telatynski
9f611a94e1 Start packaging for Debian & Ubuntu aarch64 (#895) 2023-04-26 16:07:20 +01:00
Michael Telatynski
cd227a456a Make SonarCloud happier about our code quality (#632) 2023-04-26 15:05:58 +01:00
Michael Telatynski
7b0040063b Improve cache busting to consider the build scripts themselves (#633) 2023-04-26 15:04:17 +01:00
RiotRobot
5f5d8f08d0 Merge branch 'master' into develop 2023-04-25 11:16:14 +01:00
RiotRobot
bf5193e185 v1.11.30 2023-04-25 11:16:00 +01:00
RiotRobot
598da1a454 Prepare changelog for v1.11.30 2023-04-25 11:16:00 +01:00
Mathieu Velten
cf94a1e49a Use a fully static seshat build (#631)
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-04-24 12:19:10 +00:00
Michael Telatynski
b6815b2731 Exclude some artifacts from PR builds (#891) 2023-04-24 12:24:36 +01:00
renovate[bot]
ed8870dc9f Update dependency rimraf to v5 (#645)
* Update dependency rimraf to v5

* Update dependency rimraf to v5

* Update import

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-04-18 18:59:12 +01:00
renovate[bot]
94971502bb Update all non-major dependencies (#640)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-18 17:34:20 +00:00
renovate[bot]
617b21a4fd Update dependency glob to v10 (#643)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-18 17:25:33 +01:00
renovate[bot]
645a79f956 Update dependency mkdirp to v3 (#644)
* Update dependency mkdirp to v3

* Iterate

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-04-18 15:08:33 +00:00
renovate[bot]
a490427da8 Update tj-actions/changed-files digest to 7ecfc67 (#639)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-18 14:17:36 +00:00
Andy Balaam
f9c22e9ce5 Disable blank issues in this repo - they should logged in the element-web repo (#635) 2023-04-18 14:45:42 +01:00
Michael Telatynski
41b69ce6d7 Delete please-don-t-file-issues-here---use-the-element-web-project.md 2023-04-18 14:44:48 +01:00
Michael Telatynski
5761d04856 Create enhancement.yml 2023-04-18 14:44:40 +01:00
Michael Telatynski
edb4c3f605 Create bug-desktop.yml 2023-04-18 14:44:22 +01:00
RiotRobot
7b5bcf74a9 v1.11.30-rc.1 2023-04-18 12:11:41 +01:00
RiotRobot
37dcd717f4 Prepare changelog for v1.11.30-rc.1 2023-04-18 12:11:40 +01:00
Michael Telatynski
0d0b333f40 Add support for Linux arm64 (#446) 2023-04-18 11:38:26 +01:00
Michael Telatynski
392545a57f Workaround Squirrel.Mac wedging app restart after failed update check (#629) 2023-04-18 11:37:36 +01:00
Michael Telatynski
63622a66e7 Drop rebrand_stub (#626) 2023-04-18 09:14:23 +01:00
Andy Balaam
0cb2064d64 Add template pointing to the element-web project 2023-04-17 11:57:57 +01:00
Michael Telatynski
728d82f296 Allow testing dockerbuild changes in pull requests (#625) 2023-04-14 14:00:19 +02:00
Michael Telatynski
fac4605e9b Fix reprepro path 2023-04-14 12:21:19 +01:00
Michael Telatynski
1e5932cea2 Delegate packages.element.io to its own repo (#604
* Move element-io-archive-keyring

* Move debian conf

* Move packages.element.io

* Delegate reprepro to packages.element.io

* Iterate

* Stash

* Iterate

* Iterate

* Iterate
2023-04-14 11:30:14 +01:00
Michael Telatynski
005ab48f18 Fix error about webContents on log out (#627) 2023-04-14 09:07:16 +01:00
RiotRobot
3d215dc777 Merge branch 'master' into develop 2023-04-11 14:35:13 +01:00
RiotRobot
bbaca4413e v1.11.29 2023-04-11 14:34:54 +01:00
RiotRobot
54d1c138c7 Prepare changelog for v1.11.29 2023-04-11 14:34:54 +01:00
renovate[bot]
5e9301bdf1 Lock file maintenance (#623)
* Lock file maintenance

* Lock file maintenance

* Claw back minipass from 4.2.7 which is broken

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-04-11 11:19:12 +00:00
renovate[bot]
1a99740bc8 Update dependency glob to v9 (#575)
* Update dependency glob to v9

* Adjust copy.ts to promisifed glob

* Switch asar -> @electron/asar

* Update rimraf for glob v9 compatibility

* Iterate

* Iterate

* Patch @electron/asar

* Fix another way

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Janne Mareike Koschinski <jannemk@element.io>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-04-06 12:41:38 +00:00
renovate[bot]
cf24a95d31 Update dependency electron to v24 (#611)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-06 13:31:04 +01:00
renovate[bot]
07341a0498 Update jest monorepo to v29.5.0 (#571)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-06 11:50:50 +01:00
Michael Telatynski
f6acfb8778 Update pull_request.yaml 2023-04-06 10:41:49 +01:00
renovate[bot]
417e41668c Update dependency playwright to v1.32.1 (#621)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-06 09:12:28 +00:00
renovate[bot]
e014ccc653 Update babel monorepo to v7.21.4 (#616)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-06 08:47:49 +00:00
renovate[bot]
34d1c6fc24 Update dependency @types/node to v16.18.23 (#617)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-06 08:06:04 +00:00
renovate[bot]
fdfeb0454f Update dependency typescript to v5 (#612)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-05 20:07:37 +00:00
renovate[bot]
1ec6c6e5db Update typescript-eslint monorepo to v5.57.1 (#618)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-05 19:08:25 +00:00
renovate[bot]
8be59eba56 Update all non-major dependencies (#619)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-05 17:31:39 +00:00
Michael Telatynski
8b16f2d0d9 Fix error when breadcrumb image fails to load (#609) 2023-04-05 10:56:12 +00:00
RiotRobot
ce2ce8bea1 v1.11.29-rc.1 2023-04-04 12:18:48 +01:00
RiotRobot
7c3e0f4d99 Prepare changelog for v1.11.29-rc.1 2023-04-04 12:18:48 +01:00
Andy Balaam
224bccaf95 Merge pull request #608 from RiotTranslateBot/weblate-element-desktop-element-desktop
Translations update from Weblate
2023-04-04 11:41:37 +01:00
Weblate
e7e8c8e81a Merge branch 'origin/develop' into Weblate. 2023-04-04 08:09:29 +00:00
Michael Telatynski
f24e90b927 Update windows-requirements.md 2023-04-04 09:09:25 +01:00
Weblate
39b2ca0bc1 Merge branch 'origin/develop' into Weblate. 2023-04-03 15:31:20 +00:00
Michael Telatynski
077a58a2e8 Fix wrong sqlcipher build being used due to cache conflict (#606) 2023-04-03 15:31:14 +00:00
Weblate
03161c7433 Merge branch 'origin/develop' into Weblate. 2023-04-03 14:21:11 +00:00
Michael Telatynski
7c0f11914b Add grep to dockerbuild image (#607) 2023-04-03 14:21:04 +00:00
Weblate
119fdc2db3 Merge branch 'origin/develop' into Weblate. 2023-04-03 08:50:25 +00:00
Michael Telatynski
06d6f11670 Prefer env for passing github context vars (#590) 2023-04-03 08:50:20 +00:00
Weblate
9334d87ad8 Merge branch 'origin/develop' into Weblate. 2023-04-03 08:32:41 +00:00
Michael Telatynski
50d38e2abd Use branch specific linux dockerbuild tags (#601) 2023-04-03 09:32:37 +01:00
sefidel
3846f45529 Translated using Weblate (Korean)
Currently translated at 22.2% (10 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ko/
2023-04-03 02:33:48 +00:00
sefidel
df66db90f5 Added translation using Weblate (Korean) 2023-04-02 02:24:55 +00:00
Weblate
b22d6640c2 Merge branch 'origin/develop' into Weblate. 2023-03-31 18:13:59 +00:00
Michael Telatynski
0663de091f Enable CodeQL (#603) 2023-03-31 19:13:55 +01:00
Weblate
9cb3e2b551 Merge branch 'origin/develop' into Weblate. 2023-03-31 15:17:48 +00:00
Michael Telatynski
5bd1c663e2 Use frozen lockfile instead of pure lockfile on yarn install (#605) 2023-03-31 15:17:43 +00:00
Weblate
20f9a8daf8 Merge branch 'origin/develop' into Weblate. 2023-03-31 14:42:47 +00:00
RiotRobot
19fd0b99f5 Merge branch 'master' into develop 2023-03-31 15:41:56 +01:00
RiotRobot
60171c780c v1.11.28 2023-03-31 15:39:31 +01:00
RiotRobot
75276cff7b Prepare changelog for v1.11.28 2023-03-31 15:39:31 +01:00
RiotRobot
266fc707b0 Fix broken lockfile element-web/issues/25008 2023-03-31 15:23:40 +01:00
Weblate
81a5ba677a Merge branch 'origin/develop' into Weblate. 2023-03-31 12:12:10 +00:00
RiotRobot
2ca8b7be61 Merge branch 'master' into develop 2023-03-31 12:44:40 +01:00
RiotRobot
349b5e0081 v1.11.27 2023-03-31 11:24:13 +01:00
RiotRobot
09923b3fe4 Prepare changelog for v1.11.27 2023-03-31 11:24:12 +01:00
Weblate
034bbcfa46 Merge branch 'origin/develop' into Weblate. 2023-03-31 10:00:36 +00:00
Michael Telatynski
c10e666dad Ship linux tarball with static sqlcipher (#597) 2023-03-31 11:00:30 +01:00
RiotRobot
a479c8607b Merge branch 'master' into staging 2023-03-31 10:56:21 +01:00
Andy Balaam
ae1998a024 Merge pull request #602 from vector-im/backport-599-to-staging
Run build_linux in docker using an older glibc (#599)
2023-03-31 09:55:01 +01:00
Weblate
f0c7f615ee Merge branch 'origin/develop' into Weblate. 2023-03-31 08:45:38 +00:00
renovate[bot]
743f5dc5de Update typescript-eslint monorepo to v5.57.0 (#538)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-31 09:45:33 +01:00
Michael Telatynski
ba45d84771 Run build_linux in docker using an older glibc (#599)
(cherry picked from commit 718d5a8037)
2023-03-31 09:24:02 +01:00
Weblate
675798b4c9 Merge branch 'origin/develop' into Weblate. 2023-03-31 08:18:18 +00:00
Michael Telatynski
f8aba49155 Enable gatekeeperAssess (#600) 2023-03-31 09:18:13 +01:00
Weblate
389e744cf1 Merge branch 'origin/develop' into Weblate. 2023-03-31 07:50:18 +00:00
renovate[bot]
439760f8ee Update dependency @types/node to v16.18.21 (#569)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-31 08:50:13 +01:00
Weblate
9048af7003 Merge branch 'origin/develop' into Weblate. 2023-03-30 13:23:04 +00:00
Michael Telatynski
718d5a8037 Run build_linux in docker using an older glibc (#599) 2023-03-30 14:22:58 +01:00
Weblate
dd66fb8010 Merge branch 'origin/develop' into Weblate. 2023-03-30 12:54:50 +00:00
Michael Telatynski
a9cffb8ce5 Automate pushing dockerbuild image to ghcr.io (#598) 2023-03-30 13:54:45 +01:00
Weblate
f703771a00 Merge branch 'origin/develop' into Weblate. 2023-03-29 13:23:40 +00:00
Michael Telatynski
40058d36c4 Remove element-builder specific scripts (#586) 2023-03-29 14:23:34 +01:00
Weblate
e00144015f Merge branch 'origin/develop' into Weblate. 2023-03-29 13:07:42 +00:00
Andy Balaam
762881bd8a Merge pull request #595 from vector-im/andybalaam/changelog-for-1-11-26
Update changelog for v1.11.26 now the security issue is public
2023-03-29 14:07:35 +01:00
Andy Balaam
2787266d48 Update changelog for v1.11.26 now the security issue is public 2023-03-28 21:01:53 +01:00
Andy Balaam
62e6851250 Backport package.json changes from develop 2023-03-28 17:32:29 +01:00
Michael Telatynski
201000da39 Backport more build config to master 2023-03-28 16:38:57 +01:00
Michael Telatynski
38ccd77b81 Backport packaging scripts to master 2023-03-28 16:16:24 +01:00
Weblate
61dd2e3ce4 Merge branch 'origin/develop' into Weblate. 2023-03-28 13:50:47 +00:00
waclaw66
55841e4d4d Translated using Weblate (Czech)
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/cs/
2023-03-28 13:50:47 +00:00
RiotRobot
694015f7db Merge branch 'master' into develop 2023-03-28 14:50:40 +01:00
RiotRobot
722e5ff0ac v1.11.26 2023-03-28 14:50:26 +01:00
RiotRobot
425f3186b8 Prepare changelog for v1.11.26 2023-03-28 14:50:25 +01:00
waclaw66
dd26855c15 Added translation using Weblate (Czech) 2023-03-28 08:20:06 +00:00
Claudio Satriano
b7b3708b0b Translated using Weblate (Italian)
Currently translated at 95.5% (43 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/it/
2023-03-24 15:15:44 +00:00
Weblate
4384e9b506 Merge branch 'origin/develop' into Weblate. 2023-03-23 17:03:44 +00:00
Michael Telatynski
f23892f54d Fix typo in github actions workflow (#589) 2023-03-23 17:03:39 +00:00
Weblate
7fb557cf3d Merge branch 'origin/develop' into Weblate. 2023-03-23 16:49:06 +00:00
Michael Telatynski
540bd91966 Update updates.md 2023-03-23 16:49:01 +00:00
Weblate
56cab854fc Merge branch 'origin/develop' into Weblate. 2023-03-23 15:17:13 +00:00
Michael Telatynski
f8d331c656 Switch to live R2 bucket for github actions packaging (#588) 2023-03-23 15:17:07 +00:00
Weblate
6e254a761b Merge branch 'origin/develop' into Weblate. 2023-03-23 13:22:35 +00:00
Michael Telatynski
1654030c5f Iterate ARM support in CI (#587) 2023-03-23 13:22:29 +00:00
Weblate
f34bcca76d Merge branch 'origin/develop' into Weblate. 2023-03-22 09:41:56 +00:00
Michael Telatynski
7a1a0fabdb Add support for Windows arm64 (#423) 2023-03-22 09:41:51 +00:00
Weblate
440c9862f1 Merge branch 'origin/develop' into Weblate. 2023-03-22 09:40:43 +00:00
Michael Telatynski
204945299e Use notarize support built into electron-builder (#558) 2023-03-22 09:40:39 +00:00
Weblate
2e0c0becd5 Merge branch 'origin/develop' into Weblate. 2023-03-22 09:31:48 +00:00
Michael Telatynski
3b08d4fa43 Show recent room breadcrumbs on touchbar (#183) 2023-03-22 09:31:42 +00:00
Weblate
75aa07a128 Merge branch 'origin/develop' into Weblate. 2023-03-20 08:22:05 +00:00
Michael Telatynski
775b03572c Correctly specify minimum Node version (#582) 2023-03-20 09:22:00 +01:00
Weblate
41c0be9761 Merge branch 'origin/develop' into Weblate. 2023-03-20 08:17:39 +00:00
Michael Telatynski
74579317db Switch to production ssl.com cert (#585) 2023-03-20 08:17:34 +00:00
Weblate
9ed1018f1b Merge branch 'origin/develop' into Weblate. 2023-03-17 15:33:24 +00:00
Michael Telatynski
18d80e4e9c Clear electron data when logging out (#578) 2023-03-17 15:33:19 +00:00
Weblate
d9eeeabbb4 Merge branch 'origin/develop' into Weblate. 2023-03-17 15:17:33 +00:00
Michael Telatynski
c560bb2de7 Update GPG keyring with extended validity period (#584) 2023-03-17 15:17:29 +00:00
Weblate
a276cf26c7 Merge branch 'origin/develop' into Weblate. 2023-03-16 10:31:11 +00:00
Michael Telatynski
8235275d2c Send Electron crashpad reports to Sentry from Nightly (#579)
* Send Electron crashpad reports to Sentry from Nightly

* Update electron-main.ts

* Increase timeout

* Fix preload injection breaking things

* Iterate

* Iterate

* Iterate

* iterate
2023-03-16 10:31:06 +00:00
Weblate
0d7547a417 Merge branch 'origin/develop' into Weblate. 2023-03-16 10:14:00 +00:00
Michael Telatynski
3d578e815a Fix reprepro test ipv4 vs ipv6 (#581) 2023-03-16 10:13:55 +00:00
Weblate
e302bb7fc3 Merge branch 'origin/develop' into Weblate. 2023-03-15 13:57:40 +00:00
RiotRobot
6cfbd2e932 Merge branch 'master' into develop 2023-03-15 13:57:34 +00:00
Andy Balaam
34ccea0378 Fix changelog for 1.11.25
Auto-generated changelog was accidentally committed. Replacing with the
correct one.
2023-03-15 13:50:04 +00:00
Weblate
4c1373dcb0 Merge branch 'origin/develop' into Weblate. 2023-03-15 13:46:54 +00:00
Andy Balaam
c80763c7b7 Merge pull request #580 from vector-im/andybalaam/update-changelog-1.11.25
Fix changelog for 1.11.25
2023-03-15 13:46:48 +00:00
Andy Balaam
a440bc89ec Fix changelog for 1.11.25
Auto-generated changelog was accidentally committed. Replacing with the
correct one.
2023-03-15 13:20:25 +00:00
Weblate
790afe42cb Merge branch 'origin/develop' into Weblate. 2023-03-15 13:14:48 +00:00
RiotRobot
ef91afa057 Merge branch 'master' into develop 2023-03-15 13:14:42 +00:00
RiotRobot
bb0ccfdbab v1.11.25 2023-03-15 13:14:27 +00:00
RiotRobot
5aec4945f9 Prepare changelog for v1.11.25 2023-03-15 13:14:26 +00:00
RiotRobot
51941ed766 v1.11.25-rc.3 2023-03-14 11:50:28 +00:00
RiotRobot
b503dcd9ef Prepare changelog for v1.11.25-rc.3 2023-03-14 11:50:27 +00:00
Weblate
a591b980f8 Merge branch 'origin/develop' into Weblate. 2023-03-14 11:16:50 +00:00
renovate[bot]
c9110bc3e4 Update all non-major dependencies (#568)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-14 11:16:45 +00:00
Open Culture Foundation
391e10abab 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/
2023-03-14 00:33:44 +00:00
Weblate
6d12148db2 Merge branch 'origin/develop' into Weblate. 2023-03-13 08:24:05 +00:00
renovate[bot]
33429a4b1b Update dependency @aws-sdk/client-s3 to v3.288.0 (#577)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-13 08:24:00 +00:00
Weblate
67dd6b90b6 Merge branch 'origin/develop' into Weblate. 2023-03-12 20:28:20 +00:00
renovate[bot]
e1190a2210 Update dependency playwright to v1.31.2 (#570)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-12 20:28:16 +00:00
Weblate
03864ebc4f Merge branch 'origin/develop' into Weblate. 2023-03-12 19:43:10 +00:00
renovate[bot]
1b6c9092f5 Update dependency eslint-plugin-unicorn to v46 (#574)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-13 08:43:06 +13:00
Open Culture Foundation
b8606103be 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/
2023-03-12 16:33:42 +00:00
Peter Chen
fc2add64cb 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/
2023-03-10 17:33:41 +00:00
RiotRobot
9926ebe89e v1.11.25-rc.2 2023-03-10 15:20:00 +00:00
RiotRobot
ad08b96905 Prepare changelog for v1.11.25-rc.2 2023-03-10 15:20:00 +00:00
ElementRobot
b558bec1b5 [Backport staging] Recommend element-io-archive-keyring from our Debian package (#567)
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-03-10 09:52:05 +00:00
Michael Telatynski
8b110b621f Recommend element-io-archive-keyring from our Debian package (#566) 2023-03-10 09:21:02 +00:00
Michael Telatynski
14fb3f5ce4 Rename control to control 2023-03-09 10:28:53 +00:00
Michael Telatynski
2bb999ebb6 Build element-io-archive-keyring package (#565) 2023-03-09 10:26:37 +00:00
renovate[bot]
104d985c24 Update babel monorepo to v7.21.0 (#554)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-08 08:17:47 +00:00
Michael Telatynski
22fe702b83 Include changelogs in deb package (#563)
* Initial attempt at custom Debian changelogs

* Iterate

* Quotes...

* Iterate

* facepalm

* Iterate

* Remove reundant line

* Ifs

* Test

* Iterate

* Iterate

* Brackets

* inconsistent?

* Update build_and_test.yaml

* Update build_and_test.yaml
2023-03-07 15:53:53 +00:00
RiotRobot
fa6e7ce0a5 v1.11.25-rc.1 2023-03-07 12:09:39 +00:00
RiotRobot
32c5ab7df3 Prepare changelog for v1.11.25-rc.1 2023-03-07 12:09:38 +00:00
Andy Balaam
25af58e86f Merge pull request #564 from RiotTranslateBot/weblate-element-desktop-element-desktop
Translations update from Weblate
2023-03-07 10:47:15 +00:00
Weblate
9fb00348c4 Merge branch 'origin/develop' into Weblate. 2023-03-06 08:57:02 +00:00
Michael Telatynski
126d2c336b Assert release & nightly builds are signed, notarised & accessible before deployment (#559) 2023-03-06 08:56:49 +00:00
Weblate
91576f3939 Merge branch 'origin/develop' into Weblate. 2023-03-05 23:05:12 +00:00
renovate[bot]
383793640d Update dependency @aws-sdk/client-s3 to v3.281.0 (#550)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-06 12:05:08 +13:00
Open Culture Foundation
fe74834456 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/
2023-03-05 12:33:40 +00:00
Artem Polivanchuk
9570864dd3 Added translation using Weblate (Ukrainian) 2023-03-04 14:09:44 +00:00
Andy Balaam
633805dcc2 Merge pull request #560 from vector-im/andybalaam/fix-release-notes-1.11.24
Remove items incorrectly included in changelog for 1.11.24
2023-03-03 14:28:35 +00:00
Andy Balaam
e04e500fd5 Remove items incorrectly included in changlog for 1.11.24 2023-03-03 12:52:04 +00:00
Michael Telatynski
68d2e34841 Guard reprepro db via concurrency limits (#555) 2023-03-02 16:54:57 +00:00
Michael Telatynski
88ef8deb78 Fix macOS notarisation using keychain credentials (#557) 2023-03-01 10:49:41 +00:00
RiotRobot
144d04a5ae Merge branch 'master' into develop 2023-02-28 11:24:52 +00:00
RiotRobot
75e3ea6818 v1.11.24 2023-02-28 11:24:38 +00:00
RiotRobot
248ec9cedd Prepare changelog for v1.11.24 2023-02-28 11:24:37 +00:00
Michael Telatyński
65a7871d45 Let electron-builder correctly set StartupWMClass (#526) 2023-02-27 18:04:55 +00:00
Michael Telatynski
b858e45eee Fix invalid JSON 2023-02-27 10:52:25 +00:00
Michael Telatynski
3656125552 Fix Windows deploy path 2023-02-27 10:47:40 +00:00
Michael Telatynski
20f8099253 Update base-url for macos staging builds 2023-02-27 10:17:14 +00:00
Michael Telatyński
fc961737f4 Fix build_and_deploy workflow (#553) 2023-02-27 09:52:47 +00:00
Michael Telatyński
f79713980a Update build_macos.yaml 2023-02-27 09:45:54 +00:00
renovate[bot]
8497d743cd Update dependency playwright to v1.31.1 (#536)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-24 23:47:08 +00:00
renovate[bot]
58f7c2534c Update dependency eslint-plugin-matrix-org to v1 (#551)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-24 14:27:25 +01:00
renovate[bot]
ed60ea1977 Update dependency @types/tar to v6.1.4 (#549)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-24 12:44:18 +00:00
renovate[bot]
12c6f2c268 Update all non-major dependencies (#529)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-24 11:11:19 +00:00
Andy Balaam
a528d8c7c5 Merge pull request #546 from vector-im/andybalaam/harmonise-eslintrc-tsconfig
Separate linting and compiling src+test, scripts and hak
2023-02-24 10:31:38 +00:00
Andy Balaam
3eeb8c14a9 Lint the test directory 2023-02-24 09:39:14 +00:00
Andy Balaam
51a8667b89 Share what we can with extends in eslintrc 2023-02-23 17:33:06 +00:00
Andy Balaam
f960700a2a Exclude test from eslint checking since it always was excluded, and I can't get it to check 2023-02-23 17:10:06 +00:00
Michael Telatynski
a0a9ec830c Build & EV Sign Windows builds (#517
* Add way to provide apple ID and app password to notarise script

* Add utility to generate electron-builder.json for release & nightly builds

* Run Build & Test on staging too

* First attempt at build & deploy for macOS with signing and notarisation

* Fix quote mismatch

* use correct quotes

* add runs-on

* Fix inputs.mode usage

* remove quotes

* chmod +x

* Fix artifact paths

* Fix deploy condition

* Fix deploy condition

* Fix artifact path

* Iterate

* Fix workflow

* Fix env

* Iterate

* Fix missing env

* Fix version calculation

* Iterate

* Fix config not taking effect

* Update build_and_deploy.yaml

* Fix alignments

* delint

* Fix alignment

* Update build_macos.yaml

* Add ability to EV sign using eSigner CKA

* Initial work to build & sign Windows nightlies in CI

* Format

* Format

* Fix gha

* fix winSign

* Fix install command

* Add signtool to path

* Update build_and_deploy.yaml

* Fix quotes

* Test

* Fix comments

* Fix cmd

* Try again

* arg slashes

* Fix exe path

* Fix matrix strategy

* Use ampersand-call

* fwd slash ftw?

* ls *

* 🌲

* tree dist

* prepend path

* Specify /fd and /td to modern signtool

* /tr not /t for CKA

* Test signing

* missing comma

* 🤦‍♂️

* Fix wrong mv

* Lets sign

* Fix config gen

* Debug

* Fix typo

* Multiple drives why

* Try NVL sandbox creds

* Update

* Attempt to disable logger

* Try again

* Iterate

* Update build_macos.yaml

* Update build_and_deploy.yaml

* Update build_macos.yaml

* Update build_and_deploy.yaml

* Update build_and_deploy.yaml

* Try custom build of eSigner CKA

* Fix typos

* Update build_windows.yaml

* Update build_and_deploy.yaml

* Update build_windows.yaml

* Update build_and_deploy.yaml

* Fix symlinking

* Fix working-directory incantation

* exe

* remove debug

* Prettier

* Vendor check in SSL.com executable

* Download CKA from packages.element.io instead

* Use demo creds

* StrictMode

* Switch back to 0207 (unsigned)

* Fix call syntax

* Revert env inc

* Partial rollback

* Trace

* Trace less

* Fix CN being passed wrong

* DEBUG

* Debug 2

* Fix ConvertFrom-StringData

* 0214

* Test

* Test

* Untested

* Revert to 0207

* stash

* Try with 20230221

* Restore scripts/electron_winSign.js

* Prepare for merge

* Update build_windows.yaml

* Update build_and_deploy.yaml

* Restore .github/workflows/build_and_deploy.yaml

* Restore .github/workflows/build_and_deploy.yaml

* Fix bad restore
2023-02-22 13:51:19 +00:00
RiotRobot
c4b753c680 v1.11.24-rc.2 2023-02-22 11:48:00 +00:00
RiotRobot
3f999e2cd7 Prepare changelog for v1.11.24-rc.2 2023-02-22 11:48:00 +00:00
RiotRobot
c883e023eb Merge branch 'develop' into staging 2023-02-22 10:59:21 +00:00
RiotRobot
710f86abcd v1.11.24-rc.1 2023-02-21 13:23:56 +00:00
RiotRobot
90f5748ba7 Prepare changelog for v1.11.24-rc.1 2023-02-21 13:23:56 +00:00
Michael Telatynski
c9d7e37e09 Update pull_request.yaml 2023-02-21 12:24:58 +00:00
Andy Balaam
f53cb68cf8 Merge pull request #548 from RiotTranslateBot/weblate-element-desktop-element-desktop
Translations update from Weblate
2023-02-21 10:40:36 +00:00
Andy Balaam
26a308d8c6 Add typeRoots to try and appease CI 2023-02-20 16:25:17 +00:00
Andy Balaam
a0034c1ade Add a rootDir to try and appease the CI 2023-02-20 16:08:11 +00:00
Weblate
00b40a3e73 Merge branch 'origin/develop' into Weblate. 2023-02-20 12:09:50 +00:00
Michael Telatynski
cdbb7763bf Build & Package signed Linux builds (#527) 2023-02-20 12:09:45 +00:00
Andy Balaam
1271c22aee Separate linting and compiling src+test, scripts and hak
Inspired by the failure of https://github.com/vector-im/element-desktop/pull/529
to lint our code with the @typescript-eslint/no-base-to-string rule
turned on, I found we needed to add a parserOptions.project to our
.eslintrc.js, pointing to the tsconfig.json.

This led to more fixes, because we have 3 tsconfig.json files for
src+test, scripts and hak and the single eslintrc was complaining that
it could see more files than the tsconfig file knew about.

So, I think the right split is to have one eslintrc file and one
tsconfig for each of the three projects.
2023-02-17 12:17:42 +00:00
Andy Balaam
bd8c69ec74 Include the test directory in tsconfig. 2023-02-17 12:14:53 +00:00
Weblate
b4f418e2ac Merge branch 'origin/develop' into Weblate. 2023-02-17 10:44:55 +00:00
renovate[bot]
acaf040bfa Update jest monorepo to v29.4.3 (#537)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-17 10:44:50 +00:00
Weblate
2240302340 Merge branch 'origin/develop' into Weblate. 2023-02-16 19:43:34 +00:00
renovate[bot]
1462e87945 Update dependency electron to v23 (#541)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-16 19:43:29 +00:00
Weblate
42a50600c1 Merge branch 'origin/develop' into Weblate. 2023-02-16 16:38:31 +00:00
Will Hunt
03ebb5c51a No more ehome config (#545)
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-02-16 16:38:25 +00:00
Weblate
ab511d6fcc Merge branch 'origin/develop' into Weblate. 2023-02-16 14:17:00 +00:00
renovate[bot]
ea688abe3b Update dependency mkdirp to v2 (#539)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-16 15:16:56 +01:00
Weblate
e81dd4cc72 Merge branch 'origin/develop' into Weblate. 2023-02-16 14:16:25 +00:00
renovate[bot]
003d8e086e Lock file maintenance (#523)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-16 14:16:20 +00:00
Weblate
d515ff52b6 Merge branch 'origin/develop' into Weblate. 2023-02-16 14:14:47 +00:00
renovate[bot]
d6350a56dc Update dependency @types/node to v16.18.12 (#534)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-16 15:14:42 +01:00
Suguru Hirahara
8b54188e46 Translated using Weblate (Japanese)
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/ja/
2023-02-16 10:33:34 +00:00
Weblate
c3630756d7 Merge branch 'origin/develop' into Weblate. 2023-02-14 10:52:50 +00:00
RiotRobot
69392fd8da Merge branch 'master' into develop 2023-02-14 10:52:44 +00:00
RiotRobot
913a40bacd v1.11.23 2023-02-14 10:52:29 +00:00
RiotRobot
83ab73202e Prepare changelog for v1.11.23 2023-02-14 10:52:28 +00:00
Weblate
1bfb53424a Merge branch 'origin/develop' into Weblate. 2023-02-13 10:01:17 +00:00
Michael Telatynski
c1dd1dc73c Fix macos release symlinking (#543) 2023-02-13 10:01:11 +00:00
Kaede
25e857e644 Translated using Weblate (Japanese)
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/ja/
2023-02-12 15:33:33 +00:00
Kaede
119926984b Added translation using Weblate (Japanese) 2023-02-11 14:31:38 +00:00
Weblate
a60a748fd4 Merge branch 'origin/develop' into Weblate. 2023-02-07 22:58:49 +00:00
renovate[bot]
888c619d62 Update dependency @aws-sdk/client-s3 to v3.264.0 (#535)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-07 22:58:44 +00:00
RiotRobot
7e87dd6996 v1.11.23-rc.1 2023-02-07 12:29:16 +00:00
RiotRobot
a205d3a696 Prepare changelog for v1.11.23-rc.1 2023-02-07 12:29:16 +00:00
Weblate
1f637a82d3 Merge branch 'origin/develop' into Weblate. 2023-02-03 10:12:02 +00:00
Michael Telatynski
2ad46704af Update to Electron 22.2.0 - fix tray icons in Linux (#530) 2023-02-03 10:11:57 +00:00
bluelullaby6
bcfa82335e 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/
2023-02-02 23:33:30 +00:00
Weblate
2da8c2012f Merge branch 'origin/develop' into Weblate. 2023-01-31 16:10:54 +00:00
Michael Telatynski
47165ca73d Update build_macos.yaml 2023-01-31 16:10:51 +00:00
Weblate
65089492f8 Merge branch 'origin/develop' into Weblate. 2023-01-31 15:49:45 +00:00
Michael Telatynski
66d96fea2c Update build_macos.yaml 2023-01-31 15:49:41 +00:00
Weblate
e34ec05f8c Merge branch 'origin/develop' into Weblate. 2023-01-31 15:06:46 +00:00
RiotRobot
f6efaf069a Merge branch 'master' into develop 2023-01-31 15:06:41 +00:00
RiotRobot
72dfdda0e5 v1.11.22 2023-01-31 15:06:24 +00:00
RiotRobot
679cf24a85 Prepare changelog for v1.11.22 2023-01-31 15:06:23 +00:00
Weblate
ca20f91bf3 Merge branch 'origin/develop' into Weblate. 2023-01-31 13:55:12 +00:00
Michael Telatynski
3330b8485c Update build_macos.yaml 2023-01-31 13:55:09 +00:00
Weblate
08f558d345 Merge branch 'origin/develop' into Weblate. 2023-01-31 13:22:35 +00:00
Ion Nistor
20f9bb198b Translated using Weblate (Romanian)
Currently translated at 88.8% (40 of 45 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ro/
2023-01-31 13:22:34 +00:00
Michael Telatynski
e5117f9736 Build, Sign & Notarise macOS builds (#486) 2023-01-31 13:22:30 +00:00
Weblate
51fe8ee024 Merge branch 'origin/develop' into Weblate. 2023-01-31 11:22:34 +00:00
RiotRobot
7f3bbc2156 v1.11.21 2023-01-31 11:22:12 +00:00
RiotRobot
5c650d6ee3 Prepare changelog for v1.11.21 2023-01-31 11:22:11 +00:00
RiotRobot
fb7a43569c v1.11.21-rc.1 2023-01-24 11:49:51 +00:00
RiotRobot
7620af7f70 Prepare changelog for v1.11.21-rc.1 2023-01-24 11:49:51 +00:00
RiotRobot
fe30072067 Merge branch 'master' into develop 2023-01-20 13:04:49 +00:00
RiotRobot
93331da979 v1.11.20 2023-01-20 13:04:34 +00:00
RiotRobot
af13eb8929 Prepare changelog for v1.11.20 2023-01-20 13:04:33 +00:00
Weblate
41fe92478c Merge branch 'origin/develop' into Weblate. 2023-01-20 13:01:05 +00:00
RiotRobot
b346984ab7 Merge branch 'master' into develop 2023-01-20 10:14:25 +00:00
RiotRobot
a23c6162f3 v1.11.19 2023-01-20 10:14:08 +00:00
RiotRobot
82d459a95d Prepare changelog for v1.11.19 2023-01-20 10:14:08 +00:00
Weblate
6a9f2050eb Merge branch 'origin/develop' into Weblate. 2023-01-20 10:10:42 +00:00
xrh0905
33740a99cd 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/
2023-01-20 10:10:42 +00:00
Sveinn í Felli
8377e7d585 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/
2023-01-18 17:33:25 +00:00
Demo337
68c4f38b71 Translated using Weblate (Arabic)
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/ar/
2023-01-18 17:33:25 +00:00
RiotRobot
5395fee162 Merge branch 'master' into develop 2023-01-18 14:06:24 +00:00
RiotRobot
c3781b9ee4 v1.11.18 2023-01-18 14:06:08 +00:00
RiotRobot
b2d77edff2 Prepare changelog for v1.11.18 2023-01-18 14:06:07 +00:00
RiotRobot
f4be3bcda2 v1.11.18-rc.4 2023-01-17 09:50:57 +00:00
RiotRobot
5585292143 Prepare changelog for v1.11.18-rc.4 2023-01-17 09:50:56 +00:00
renovate[bot]
5a2b390f0f Update all non-major dependencies (#515)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-16 15:26:59 +00:00
RiotRobot
92e61681a9 v1.11.18-rc.3 2023-01-13 11:00:44 +00:00
RiotRobot
1a25dbfd44 Prepare changelog for v1.11.18-rc.3 2023-01-13 11:00:44 +00:00
renovate[bot]
9beaecc350 Update dependency @aws-sdk/client-s3 to v3.245.0 (#513)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-12 14:37:31 +00:00
renovate[bot]
9d74a215b7 Update dependency playwright to v1.29.2 (#511)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-12 14:37:17 +00:00
renovate[bot]
b9ac577d98 Update dependency @types/jest to v29.2.5 (#510)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-12 14:37:06 +00:00
RiotRobot
956ae15983 v1.11.18-rc.2 2023-01-12 14:26:34 +00:00
RiotRobot
e10c4a10e0 Prepare changelog for v1.11.18-rc.2 2023-01-12 14:26:34 +00:00
renovate[bot]
6032815f75 Update dependency @babel/core to v7.20.12 (#509)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-12 09:39:01 +00:00
renovate[bot]
597524a0fb Update typescript-eslint monorepo to v5.48.0 (#514)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-12 09:14:08 +00:00
renovate[bot]
a74d22a84b Update all non-major dependencies (#512)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-12 09:13:35 +00:00
RiotRobot
c33211cf7e v1.11.18-rc.1 2023-01-11 15:29:48 +00:00
RiotRobot
6eb79076c6 Prepare changelog for v1.11.18-rc.1 2023-01-11 15:29:47 +00:00
Element Translate Bot
c000c0ce52 Translations update from Weblate (#508)
* Added translation using Weblate (Tagalog)

* Translated using Weblate (Tagalog)

Currently translated at 31.1% (14 of 45 strings)

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

* Translated using Weblate (Esperanto)

Currently translated at 71.1% (32 of 45 strings)

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

Co-authored-by: Nate Gardner <natejgardner@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Christian Paul <info@jaller.de>
2023-01-11 13:19:49 +00:00
Andy Balaam
73fc7e957f Merge pull request #506 from vector-im/dependabot/npm_and_yarn/json5-1.0.2
Bump json5 from 1.0.1 to 1.0.2
2023-01-06 11:31:56 +00:00
dependabot[bot]
961cfc7746 Bump json5 from 1.0.1 to 1.0.2
Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v1.0.1...v1.0.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-04 20:44:25 +00:00
renovate[bot]
0ac568c137 Lock file maintenance (#505)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-04 13:43:51 -07:00
Michael Telatynski
629eb3958a Update environment name (#490) 2022-12-23 14:28:23 +00:00
RiotRobot
68797d393e Merge branch 'master' into develop 2022-12-21 17:31:28 +00:00
RiotRobot
723ea9d5ff v1.11.17 2022-12-21 17:31:13 +00:00
RiotRobot
b1b15e1e7b Prepare changelog for v1.11.17 2022-12-21 17:31:12 +00:00
renovate[bot]
c164f3cbe9 Update dependency @types/node to v16.18.8 (#489)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-15 22:06:26 -07:00
renovate[bot]
aa4c25016d Update typescript-eslint monorepo to v5.46.1 (#493)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-15 22:06:00 -07:00
renovate[bot]
16f253690a Update all non-major dependencies (#491)
* Update all non-major dependencies

* Add prettier

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
2022-12-15 18:14:43 +00:00
Andy Balaam
f542491467 Merge pull request #496 from vector-im/andybalaam/format-prettier
Format all files with prettier
2022-12-15 17:24:49 +00:00
Andy Balaam
c6d44418b5 Format build.yaml 2022-12-15 16:20:32 +00:00
Andy Balaam
a99f9a6aee wip 2022-12-15 16:03:02 +00:00
Michael Telatynski
86149805b9 Fix macOS tests (#495) 2022-12-15 15:21:04 +00:00
Andy Balaam
0faac52dae Format all files with prettier 2022-12-15 11:52:12 +00:00
renovate[bot]
040344eeab Update dependency @aws-sdk/client-s3 to v3.226.0 (#492)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-14 12:53:40 +00:00
renovate[bot]
799b23e2a9 Update dependency @types/jest to v29.2.4 (#488)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-14 11:13:15 +00:00
Michael Telatynski
d766aef435 Enable strict mode on hak tsconfig (#483) 2022-12-14 10:47:35 +00:00
RiotRobot
1142160222 v1.11.17-rc.1 2022-12-14 09:52:34 +00:00
RiotRobot
c280560c2c Prepare changelog for v1.11.17-rc.1 2022-12-14 09:52:33 +00:00
Element Translate Bot
19f04d4362 Translations update from Weblate (#487)
* Translated using Weblate (Norwegian Bokmål)

Currently translated at 80.0% (36 of 45 strings)

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

* Translated using Weblate (Norwegian Bokmål)

Currently translated at 80.0% (36 of 45 strings)

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

Co-authored-by: San Jacobs <sanjacobs@protonmail.com>
Co-authored-by: Martin Berg Alstad <martin.alstad@pm.me>
Co-authored-by: Weblate <noreply@weblate.org>
2022-12-13 14:42:41 +00:00
Michael Telatynski
2f48519dce Improve build time in CI through caching native modules (#482)
* Improve caching of hak native modules

* Avoid double-hashing

* Skip native installs where cache is hit

* Include Electron version in the hash, it affects the ABI

* Add missing step IDs

* Add comments
2022-12-13 14:12:40 +00:00
renovate[bot]
6508e171db Update dependency electron to v22 (#480)
* Update dependency electron to v22

* Switch from new-window event to setWindowOpenHandler

* Stop recommending libappindicator3-1, Electron 22 stops using it

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-12-07 00:04:53 +00:00
RiotRobot
333361fc02 Merge branch 'master' into develop 2022-12-06 13:15:16 +00:00
RiotRobot
9d08c84331 v1.11.16 2022-12-06 13:15:02 +00:00
RiotRobot
0b67e84574 Prepare changelog for v1.11.16 2022-12-06 13:15:02 +00:00
Michael Telatynski
23fac479fe Switch macOS update mechanism to static JSON mode (#461) 2022-12-05 12:41:13 +00:00
Michael Telatynski
56370de568 Improve use of Typescript (#474)
* Switch out needle with node-fetch

* Iterate

* Update asar package and switch to canonical name

* Use ts-node for scripts

* Iterate

* Update yarn.lock

* Use node:stream.promises

* Remove logfile

* Fix types

* Fix types
2022-12-05 11:50:49 +00:00
RiotRobot
9bdb1fadd4 v1.11.16-rc.2 2022-12-02 17:08:05 +00:00
RiotRobot
86a386449f Prepare changelog for v1.11.16-rc.2 2022-12-02 17:08:04 +00:00
renovate[bot]
b52787a49e Update dependency fs-extra to v11 (#481)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-02 10:57:37 +00:00
renovate[bot]
8c91ead163 Update dependency pacote to v15 (#479)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-01 11:38:43 +00:00
renovate[bot]
9d6008519e Update dependency glob to v8 (#478)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-01 08:23:42 +00:00
renovate[bot]
d3fbf1366b Update dependency asar to v3 (#476)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-01 07:50:17 +00:00
renovate[bot]
f4bf425148 Update all non-major dependencies (#468)
* Update all non-major dependencies

* Iterate PR

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-12-01 07:20:55 +00:00
renovate[bot]
19351d766d Update actions/checkout action to v3 (#472)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-01 06:55:00 +00:00
renovate[bot]
017721ecca Update dependency fs-extra to v10 (#473)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-01 04:46:39 +00:00
renovate[bot]
5d0f3921b4 Update dependency eslint-plugin-unicorn to v45 (#470)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-01 04:01:46 +00:00
renovate[bot]
ee28079c2b Update jest monorepo to v29 (#466)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-30 16:49:11 +00:00
Michael Telatynski
031ee44571 Enable noImplicitAny and kill off request (#457)
* Enable noImplicitAny

* Switch from request to node-fetch

* Fix node-fetch via patch-package

* Add edge to handler

* Pin node-fetch to v2
2022-11-30 13:51:54 +00:00
Michael Telatynski
c74fdb632b Update generate-packages-index.ts 2022-11-30 11:26:57 +00:00
Michael Telatynski
d72bf8b414 Update generate-packages-index.ts 2022-11-30 11:23:21 +00:00
Michael Telatynski
34e96ea25e Update CODEOWNERS (#464) 2022-11-29 23:27:48 +00:00
ElementRobot
18f61ab734 Merge pull request #463 from vector-im/actions/upgrade-deps
Upgrade dependencies
2022-11-29 20:56:03 +00:00
t3chguy
705972d87b [create-pull-request] automated change 2022-11-29 16:20:02 +00:00
RiotRobot
7c87fff295 v1.11.16-rc.1 2022-11-29 15:54:35 +00:00
RiotRobot
f5fa0ae7be Prepare changelog for v1.11.16-rc.1 2022-11-29 15:54:34 +00:00
RiotRobot
c01a4f683e Merge remote-tracking branch 'origin/develop' into develop 2022-11-29 15:28:21 +00:00
RiotRobot
9f218f30d8 Merge branch 'master' into develop
# Conflicts:
#	package.json
#	yarn.lock
2022-11-29 15:28:13 +00:00
Michael Telatynski
e270bb7071 Update generate-packages-index.ts 2022-11-29 15:01:16 +00:00
Michael Telatynski
3bf4e37b22 Update generate-packages-index.ts 2022-11-29 10:36:01 +00:00
Michael Telatynski
eb2ec70ad9 Update generate-packages-index.ts 2022-11-29 10:25:31 +00:00
Michael Telatynski
184fe3104a Update generate-packages-index.ts 2022-11-29 10:20:37 +00:00
Michael Telatynski
9c5f703eaf Update packages_index.yaml 2022-11-29 10:08:17 +00:00
Michael Telatynski
5770549819 Update packages_index.yaml 2022-11-29 10:06:58 +00:00
Michael Telatynski
7f7069b326 Update packages_index.yaml 2022-11-29 10:04:33 +00:00
Michael Telatynski
4e0d1b1497 Create packages.element.io directory index scripts (#456) 2022-11-29 09:59:02 +00:00
RiotRobot
1bd42c7bbf v1.11.15 2022-11-22 12:20:51 +00:00
RiotRobot
101ecea3ee Prepare changelog for v1.11.15 2022-11-22 12:20:50 +00:00
Michael Telatynski
247eca7b24 Update to Electron 21 (#458) 2022-11-22 10:17:42 +00:00
David Baker
b35dbfec1b Downgrade to electron 20.3.4 to fix crash on call hangup (#459)
Co-authored-by: t3chguy <t3chguy@users.noreply.github.com>
Co-authored-by: ElementRobot <releases@riot.im>
Fixes https://github.com/vector-im/element-web/issues/23783
Fixes undefined
2022-11-22 10:17:02 +00:00
RiotRobot
8359f36dd1 v1.11.15-rc.1 2022-11-15 18:53:19 +00:00
RiotRobot
7235851f88 Prepare changelog for v1.11.15-rc.1 2022-11-15 18:53:18 +00:00
RiotRobot
6af176f263 Prepare changelog for v1.11.15-rc.1 2022-11-15 18:33:06 +00:00
ElementRobot
53ab0e2843 Merge pull request #455 from vector-im/actions/upgrade-deps
Upgrade dependencies
2022-11-15 18:32:11 +00:00
t3chguy
d95838cb9a [create-pull-request] automated change 2022-11-15 17:58:37 +00:00
Element Translate Bot
12bc319033 Translations update from Weblate (#454)
* Added translation using Weblate (Urdu)

* Translated using Weblate (Urdu)

Currently translated at 31.1% (14 of 45 strings)

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

* Translated using Weblate (Urdu)

Currently translated at 37.7% (17 of 45 strings)

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

* 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 (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/

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

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

Co-authored-by: proudmuslim-dev <ayaan7689@protonmail.com>
Co-authored-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Stnby <stnby@tuta.io>
2022-11-15 17:45:26 +00:00
Michael Telatynski
791a7e71fd Build Linux to tar.gz (#453) 2022-11-14 18:02:34 +00:00
Michael Telatynski
d45b3aac65 Improve workflow reuse (#452) 2022-11-14 11:09:07 +00:00
Michael Telatynski
1e6a3ceebd Improve CI stability and tidy it up (#451) 2022-11-11 15:15:21 +00:00
Michael Telatynski
79b0b3077a Update fetch-package.js to use new GHA deployment for develop (#450) 2022-11-11 14:23:42 +00:00
Michael Telatynski
474dcb6825 Add missing Deb dependencies libasound2 & libgbm1 (#449) 2022-11-10 16:10:03 +00:00
RiotRobot
6ba168f8cf Merge branch 'master' into develop 2022-11-08 17:35:43 +00:00
RiotRobot
727ede4436 Merge branch 'staging' 2022-11-08 17:35:39 +00:00
RiotRobot
6859c86773 v1.11.14 2022-11-08 17:34:39 +00:00
RiotRobot
79ec793099 Prepare changelog for v1.11.14 2022-11-08 17:34:39 +00:00
Michael Telatynski
ea23302079 Disable MSI as they are failing with Error 217 (#447) 2022-11-08 17:31:02 +00:00
RiotRobot
23b83bac26 Merge branch 'master' into develop
# Conflicts:
#	package.json
#	yarn.lock
2022-11-08 16:23:45 +00:00
RiotRobot
70814b7f96 v1.11.14 2022-11-08 16:22:22 +00:00
RiotRobot
db4e3d2fec Prepare changelog for v1.11.14 2022-11-08 16:22:21 +00:00
Michael Telatynski
5380c533cf Disable MSI as they are failing with Error 217 (#447) 2022-11-08 15:09:41 +00:00
RiotRobot
0c93040b41 v1.11.14-rc.2 2022-11-08 13:47:28 +00:00
RiotRobot
4bb9bc8441 CHANGELOG.md 2022-11-08 13:47:21 +00:00
ElementRobot
8473f3eec8 [Backport staging] Switch to notarytool (#443)
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-11-08 10:00:01 +00:00
Michael Telatynski
a104be4fa1 Update to @electron/notarize 2022-11-08 09:59:42 +00:00
ElementRobot
c06349d814 [Backport staging] Update to Node 16 (#442)
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-11-08 09:53:31 +00:00
ElementRobot
25d3ca5a4a [Backport staging] Fix macOS builds in GHA (#445)
(cherry picked from commit b4ea922b4b)

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-11-08 09:16:03 +00:00
Michael Telatynski
6f263e1db6 Update to @electron/notarize (#444)
* Update to @electron/notarize

* Fix lockfile
2022-11-08 09:12:58 +00:00
Michael Telatynski
1a5176bc73 Update to Node 16 (#441) 2022-11-07 18:49:46 +00:00
Michael Telatynski
7a8e5b6f00 Switch to notarytool (#440) 2022-11-07 18:26:40 +00:00
Michael Telatynski
c9b0a0866b Update to @electron/notarize (#439) 2022-11-07 17:56:47 +00:00
Michael Telatynski
537904f51b Add eslint rule unicorn/no-instanceof-array (#434)
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2022-11-04 15:58:19 +00:00
Michael Telatynski
2032f64766 Ensure EventStore is created in the appropriate userData directory (#433) 2022-11-04 14:58:23 +00:00
ElementRobot
43484b21f4 Merge pull request #436 from vector-im/actions/upgrade-deps
Upgrade dependencies
2022-11-04 12:52:34 +00:00
Michael Telatynski
184bfb8f1a Merge branch 'develop' into actions/upgrade-deps 2022-11-04 12:22:28 +00:00
Michael Telatynski
b4ea922b4b Fix macOS builds in GHA (#438) 2022-11-04 12:20:16 +00:00
RiotRobot
b6659ad8e8 v1.11.14-rc.1 2022-11-01 15:18:11 +00:00
RiotRobot
843056f53d Prepare changelog for v1.11.14-rc.1 2022-11-01 15:18:11 +00:00
t3chguy
a7c3aea8fd [create-pull-request] automated change 2022-11-01 15:03:34 +00:00
174 changed files with 14512 additions and 11789 deletions

22
.eslintrc-hak.js Normal file
View File

@@ -0,0 +1,22 @@
module.exports = {
plugins: ["matrix-org"],
extends: [".eslintrc.js"],
parserOptions: {
project: ["hak/tsconfig.json"],
},
overrides: [
{
files: ["hak/**/*.ts"],
extends: ["plugin:matrix-org/typescript"],
rules: {
// Things we do that break the ideal style
"prefer-promise-reject-errors": "off",
"quotes": "off",
"@typescript-eslint/no-explicit-any": "off",
// We're okay with assertion errors when we ask for them
"@typescript-eslint/no-non-null-assertion": "off",
},
},
],
};

22
.eslintrc-scripts.js Normal file
View File

@@ -0,0 +1,22 @@
module.exports = {
plugins: ["matrix-org"],
extends: [".eslintrc.js"],
parserOptions: {
project: ["scripts/tsconfig.json"],
},
overrides: [
{
files: ["scripts/**/*.ts"],
extends: ["plugin:matrix-org/typescript"],
rules: {
// Things we do that break the ideal style
"prefer-promise-reject-errors": "off",
"quotes": "off",
"@typescript-eslint/no-explicit-any": "off",
// We're okay with assertion errors when we ask for them
"@typescript-eslint/no-non-null-assertion": "off",
},
},
],
};

22
.eslintrc-test.js Normal file
View File

@@ -0,0 +1,22 @@
module.exports = {
plugins: ["matrix-org"],
extends: [".eslintrc.js"],
parserOptions: {
project: ["playwright/tsconfig.json"],
},
overrides: [
{
files: ["playwright/**/*.ts"],
extends: ["plugin:matrix-org/typescript"],
rules: {
// Things we do that break the ideal style
"prefer-promise-reject-errors": "off",
"quotes": "off",
"@typescript-eslint/no-explicit-any": "off",
// We're okay with assertion errors when we ask for them
"@typescript-eslint/no-non-null-assertion": "off",
},
},
],
};

View File

@@ -1,10 +1,9 @@
module.exports = {
plugins: ["matrix-org"],
extends: [
"plugin:matrix-org/javascript",
],
extends: ["plugin:matrix-org/javascript"],
parserOptions: {
ecmaVersion: 2021,
project: ["tsconfig.json"],
},
env: {
es6: true,
@@ -20,19 +19,19 @@ module.exports = {
"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",
overrides: [
{
files: ["src/**/*.ts"],
extends: ["plugin:matrix-org/typescript"],
rules: {
// Things we do that break the ideal style
"prefer-promise-reject-errors": "off",
"quotes": "off",
"@typescript-eslint/no-explicit-any": "off",
// We're okay with assertion errors when we ask for them
"@typescript-eslint/no-non-null-assertion": "off",
"@typescript-eslint/no-explicit-any": "off",
// We're okay with assertion errors when we ask for them
"@typescript-eslint/no-non-null-assertion": "off",
},
},
}],
],
};

6
.github/CODEOWNERS vendored
View File

@@ -1 +1,5 @@
* @vector-im/element-web
* @element-hq/element-web-reviewers
/.github/workflows/** @element-hq/element-web-team
/package.json @element-hq/element-web-team
/yarn.lock @element-hq/element-web-team
/src/i18n/strings

76
.github/ISSUE_TEMPLATE/bug-desktop.yml vendored Normal file
View File

@@ -0,0 +1,76 @@
name: Bug report for the Element desktop app (not in a browser)
description: File a bug report if you are using the desktop Element application.
labels: [T-Defect]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
Please report security issues by email to security@matrix.org
- type: textarea
id: reproduction-steps
attributes:
label: Steps to reproduce
description: Please attach screenshots, videos or logs if you can.
placeholder: Tell us what you see!
value: |
1. Where are you starting? What can you see?
2. What do you click?
3. More steps…
validations:
required: true
- type: textarea
id: result
attributes:
label: Outcome
placeholder: Tell us what went wrong
value: |
#### What did you expect?
#### What happened instead?
validations:
required: true
- type: input
id: os
attributes:
label: Operating system
placeholder: Windows, macOS, Ubuntu, Arch Linux…
validations:
required: false
- type: input
id: version
attributes:
label: Application version
description: You can find the version information in Settings -> Help & About.
placeholder: e.g. Element version 1.7.34, olm version 3.2.3
validations:
required: false
- type: input
id: source
attributes:
label: How did you install the app?
description: Where did you install the app from? Please give a link or a description.
placeholder: e.g. From https://element.io/get-started
validations:
required: false
- type: input
id: homeserver
attributes:
label: Homeserver
description: |
Which server is your account registered on? If it is a local or non-public homeserver, please tell us what is the homeserver implementation (ex: Synapse/Dendrite/etc.) and the version.
placeholder: e.g. matrix.org or Synapse 1.50.0rc1
validations:
required: false
- type: dropdown
id: rageshake
attributes:
label: Will you send logs?
description: |
Did you know that you can send a /rageshake command from your application to submit logs for this issue? Trigger the defect, then type `/rageshake` into the message input area followed by a description of the problem and send the command. You will be able to add a link to this defect report and submit anonymous logs to the developers.
options:
- "Yes"
- "No"
validations:
required: true

1
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1 @@
blank_issues_enabled: false

36
.github/ISSUE_TEMPLATE/enhancement.yml vendored Normal file
View File

@@ -0,0 +1,36 @@
name: Enhancement request
description: Do you have a suggestion or feature request?
labels: [T-Enhancement]
body:
- type: markdown
attributes:
value: |
Thank you for taking the time to propose an enhancement to an existing feature. If you would like to propose a new feature or a major cross-platform change, please [start a discussion here](https://github.com/vector-im/element-meta/discussions/new?category=ideas).
- type: textarea
id: usecase
attributes:
label: Your use case
description: What would you like to be able to do? Please feel welcome to include screenshots or mock ups.
placeholder: Tell us what you would like to do!
value: |
#### What would you like to do?
#### Why would you like to do it?
#### How would you like to achieve it?
validations:
required: true
- type: textarea
id: alternative
attributes:
label: Have you considered any alternatives?
placeholder: A clear and concise description of any alternative solutions or features you've considered.
validations:
required: false
- type: textarea
id: additional-context
attributes:
label: Additional context
placeholder: Is there anything else you'd like to add?
validations:
required: false

View File

@@ -2,12 +2,7 @@
## 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
-->
- [ ] Ensure your code works with manual testing.
- [ ] New or updated `public`/`exported` symbols have accurate [TSDoc](https://tsdoc.org/) documentation.
- [ ] Linter and other CI checks pass.
- [ ] Sign-off given on the changes (see [CONTRIBUTING.md](https://github.com/vector-im/element-web/blob/develop/CONTRIBUTING.md)).

31
.github/labels.yml vendored Normal file
View File

@@ -0,0 +1,31 @@
- name: "A-Install"
color: "72A447"
- name: "A-Seshat"
color: "8262BE"
- name: "A-Update"
color: "17BE67"
- name: "Story"
description: "A change to the product that generates user value on its own. Unit of delivery."
color: "0BAC47"
- name: "X-Breaking-Change"
color: "ff7979"
- name: "Z-Arch"
color: "D601BE"
- name: "Z-ARM"
color: "5DEC5B"
- name: "Z-Flatpak"
color: "0CA856"
- name: "Z-Linux"
color: "7B4A9C"
- name: "Z-macOS"
color: "500605"
- name: "Z-Official"
color: "1D2B20"
- name: "Z-Snap"
color: "29CD95"
- name: "Z-Suse"
color: "79D07B"
- name: "Z-Wayland"
color: "94C519"
- name: "Z-Windows"
color: "0632DE"

1
.github/release-drafter.yml vendored Normal file
View File

@@ -0,0 +1 @@
_extends: element-hq/element-web

View File

@@ -1,6 +1,4 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"github>matrix-org/renovate-config-element-web"
]
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["github>matrix-org/renovate-config-element-web"]
}

View File

@@ -1,30 +1,30 @@
name: Backport
on:
pull_request_target:
types:
- closed
- labeled
branches:
- develop
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 }}
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@9565281eda0731b1d20c4025c43339fb0a23812e # 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 }}

View File

@@ -1,283 +0,0 @@
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"
- 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"
# 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"
# 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"
# 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"
- 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

284
.github/workflows/build_and_deploy.yaml vendored Normal file
View File

@@ -0,0 +1,284 @@
name: Build and Deploy
on:
# Nightly build
schedule:
- cron: "0 9 * * *"
# Release build
release:
types: [published]
# Manual nightly & release
workflow_dispatch:
inputs:
mode:
description: What type of build to trigger. Release builds MUST be ran from the `master` branch.
required: true
default: nightly
type: choice
options:
- nightly
- release
macos:
description: Build macOS
required: true
type: boolean
default: true
windows:
description: Build Windows
required: true
type: boolean
default: true
linux:
description: Build Linux
required: true
type: boolean
default: true
deploy:
description: Deploy artifacts
required: true
type: boolean
default: true
run-name: Element ${{ inputs.mode != 'release' && github.event_name != 'release' && 'Nightly' || 'Desktop' }}
concurrency: ${{ github.workflow }}
env:
R2_BUCKET: ${{ vars.R2_BUCKET }}
jobs:
prepare:
uses: ./.github/workflows/build_prepare.yaml
with:
config: element.io/${{ inputs.mode || (github.event_name == 'release' && 'release') || 'nightly' }}
version: ${{ (inputs.mode != 'release' && github.event_name != 'release') && 'develop' || '' }}
nightly: ${{ inputs.mode != 'release' && github.event_name != 'release' }}
deploy: ${{ inputs.deploy || (github.event_name != 'workflow_dispatch' && github.event.release.prerelease != true) }}
secrets:
CF_R2_ACCESS_KEY_ID: ${{ secrets.CF_R2_ACCESS_KEY_ID }}
CF_R2_TOKEN: ${{ secrets.CF_R2_TOKEN }}
windows:
if: github.event_name != 'workflow_dispatch' || inputs.windows
needs: prepare
name: Windows ${{ matrix.arch }}
strategy:
matrix:
arch: [ia32, x64]
uses: ./.github/workflows/build_windows.yaml
secrets: inherit
with:
sign: true
arch: ${{ matrix.arch }}
version: ${{ needs.prepare.outputs.nightly-version }}
macos:
if: github.event_name != 'workflow_dispatch' || inputs.macos
needs: prepare
name: macOS
uses: ./.github/workflows/build_macos.yaml
secrets: inherit
with:
sign: true
base-url: https://packages.element.io/${{ needs.prepare.outputs.packages-dir }}
version: ${{ needs.prepare.outputs.nightly-version }}
linux:
if: github.event_name != 'workflow_dispatch' || inputs.linux
needs: prepare
name: Linux ${{ matrix.arch }} (sqlcipher ${{ matrix.sqlcipher }})
strategy:
matrix:
arch: [amd64, arm64]
sqlcipher: [static]
uses: ./.github/workflows/build_linux.yaml
with:
arch: ${{ matrix.arch }}
config: ${{ needs.prepare.outputs.config }}
sqlcipher: ${{ matrix.sqlcipher }}
version: ${{ needs.prepare.outputs.nightly-version }}
deploy:
needs:
- prepare
- macos
- linux
- windows
runs-on: ubuntu-latest
name: ${{ needs.prepare.outputs.deploy == 'true' && 'Deploy' || 'Deploy (dry-run)' }}
if: always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled')
environment: ${{ needs.prepare.outputs.deploy == 'true' && 'packages.element.io' || '' }}
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
- name: Prepare artifacts for deployment
run: |
# Windows
for arch in x64 ia32 arm64
do
if [ -d "win-$arch" ]; then
mkdir -p packages.element.io/{install,update}/win32/$arch
mv win-$arch/squirrel-windows*/*.exe "packages.element.io/install/win32/$arch/"
mv win-$arch/squirrel-windows*/*.nupkg "packages.element.io/update/win32/$arch/"
mv win-$arch/squirrel-windows*/RELEASES "packages.element.io/update/win32/$arch/"
fi
done
# macOS
if [ -d macos ]; then
mkdir -p packages.element.io/{install,update}/macos
mv macos/*.dmg packages.element.io/install/macos/
mv macos/*-mac.zip packages.element.io/update/macos/
mv macos/*.json packages.element.io/update/macos/
fi
# Linux
if [ -d linux-amd64-sqlcipher-static ]; then
mkdir -p packages.element.io/install/linux/glibc-x86-64
mv linux-amd64-sqlcipher-static/*.tar.gz packages.element.io/install/linux/glibc-x86-64
fi
if [ -d linux-arm64-sqlcipher-static ]; then
mkdir -p packages.element.io/install/linux/glibc-aarch64
mv linux-arm64-sqlcipher-static/*.tar.gz packages.element.io/install/linux/glibc-aarch64
fi
# We don't wish to store the installer for every nightly ever, so we only keep the latest
- name: "[Nightly] Strip version from installer file"
if: needs.prepare.outputs.nightly-version != ''
run: |
# Windows
for arch in x64 ia32 arm64
do
[ -d "win-$arch" ] && mv packages.element.io/install/win32/$arch/{*,"Element Nightly Setup"}.exe
done
# macOS
[ -d macos ] && mv packages.element.io/install/macos/{*,"Element Nightly"}.dmg
# Linux
[ -d linux-amd64-sqlcipher-static ] && mv packages.element.io/install/linux/glibc-x86-64/{*,element-desktop-nightly}.tar.gz
[ -d linux-arm64-sqlcipher-static ] && mv packages.element.io/install/linux/glibc-aarch64/{*,element-desktop-nightly}.tar.gz
- name: "[Release] Prepare release latest symlink"
if: needs.prepare.outputs.nightly-version == ''
run: |
# Windows
for arch in x64 ia32 arm64
do
if [ -d "win-$arch" ]; then
pushd packages.element.io/install/win32/$arch
ln -s "$(find . -type f -iname "*.exe" | xargs -0 -n1 -- basename)" "Element Setup.exe"
popd
fi
done
# macOS
if [ -d macos ]; then
pushd packages.element.io/install/macos
ln -s "$(find . -type f -iname "*.dmg" | xargs -0 -n1 -- basename)" "Element.dmg"
popd
fi
# Linux
if [ -d linux-amd64-sqlcipher-static ]; then
pushd packages.element.io/install/linux/glibc-x86-64
ln -s "$(find . -type f -iname "*.tar.gz" | xargs -0 -n1 -- basename)" "element-desktop.tar.gz"
popd
fi
if [ -d linux-arm64-sqlcipher-static ]; then
pushd packages.element.io/install/linux/glibc-aarch64
ln -s "$(find . -type f -iname "*.tar.gz" | xargs -0 -n1 -- basename)" "element-desktop.tar.gz"
popd
fi
- name: Stash packages.element.io
if: needs.prepare.outputs.deploy == 'false'
uses: actions/upload-artifact@v4
with:
name: packages.element.io
path: packages.element.io
- name: Deploy artifacts
if: needs.prepare.outputs.deploy == 'true'
run: |
aws s3 cp --recursive packages.element.io/ s3://$R2_BUCKET/$DEPLOYMENT_DIR --endpoint-url $R2_URL --region auto
env:
AWS_ACCESS_KEY_ID: ${{ secrets.CF_R2_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CF_R2_TOKEN }}
R2_URL: ${{ vars.CF_R2_S3_API }}
DEPLOYMENT_DIR: ${{ needs.prepare.outputs.packages-dir }}
- name: Notify packages.element.io of new files
if: needs.prepare.outputs.deploy == 'true'
uses: peter-evans/repository-dispatch@ff45666b9427631e3450c54a1bcbee4d9ff4d7c0 # v3
with:
token: ${{ secrets.ELEMENT_BOT_TOKEN }}
repository: element-hq/packages.element.io
event-type: packages-index
- name: Find debs
id: deb
if: needs.linux.result == 'success'
run: |
for arch in amd64 arm64
do
echo "$arch=$(ls linux-$arch-sqlcipher-static/*.deb | tail -n1)" >> $GITHUB_OUTPUT
done
- name: Stash debs
if: needs.prepare.outputs.deploy == 'false' && needs.linux.result == 'success'
uses: actions/upload-artifact@v4
with:
name: debs
path: |
${{ steps.deb.outputs.amd64 }}
${{ steps.deb.outputs.arm64 }}
- name: Publish amd64 deb to packages.element.io
uses: element-hq/packages.element.io@master
if: needs.prepare.outputs.deploy == 'true' && needs.linux.result == 'success'
with:
file: ${{ steps.deb.outputs.amd64 }}
github-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
bucket-api: ${{ vars.CF_R2_S3_API }}
bucket-key-id: ${{ secrets.CF_R2_ACCESS_KEY_ID }}
bucket-access-key: ${{ secrets.CF_R2_TOKEN }}
- name: Publish arm64 deb to packages.element.io
uses: element-hq/packages.element.io@master
if: needs.prepare.outputs.deploy == 'true' && needs.linux.result == 'success'
with:
file: ${{ steps.deb.outputs.arm64 }}
github-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
bucket-api: ${{ vars.CF_R2_S3_API }}
bucket-key-id: ${{ secrets.CF_R2_ACCESS_KEY_ID }}
bucket-access-key: ${{ secrets.CF_R2_TOKEN }}
deploy-ess:
needs: deploy
runs-on: ubuntu-latest
name: Deploy builds to ESS
if: needs.prepare.outputs.deploy == 'true' && github.event_name == 'release'
env:
BUCKET_NAME: "element-desktop-msi.onprem.element.io"
AWS_REGION: "eu-central-1"
permissions:
id-token: write # This is required for requesting the JWT
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::264135176173:role/Push-ElementDesktop-MSI
role-session-name: githubaction-run-${{ github.run_id }}
aws-region: ${{ env.AWS_REGION }}
- name: Download artifacts
uses: actions/download-artifact@v4
with:
pattern: win-*
- name: Copy files to S3
run: |
PREFIX="${VERSION%.*}"
for file in win-*/*.msi; do
filename=$(basename "$file")
aws s3 cp "$file" "s3://${{ env.BUCKET_NAME }}/$PREFIX/$filename"
done
env:
VERSION: ${{ github.event.release.tag_name }}

154
.github/workflows/build_and_test.yaml vendored Normal file
View File

@@ -0,0 +1,154 @@
name: Build and Test
on:
pull_request: {}
push:
branches: [develop, staging, master]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
fetch:
uses: ./.github/workflows/build_prepare.yaml
with:
config: ${{ github.event.pull_request.base.ref == 'develop' && 'element.io/nightly' || 'element.io/release' }}
version: ${{ github.event.pull_request.base.ref == 'develop' && 'develop' || '' }}
windows:
needs: fetch
name: Windows
uses: ./.github/workflows/build_windows.yaml
strategy:
matrix:
arch: [x64, ia32]
with:
arch: ${{ matrix.arch }}
linux:
needs: fetch
name: "Linux (${{ matrix.arch }}) (sqlcipher: ${{ matrix.sqlcipher }})"
uses: ./.github/workflows/build_linux.yaml
strategy:
matrix:
sqlcipher: [system, static]
arch: [amd64, arm64]
with:
config: ${{ github.event.pull_request.base.ref == 'develop' && 'element.io/nightly' || 'element.io/release' }}
sqlcipher: ${{ matrix.sqlcipher }}
arch: ${{ matrix.arch }}
macos:
needs: fetch
name: macOS
uses: ./.github/workflows/build_macos.yaml
test:
needs:
- macos
- linux
- windows
strategy:
matrix:
include:
- name: macOS Universal
os: macos-latest
artifact: macos
executable: "/Users/runner/Applications/Element.app/Contents/MacOS/Element"
# We need to mount the DMG and copy the app to the Applications folder as a mounted DMG is
# read-only and thus would not allow us to override the fuses as is required for Playwright.
prepare_cmd: |
hdiutil attach ./dist/*.dmg -mountpoint /Volumes/Element &&
rsync -a /Volumes/Element/Element.app ~/Applications/ &&
hdiutil detach /Volumes/Element
- name: "Linux (amd64) (sqlcipher: system)"
os: ubuntu-latest
artifact: linux-amd64-sqlcipher-system
executable: "/opt/Element/element-desktop"
prepare_cmd: "sudo apt-get -qq update && sudo apt install ./dist/*.deb"
- name: "Linux (amd64) (sqlcipher: static)"
os: ubuntu-latest
artifact: linux-amd64-sqlcipher-static
executable: "/opt/Element/element-desktop"
prepare_cmd: "sudo apt-get -qq update && sudo apt install ./dist/*.deb"
- name: "Linux (arm64) (sqlcipher: system)"
os: dind-l-arm64
artifact: linux-arm64-sqlcipher-system
executable: "/opt/Element/element-desktop"
prepare_cmd: "sudo apt-get -qq update && sudo apt install -y ./dist/*.deb"
- name: "Linux (arm64) (sqlcipher: static)"
os: dind-l-arm64
artifact: linux-arm64-sqlcipher-static
executable: "/opt/Element/element-desktop"
prepare_cmd: "sudo apt-get -qq update && sudo apt install -y ./dist/*.deb"
- name: Windows (x86)
os: windows-latest
artifact: win-ia32
executable: "./dist/win-ia32-unpacked/Element.exe"
- name: Windows (x64)
os: windows-latest
artifact: win-x64
executable: "./dist/win-unpacked/Element.exe"
name: Test ${{ matrix.name }}
runs-on: ${{ matrix.os }}
steps:
# Workaround for self-hosted runners lacking yarn
- name: Install Yarn
if: runner.environment == 'self-hosted'
run: |
# Sanity check that the arch is arm64 as we expect
[[ $(uname -p) == "aarch64" ]] || exit 1
sudo apt-get -qq update
sudo apt-get install -y curl
curl -fsSL --create-dirs -o $HOME/bin/yarn https://github.com/yarnpkg/yarn/releases/download/v1.22.19/yarn-1.22.19.js
chmod +x $HOME/bin/yarn
echo "$HOME/bin" >> $GITHUB_PATH
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: "yarn"
- name: Install Deps
run: "yarn install --frozen-lockfile"
- uses: actions/download-artifact@v4
with:
name: ${{ matrix.artifact }}
path: dist
- name: Prepare for tests
run: ${{ matrix.prepare_cmd }}
if: matrix.prepare_cmd
# We previously disabled the `EnableNodeCliInspectArguments` fuse, but Playwright requires
# it to be enabled to test Electron apps, so turn it back on.
- name: Set EnableNodeCliInspectArguments fuse enabled
run: $RUN_AS npx @electron/fuses write --app ${{ matrix.executable }} EnableNodeCliInspectArguments=on
shell: bash
env:
# We need sudo on Linux as it is installed in /opt/
RUN_AS: ${{ runner.os == 'Linux' && 'sudo' || '' }}
- name: Workaround macOS GHA permission issues
if: matrix.os == 'macos-latest'
run: |
sqlite3 $HOME/Library/Application\ Support/com.apple.TCC/TCC.db "INSERT OR IGNORE INTO access VALUES ('kTCCServiceMicrophone','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159,NULL,NULL,'UNUSED',1687786159);"
sqlite3 $HOME/Library/Application\ Support/com.apple.TCC/TCC.db "INSERT OR IGNORE INTO access VALUES ('kTCCServiceMicrophone','/opt/off/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159,NULL,NULL,'UNUSED',1687786159);"
- name: Run tests
uses: coactions/setup-xvfb@6b00cf1889f4e1d5a48635647013c0508128ee1a
timeout-minutes: 5
with:
run: "yarn test ${{ runner.os != 'Linux' && '--ignore-snapshots' || '' }}"
env:
ELEMENT_DESKTOP_EXECUTABLE: ${{ matrix.executable }}
- name: Upload HTML report
if: always()
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.artifact }}-test
path: playwright/html-report
retention-days: 14

230
.github/workflows/build_linux.yaml vendored Normal file
View File

@@ -0,0 +1,230 @@
# This workflow relies on actions/cache to store the hak dependency artifacts as they take a long time to build
# Due to this extra care must be taken to only ever run all build_* scripts against the same branch to ensure
# the correct cache scoping, and additional care must be taken to not run untrusted actions on the develop branch.
on:
workflow_call:
inputs:
arch:
type: string
required: true
description: "The architecture to build for, one of 'amd64' | 'arm64'"
config:
type: string
required: true
description: "The config directory to use"
version:
type: string
required: false
description: "Version string to override the one in package.json, used for non-release builds"
sqlcipher:
type: string
required: true
description: "How to link sqlcipher, one of 'system' | 'static'"
env:
SQLCIPHER_BUNDLED: ${{ inputs.sqlcipher == 'static' && '1' || '' }}
jobs:
# We build the hak files on native infrastructure as matrix-seshat fails to cross-compile properly
# https://github.com/matrix-org/seshat/issues/135
hak:
runs-on: ${{ inputs.arch == 'arm64' && 'dind-l-arm64' || 'ubuntu-latest' }}
env:
HAK_DOCKER_IMAGE: ghcr.io/element-hq/element-desktop-dockerbuild
outputs:
cache-key: ${{ steps.cache-key.outputs.key }}
arch: ${{ steps.config.outputs.arch }}
build-args: ${{ steps.config.outputs.build-args }}
steps:
# Workaround for self-hosted runners lacking tools
- name: Install missing tools
if: runner.environment == 'self-hosted'
run: |
# Sanity check that the arch is arm64 as we expect
[[ $(uname -p) == "aarch64" ]] || exit 1
sudo apt-get -qq update
# curl for yarn download, git for tj-actions/changed-files, zstd for actions/cache
sudo apt-get install -y curl git zstd
curl -fsSL --create-dirs -o $HOME/bin/yarn https://github.com/yarnpkg/yarn/releases/download/v1.22.19/yarn-1.22.19.js
chmod +x $HOME/bin/yarn
echo "$HOME/bin" >> $GITHUB_PATH
- name: Resolve docker image tag for push
if: github.event_name == 'push'
run: echo "HAK_DOCKER_IMAGE=$HAK_DOCKER_IMAGE:$GITHUB_REF_NAME" >> $GITHUB_ENV
- name: Resolve docker image tag for release
if: github.event_name == 'release'
run: echo "HAK_DOCKER_IMAGE=$HAK_DOCKER_IMAGE:staging" >> $GITHUB_ENV
- name: Resolve docker image tag for other triggers
if: github.event_name != 'push' && github.event_name != 'release'
run: echo "HAK_DOCKER_IMAGE=$HAK_DOCKER_IMAGE:develop" >> $GITHUB_ENV
- uses: nbucic/variable-mapper@0673f6891a0619ba7c002ecfed0f9f4f39017b6f
id: config
with:
key: "${{ inputs.arch }}"
export_to: output
map: |
{
"amd64": {
"target": "x86_64-unknown-linux-gnu",
"arch": "x86-64"
},
"arm64": {
"target": "aarch64-unknown-linux-gnu",
"arch": "aarch64",
"build-args": "--arm64"
}
}
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: webapp
- name: Calculate cache key
id: cache-key
run: |
echo "key=$CACHE_KEY" >> $GITHUB_OUTPUT
env:
CACHE_KEY: ${{ runner.os }}-${{ github.ref_name }}-${{ inputs.sqlcipher }}-${{ inputs.arch }}-${{ hashFiles('hakHash', 'electronVersion', 'dockerbuild/*') }}
- name: Cache .hak
id: cache
uses: actions/cache@v4
with:
key: ${{ steps.cache-key.outputs.key }}
path: |
./.hak
- uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: "yarn"
env:
# Workaround for https://github.com/actions/setup-node/issues/317
FORCE_COLOR: 0
# Does not need branch matching as only analyses this layer
- name: Install Deps
run: "yarn install --frozen-lockfile"
- name: "Get modified files"
id: changed_files
if: steps.cache.outputs.cache-hit != 'true' && github.event_name == 'pull_request'
uses: tj-actions/changed-files@40853de9f8ce2d6cfdc73c1b96f14e22ba44aec4 # v45
with:
files: |
dockerbuild/**
# This allows contributors to test changes to the dockerbuild image within a pull request
- name: Build docker image
uses: docker/build-push-action@5cd11c3a4ced054e52742c5fd54dca954e0edd85 # v6
if: steps.changed_files.outputs.any_modified == 'true'
with:
context: dockerbuild
load: true
platforms: linux/${{ inputs.arch }}
tags: ${{ env.HAK_DOCKER_IMAGE }}
- name: Build Natives
if: steps.cache.outputs.cache-hit != 'true'
run: |
docker run \
-v ${{ github.workspace }}:/work -w /work \
-e SQLCIPHER_BUNDLED \
$HAK_DOCKER_IMAGE \
yarn build:native
- name: Check native libraries
run: |
shopt -s globstar
for filename in ./.hak/hakModules/**/*.node; do
./scripts/glibc-check.sh $filename
done
env:
MAX_VER: 2.28 # buster-era glibc
build:
needs: hak
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: webapp
- name: Load .hak
id: cache
uses: actions/cache/restore@v4
with:
key: ${{ needs.hak.outputs.cache-key }}
fail-on-cache-miss: true
path: |
./.hak
- uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: "yarn"
env:
# Workaround for https://github.com/actions/setup-node/issues/317
FORCE_COLOR: 0
# Does not need branch matching as only analyses this layer
- name: Install Deps
run: "yarn install --frozen-lockfile"
- name: "[Nightly] Resolve version"
if: inputs.version != ''
run: |
echo "ED_NIGHTLY=${{ inputs.version }}" >> $GITHUB_ENV
- name: Generate debian files and arguments
run: |
if [ -f changelog.Debian ]; then
echo "ED_DEBIAN_CHANGELOG=changelog.Debian" >> $GITHUB_ENV
fi
- name: Build App
run: yarn build --publish never -l ${{ needs.hak.outputs.build-args }}
- name: Check native libraries
run: |
set -x
shopt -s globstar
FILES=$(file dist/**/*.node)
echo "$FILES"
if [ grep -v "$ARCH" ]; then
exit 1
fi
LIBS=$(readelf -d dist/**/*.node | grep NEEDED)
echo "$LIBS"
set +x
assert_contains_string() { [[ "$1" == *"$2"* ]]; }
! assert_contains_string "$LIBS" "libcrypto.so.1.1"
if [ "$SQLCIPHER_BUNDLED" == "1" ]; then
! assert_contains_string "$LIBS" "libsqlcipher.so.0"
else
assert_contains_string "$LIBS" "libsqlcipher.so.0"
fi
./scripts/glibc-check.sh dist/linux-*unpacked/element-desktop*
env:
ARCH: ${{ needs.hak.outputs.arch }}
# We exclude *-unpacked as it loses permissions and the tarball contains it with correct permissions
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: linux-${{ inputs.arch }}-sqlcipher-${{ inputs.sqlcipher }}
path: |
dist
!dist/*-unpacked/**
retention-days: 1

144
.github/workflows/build_macos.yaml vendored Normal file
View File

@@ -0,0 +1,144 @@
# This workflow relies on actions/cache to store the hak dependency artifacts as they take a long time to build
# Due to this extra care must be taken to only ever run all build_* scripts against the same branch to ensure
# the correct cache scoping, and additional care must be taken to not run untrusted actions on the develop branch.
on:
workflow_call:
secrets:
APPLE_ID:
required: false
APPLE_ID_PASSWORD:
required: false
APPLE_TEAM_ID:
required: false
APPLE_CSC_KEY_PASSWORD:
required: false
APPLE_CSC_LINK:
required: false
inputs:
version:
type: string
required: false
description: "Version string to override the one in package.json, used for non-release builds"
sign:
type: string
required: false
description: "Whether to sign & notarise the build, requires 'packages.element.io' environment"
base-url:
type: string
required: false
description: "The URL to which the output will be deployed."
jobs:
build:
runs-on: macos-14 # M1
environment: ${{ inputs.sign && 'packages.element.io' || '' }}
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: webapp
- name: Cache .hak
id: cache
uses: actions/cache@v4
with:
key: ${{ runner.os }}-${{ hashFiles('hakHash', 'electronVersion') }}
path: |
./.hak
- name: Install Rust
if: steps.cache.outputs.cache-hit != 'true'
run: |
rustup toolchain install stable --profile minimal --no-self-update
rustup default stable
rustup target add aarch64-apple-darwin
rustup target add x86_64-apple-darwin
# M1 macos-14 comes without Python preinstalled
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: "yarn"
# Does not need branch matching as only analyses this layer
- name: Install Deps
run: "yarn install --frozen-lockfile"
- name: Build Natives
if: steps.cache.outputs.cache-hit != 'true'
run: |
# Python 3.12 drops distutils which keytar relies on
pip3 install setuptools
yarn build:native:universal
- name: "[Nightly] Resolve version"
if: inputs.version != ''
run: |
echo "ED_NIGHTLY=${{ inputs.version }}" >> $GITHUB_ENV
# We split these because electron-builder gets upset if we set CSC_LINK even to an empty string
- name: "[Signed] Build App"
if: inputs.sign != ''
run: |
yarn build:universal --publish never
env:
ED_NOTARYTOOL_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
CSC_KEY_PASSWORD: ${{ secrets.APPLE_CSC_KEY_PASSWORD }}
CSC_LINK: ${{ secrets.APPLE_CSC_LINK }}
- name: Check app was signed & notarised successfully
if: inputs.sign != ''
run: |
hdiutil attach dist/*.dmg -mountpoint /Volumes/Element
codesign -dv --verbose=4 /Volumes/Element/*.app
spctl -a -vvv -t install /Volumes/Element/*.app
hdiutil detach /Volumes/Element
- name: "[Unsigned] Build App"
if: inputs.sign == ''
run: |
yarn build:universal --publish never
env:
CSC_IDENTITY_AUTO_DISCOVERY: false
- name: Generate releases.json
if: inputs.base-url
run: |
PKG_JSON_VERSION=$(cat package.json | jq -r .version)
LATEST=$(find dist -type f -iname "*-mac.zip" | xargs -0 -n1 -- basename)
# Encode spaces in the URL as Squirrel.Mac complains about bad JSON otherwise
URL="${{ inputs.base-url }}/update/macos/${LATEST// /%20}"
jq -n --arg version "${VERSION:-$PKG_JSON_VERSION}" --arg url "$URL" '
{
currentRelease: $version,
releases: [{
version: $version,
updateTo: {
version: $version,
url: $url,
},
}],
}
' > dist/releases.json
jq -n --arg url "$URL" '
{ url: $url }
' > dist/releases-legacy.json
env:
VERSION: ${{ inputs.version }}
# We exclude mac-universal as the unpacked app takes forever to upload and zip and dmg already contains it
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: macos
path: |
dist
!dist/mac-universal/**
retention-days: 1

150
.github/workflows/build_prepare.yaml vendored Normal file
View File

@@ -0,0 +1,150 @@
# This action helps perform common actions before the build_* actions are started in parallel.
on:
workflow_call:
inputs:
config:
type: string
required: true
description: "The config directory to use"
version:
type: string
required: false
description: "The version tag to fetch, or 'develop', will pick automatically if not passed"
nightly:
type: boolean
required: false
default: false
description: "Whether the build is a Nightly and to calculate the version strings new builds should use"
deploy:
type: boolean
required: false
default: false
description: "Whether the build should be deployed to production"
secrets:
# Required if `nightly` is set
CF_R2_ACCESS_KEY_ID:
required: false
# Required if `nightly` is set
CF_R2_TOKEN:
required: false
outputs:
nightly-version:
description: "The version string the next Nightly should use, only output for nightly"
value: ${{ jobs.prepare.outputs.nightly-version }}
packages-dir:
description: "The directory non-deb packages for this run should live in within packages.element.io"
value: ${{ inputs.nightly && 'nightly' || 'desktop' }}
# These are just simple pass-throughs of the input to simplify reuse of complex inline conditions
config:
description: "The relative path to the config file for this run"
value: ${{ inputs.config }}
deploy:
description: "The relative path to the config file for this run"
value: ${{ inputs.deploy }}
jobs:
prepare:
name: Prepare
environment: ${{ inputs.nightly && 'packages.element.io' || '' }}
runs-on: ubuntu-latest
outputs:
nightly-version: ${{ steps.versions.outputs.nightly }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: "yarn"
- name: Install Deps
run: "yarn install --frozen-lockfile"
- name: Fetch Element Web
run: yarn run fetch --noverify -d ${{ inputs.config }} ${{ inputs.version }}
# We split this out to save the build_* scripts having to do it to make use of `hashFiles` in the cache action
- name: Generate cache hash files
run: |
yarn run --silent electron --version > electronVersion
cat package.json | jq -c .hakDependencies | sha1sum > hakHash
find hak -type f -print0 | xargs -0 sha1sum >> hakHash
find scripts/hak -type f -print0 | xargs -0 sha1sum >> hakHash
- name: "[Nightly] Calculate version"
id: versions
if: inputs.nightly
run: |
# Find all latest Nightly versions
aws s3 cp s3://$R2_BUCKET/nightly/update/macos/releases.json - --endpoint-url $R2_URL --region auto | jq -r .currentRelease >> VERSIONS
aws s3 cp s3://$R2_BUCKET/debian/dists/default/main/binary-amd64/Packages - --endpoint-url $R2_URL --region auto | grep "Package: element-nightly" -A 50 | grep Version -m1 | sed -n 's/Version: //p' >> VERSIONS
aws s3 cp s3://$R2_BUCKET/debian/dists/default/main/binary-arm64/Packages - --endpoint-url $R2_URL --region auto | grep "Package: element-nightly" -A 50 | grep Version -m1 | sed -n 's/Version: //p' >> VERSIONS
aws s3 cp s3://$R2_BUCKET/nightly/update/win32/x64/RELEASES - --endpoint-url $R2_URL --region auto | awk '{print $2}' | cut -d "-" -f 5 | cut -c 8- >> VERSIONS
aws s3 cp s3://$R2_BUCKET/nightly/update/win32/ia32/RELEASES - --endpoint-url $R2_URL --region auto | awk '{print $2}' | cut -d "-" -f 5 | cut -c 8- >> VERSIONS
# Pick the greatest one
VERSION=$(cat VERSIONS | sort -uf | tail -n1)
echo "Found latest nightly version $VERSION"
# Increment it
echo "nightly=$(scripts/generate-nightly-version.ts --latest $VERSION)" >> $GITHUB_OUTPUT
env:
AWS_ACCESS_KEY_ID: ${{ secrets.CF_R2_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CF_R2_TOKEN }}
R2_BUCKET: ${{ vars.R2_BUCKET }}
R2_URL: ${{ vars.CF_R2_S3_API }}
- name: Check version
id: package
run: |
echo "version=$(cat package.json | jq -r .version)" >> $GITHUB_OUTPUT
- name: "[Release] Fetch release"
id: release
if: ${{ !inputs.nightly && inputs.version != 'develop' }}
uses: cardinalby/git-get-release-action@cedef2faf69cb7c55b285bad07688d04430b7ada # v1
env:
GITHUB_TOKEN: ${{ github.token }}
with:
tag: v${{ steps.package.outputs.version }}
- name: "[Release] Write changelog"
if: ${{ !inputs.nightly && inputs.version != 'develop' }}
run: |
TIME=$(date -d "$PUBLISHED_AT" -R)
echo "element-desktop ($VERSION) default; urgency=medium" >> changelog.Debian
echo "$BODY" | sed 's/^##/\n */g;s/^\*/ */g' | perl -pe 's/\[.+?]\((.+?)\)/\1/g' >> changelog.Debian
echo "" >> changelog.Debian
echo " -- $ACTOR <support@element.io> $TIME" >> changelog.Debian
env:
ACTOR: ${{ github.actor }}
VERSION: v${{ steps.package.outputs.version }}
BODY: ${{ steps.release.outputs.body }}
PUBLISHED_AT: ${{ steps.release.outputs.published_at }}
- name: "[Nightly] Write summary"
if: inputs.nightly
run: |
BUNDLE_HASH=$(npx asar l webapp.asar | grep /bundles/ | head -n 1 | sed 's|.*/||')
WEBAPP_VERSION=$(./scripts/get-version.ts)
WEB_VERSION=${WEBAPP_VERSION:0:12}
REACT_VERSION=${WEBAPP_VERSION:19:12}
JS_VERSION=${WEBAPP_VERSION:35:12}
echo "### Nightly build ${{ steps.versions.outputs.nightly }}" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "| Component | Version |" >> $GITHUB_STEP_SUMMARY
echo "| ----------- | ------- |" >> $GITHUB_STEP_SUMMARY
echo "| Bundle Hash | $BUNDLE_HASH |" >> $GITHUB_STEP_SUMMARY
echo "| Element Web | [$WEB_VERSION](https://github.com/element-hq/element-web/commit/$WEB_VERSION) |" >> $GITHUB_STEP_SUMMARY
echo "| React SDK | [$REACT_VERSION](https://github.com/matrix-org/matrix-react-sdk/commit/$REACT_VERSION) |" >> $GITHUB_STEP_SUMMARY
echo "| JS SDK | [$JS_VERSION](https://github.com/matrix-org/matrix-js-sdk/commit/$JS_VERSION) |" >> $GITHUB_STEP_SUMMARY
- uses: actions/upload-artifact@v4
with:
name: webapp
retention-days: 1
path: |
webapp.asar
package.json
electronVersion
hakHash
changelog.Debian

181
.github/workflows/build_windows.yaml vendored Normal file
View File

@@ -0,0 +1,181 @@
# This workflow relies on actions/cache to store the hak dependency artifacts as they take a long time to build
# Due to this extra care must be taken to only ever run all build_* scripts against the same branch to ensure
# the correct cache scoping, and additional care must be taken to not run untrusted actions on the develop branch.
# window-latest by default uses the pwsh shell which breaks codeSigningCert in the workflow
defaults:
run:
shell: powershell
on:
workflow_call:
secrets:
ESIGNER_USER_NAME:
required: false
ESIGNER_USER_PASSWORD:
required: false
ESIGNER_USER_TOTP:
required: false
inputs:
arch:
type: string
required: true
description: "The architecture to build for, one of 'x64' | 'ia32' | 'arm64'"
version:
type: string
required: false
description: "Version string to override the one in package.json, used for non-release builds"
sign:
type: string
required: false
description: "Whether to sign & notarise the build, requires 'packages.element.io' environment"
jobs:
build:
runs-on: windows-latest
environment: ${{ inputs.sign && 'packages.element.io' || '' }}
env:
SIGNTOOL_PATH: "C:/Program Files (x86)/Windows Kits/10/bin/10.0.22000.0/x86/signtool.exe"
steps:
- uses: nbucic/variable-mapper@0673f6891a0619ba7c002ecfed0f9f4f39017b6f
id: config
with:
key: "${{ inputs.arch }}"
export_to: output
map: |
{
"x64": {
"target": "x86_64-pc-windows-msvc"
},
"arm64": {
"target": "aarch64-pc-windows-msvc",
"build-args": "--arm64",
"arch": "amd64_arm64"
},
"ia32": {
"target": "i686-pc-windows-msvc",
"build-args": "--ia32",
"arch": "x86"
}
}
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: webapp
- name: Cache .hak
id: cache
uses: actions/cache@v4
with:
key: ${{ runner.os }}-${{ inputs.arch }}-${{ hashFiles('hakHash', 'electronVersion') }}
path: |
./.hak
- name: Set up build tools
uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
with:
arch: ${{ steps.config.outputs.arch || inputs.arch }}
# ActiveTCL package on choco is from 2015,
# this one is newer but includes more than we need
- name: Choco install tclsh
if: steps.cache.outputs.cache-hit != 'true'
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
if: steps.cache.outputs.cache-hit != 'true'
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
if: steps.cache.outputs.cache-hit != 'true'
run: |
rustup toolchain install stable --profile minimal --no-self-update
rustup default stable
rustup target add ${{ steps.config.outputs.target }}
- uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: "yarn"
# Does not need branch matching as only analyses this layer
- name: Install Deps
run: "yarn install --frozen-lockfile"
- name: Build Natives
if: steps.cache.outputs.cache-hit != 'true'
run: |
refreshenv
yarn build:native --target ${{ steps.config.outputs.target }}
- name: Install and configure eSigner CKA
if: inputs.sign
run: |
Set-StrictMode -Version 'Latest'
# Download, extract, and rename
Invoke-WebRequest -OutFile eSigner_CKA.zip "$env:ESIGNER_URL"
Expand-Archive -Path eSigner_CKA.zip -DestinationPath .
Get-ChildItem -Path * -Include "*_build_*.exe" | Rename-Item -NewName eSigner_CKA.exe
# Install
New-Item -ItemType Directory -Force -Path "$env:INSTALL_DIR"
./eSigner_CKA.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR="${{ env.INSTALL_DIR }}" | Out-Null
# Disable logger
$LogConfig = Get-Content -Path ${{ env.INSTALL_DIR }}/log4net.config
$LogConfig[0] = '<log4net threshold="OFF">'
$LogConfig | Set-Content -Path ${{ env.INSTALL_DIR }}/log4net.config
# Configure
${{ env.INSTALL_DIR }}/eSignerCKATool.exe config -mode product -user "${{ secrets.ESIGNER_USER_NAME }}" -pass "${{ secrets.ESIGNER_USER_PASSWORD }}" -totp "${{ secrets.ESIGNER_USER_TOTP }}" -key "${{ env.MASTER_KEY_FILE }}" -r
${{ env.INSTALL_DIR }}/eSignerCKATool.exe unload
${{ env.INSTALL_DIR }}/eSignerCKATool.exe load
# Find certificate
$CodeSigningCert = Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert | Select-Object -First 1
echo Certificate: $CodeSigningCert
# Extract thumbprint and subject name
$Thumbprint = $CodeSigningCert.Thumbprint
$SubjectName = ($CodeSigningCert.Subject -replace ", ?", "`n" | ConvertFrom-StringData).CN
echo "ED_SIGNTOOL_THUMBPRINT=$Thumbprint" >> $env:GITHUB_ENV
echo "ED_SIGNTOOL_SUBJECT_NAME=$SubjectName" >> $env:GITHUB_ENV
env:
ESIGNER_URL: https://github.com/SSLcom/eSignerCKA/releases/download/v1.0.6/SSL.COM-eSigner-CKA_1.0.6.zip
INSTALL_DIR: C:\Users\runneradmin\eSignerCKA
MASTER_KEY_FILE: C:\Users\runneradmin\eSignerCKA\master.key
- name: "[Nightly] Resolve version"
if: inputs.version != ''
shell: bash
run: |
echo "ED_NIGHTLY=${{ inputs.version }}" >> $GITHUB_ENV
# XXX: For whatever reason if we use `yarn build ...` it freezes, but splitting it into parts it is fine
- run: yarn run build:ts
- run: yarn run build:res
- name: Build App
run: |
yarn electron-builder --publish never -w ${{ steps.config.outputs.build-args }}
- name: Check app was signed successfully
if: inputs.sign != ''
run: |
. "$env:SIGNTOOL_PATH" verify /pa (get-item ./dist/squirrel-windows*/*.exe)
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: win-${{ inputs.arch }}
path: |
dist
retention-days: 1

52
.github/workflows/dockerbuild.yaml vendored Normal file
View File

@@ -0,0 +1,52 @@
name: Dockerbuild
on:
workflow_dispatch: {}
push:
branches: [master, staging, develop]
paths:
- "dockerbuild/**"
concurrency: ${{ github.workflow }}-${{ github.ref_name }}
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}-dockerbuild
jobs:
build:
name: Docker Build
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf # v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@988b5a0280414f521da01fcc63a27aeeb4b104db # v3
with:
install: true
- name: Log in to the Container registry
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata for Docker
id: meta
uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81 # v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=ref,event=branch
- name: Build and push Docker image
uses: docker/build-push-action@5cd11c3a4ced054e52742c5fd54dca954e0edd85 # v6
with:
context: dockerbuild
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
platforms: linux/amd64,linux/arm64

View File

@@ -0,0 +1,10 @@
name: Localazy Download
on:
workflow_dispatch: {}
schedule:
- cron: "0 6 * * 1,3,5" # Every Monday, Wednesday and Friday at 6am UTC
jobs:
download:
uses: matrix-org/matrix-web-i18n/.github/workflows/localazy_download.yaml@main
secrets:
ELEMENT_BOT_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}

11
.github/workflows/localazy_upload.yaml vendored Normal file
View File

@@ -0,0 +1,11 @@
name: Localazy Upload
on:
push:
branches: [develop]
paths:
- "src/i18n/strings/en_EN.json"
jobs:
upload:
uses: matrix-org/matrix-web-i18n/.github/workflows/localazy_upload.yaml@main
secrets:
LOCALAZY_WRITE_KEY: ${{ secrets.LOCALAZY_WRITE_KEY }}

View File

@@ -1,12 +1,9 @@
name: Pull Request
on:
pull_request_target:
types: [ opened, edited, labeled, unlabeled, synchronize ]
concurrency: ${{ github.workflow }}-${{ github.event.pull_request.head.ref }}
pull_request_target:
types: [opened, edited, labeled, unlabeled, synchronize]
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 }}
action:
uses: matrix-org/matrix-js-sdk/.github/workflows/pull_request.yaml@develop
secrets:
ELEMENT_BOT_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}

11
.github/workflows/release-drafter.yml vendored Normal file
View File

@@ -0,0 +1,11 @@
name: Release Drafter
on:
push:
branches: [staging]
workflow_dispatch: {}
concurrency: ${{ github.workflow }}
jobs:
draft:
uses: matrix-org/matrix-js-sdk/.github/workflows/release-drafter-workflow.yml@develop
with:
include-changes: element-hq/element-web~$VERSION

11
.github/workflows/release-gitflow.yml vendored Normal file
View File

@@ -0,0 +1,11 @@
# Gitflow merge-back master->develop
name: Merge master -> develop
on:
push:
branches: [master]
concurrency: ${{ github.repository }}-${{ github.workflow }}
jobs:
merge:
uses: matrix-org/matrix-js-sdk/.github/workflows/release-gitflow.yml@develop
secrets:
ELEMENT_BOT_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}

38
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,38 @@
name: Release Process
on:
workflow_dispatch:
inputs:
mode:
description: What type of release
required: true
default: rc
type: choice
options:
- rc
- final
concurrency: ${{ github.workflow }}
jobs:
release:
uses: matrix-org/matrix-js-sdk/.github/workflows/release-make.yml@develop
secrets:
ELEMENT_BOT_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
with:
final: ${{ inputs.mode == 'final' }}
gpg-fingerprint: ${{ vars.GPG_FINGERPRINT }}
expected-asset-count: 1
check:
name: Post release checks
needs: release
runs-on: ubuntu-latest
steps:
- name: Wait for desktop packaging
uses: t3chguy/wait-on-check-action@18541021811b56544d90e0f073401c2b99e249d6 # fork
with:
ref: master
repo-token: ${{ secrets.GITHUB_TOKEN }}
wait-interval: 10
check-name: Deploy
allowed-conclusions: success

View File

@@ -1,43 +1,82 @@
name: Static Analysis
on:
pull_request: { }
push:
branches: [ develop, master ]
pull_request: {}
push:
branches: [develop, master]
jobs:
ts_lint:
name: "Typescript Syntax Check"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
ts_lint:
name: "Typescript Syntax Check"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: "yarn"
# Does not need branch matching as only analyses this layer
- name: Install Deps
run: "yarn install --frozen-lockfile"
- name: Typecheck
run: "yarn run lint:types"
i18n_lint:
name: "i18n Check"
uses: matrix-org/matrix-web-i18n/.github/workflows/i18n_check.yml@main
with:
cache: 'yarn'
hardcoded-words: "Element"
# Does not need branch matching as only analyses this layer
- name: Install Deps
run: "yarn install --pure-lockfile"
js_lint:
name: "ESLint"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Typecheck
run: "yarn run lint:types"
- uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: "yarn"
i18n_lint:
name: "i18n Check"
uses: matrix-org/matrix-react-sdk/.github/workflows/i18n_check.yml@develop
# Does not need branch matching as only analyses this layer
- name: Install Deps
run: "yarn install --frozen-lockfile"
js_lint:
name: "ESLint"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run Linter
run: "yarn run lint:js"
- uses: actions/setup-node@v3
with:
cache: 'yarn'
workflow_lint:
name: "Workflow Lint"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# Does not need branch matching as only analyses this layer
- name: Install Deps
run: "yarn install --pure-lockfile"
- uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: "yarn"
- name: Run Linter
run: "yarn run lint:js"
# Does not need branch matching as only analyses this layer
- name: Install Deps
run: "yarn install --frozen-lockfile"
- name: Run Linter
run: "yarn lint:workflows"
analyse_dead_code:
name: "Analyse Dead Code"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: "yarn"
- name: Install Deps
run: "yarn install --frozen-lockfile"
- name: Run linter
run: "yarn run lint:knip"

21
.github/workflows/sync-labels.yml vendored Normal file
View File

@@ -0,0 +1,21 @@
name: Sync labels
on:
workflow_dispatch: {}
schedule:
- cron: "0 2 * * *" # 2am every day
push:
branches:
- develop
paths:
- .github/labels.yml
jobs:
sync-labels:
uses: element-hq/element-meta/.github/workflows/sync-labels.yml@develop
with:
LABELS: |
element-hq/element-web
.github/labels.yml
DELETE: true
WET: true
secrets:
ELEMENT_BOT_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}

14
.github/workflows/triage-incoming.yml vendored Normal file
View File

@@ -0,0 +1,14 @@
name: Move new issues into Issue triage board
on:
issues:
types: [opened]
jobs:
automate-project-columns-next:
runs-on: ubuntu-latest
steps:
- uses: actions/add-to-project@main
with:
project-url: https://github.com/orgs/element-hq/projects/120
github-token: ${{ secrets.ELEMENT_BOT_TOKEN }}

10
.github/workflows/triage-labelled.yml vendored Normal file
View File

@@ -0,0 +1,10 @@
name: Move labelled issues to correct projects
on:
issues:
types: [labeled]
jobs:
call-triage-labelled:
uses: element-hq/element-web/.github/workflows/triage-labelled.yml@develop
secrets: inherit

View File

@@ -1,8 +0,0 @@
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 }}

6
.gitignore vendored
View File

@@ -4,8 +4,7 @@
/webapp.asar
/packages
/deploys
/node_modules
/docker_node_modules
node_modules/
/pkg/control
/.hak
/.yarnrc
@@ -15,3 +14,6 @@
.vscode/
/test_artifacts/
/coverage/
yarn-error.log
/hak/**/*.js
/scripts/hak/**/*.js

21
.prettierignore Normal file
View File

@@ -0,0 +1,21 @@
/build/
/dockerbuild/
/lib/
/node_modules/
/packages.elememt.io/
/webapp
/src/i18n/strings
/CHANGELOG.md
/package-lock.json
/yarn.lock
/playwright/html-report
/playwright/test-results
**/.idea
.vscode
.vscode/
.tmp
.env
/coverage
/.npmrc
/*.log

1
.prettierrc.js Normal file
View File

@@ -0,0 +1 @@
module.exports = require("eslint-plugin-matrix-org/.prettierrc.js");

View File

File diff suppressed because it is too large Load Diff

View File

@@ -1,25 +1,24 @@
![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/)
[![Localazy](https://img.shields.io/endpoint?url=https%3A%2F%2Fconnect.localazy.com%2Fstatus%2Felement-web%2Fdata%3Fcontent%3Dall%26title%3Dlocalazy%26logo%3Dtrue)](https://localazy.com/p/element-web)
[![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)
Element Desktop
===============
# Element Desktop
Element Desktop is a Matrix client for desktop platforms with Element Web at its core.
First Steps
===========
# First Steps
Before you do anything else, fetch the dependencies:
```
yarn install
```
Fetching Element
================
# 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:
@@ -31,6 +30,7 @@ yarn run fetch --noverify --cfgdir ""
```
...or if you'd like to use GPG to verify the downloaded package:
```
# 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
@@ -41,6 +41,7 @@ yarn run fetch --cfgdir ""
```
...or either of the above, but fetching a specific version of Element:
```
# 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.
@@ -49,6 +50,7 @@ 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 element-web in ../element-web
ln -s ../element-web/webapp ./
@@ -56,29 +58,32 @@ ln -s ../element-web/webapp ./
[TODO: add support for fetching develop builds, arbitrary URLs and arbitrary paths]
Building
========
# Building
## 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.
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 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.
- Run the `setversion` script to set the local package version to match whatever
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.
## Docker
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
@@ -91,9 +96,10 @@ yarn run docker:build
After running, the packages should be in `dist/`.
Starting
========
# Starting
If you'd just like to run the electron app locally for development:
```
# Install electron - we don't normally need electron itself as it's provided
# by electron-builder when building packages
@@ -101,21 +107,22 @@ yarn add electron
yarn start
```
Config
======
# Config
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:
```
mkdir myconfig
cp /path/to/my/config.json myconfig/
yarn run fetch --cfgdir myconfig
```
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
========
# 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
@@ -125,30 +132,25 @@ not interfere with the default one.
Alternatively, a custom location for the profile data can be specified using the
`--profile-dir` flag followed by the desired path.
User-specified config.json
==========================
# User-specified config.json
+ `%APPDATA%\$NAME\config.json` on Windows
+ `$XDG_CONFIG_HOME/$NAME/config.json` or `~/.config/$NAME/config.json` on Linux
+ `~/Library/Application Support/$NAME/config.json` on macOS
- `%APPDATA%\$NAME\config.json` on Windows
- `$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 `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
==========================
# 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
==========================
# 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.
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.

View File

@@ -1,6 +1,3 @@
module.exports = {
presets: [
['@babel/preset-env', { targets: { node: 'current' } }],
'@babel/preset-typescript',
],
presets: [["@babel/preset-env", { targets: { node: "current" } }], "@babel/preset-typescript"],
};

View File

@@ -9,11 +9,11 @@
Latest electron-builder does, but it appears to be causing issues:
(https://github.com/electron-userland/electron-builder/issues/4390)
-->
<!-- https://github.com/electron/electron-notarize#prerequisites -->
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<!-- https://github.com/electron-userland/electron-builder/issues/3940 -->
<key>com.apple.security.cs.disable-library-validation</key>
<true/>

View File

@@ -1,51 +0,0 @@
#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;
}
}

View File

Binary file not shown.

View File

@@ -1,46 +1,27 @@
FROM buildpack-deps:bionic-curl
# Docker image to facilitate building Element Desktop's native bits using a glibc version with broader compatibility
FROM rust:buster
ENV DEBIAN_FRONTEND noninteractive
RUN curl -L https://yarnpkg.com/latest.tar.gz | tar xvz && mv yarn-* /yarn && ln -s /yarn/bin/yarn /usr/bin/yarn
RUN apt-get -qq update && apt-get -qq dist-upgrade && \
# add repo for git-lfs
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash && \
# git ssh for using as docker image on CircleCI
# python for node-gyp
# rpm is required for FPM to build rpm package
RUN curl --proto "=https" -L https://yarnpkg.com/latest.tar.gz | tar xvz && mv yarn-* /yarn && ln -s /yarn/bin/yarn /usr/bin/yarn
RUN apt-get -qq update && apt-get -y -qq dist-upgrade && \
apt-get -y -qq install --no-install-recommends \
# 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 libcurl4 git git-lfs ssh unzip tcl \
libsecret-1-dev libgnome-keyring-dev \
libopenjp2-tools \
tcl \
# libsecret-1-dev is required even for prebuild keytar
libsecret-1-dev \
# Used by seshat (when not SQLCIPHER_STATIC) \
libsqlcipher-dev && \
# git-lfs
git lfs install && \
apt-get purge -y --auto-remove && rm -rf /var/lib/apt/lists/*
WORKDIR /project
# fix error /usr/local/bundle/gems/fpm-1.5.0/lib/fpm/package/freebsd.rb:72:in `encode': "\xE2" from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)
# http://jaredmarkell.com/docker-and-locales/
# http://askubuntu.com/a/601498
ENV LANG C.UTF-8
ENV LANGUAGE C.UTF-8
ENV LC_ALL C.UTF-8
RUN ln -s /usr/bin/python3 /usr/bin/python & ln -s /usr/bin/pip3 /usr/bin/pip
ENV DEBUG_COLORS true
ENV FORCE_COLOR true
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 && \
unlink /usr/local/CHANGELOG.md && unlink /usr/local/LICENSE && unlink /usr/local/README.md && \
# https://github.com/npm/npm/issues/4531
npm config set unsafe-perm true
WORKDIR /project
ENV RUSTUP_HOME=/usr/local/rustup \
CARGO_HOME=/usr/local/cargo \
PATH=/usr/local/cargo/bin:$PATH
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path --profile minimal
ENV NODE_VERSION 20.15.1
ARG TARGETOS
ARG TARGETARCH
COPY setup.sh /setup.sh
RUN /setup.sh

7
dockerbuild/setup.sh Executable file
View File

@@ -0,0 +1,7 @@
#!/usr/bin/env bash
set -x
declare -A archMap=(["amd64"]="x64" ["arm64"]="arm64")
ARCH="${archMap["$TARGETARCH"]}"
curl --proto "=https" -L "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-$TARGETOS-$ARCH.tar.gz" | tar xz -C /usr/local --strip-components=1 && \
unlink /usr/local/CHANGELOG.md && unlink /usr/local/LICENSE && unlink /usr/local/README.md

17
docs/SUMMARY.md Normal file
View File

@@ -0,0 +1,17 @@
# Summary
- [Introduction](../README.md)
# Build
- [Native Node modules](native-node-modules.md)
- [Windows requirements](windows-requirements.md)
# Distribution
- [Updates](updates.md)
- [Packaging](packaging.md)
# Setup
- [Config](config.md)

15
docs/config.md Normal file
View File

@@ -0,0 +1,15 @@
# Configuration
All Element Web options documented [here](https://github.com/vector-im/element-web/blob/develop/docs/config.md) can be used as well as the following:
---
The app contains a configuration file specified at build time using [these instructions](https://github.com/vector-im/element-desktop/#config).
This config can be overwritten by the end using by creating a `config.json` file at the paths described [here](https://github.com/vector-im/element-desktop/#user-specified-configjson).
After changing the config, the app will need to be exited fully (including via the task tray) and re-started.
---
1. `update_base_url`: Specifies the URL of the update server, see [document](https://github.com/vector-im/element-desktop/blob/develop/docs/updates.md).
2. `web_base_url`: Specifies the Element Web URL when performing actions such as popout widget. Defaults to `https://app.element.io/`.

View File

@@ -17,13 +17,14 @@ when releasing.
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
- [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
```
@@ -70,9 +71,9 @@ as usual using:
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.
but this is problematic for some other packages, and we found that it may crashes for unknown reasons.
By including `SQLCIPHER_BUNDLED=1` in the build environment, the build scripts will fully statically
link sqlcipher, including a static build of OpenSSL.
More info can be found at https://github.com/matrix-org/seshat/issues/102
and https://github.com/vector-im/element-web/issues/20926.
@@ -82,15 +83,19 @@ and https://github.com/vector-im/element-web/issues/20926.
### 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
```
@@ -105,10 +110,13 @@ 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
```
@@ -144,6 +152,6 @@ 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
$ 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
```

55
docs/packaging.md Normal file
View File

@@ -0,0 +1,55 @@
## Packaging nightlies
Element Desktop nightly builds are build automatically by the [Github Actions workflow](https://github.com/vector-im/element-desktop/blob/develop/.github/workflows/build_and_deploy.yaml).
The schedule is currently set for once a day at 9am UTC. It will deploy to packages.element.io upon completion.
## Triggering a manual nightly build
Simply go to https://github.com/vector-im/element-desktop/actions/workflows/build_and_deploy.yaml
1. Click `Run workflow`
1. Feel free to make changes to the checkboxes depending on the circumstances
1. Click the green `Run workflow`
## Packaging releases
**Don't do this for RCs! We don't build Element Desktop for RCs.**
For releasing Element Desktop, we assume the following prerequisites:
- a tag of `element-desktop` repo with the Element Desktop version to be released set in `package.json`.
- an Element Web tarball published to GitHub with a matching version number.
**Both of these are done automatically when you run the release automation.**
The packaging is kicked off automagically for you when a Github Release for Element Desktop is published.
### More detail on the github actions
We moved to Github Actions for the following reasons:
1. Removing single point of failure
2. Improving reliability
3. Unblocking the packaging on a single individual
4. Improving parallelism
The Windows builds are signed by SSL.com using their Cloud Key Adapter for eSigner.
This allows us to use Microsoft's signtool to interface with eSigner and send them a hash of the exe along with
credentials in exchange for a signed certificate which we attach onto all the relevant files.
The Apple builds are signed using standard code signing means and then notarised to appease GateKeeper.
The Linux builds are distributed via a signed reprepro repository.
The packages.element.io site is a public Cloudflare R2 bucket which is deployed to solely from Github Actions.
The main bucket in R2 is `packages-element-io` which is a direct mapping of packages.element.io,
we have a workflow which generates the index.html files there to imitate a public index which Cloudflare does not currently support.
The reprepro database lives in `packages-element-io-db`.
There is an additional pair of buckets of same name but appended with `-test` which can be used for testing,
these land on https://packages-element-io-test.element.io/.
### Debian/Ubuntu Distributions
We used to add a new distribution to match each Debian and Ubuntu release. As of April 2020, we have created a `default` distribution that everyone can use (since the packages have never differed by distribution anyway).
The distribution configuration lives in https://github.com/vector-im/packages.element.io/blob/master/debian/conf/distributions as a canonical source.

15
docs/updates.md Normal file
View File

@@ -0,0 +1,15 @@
The Desktop app is capable of self-updating on macOS and Windows.
The update server base url is configurable as `update_base_url` in config.json and can be served by a static file host,
CDN or object storage.
Currently all packaging & deployment is handled by [Github actions](https://github.com/vector-im/element-desktop/blob/develop/.github/workflows/build_and_deploy.yaml)
# Windows
On Windows the update mechanism used is [Squirrel.Windows](https://github.com/Squirrel/Squirrel.Windows)
and can be served by any compatible Squirrel server, such as https://github.com/Tiliq/squirrel-server
# macOS
On macOS the update mechanism used is [Squirrel.Mac](https://github.com/Squirrel/Squirrel.Mac)
using the newer JSON format as documented [here](https://github.com/Squirrel/Squirrel.Mac#update-file-json-format).

View File

@@ -2,25 +2,28 @@
## Requirements to build native modules
We rely on Github Actions `windows-latest` plus a few extra utilities as per [the workflow](https://github.com/vector-im/element-desktop/blob/develop/.github/workflows/build_windows.yaml).
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
- [Git for Windows](https://git-scm.com/download/win)
- [Node 16](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

234
electron-builder.ts Normal file
View File

@@ -0,0 +1,234 @@
import * as os from "os";
import * as fs from "fs";
import * as path from "path";
import { Arch, Configuration as BaseConfiguration, AfterPackContext } from "electron-builder";
import { flipFuses, FuseVersion, FuseV1Options } from "@electron/fuses";
/**
* This script has different outputs depending on your os platform.
*
* On Windows:
* Prefixes the nightly version with `0.0.1-nightly.` as it breaks if it is not semver
* Passes $ED_SIGNTOOL_THUMBPRINT and $ED_SIGNTOOL_SUBJECT_NAME to
* build.win.signingHashAlgorithms and build.win.certificateSubjectName respectively if specified.
*
* On macOS:
* Passes $ED_NOTARYTOOL_TEAM_ID to build.mac.notarize.notarize if specified
*
* On Linux:
* Replaces spaces in the product name with dashes as spaces in paths can cause issues
* Removes libsqlcipher0 recommended dependency if env SQLCIPHER_BUNDLED is asserted.
* Passes $ED_DEBIAN_CHANGELOG to build.deb.fpm if specified
*/
const NIGHTLY_APP_ID = "im.riot.nightly";
const NIGHTLY_DEB_NAME = "element-nightly";
interface Pkg {
name: string;
productName: string;
description: string;
version: string;
}
type Writable<T> = NonNullable<
T extends Function ? T : T extends object ? { -readonly [K in keyof T]: Writable<T[K]> } : T
>;
const pkg: Pkg = JSON.parse(fs.readFileSync("package.json", "utf8"));
interface Configuration extends BaseConfiguration {
extraMetadata: Partial<Pick<Pkg, "version">> & Omit<Pkg, "version">;
linux: BaseConfiguration["linux"];
win: BaseConfiguration["win"];
mac: BaseConfiguration["mac"];
deb: {
fpm: string[];
} & BaseConfiguration["deb"];
}
/**
* @type {import('electron-builder').Configuration}
* @see https://www.electron.build/configuration/configuration
*/
const config: Writable<Configuration> = {
appId: "im.riot.app",
asarUnpack: "**/*.node",
afterPack: async (context: AfterPackContext) => {
if (context.electronPlatformName !== "darwin" || context.arch === Arch.universal) {
// Burn in electron fuses for proactive security hardening.
// On macOS, we only do this for the universal package, as the constituent arm64 and amd64 packages are embedded within.
const ext = (<Record<string, string>>{
darwin: ".app",
win32: ".exe",
linux: "",
})[context.electronPlatformName];
let executableName = context.packager.appInfo.productFilename;
if (context.electronPlatformName === "linux") {
// Linux uses the package name as the executable name
executableName = context.packager.appInfo.name;
}
const electronBinaryPath = path.join(context.appOutDir, `${executableName}${ext}`);
console.log(`Flipping fuses for: ${electronBinaryPath}`);
await flipFuses(electronBinaryPath, {
version: FuseVersion.V1,
resetAdHocDarwinSignature: context.electronPlatformName === "darwin" && context.arch === Arch.universal,
[FuseV1Options.EnableCookieEncryption]: true,
[FuseV1Options.OnlyLoadAppFromAsar]: true,
[FuseV1Options.RunAsNode]: false,
[FuseV1Options.EnableNodeOptionsEnvironmentVariable]: false,
[FuseV1Options.EnableNodeCliInspectArguments]: false,
// Mac app crashes on arm for us when `LoadBrowserProcessSpecificV8Snapshot` is enabled
[FuseV1Options.LoadBrowserProcessSpecificV8Snapshot]: false,
// https://github.com/electron/fuses/issues/7
[FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: false,
});
}
},
files: [
"package.json",
{
from: ".hak/hakModules",
to: "node_modules",
},
"lib/**",
],
extraResources: [
{
from: "res/img",
to: "img",
},
"webapp.asar",
],
extraMetadata: {
name: pkg.name,
productName: pkg.productName,
description: pkg.description,
},
linux: {
target: ["tar.gz", "deb"],
category: "Network;InstantMessaging;Chat",
maintainer: "support@element.io",
icon: "build/icons",
},
deb: {
packageCategory: "net",
depends: [
"libgtk-3-0",
"libnotify4",
"libnss3",
"libxss1",
"libxtst6",
"xdg-utils",
"libatspi2.0-0",
"libuuid1",
"libsecret-1-0",
"libasound2",
"libgbm1",
],
recommends: ["libsqlcipher0", "element-io-archive-keyring"],
fpm: [
"--deb-field",
"Replaces: riot-desktop (<< 1.7.0), riot-web (<< 1.7.0)",
"--deb-field",
"Breaks: riot-desktop (<< 1.7.0), riot-web (<< 1.7.0)",
],
},
mac: {
category: "public.app-category.social-networking",
darkModeSupport: true,
hardenedRuntime: true,
gatekeeperAssess: true,
entitlements: "./build/entitlements.mac.plist",
icon: "build/icons/icon.icns",
},
win: {
target: ["squirrel", "msi"],
signingHashAlgorithms: ["sha256"],
icon: "build/icons/icon.ico",
},
msi: {
perMachine: true,
},
directories: {
output: "dist",
},
protocols: [
{
name: "element",
schemes: ["io.element.desktop", "element"],
},
],
};
/**
* Allow specifying windows signing cert via env vars
* @param {string} process.env.ED_SIGNTOOL_SUBJECT_NAME
* @param {string} process.env.ED_SIGNTOOL_THUMBPRINT
*/
if (process.env.ED_SIGNTOOL_SUBJECT_NAME && process.env.ED_SIGNTOOL_THUMBPRINT) {
config.win.certificateSubjectName = process.env.ED_SIGNTOOL_SUBJECT_NAME;
config.win.certificateSha1 = process.env.ED_SIGNTOOL_THUMBPRINT;
}
/**
* Allow specifying macOS notary team id via env var
* @param {string} process.env.ED_NOTARYTOOL_TEAM_ID
*/
if (process.env.ED_NOTARYTOOL_TEAM_ID) {
config.mac.notarize = {
teamId: process.env.ED_NOTARYTOOL_TEAM_ID,
};
}
/**
* Allow specifying nightly version via env var
* @param {string} process.env.ED_NIGHTLY
*/
if (process.env.ED_NIGHTLY) {
config.deb.fpm = []; // Clear the fpm as the breaks deb fields don't apply to nightly
config.appId = NIGHTLY_APP_ID;
config.extraMetadata.productName += " Nightly";
config.extraMetadata.name += "-nightly";
config.extraMetadata.description += " (nightly unstable build)";
config.deb.fpm.push("--name", NIGHTLY_DEB_NAME);
let version = process.env.ED_NIGHTLY;
if (os.platform() === "win32") {
// The windows packager relies on parsing this as semver, so we have to make it look like one.
// This will give our update packages really stupid names, but we probably can't change that either
// because squirrel windows parses them for the version too. We don't really care: nobody sees them.
// We just give the installer a static name, so you'll just see this in the 'about' dialog.
// Turns out if you use 0.0.0 here it makes Squirrel windows crash, so we use 0.0.1.
version = "0.0.1-nightly." + version;
}
config.extraMetadata.version = version;
}
if (os.platform() === "linux") {
// Electron crashes on debian if there's a space in the path.
// https://github.com/vector-im/element-web/issues/13171
config.extraMetadata.productName = config.extraMetadata.productName.replace(/ /g, "-");
/**
* Allow specifying deb changelog via env var
* @param {string} process.env.ED_DEB_CHANGELOG
*/
if (process.env.ED_DEBIAN_CHANGELOG) {
config.deb.fpm.push(`--deb-changelog=${process.env.ED_DEBIAN_CHANGELOG}`);
}
if (process.env.SQLCIPHER_BUNDLED) {
// Remove sqlcipher dependency when using bundled
config.deb.recommends = config.deb.recommends?.filter((d) => d !== "libsqlcipher0");
}
}
export default config;

View File

@@ -1,6 +1,14 @@
{
"update_base_url": "https://packages.element.io/nightly/update/",
"default_server_name": "matrix.org",
"default_server_config": {
"m.homeserver": {
"base_url": "https://matrix-client.matrix.org"
},
"m.identity_server": {
"base_url": "https://vector.im"
}
},
"brand": "Element Nightly",
"integrations_ui_url": "https://scalar.vector.im/",
"integrations_rest_url": "https://scalar.vector.im/api",
@@ -11,16 +19,11 @@
"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"
]
"show_labs_settings": true,
"room_directory": {
"servers": ["matrix.org", "gitter.im"]
},
"enable_presence_by_hs_url": {
"https://matrix.org": false,
@@ -41,16 +44,22 @@
"environment": "nightly"
},
"posthog": {
"projectApiKey": "phc_Jzsm6DTm6V2705zeU5dcNvQDlonOR68XvX2sh1sEOHO",
"apiHost": "https://posthog.element.io"
"project_api_key": "phc_Jzsm6DTm6V2705zeU5dcNvQDlonOR68XvX2sh1sEOHO",
"api_host": "https://posthog.element.io"
},
"privacy_policy_url": "https://element.io/cookie-policy",
"features": {
"threadsActivityCentre": true,
"feature_spotlight": true,
"feature_video_rooms": true
"feature_video_rooms": true,
"feature_element_call_video_rooms": true,
"feature_new_room_decoration_ui": true
},
"setting_defaults": {
"RustCrypto.staged_rollout_percent": 100
},
"element_call": {
"url": "https://element-call.netlify.app"
"url": "https://call.element.dev"
},
"map_style_url": "https://api.maptiler.com/maps/streets/style.json?key=fU3vlMsMn4Jb6dnEIFsx"
}

View File

@@ -1,12 +0,0 @@
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).

View File

@@ -1,9 +0,0 @@
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.

View File

@@ -1,81 +0,0 @@
Origin: riot.im
Codename: default
Architectures: amd64 i386 source
Components: main
SignWith: D7B0B66941D01538
Tracking: minimal
Origin: riot.im
Suite: oldoldstable
Codename: jessie
Architectures: amd64 i386 source
Components: main
SignWith: D7B0B66941D01538
Tracking: minimal
Origin: riot.im
Suite: oldstable
Codename: stretch
Architectures: amd64 i386 source
Components: main
SignWith: D7B0B66941D01538
Tracking: minimal
Origin: riot.im
Suite: stable
Codename: buster
Architectures: amd64 i386 source
Components: main
SignWith: D7B0B66941D01538
Tracking: minimal
Origin: riot.im
Suite: testing
Codename: bullseye
Architectures: amd64 i386 source
Components: main
SignWith: D7B0B66941D01538
Tracking: minimal
Origin: riot.im
Suite: unstable
Codename: sid
Architectures: amd64 i386 source
Components: main
SignWith: D7B0B66941D01538
Tracking: minimal
Origin: riot.im
Codename: xenial
Architectures: amd64 i386 source
Components: main
SignWith: D7B0B66941D01538
Tracking: minimal
Origin: riot.im
Codename: bionic
Architectures: amd64 i386 source
Components: main
SignWith: D7B0B66941D01538
Tracking: minimal
Origin: riot.im
Codename: cosmic
Architectures: amd64 i386 source
Components: main
SignWith: D7B0B66941D01538
Tracking: minimal
Origin: riot.im
Codename: disco
Architectures: amd64 i386 source
Components: main
SignWith: D7B0B66941D01538
Tracking: minimal
Origin: riot.im
Codename: eoan
Architectures: amd64 i386 source
Components: main
SignWith: D7B0B66941D01538
Tracking: minimal

View File

@@ -1,6 +1,14 @@
{
"update_base_url": "https://packages.element.io/desktop/update/",
"default_server_name": "matrix.org",
"default_server_config": {
"m.homeserver": {
"base_url": "https://matrix-client.matrix.org"
},
"m.identity_server": {
"base_url": "https://vector.im"
}
},
"brand": "Element",
"integrations_ui_url": "https://scalar.vector.im/",
"integrations_rest_url": "https://scalar.vector.im/api",
@@ -11,17 +19,12 @@
"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"
]
"room_directory": {
"servers": ["matrix.org", "gitter.im"]
},
"showLabsSettings": false,
"show_labs_settings": false,
"enable_presence_by_hs_url": {
"https://matrix.org": false,
"https://matrix-client.matrix.org": false
@@ -37,9 +40,12 @@
}
],
"posthog": {
"projectApiKey": "phc_Jzsm6DTm6V2705zeU5dcNvQDlonOR68XvX2sh1sEOHO",
"apiHost": "https://posthog.element.io"
"project_api_key": "phc_Jzsm6DTm6V2705zeU5dcNvQDlonOR68XvX2sh1sEOHO",
"api_host": "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"
"map_style_url": "https://api.maptiler.com/maps/streets/style.json?key=fU3vlMsMn4Jb6dnEIFsx",
"setting_defaults": {
"RustCrypto.staged_rollout_percent": 60
}
}

View File

@@ -1,14 +0,0 @@
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

View File

@@ -1,9 +0,0 @@
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.

View File

@@ -14,11 +14,11 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
import path from 'path';
import childProcess from 'child_process';
import path from "path";
import childProcess from "child_process";
import HakEnv from '../../scripts/hak/hakEnv';
import { DependencyInfo } from '../../scripts/hak/dep';
import HakEnv from "../../scripts/hak/hakEnv";
import { DependencyInfo } from "../../scripts/hak/dep";
export default async function buildKeytar(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
const env = hakEnv.makeGypEnv();
@@ -26,15 +26,18 @@ export default async function buildKeytar(hakEnv: HakEnv, moduleInfo: Dependency
console.log("Running yarn with env", env);
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(
path.join(moduleInfo.nodeModuleBinDir, 'node-gyp' + (hakEnv.isWin() ? '.cmd' : '')),
['rebuild'],
path.join(moduleInfo.nodeModuleBinDir, "node-gyp" + (hakEnv.isWin() ? ".cmd" : "")),
["rebuild", "--arch", hakEnv.getTargetArch()],
{
cwd: moduleInfo.moduleBuildDir,
env,
stdio: 'inherit',
stdio: "inherit",
// We need shell mode on Windows to be able to launch `.cmd` executables
// See https://nodejs.org/en/blog/vulnerability/april-2024-security-releases-2
shell: hakEnv.isWin(),
},
);
proc.on('exit', (code) => {
proc.on("exit", (code) => {
code ? reject(code) : resolve();
});
});

View File

@@ -14,20 +14,20 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
import childProcess from 'child_process';
import childProcess from "child_process";
import HakEnv from '../../scripts/hak/hakEnv';
import { DependencyInfo } from '../../scripts/hak/dep';
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
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<void>((resolve, reject) => {
const proc = childProcess.spawn(tool[0], tool.slice(1), {
stdio: ['ignore'],
stdio: ["ignore"],
});
proc.on('exit', (code) => {
proc.on("exit", (code) => {
if (code !== 0) {
reject("Can't find " + tool);
} else {

View File

@@ -14,319 +14,42 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
import path from 'path';
import childProcess from 'child_process';
import mkdirp from 'mkdirp';
import fsExtra from 'fs-extra';
import childProcess from "child_process";
import HakEnv from '../../scripts/hak/hakEnv';
import { DependencyInfo } from '../../scripts/hak/dep';
import HakEnv from "../../scripts/hak/hakEnv";
import { DependencyInfo } from "../../scripts/hak/dep";
export default async function(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
if (hakEnv.isWin()) {
await buildOpenSslWin(hakEnv, moduleInfo);
await buildSqlCipherWin(hakEnv, moduleInfo);
} else if (hakEnv.wantsStaticSqlCipherUnix()) {
await buildSqlCipherUnix(hakEnv, moduleInfo);
}
await buildMatrixSeshat(hakEnv, moduleInfo);
}
async function buildOpenSslWin(hakEnv: HakEnv, moduleInfo: DependencyInfo) {
const version = moduleInfo.cfg.dependencies.openssl;
const openSslDir = path.join(moduleInfo.moduleTargetDotHakDir, `openssl-${version}`);
const openSslArch = hakEnv.getTargetArch() === 'x64' ? 'VC-WIN64A' : 'VC-WIN32';
console.log("Building openssl in " + openSslDir);
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.
'no-afalgeng',
'no-capieng',
'no-cms',
'no-ct',
'no-deprecated',
'no-dgram',
'no-dso',
'no-ec',
'no-ec2m',
'no-gost',
'no-nextprotoneg',
'no-ocsp',
'no-sock',
'no-srp',
'no-srtp',
'no-tests',
'no-ssl',
'no-tls',
'no-dtls',
'no-shared',
'no-aria',
'no-camellia',
'no-cast',
'no-chacha',
'no-cmac',
'no-des',
'no-dh',
'no-dsa',
'no-ecdh',
'no-ecdsa',
'no-idea',
'no-md4',
'no-mdc2',
'no-ocb',
'no-poly1305',
'no-rc2',
'no-rc4',
'no-rmd160',
'no-scrypt',
'no-seed',
'no-siphash',
'no-sm2',
'no-sm3',
'no-sm4',
'no-whirlpool',
openSslArch,
],
{
cwd: openSslDir,
stdio: 'inherit',
},
);
proc.on('exit', (code) => {
code ? reject(code) : resolve();
});
});
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(
'nmake',
['build_libs'],
{
cwd: openSslDir,
stdio: 'inherit',
},
);
proc.on('exit', (code) => {
code ? reject(code) : resolve();
});
});
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(
'nmake',
['install_dev'],
{
cwd: openSslDir,
stdio: 'inherit',
},
);
proc.on('exit', (code) => {
code ? reject(code) : resolve();
});
});
}
async function buildSqlCipherWin(hakEnv: HakEnv, moduleInfo: DependencyInfo) {
const version = moduleInfo.cfg.dependencies.sqlcipher;
const sqlCipherDir = path.join(moduleInfo.moduleTargetDotHakDir, `sqlcipher-${version}`);
const buildDir = path.join(sqlCipherDir, 'bld');
await mkdirp(buildDir);
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(
'nmake',
['/f', path.join('..', 'Makefile.msc'), 'libsqlite3.lib', 'TOP=..'],
{
cwd: buildDir,
stdio: 'inherit',
env: Object.assign({}, process.env, {
CCOPTS: "-DSQLITE_HAS_CODEC -I" + path.join(moduleInfo.depPrefix, 'include'),
LTLIBPATHS: "/LIBPATH:" + path.join(moduleInfo.depPrefix, 'lib'),
LTLIBS: "libcrypto.lib",
}),
},
);
proc.on('exit', (code) => {
code ? reject(code) : resolve();
});
});
await fsExtra.copy(
path.join(buildDir, 'libsqlite3.lib'),
path.join(moduleInfo.depPrefix, 'lib', 'sqlcipher.lib'),
);
await fsExtra.copy(
path.join(buildDir, 'sqlite3.h'),
path.join(moduleInfo.depPrefix, 'include', 'sqlcipher.h'),
);
}
async function buildSqlCipherUnix(hakEnv: HakEnv, moduleInfo: DependencyInfo) {
const version = moduleInfo.cfg.dependencies.sqlcipher;
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');
}
if (hakEnv.wantsStaticSqlCipherUnix()) {
args.push('--enable-tcl=no');
if (hakEnv.isLinux()) {
args.push('--with-pic=yes');
}
}
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,
{
cwd: sqlCipherDir,
stdio: 'inherit',
},
);
proc.on('exit', (code) => {
code ? reject(code) : resolve();
});
});
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(
'make',
[],
{
cwd: sqlCipherDir,
stdio: 'inherit',
},
);
proc.on('exit', (code) => {
code ? reject(code) : resolve();
});
});
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(
'make',
['install'],
{
cwd: sqlCipherDir,
stdio: 'inherit',
},
);
proc.on('exit', (code) => {
code ? reject(code) : resolve();
});
});
}
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.
export default async function (hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
const env = hakEnv.makeGypEnv();
if (!hakEnv.isLinux() || hakEnv.wantsStaticSqlCipherUnix()) {
Object.assign(env, {
SQLCIPHER_STATIC: 1,
SQLCIPHER_LIB_DIR: path.join(moduleInfo.depPrefix, 'lib'),
SQLCIPHER_INCLUDE_DIR: path.join(moduleInfo.depPrefix, 'include'),
});
}
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
// the matching toolchain, however for this, cargo gets confused when building
// 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 = `stable-${hakEnv.getTargetId()}`;
}
if (!hakEnv.isHost()) {
env.CARGO_BUILD_TARGET = hakEnv.getTargetId();
}
console.log("Running neon with env", env);
console.log("Running yarn install");
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(
path.join(moduleInfo.nodeModuleBinDir, 'neon' + (hakEnv.isWin() ? '.cmd' : '')),
['build', '--release'],
{
cwd: moduleInfo.moduleBuildDir,
env,
stdio: 'inherit',
},
);
proc.on('exit', (code) => {
const proc = childProcess.spawn("yarn" + (hakEnv.isWin() ? ".cmd" : ""), ["install"], {
cwd: moduleInfo.moduleBuildDir,
env,
shell: true,
stdio: "inherit",
});
proc.on("exit", (code) => {
code ? reject(code) : resolve();
});
});
const buildTarget = hakEnv.wantsStaticSqlCipher() ? "build-bundled" : "build";
console.log("Running yarn build");
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn("yarn" + (hakEnv.isWin() ? ".cmd" : ""), ["run", buildTarget], {
cwd: moduleInfo.moduleBuildDir,
env,
shell: true,
stdio: "inherit",
});
proc.on("exit", (code) => {
code ? reject(code) : resolve();
});
});

View File

@@ -14,49 +14,32 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
import childProcess from 'child_process';
import fsProm from 'fs/promises';
import childProcess from "child_process";
import fsProm from "fs/promises";
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'],
});
proc.on('exit', (code) => {
if (code !== 0) {
reject("Can't find tclsh - have you installed TCL?");
} else {
resolve();
}
});
proc.stdin.end();
});
}
import HakEnv from "../../scripts/hak/hakEnv";
import { DependencyInfo } from "../../scripts/hak/dep";
export default async function (hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
const tools = [
['rustc', '--version'],
['python', '--version'], // node-gyp uses python for reasons beyond comprehension
["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', '/?']);
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 {
tools.push(['make', '--version']);
tools.push(["make", "--version"]);
}
for (const tool of tools) {
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(tool[0], tool.slice(1), {
stdio: ['ignore'],
stdio: ["ignore"],
});
proc.on('exit', (code) => {
proc.on("exit", (code) => {
if (code !== 0) {
reject("Can't find " + tool);
} else {
@@ -68,19 +51,26 @@ export default async function(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promi
// 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();
const rustc = childProcess.execFile(
"rustc",
["--target", hakEnv.getTargetId(), "--emit=obj", "-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.stdout!.pipe(process.stdout);
rustc.stderr!.pipe(process.stderr);
rustc.stdin!.end();
});
}

View File

@@ -1,132 +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.
*/
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';
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()) {
await getSqlCipher(hakEnv, moduleInfo);
}
if (hakEnv.isWin()) {
await getOpenSsl(hakEnv, moduleInfo);
}
}
async function getSqlCipher(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
const version = moduleInfo.cfg.dependencies.sqlcipher;
const sqlCipherDir = path.join(moduleInfo.moduleTargetDotHakDir, `sqlcipher-${version}`);
let haveSqlcipher: boolean;
try {
await fsProm.stat(sqlCipherDir);
haveSqlcipher = true;
} catch (e) {
haveSqlcipher = false;
}
if (haveSqlcipher) return;
const sqlCipherTarball = path.join(moduleInfo.moduleDotHakDir, `sqlcipher-${version}.tar.gz`);
let haveSqlcipherTar: boolean;
try {
await fsProm.stat(sqlCipherTarball);
haveSqlcipherTar = true;
} catch (e) {
haveSqlcipherTar = false;
}
if (!haveSqlcipherTar) {
const bob = needle('get', `https://github.com/sqlcipher/sqlcipher/archive/v${version}.tar.gz`, {
follow: 10,
output: sqlCipherTarball,
});
await bob;
}
// Extract the tarball to per-target directories, then we avoid cross-contaiminating archs
await tar.x({
file: sqlCipherTarball,
cwd: moduleInfo.moduleTargetDotHakDir,
});
if (hakEnv.isWin()) {
// On Windows, we need to patch the makefile because it forces TEMP_STORE to
// default to files (1) but the README specifically says you '*must*' set it
// set it to 2 (default to memory).
const patchFile = path.join(moduleInfo.moduleHakDir, `sqlcipher-${version}-win.patch`);
await new Promise<void>((resolve, reject) => {
const readStream = fs.createReadStream(patchFile);
const proc = childProcess.spawn(
'patch',
['-p1'],
{
cwd: sqlCipherDir,
stdio: ['pipe', 'inherit', 'inherit'],
},
);
proc.on('exit', (code) => {
code ? reject(code) : resolve();
});
readStream.pipe(proc.stdin);
});
}
}
async function getOpenSsl(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
const version = moduleInfo.cfg.dependencies.openssl;
const openSslDir = path.join(moduleInfo.moduleTargetDotHakDir, `openssl-${version}`);
let haveOpenSsl: boolean;
try {
await fsProm.stat(openSslDir);
haveOpenSsl = true;
} catch (e) {
haveOpenSsl = false;
}
if (haveOpenSsl) return;
const openSslTarball = path.join(moduleInfo.moduleDotHakDir, `openssl-${version}.tar.gz`);
let haveOpenSslTar: boolean;
try {
await fsProm.stat(openSslTarball);
haveOpenSslTar = true;
} catch (e) {
haveOpenSslTar = false;
}
if (!haveOpenSslTar) {
await needle('get', `https://www.openssl.org/source/openssl-${version}.tar.gz`, {
follow: 10,
output: openSslTarball,
});
}
console.log("extracting " + openSslTarball + " in " + moduleInfo.moduleTargetDotHakDir);
await tar.x({
file: openSslTarball,
cwd: moduleInfo.moduleTargetDotHakDir,
});
}

View File

@@ -1,13 +1,7 @@
{
"scripts": {
"check": "check.ts",
"fetchDeps": "fetchDeps.ts",
"build": "build.ts"
},
"prune": "native",
"copy": "native/index.node",
"dependencies": {
"openssl": "1.1.1f",
"sqlcipher": "4.3.0"
}
"copy": "index.node"
}

View File

@@ -1,14 +0,0 @@
diff -Nur sqlcipher-4.3.0-orig/Makefile.msc sqlcipher-4.3.0-mod/Makefile.msc
--- sqlcipher-4.3.0-orig/Makefile.msc 2019-12-20 16:40:26.000000000 +0000
+++ sqlcipher-4.3.0-mod/Makefile.msc 2020-02-14 11:31:39.000000000 +0000
@@ -985,8 +985,8 @@
# default to file, 2 to default to memory, and 3 to force temporary
# tables to always be in memory.
#
-TCC = $(TCC) -DSQLITE_TEMP_STORE=1
-RCC = $(RCC) -DSQLITE_TEMP_STORE=1
+TCC = $(TCC) -DSQLITE_TEMP_STORE=2
+RCC = $(RCC) -DSQLITE_TEMP_STORE=2
# Enable/disable loadable extensions, and other optional features
# based on configuration. (-DSQLITE_OMIT*, -DSQLITE_ENABLE*).

View File

@@ -1,17 +1,14 @@
{
"compilerOptions": {
"moduleResolution": "node",
"esModuleInterop": true,
"target": "es2016",
"sourceMap": false,
"lib": [
"es2019",
]
},
"include": [
"./**/*.ts"
],
"ts-node": {
"transpileOnly": true
}
"compilerOptions": {
"moduleResolution": "node",
"esModuleInterop": true,
"target": "es2022",
"sourceMap": false,
"strict": true,
"lib": ["es2022"]
},
"include": ["../scripts/@types/*.d.ts", "./**/*.ts"],
"ts-node": {
"transpileOnly": true
}
}

17
knip.ts Normal file
View File

@@ -0,0 +1,17 @@
import { KnipConfig } from "knip";
export default {
entry: ["src/electron-main.ts", "src/preload.ts", "electron-builder.ts", ".eslintrc-*.js", "scripts/**", "hak/**"],
project: ["**/*.{js,ts}"],
ignoreDependencies: [
// Brought in via hak scripts
"keytar",
"matrix-seshat",
// Needed by `electron-builder`
"electron-builder-squirrel-windows",
"@types/yargs",
// Required for `action-validator`
"@action-validator/*",
],
ignoreBinaries: ["jq", "scripts/in-docker.sh"],
} satisfies KnipConfig;

37
localazy.json Normal file
View File

@@ -0,0 +1,37 @@
{
"readKey": "a7688614897667993891-866e2615b0a22e6ccef56aea9b10e815efa3e1296752a7a30bd9925f1a8f33e7",
"upload": {
"type": "json",
"keySeparator": "|",
"deprecate": "file",
"features": ["plural_object", "filter_untranslated"],
"files": [
{
"pattern": "src/i18n/strings/en_EN.json",
"file": "element-desktop.json",
"lang": "inherited"
},
{
"group": "existing",
"pattern": "src/i18n/strings/*.json",
"file": "element-desktop.json",
"excludes": ["src/i18n/strings/en_EN.json"],
"lang": "${autodetectLang}"
}
]
},
"download": {
"files": [
{
"conditions": "equals: ${file}, element-desktop.json",
"output": "src/i18n/strings/${langLsrUnderscore}.json"
}
],
"includeSourceLang": "${includeSourceLang|false}",
"langAliases": {
"en": "en-EN"
}
}
}

View File

@@ -1,168 +1,128 @@
{
"name": "element-desktop",
"productName": "Element",
"main": "lib/electron-main.js",
"version": "1.11.13",
"description": "A feature-rich client for Matrix.org",
"author": "Element",
"repository": {
"type": "git",
"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": "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",
"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 lib",
"hak": "ts-node scripts/hak/index.ts",
"test": "jest"
},
"dependencies": {
"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",
"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",
"jest": "^28",
"matrix-web-i18n": "^1.3.0",
"mkdirp": "^1.0.3",
"needle": "^2.5.0",
"node-pre-gyp": "^0.15.0",
"pacote": "^11.3.5",
"playwright": "^1.25.0",
"rimraf": "^3.0.2",
"tar": "^6.1.2",
"ts-jest": "^28.0.8",
"ts-node": "^10.4.0",
"typescript": "4.5.5"
},
"hakDependencies": {
"matrix-seshat": "^2.3.3",
"keytar": "^7.9.0"
},
"resolutions": {
"@types/node": "16.11.38"
},
"build": {
"appId": "im.riot.app",
"asarUnpack": "**/*.node",
"files": [
"package.json",
{
"from": ".hak/hakModules",
"to": "node_modules"
},
"lib/**"
],
"extraResources": [
{
"from": "res/img",
"to": "img"
},
"webapp.asar"
],
"linux": {
"target": "deb",
"category": "Network;InstantMessaging;Chat",
"maintainer": "support@element.io",
"desktop": {
"StartupWMClass": "element"
}
"name": "element-desktop",
"productName": "Element",
"main": "lib/electron-main.js",
"version": "1.11.79",
"description": "A feature-rich client for Matrix.org",
"author": "Element",
"homepage": "https://element.io",
"repository": {
"type": "git",
"url": "https://github.com/vector-im/element-desktop"
},
"mac": {
"category": "public.app-category.social-networking",
"darkModeSupport": true
"license": "Apache-2.0",
"files": [],
"engines": {
"node": ">=18.0.0"
},
"win": {
"target": [
"squirrel",
"msi"
],
"sign": "scripts/electron_winSign"
"scripts": {
"i18n": "matrix-gen-i18n && yarn i18n:sort && yarn i18n:lint",
"i18n:sort": "jq --sort-keys '.' src/i18n/strings/en_EN.json > src/i18n/strings/en_EN.json.tmp && mv src/i18n/strings/en_EN.json.tmp src/i18n/strings/en_EN.json",
"i18n:lint": "prettier --log-level=silent --write src/i18n/strings/ --ignore-path /dev/null",
"i18n:diff": "cp src/i18n/strings/en_EN.json src/i18n/strings/en_EN_orig.json && yarn 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 && ts-node scripts/fetch-package.ts",
"asar-webapp": "asar p webapp webapp.asar",
"start": "yarn run build:ts && yarn run build:res && electron .",
"lint": "yarn lint:types && yarn lint:js && yarn lint:workflows",
"lint:js": "yarn lint:js:src && yarn lint:js:test && yarn lint:js:scripts && yarn lint:js:hak && prettier --check .",
"lint:js:src": "eslint --max-warnings 0 src",
"lint:js:test": "eslint --max-warnings 0 --config .eslintrc-test.js playwright",
"lint:js:scripts": "eslint --max-warnings 0 --config .eslintrc-scripts.js scripts",
"lint:js:hak": "eslint --max-warnings 0 --config .eslintrc-hak.js hak",
"lint:js-fix": "yarn lint:js-fix:src &&yarn lint:js-fix:test && yarn lint:js-fix:scripts && yarn lint:js-fix:hak && prettier --log-level=warn --write .",
"lint:js-fix:src": "eslint --fix --max-warnings 0 src",
"lint:js-fix:test": "eslint --fix --max-warnings 0 --config .eslintrc-test.js playwright",
"lint:js-fix:scripts": "eslint --fix --max-warnings 0 --config .eslintrc-scripts.js scripts",
"lint:js-fix:hak": "eslint --fix --max-warnings 0 --config .eslintrc-hak.js hak",
"lint:types": "yarn lint:types:src && yarn lint:types:test && yarn lint:types:scripts && yarn lint:types:hak",
"lint:types:src": "tsc --noEmit",
"lint:types:test": "tsc --noEmit -p playwright/tsconfig.json",
"lint:types:scripts": "tsc --noEmit -p scripts/tsconfig.json",
"lint:types:hak": "tsc --noEmit -p hak/tsconfig.json",
"lint:workflows": "find .github/workflows -type f \\( -iname '*.yaml' -o -iname '*.yml' \\) | xargs -I {} sh -c 'echo \"Linting {}\"; action-validator \"{}\"'",
"lint:knip": "knip",
"build:native": "yarn run hak",
"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": "ts-node scripts/copy-res.ts",
"docker:setup": "docker build --platform linux/amd64 -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",
"clean": "rimraf webapp.asar dist packages deploys lib",
"hak": "ts-node scripts/hak/index.ts",
"test": "playwright test",
"test:open": "yarn test --ui",
"test:screenshots:build": "docker build playwright -t element-desktop-playwright --platform linux/amd64",
"test:screenshots:run": "docker run --rm --network host -v $(pwd):/work/element-desktop -v /var/run/docker.sock:/var/run/docker.sock --platform linux/amd64 -it element-desktop-playwright"
},
"msi": {
"perMachine": true
"dependencies": {
"@sentry/electron": "^5.0.0",
"auto-launch": "^5.0.5",
"counterpart": "^0.18.6",
"electron-clear-data": "^1.0.5",
"electron-store": "^8.0.2",
"electron-window-state": "^5.0.3",
"minimist": "^1.2.6",
"node-fetch": "^2",
"png-to-ico": "^2.1.1",
"uuid": "^10.0.0"
},
"directories": {
"output": "dist"
"devDependencies": {
"@action-validator/cli": "^0.6.0",
"@action-validator/core": "^0.6.0",
"@babel/core": "^7.18.10",
"@babel/preset-env": "^7.18.10",
"@babel/preset-typescript": "^7.18.6",
"@electron/asar": "^3.2.3",
"@electron/fuses": "^1.7.0",
"@mapbox/node-pre-gyp": "^1.0.11",
"@playwright/test": "1.46.1",
"@types/auto-launch": "^5.0.1",
"@types/counterpart": "^0.18.1",
"@types/minimist": "^1.2.1",
"@types/node": "18.19.45",
"@types/pacote": "^11.1.1",
"@types/tar": "^6.1.3",
"@types/uuid": "^10.0.0",
"@types/yargs": "^17.0.32",
"@typescript-eslint/eslint-plugin": "^7.0.0",
"@typescript-eslint/parser": "^7.0.0",
"app-builder-lib": "24.13.3",
"chokidar": "^3.5.2",
"detect-libc": "^2.0.0",
"electron": "^31.0.0",
"electron-builder": "24.13.3",
"electron-builder-squirrel-windows": "24.13.3",
"electron-devtools-installer": "^3.2.0",
"eslint": "^8.26.0",
"eslint-config-google": "^0.14.0",
"eslint-config-prettier": "^9.0.0",
"eslint-plugin-import": "^2.25.4",
"eslint-plugin-matrix-org": "^1.0.0",
"eslint-plugin-unicorn": "^55.0.0",
"glob": "^11.0.0",
"knip": "^5.0.0",
"matrix-web-i18n": "^3.2.1",
"mkdirp": "^3.0.0",
"pacote": "^18.0.0",
"prettier": "^3.0.0",
"rimraf": "^6.0.0",
"tar": "^6.2.1",
"ts-node": "^10.9.1",
"typescript": "5.5.4"
},
"afterPack": "scripts/electron_afterPack",
"afterSign": "scripts/electron_afterSign",
"protocols": [
{
"name": "element",
"schemes": [
"element"
]
}
]
},
"jest": {
"testEnvironment": "node",
"testMatch": [
"<rootDir>/test/**/*-test.[jt]s?(x)"
],
"setupFilesAfterEnv": [
"expect-playwright"
]
}
"hakDependencies": {
"matrix-seshat": "^4.0.0",
"keytar": "^7.9.0"
},
"resolutions": {
"@types/node": "18.19.45",
"config-file-ts": "0.2.8-rc1"
}
}

33
playwright.config.ts Normal file
View File

@@ -0,0 +1,33 @@
/*
Copyright 2023 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 { defineConfig } from "@playwright/test";
export default defineConfig({
use: {
viewport: { width: 1280, height: 720 },
video: "retain-on-failure",
trace: "on-first-retry",
},
testDir: "playwright/e2e",
outputDir: "playwright/test-results",
workers: 1,
retries: process.env.CI ? 2 : 0,
reporter: [["html", { outputFolder: "playwright/html-report" }]],
snapshotDir: "playwright/snapshots",
snapshotPathTemplate: "{snapshotDir}/{testFilePath}/{arg}-{platform}{ext}",
timeout: 30 * 1000,
});

5
playwright/.gitignore vendored Normal file
View File

@@ -0,0 +1,5 @@
/test-results/
/html-report/
# Only commit snapshots from Linux
/snapshots/**/*.png
!/snapshots/**/*-linux.png

10
playwright/Dockerfile Normal file
View File

@@ -0,0 +1,10 @@
FROM mcr.microsoft.com/playwright:v1.46.1-jammy
WORKDIR /work/element-desktop
RUN apt-get update && apt-get -y install xvfb && apt-get purge -y --auto-remove && rm -rf /var/lib/apt/lists/*
USER 1000:1000
COPY docker-entrypoint.sh /opt/docker-entrypoint.sh
ENTRYPOINT ["bash", "/opt/docker-entrypoint.sh"]

View File

@@ -0,0 +1,11 @@
#!/bin/bash
set -e
echo "Starting Xvfb"
Xvfb :99 -ac &
sleep 2
export DISPLAY=:99
npx playwright test --update-snapshots --reporter line $1

View File

@@ -0,0 +1,48 @@
/*
Copyright 2022 - 2023 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 { test, expect } from "../../element-desktop-test";
declare global {
interface Window {
mxPlatformPeg: {
get(): {
getEventIndexingManager():
| {
supportsEventIndexing(): Promise<boolean>;
}
| undefined;
};
};
}
}
test.describe("App launch", () => {
test.slow();
test("should launch and render the welcome view successfully and support seshat", async ({ page }) => {
await page.locator("#matrixchat").waitFor();
await page.locator(".mx_Welcome").waitFor();
await expect(page).toHaveURL("vector://vector/webapp/#/welcome");
await expect(page).toHaveScreenshot();
const supported = await page.evaluate<boolean>(async () => {
const indexManager = window.mxPlatformPeg.get()?.getEventIndexingManager();
return await indexManager?.supportsEventIndexing();
});
expect(supported).toBe(true);
});
});

View File

@@ -0,0 +1,60 @@
/*
Copyright 2023 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 { _electron as electron, test as base, expect as baseExpect, type ElectronApplication } from "@playwright/test";
import fs from "node:fs/promises";
import path from "node:path";
import os from "node:os";
export const test = base.extend<{ app: ElectronApplication; tmpDir: string }>({
// eslint-disable-next-line no-empty-pattern
tmpDir: async ({}, use) => {
const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "element-desktop-tests-"));
console.log("Using temp profile directory: ", tmpDir);
await use(tmpDir);
await fs.rm(tmpDir, { recursive: true });
},
app: async ({ tmpDir }, use) => {
const args = ["--profile-dir", tmpDir];
const executablePath = process.env["ELEMENT_DESKTOP_EXECUTABLE"];
if (!executablePath) {
// Unpackaged mode testing
args.unshift(path.join(__dirname, "..", "lib", "electron-main.js"));
}
const app = await electron.launch({
env: process.env,
executablePath,
args,
});
app.process().stdout.pipe(process.stdout);
app.process().stderr.pipe(process.stderr);
await app.firstWindow();
await use(app);
},
page: async ({ app }, use) => {
const window = await app.firstWindow();
await use(window);
await app.close().catch((e) => {
console.error(e);
});
},
});
export const expect = baseExpect;

11
playwright/tsconfig.json Normal file
View File

@@ -0,0 +1,11 @@
{
"compilerOptions": {
"resolveJsonModule": true,
"moduleResolution": "node",
"esModuleInterop": true,
"target": "es2022",
"module": "es2022",
"lib": ["es2022", "dom"]
},
"include": ["**/*.ts"]
}

View File

@@ -1,9 +0,0 @@
#!/bin/bash
#
# Script to perform a release of element-desktop.
set -e
cd "$(dirname "$0")"
./node_modules/matrix-js-sdk/release.sh "$@"

20
scripts/@types/node-pre-gyp.d.ts vendored Normal file
View File

@@ -0,0 +1,20 @@
/*
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 "@mapbox/node-pre-gyp/lib/util/versioning" {
// eslint-disable-next-line @typescript-eslint/naming-convention
export function get_runtime_abi(runtime: string, version: string): string;
}

View File

@@ -1,127 +0,0 @@
#!/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));
}

81
scripts/copy-res.ts Executable file
View File

@@ -0,0 +1,81 @@
#!/usr/bin/env -S npx ts-node
// copies resources into the lib directory.
import parseArgs from "minimist";
import * as chokidar from "chokidar";
import * as path from "path";
import * as fs from "fs";
const argv = parseArgs(process.argv.slice(2), {});
const watch = argv.w;
const verbose = argv.v;
function errCheck(err?: Error): void {
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 });
type Translations = Record<string, Record<string, string> | string>;
function genLangFile(file: string, dest: string): void {
const translations: 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;
}
}
});
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);
}
}
/*
watch the input files for a given language,
regenerate the file, and regenerating languages.json with the new filename
*/
function watchLanguage(file: string, dest: string): void {
// 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: NodeJS.Timeout | undefined;
const makeLang = (): void => {
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): void => {
genLangFile(I18N_BASE_PATH + file, I18N_DEST);
}, {});
if (watch) {
INCLUDE_LANGS.forEach((file) => watchLanguage(I18N_BASE_PATH + file, I18N_DEST));
}

View File

@@ -1,15 +0,0 @@
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"));
}
};

View File

@@ -1,33 +0,0 @@
const { notarize } = require('electron-notarize');
let warned = false;
exports.default = async function(context) {
const { electronPlatformName, appOutDir } = context;
const appId = context.packager.info.appInfo.id;
if (electronPlatformName === 'darwin') {
const appName = context.packager.appInfo.productFilename;
// We get the password from keychain. The keychain stores
// user IDs too, but apparently altool can't get the user ID
// from the keychain, so we need to get it from the environment.
const userId = process.env.NOTARIZE_APPLE_ID;
if (userId === undefined) {
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;
}
console.log("Notarising macOS app. This may be some time.");
return await notarize({
appBundleId: appId,
appPath: `${appOutDir}/${appName}.app`,
appleId: userId,
appleIdPassword: '@keychain:NOTARIZE_CREDS',
});
}
};

View File

@@ -1,78 +0,0 @@
const { execFile } = require('child_process');
// Loosely based on computeSignToolArgs from app-builder-lib/src/codeSign/windowsCodeSign.ts
function computeSignToolArgs(options, keyContainer) {
const args = [];
if (process.env.ELECTRON_BUILDER_OFFLINE !== "true") {
const timestampingServiceUrl = options.options.timeStampServer || "http://timestamp.digicert.com";
args.push(
options.isNest || options.hash === "sha256" ? "/tr" : "/t",
options.isNest || options.hash === "sha256" ? (
options.options.rfc3161TimeStampServer || "http://timestamp.comodoca.com/rfc3161"
) : timestampingServiceUrl,
);
}
args.push('/kc', keyContainer);
// To use the hardware token (this should probably be less hardcoded)
args.push('/csp', 'eToken Base Cryptographic Provider');
// The certificate file. Somehow this appears to be the only way to specify
// the cert that works. If you specify the subject name or hash, it will
// say it can't associate the private key to the certificate.
// TODO: Find a way to pass this through from the electron-builder config
// 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', 'element.io\\New_Vector_Ltd.pem');
if (options.hash !== "sha1") {
args.push("/fd", options.hash);
if (process.env.ELECTRON_BUILDER_OFFLINE !== "true") {
args.push("/td", "sha256");
}
}
// msi does not support dual-signing
if (options.isNest) {
args.push("/as");
}
// https://github.com/electron-userland/electron-builder/issues/2875#issuecomment-387233610
args.push("/debug");
// must be last argument
args.push(options.path);
return args;
}
let warned = false;
exports.default = async function(options) {
const keyContainer = process.env.SIGNING_KEY_CONTAINER;
if (keyContainer === undefined) {
if (!warned) {
console.warn(
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" +
"! Skipping Windows signing. !\n" +
"! SIGNING_KEY_CONTAINER not defined. !\n" +
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",
);
warned = true;
}
return;
}
return new Promise((resolve, reject) => {
const args = ['sign'].concat(computeSignToolArgs(options, keyContainer));
execFile('signtool', args, {}, (error, stdout) => {
if (error) {
console.error("signtool failed with code " + error);
reject("signtool failed with code " + error);
console.log(stdout);
} else {
resolve();
}
});
});
};

View File

@@ -1,43 +1,41 @@
#!/usr/bin/env node
#!/usr/bin/env -S npx ts-node --resolveJsonModule
const process = require('process');
const path = require('path');
const fs = require('fs');
const fsPromises = require('fs').promises;
const childProcess = require('child_process');
const tar = require('tar');
const asar = require('asar');
const needle = require('needle');
import * as path from "path";
import { createWriteStream, promises as fs } from "fs";
import * as childProcess from "child_process";
import tar from "tar";
import * as asar from "@electron/asar";
import fetch from "node-fetch";
import { promises as stream } from "stream";
const riotDesktopPackageJson = require('../package.json');
const { setPackageVersion } = require('./set-version.js');
import riotDesktopPackageJson from "../package.json";
import { setPackageVersion } from "./set-version";
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://element-web-develop.element.io/develop.tar.gz";
const ASAR_PATH = 'webapp.asar';
const PACKAGE_URL_PREFIX = "https://github.com/element-hq/element-web/releases/download/";
const DEVELOP_TGZ_URL = "https://develop.element.io/develop.tar.gz";
const ASAR_PATH = "webapp.asar";
async function downloadToFile(url, filename) {
async function downloadToFile(url: string, filename: string): Promise<void> {
console.log("Downloading " + url + "...");
try {
await needle('get', url, null,
{
follow_max: 5,
output: filename,
},
);
const resp = await fetch(url);
if (!resp.ok) throw new Error(`unexpected response ${resp.statusText}`);
if (!resp.body) throw new Error(`unexpected response has no body ${resp.statusText}`);
await stream.pipeline(resp.body, createWriteStream(filename));
} catch (e) {
console.error(e);
try {
await fsPromises.unlink(filename);
await fs.unlink(filename);
} catch (_) {}
throw e;
}
}
async function verifyFile(filename) {
return new Promise((resolve, reject) => {
childProcess.execFile('gpg', ['--verify', filename + '.asc', filename], (error) => {
async function verifyFile(filename: string): Promise<void> {
return new Promise<void>((resolve, reject) => {
childProcess.execFile("gpg", ["--verify", filename + ".asc", filename], (error) => {
if (error) {
reject(error);
} else {
@@ -47,35 +45,35 @@ async function verifyFile(filename) {
});
}
async function main() {
async function main(): Promise<number | undefined> {
let verify = true;
let importkey = false;
let pkgDir = 'packages';
let deployDir = 'deploys';
let cfgDir;
let targetVersion;
let filename;
let url;
let pkgDir = "packages";
let deployDir = "deploys";
let cfgDir: string | undefined;
let targetVersion: string | undefined;
let filename: string | undefined;
let url: string | undefined;
let setVersion = false;
while (process.argv.length > 2) {
switch (process.argv[2]) {
case '--noverify':
case "--noverify":
verify = false;
break;
case '--importkey':
case "--importkey":
importkey = true;
break;
case '--packages':
case "--packages":
process.argv.shift();
pkgDir = process.argv[2];
break;
case '--deploys':
case "--deploys":
process.argv.shift();
deployDir = process.argv[2];
break;
case '--cfgdir':
case '-d':
case "--cfgdir":
case "-d":
process.argv.shift();
cfgDir = process.argv[2];
break;
@@ -86,13 +84,13 @@ async function main() {
}
if (targetVersion === undefined) {
targetVersion = 'v' + riotDesktopPackageJson.version;
} else if (targetVersion !== 'develop') {
targetVersion = "v" + riotDesktopPackageJson.version;
} else if (targetVersion !== "develop") {
setVersion = true; // version was specified
}
if (targetVersion === 'develop') {
filename = 'develop.tar.gz';
if (targetVersion === "develop") {
filename = "develop.tar.gz";
url = DEVELOP_TGZ_URL;
verify = false; // develop builds aren't signed
} else if (targetVersion.includes("://")) {
@@ -101,11 +99,11 @@ async function main() {
verify = false; // manually verified
} else {
filename = `element-${targetVersion}.tar.gz`;
url = PACKAGE_URL_PREFIX + targetVersion + '/' + filename;
url = PACKAGE_URL_PREFIX + targetVersion + "/" + filename;
}
const haveGpg = await new Promise((resolve) => {
childProcess.execFile('gpg', ['--version'], (error) => {
const haveGpg = await new Promise<boolean>((resolve) => {
childProcess.execFile("gpg", ["--version"], (error) => {
resolve(!error);
});
});
@@ -116,8 +114,8 @@ async function main() {
return 1;
}
await new Promise((resolve) => {
const gpgProc = childProcess.execFile('gpg', ['--import'], (error) => {
await new Promise<boolean>((resolve, reject) => {
const gpgProc = childProcess.execFile("gpg", ["--import"], (error) => {
if (error) {
console.log("Failed to import key", error);
} else {
@@ -125,7 +123,11 @@ async function main() {
}
resolve(!error);
});
needle.get(PUB_KEY_URL).pipe(gpgProc.stdin);
fetch(PUB_KEY_URL)
.then((resp) => {
stream.pipeline(resp.body, gpgProc.stdin!).catch(reject);
})
.catch(reject);
});
return 0;
}
@@ -143,18 +145,17 @@ async function main() {
}
let haveDeploy = false;
let 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");
haveDeploy = true;
} catch (e) {
}
} catch (e) {}
if (!haveDeploy) {
const outPath = path.join(pkgDir, filename);
try {
await fsPromises.stat(outPath);
await fs.stat(outPath);
console.log("Already have " + filename + ": not redownloading");
} catch (e) {
try {
@@ -167,11 +168,11 @@ async function main() {
if (verify) {
try {
await fsPromises.stat(outPath+'.asc');
await fs.stat(outPath + ".asc");
console.log("Already have " + filename + ".asc: not redownloading");
} catch (e) {
try {
await downloadToFile(url + '.asc', outPath + '.asc');
await downloadToFile(url + ".asc", outPath + ".asc");
} catch (e) {
console.log("Failed to download " + url, e);
return 1;
@@ -192,7 +193,7 @@ async function main() {
await tar.x({
file: outPath,
cwd: deployDir,
onentry: entry => {
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);
@@ -202,17 +203,16 @@ async function main() {
}
try {
await fsPromises.stat(ASAR_PATH);
await fs.stat(ASAR_PATH);
console.log(ASAR_PATH + " already present: removing");
await fsPromises.unlink(ASAR_PATH);
} catch (e) {
}
await fs.unlink(ASAR_PATH);
} catch (e) {}
if (cfgDir.length) {
const configJsonSource = path.join(cfgDir, 'config.json');
const configJsonDest = path.join(expectedDeployDir, 'config.json');
console.log(configJsonSource + ' -> ' + configJsonDest);
await fsPromises.copyFile(configJsonSource, configJsonDest);
const configJsonSource = path.join(cfgDir, "config.json");
const configJsonDest = path.join(expectedDeployDir, "config.json");
console.log(configJsonSource + " -> " + configJsonDest);
await fs.copyFile(configJsonSource, configJsonDest);
} else {
console.log("Skipping config file");
}
@@ -221,7 +221,7 @@ async function main() {
await asar.createPackage(expectedDeployDir, ASAR_PATH);
if (setVersion) {
const semVer = fs.readFileSync(path.join(expectedDeployDir, "version"), "utf-8").trim();
const semVer = (await fs.readFile(path.join(expectedDeployDir, "version"), "utf-8")).trim();
console.log("Updating version to " + semVer);
await setPackageVersion(semVer);
}
@@ -229,9 +229,11 @@ async function main() {
console.log("Done!");
}
main().then((ret) => {
process.exit(ret);
}).catch(e => {
console.error(e);
process.exit(1);
});
main()
.then((ret) => {
process.exit(ret);
})
.catch((e) => {
console.error(e);
process.exit(1);
});

View File

@@ -0,0 +1,41 @@
#!/usr/bin/env -S npx ts-node
/**
* Script to generate incremental Nightly build versions, based on the latest Nightly build version of that kind.
* The version format is YYYYMMDDNN where NN is in case we need to do multiple versions in a day.
*
* NB. on windows, squirrel will try to parse the version number parts, including this string, into 32-bit integers,
* which is fine as long as we only add two digits to the end...
*/
import parseArgs from "minimist";
const argv = parseArgs<{
latest?: string;
}>(process.argv.slice(2), {
string: ["latest"],
});
function parseVersion(version: string): [Date, number] {
const year = parseInt(version.slice(0, 4), 10);
const month = parseInt(version.slice(4, 6), 10);
const day = parseInt(version.slice(6, 8), 10);
const num = parseInt(version.slice(8, 10), 10);
return [new Date(year, month - 1, day), num];
}
const [latestDate, latestNum] = argv.latest ? parseVersion(argv.latest) : [];
const now = new Date();
const month = (now.getMonth() + 1).toString().padStart(2, "0");
const date = now.getDate().toString().padStart(2, "0");
let buildNum = 1;
if (latestDate && new Date(latestDate).getDate().toString().padStart(2, "0") === date) {
buildNum = latestNum! + 1;
}
if (buildNum > 99) {
throw new Error("Maximum number of Nightlies exceeded on this day.");
}
console.log(now.getFullYear() + month + date + buildNum.toString().padStart(2, "0"));

25
scripts/get-version.ts Executable file
View File

@@ -0,0 +1,25 @@
#!/usr/bin/env -S npx ts-node
/*
* Checks for the presence of a webapp, inspects its version and prints it
*/
import { versionFromAsar } from "./set-version";
async function main(): Promise<number> {
const version = await versionFromAsar();
console.log(version);
return 0;
}
if (require.main === module) {
main()
.then((ret) => {
process.exit(ret);
})
.catch((e) => {
console.error(e);
process.exit(1);
});
}

57
scripts/glibc-check.sh Executable file
View File

@@ -0,0 +1,57 @@
#!/usr/bin/env bash
# Source https://gist.github.com/vladimyr/9a03481154cd3048a486bdf71e5e1535/57e57a6ace6fb2c8bba948bce726df7a96c3f99f
# This scripts lets you check which minimum GLIBC version an executable requires.
# Simply run './glibc-check.sh path/to/your/binary'
MAX_VER="${MAX_VER:-2.28}"
BINARY="$1"
# Version comparison function in bash
vercomp() {
if [[ $1 == "$2" ]]; then
return 0
fi
local i ver1 ver2
IFS="." read -ra ver1 <<<"$1"
IFS="." read -ra ver2 <<<"$2"
# fill empty fields in ver1 with zeros
for ((i = ${#ver1[@]}; i < ${#ver2[@]}; i++)); do
ver1[i]=0
done
for ((i = 0; i < ${#ver1[@]}; i++)); do
if [[ -z ${ver2[i]} ]]; then
# fill empty fields in ver2 with zeros
ver2[i]=0
fi
if ((10#${ver1[i]} > 10#${ver2[i]})); then
return 1
fi
if ((10#${ver1[i]} < 10#${ver2[i]})); then
return 2
fi
done
return 0
}
IFS="
"
VERS=$(objdump -T "$BINARY" | grep GLIBC_ | sed 's/.*GLIBC_\([.0-9]*\).*/\1/g' | sort -u)
for VER in $VERS; do
vercomp "$VER" "$MAX_VER"
COMP=$?
if [[ $COMP -eq 1 ]]; then
echo "Error! ${BINARY} requests GLIBC ${VER}, which is higher than target ${MAX_VER}"
echo "Affected symbols:"
objdump -T "$BINARY" | grep -F "GLIBC_${VER}"
echo "Looking for symbols in libraries..."
for LIBRARY in $(ldd "$BINARY" | cut -d ' ' -f 3); do
echo "$LIBRARY"
objdump -T "$LIBRARY" | grep -F "GLIBC_${VER}"
done
exit 27
else
echo "Found version ${VER}"
fi
done

View File

@@ -1,40 +1,40 @@
hak
===
# hak
This tool builds native dependencies for element-desktop. Here follows some very minimal
documentation for it.
Goals:
* Must build compiled native node modules in a shippable state
(ie. only dynamically linked against libraries that will be on the
target system, all unnecessary files removed).
* Must be able to build any native module, no matter what build system
it uses (electron-rebuild is supposed to do this job but only works
for modules that use gyp).
- Must build compiled native node modules in a shippable state
(ie. only dynamically linked against libraries that will be on the
target system, all unnecessary files removed).
- Must be able to build any native module, no matter what build system
it uses (electron-rebuild is supposed to do this job but only works
for modules that use gyp).
It's also loosely designed to be a general tool and agnostic to what it's
actually building. It's used here to build modules for the electron app
but should work equally well for building modules for normal node.
Running
=======
# Running
Hak is invoked with a command and a dependency, eg. `yarn run hak fetch matrix-seshat`.
If no dependencies are given, hak runs the command on all dependencies.
Files
=====
# Files
There are a lot of files involved:
* scripts/hak/... - The tool itself
* hak/[dependency] - Files provided by the app that tell hak how to build each of its native dependencies.
Contains a hak.json file and also some script files, each of which must be referenced in hak.json.
* .hak/ - Files generated by hak in the course of doing its job. Includes the dependency module itself and
any of the native dependency's native dependencies.
* .hak/[dependency]/build - An extracted copy of the dependency's node module used to build it.
* .hak/[dependency]/out - Another extracted copy of the dependency, this one contains only what will be shipped.
- scripts/hak/... - The tool itself
- hak/[dependency] - Files provided by the app that tell hak how to build each of its native dependencies.
Contains a hak.json file and also some script files, each of which must be referenced in hak.json.
- .hak/ - Files generated by hak in the course of doing its job. Includes the dependency module itself and
any of the native dependency's native dependencies.
- .hak/[dependency]/build - An extracted copy of the dependency's node module used to build it.
- .hak/[dependency]/out - Another extracted copy of the dependency, this one contains only what will be shipped.
# Workings
Workings
========
Hak works around native node modules that try to fetch or build their native component in
the npm 'install' phase - modules that do this will typically end up with native components
targeted to the build platform and the node that npm/yarn is using, which is no good for an
@@ -49,33 +49,33 @@ This also means that the dependencies cannot be listed in `dependencies` or
try to fetch their native parts. Instead, they are listed in `hakDependencies` which
hak reads to install them for you.
Hak will *not* install dependencies for the copy of the module it links into your
Hak will _not_ install dependencies for the copy of the module it links into your
project, so if your native module has javascript dependencies that are actually needed at
runtime (and not just to fetch / build the native parts), it won't work.
Hak will generate a `.yarnrc` in the project directory to set the link directory to its
own in the .hak directory (unless one already exists, in which case this is your problem).
Lifecycle
=========
Hak is divided into lifecycle stages, in order:
* fetch - Download and extract the source of the dependency
* link - Link the copy of the dependency into your node_modules directory
* fetchDeps - Fetch & extract any native dependencies required to build the module.
* build - The Good Stuff. Configure and build any native dependencies, then the module itself.
* copy - Copy the built artifact from the module build directory to the module output directory.
# Lifecycle
Hak is divided into lifecycle stages, in order:
- fetch - Download and extract the source of the dependency
- link - Link the copy of the dependency into your node_modules directory
- build - The Good Stuff. Configure and build any native dependencies, then the module itself.
- copy - Copy the built artifact from the module build directory to the module output directory.
# hak.json
hak.json
========
The scripts section contains scripts used for lifecycle stages that need them (fetch, fetchDeps, build).
It also contains 'prune' and 'copy' which are globs of files to delete from the output module directory
and copy over from the module build directory to the output module directory, respectively.
Shortcomings
============
# Shortcomings
Hak doesn't know about dependencies between lifecycle stages, ie. it doesn't know that you need to
'fetch' and 'fetchDeps' before you can 'build', etc. You get to run each individually, and remember
the right order.
There is also a *lot* of duplication in the command execution: we should abstract away
There is also a _lot_ of duplication in the command execution: we should abstract away
some of the boilerplate required to run commands & so forth.

View File

@@ -14,40 +14,14 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
import path from 'path';
import rimraf from 'rimraf';
import path from "path";
import { rimraf } from "rimraf";
import { DependencyInfo } from './dep';
import HakEnv from './hakEnv';
import { DependencyInfo } from "./dep";
import HakEnv from "./hakEnv";
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 {
resolve();
}
});
});
await new Promise<void>((resolve, reject) => {
rimraf(path.join(hakEnv.dotHakDir, 'links', moduleInfo.name), (err: Error) => {
if (err) {
reject(err);
} else {
resolve();
}
});
});
await new Promise<void>((resolve, reject) => {
rimraf(path.join(hakEnv.projectRoot, 'node_modules', moduleInfo.name), (err: Error) => {
if (err) {
reject(err);
} else {
resolve();
}
});
});
await rimraf(moduleInfo.moduleDotHakDir);
await rimraf(path.join(hakEnv.dotHakDir, "links", moduleInfo.name));
await rimraf(path.join(hakEnv.projectRoot, "node_modules", moduleInfo.name));
}

View File

@@ -14,15 +14,15 @@ 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 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';
import HakEnv from "./hakEnv";
import { DependencyInfo } from "./dep";
export default async function copy(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
if (moduleInfo.cfg.prune) {
@@ -33,11 +33,7 @@ export default async function copy(hakEnv: HakEnv, moduleInfo: DependencyInfo):
try {
await mkdirp(moduleInfo.moduleOutDir);
process.chdir(moduleInfo.moduleOutDir);
await new Promise<void>((resolve, reject) => {
rimraf(moduleInfo.cfg.prune, {}, err => {
err ? reject(err) : resolve();
});
});
await rimraf(moduleInfo.cfg.prune);
} finally {
process.chdir(oldCwd);
}
@@ -47,47 +43,35 @@ export default async function copy(hakEnv: HakEnv, moduleInfo: DependencyInfo):
// 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);
});
const files = await glob(moduleInfo.cfg.copy, {
cwd: moduleInfo.moduleBuildDir,
});
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.",
"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 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();
}
},
);
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,
);
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);

View File

@@ -28,5 +28,5 @@ export interface DependencyInfo {
moduleOutDir: string;
nodeModuleBinDir: string;
depPrefix: string;
scripts: Record<string, (hakEnv: HakEnv, moduleInfo: DependencyInfo) => Promise<void> >;
scripts: Record<string, (hakEnv: HakEnv, moduleInfo: DependencyInfo) => Promise<void>>;
}

View File

@@ -14,12 +14,12 @@ 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 fsProm from "fs/promises";
import childProcess from "child_process";
import pacote from "pacote";
import HakEnv from './hakEnv';
import { DependencyInfo } from './dep';
import HakEnv from "./hakEnv";
import { DependencyInfo } from "./dep";
export default async function fetch(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
let haveModuleBuildDir;
@@ -41,15 +41,14 @@ export default async function fetch(hakEnv: HakEnv, moduleInfo: DependencyInfo):
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 => {
const proc = childProcess.spawn(hakEnv.isWin() ? "yarn.cmd" : "yarn", ["install", "--ignore-scripts"], {
stdio: "inherit",
cwd: moduleInfo.moduleBuildDir,
// We need shell mode on Windows to be able to launch `.cmd` executables
// See https://nodejs.org/en/blog/vulnerability/april-2024-security-releases-2
shell: hakEnv.isWin(),
});
proc.on("exit", (code) => {
code ? reject(code) : resolve();
});
});

View File

@@ -14,10 +14,10 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
import mkdirp from 'mkdirp';
import { mkdirp } from "mkdirp";
import { DependencyInfo } from './dep';
import HakEnv from './hakEnv';
import { DependencyInfo } from "./dep";
import HakEnv from "./hakEnv";
export default async function fetchDeps(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
await mkdirp(moduleInfo.moduleDotHakDir);

View File

@@ -14,20 +14,20 @@ 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 path from "path";
import os from "os";
import nodePreGypVersioning from "@mapbox/node-pre-gyp/lib/util/versioning";
import { getElectronVersionFromInstalled } from "app-builder-lib/out/electron/electronVersion";
import { Arch, Target, TARGETS, getHost, isHostId, TargetId } from './target';
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';
const electronVersion = await getElectronVersionFromInstalled(projectRoot);
return electronVersion ? "electron" : "node-webkit";
}
async function getRuntimeVersion(projectRoot: string): Promise<string> {
const electronVersion = await getElectronVersion(projectRoot);
const electronVersion = await getElectronVersionFromInstalled(projectRoot);
if (electronVersion) {
return electronVersion;
} else {
@@ -37,38 +37,35 @@ async function getRuntimeVersion(projectRoot: string): Promise<string> {
export default class HakEnv {
public readonly target: Target;
public runtime: string;
public runtimeVersion: string;
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();
}
public constructor(
public readonly projectRoot: string,
targetId: TargetId | null,
) {
const target = targetId ? TARGETS[targetId] : getHost();
if (!this.target) {
if (!target) {
throw new Error(`Unknown target ${targetId}!`);
}
this.dotHakDir = path.join(this.projectRoot, '.hak');
this.target = target;
this.dotHakDir = path.join(this.projectRoot, ".hak");
}
public async init() {
public async init(): Promise<void> {
this.runtime = await getRuntime(this.projectRoot);
this.runtimeVersion = await getRuntimeVersion(this.projectRoot);
}
public getRuntimeAbi(): string {
return nodePreGypVersioning.get_runtime_abi(
this.runtime,
this.runtimeVersion,
);
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;
return this.getRuntimeAbi() + "-" + this.target.platform + "-" + this.target.arch;
}
public getTargetId(): TargetId {
@@ -76,15 +73,19 @@ export default class HakEnv {
}
public isWin(): boolean {
return this.target.platform === 'win32';
return this.target.platform === "win32";
}
public isMac(): boolean {
return this.target.platform === 'darwin';
return this.target.platform === "darwin";
}
public isLinux(): boolean {
return this.target.platform === 'linux';
return this.target.platform === "linux";
}
public isFreeBSD(): boolean {
return this.target.platform === "freebsd";
}
public getTargetArch(): Arch {
@@ -95,27 +96,20 @@ export default class HakEnv {
return isHostId(this.target.id);
}
public makeGypEnv(): Record<string, string> {
return Object.assign({}, process.env, {
public makeGypEnv(): Record<string, string | undefined> {
return {
...process.env,
npm_config_arch: this.target.arch,
npm_config_target_arch: this.target.arch,
npm_config_disturl: 'https://electronjs.org/headers',
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_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();
return !(this.isLinux() || this.isFreeBSD()) || process.env.SQLCIPHER_BUNDLED == "1";
}
}

View File

@@ -14,45 +14,29 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
import path from 'path';
import findNpmPrefix from 'find-npm-prefix';
import path from "path";
import HakEnv from './hakEnv';
import { TargetId } from './target';
import { DependencyInfo } from './dep';
import HakEnv from "./hakEnv";
import { TargetId } from "./target";
import { DependencyInfo } from "./dep";
const GENERALCOMMANDS = [
'target',
];
const GENERALCOMMANDS = ["target"];
// These can only be run on specific modules
const MODULECOMMANDS = [
'check',
'fetch',
'link',
'fetchDeps',
'build',
'copy',
'clean',
];
const MODULECOMMANDS = ["check", "fetch", "link", "build", "copy", "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'],
const METACOMMANDS: Record<string, string[]> = {
fetchandbuild: ["check", "fetch", "build"],
copyandlink: ["copy", "link"],
};
// Scripts valid in a hak.json 'scripts' section
const HAKSCRIPTS = [
'check',
'fetch',
'fetchDeps',
'build',
];
const HAKSCRIPTS = ["check", "fetch", "build"];
async function main() {
const prefix = await findNpmPrefix(process.cwd());
async function main(): Promise<void> {
const prefix = path.join(__dirname, "..", "..");
let packageJson;
try {
packageJson = require(path.join(prefix, "package.json"));
@@ -65,11 +49,12 @@ async function main() {
// 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');
for (;;) {
// eslint-disable-line no-constant-condition
const targetIndex = process.argv.indexOf("--target");
if (targetIndex === -1) break;
if ((targetIndex + 1) >= process.argv.length) {
if (targetIndex + 1 >= process.argv.length) {
console.error("--target option specified without a target");
process.exit(1);
}
@@ -77,7 +62,7 @@ async function main() {
targetIds.push(process.argv.splice(targetIndex, 2)[1] as TargetId);
}
const hakEnvs = targetIds.map(tid => new HakEnv(prefix, tid));
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();
@@ -89,7 +74,7 @@ async function main() {
const hakDepsCfg = packageJson.hakDependencies || {};
for (const dep of Object.keys(hakDepsCfg)) {
const hakJsonPath = path.join(prefix, 'hak', dep, 'hak.json');
const hakJsonPath = path.join(prefix, "hak", dep, "hak.json");
let hakJson: Record<string, any>;
try {
hakJson = await require(hakJsonPath);
@@ -102,20 +87,20 @@ async function main() {
name: dep,
version: hakDepsCfg[dep],
cfg: hakJson,
moduleHakDir: path.join(prefix, 'hak', dep),
moduleHakDir: path.join(prefix, "hak", dep),
moduleDotHakDir: path.join(hakEnv.dotHakDir, dep),
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, hakEnv.getTargetId(), 'build', 'node_modules', '.bin'),
depPrefix: path.join(hakEnv.dotHakDir, dep, hakEnv.getTargetId(), 'opt'),
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, 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]) {
const scriptModule = await import(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 {
@@ -127,14 +112,14 @@ async function main() {
let cmds: string[];
if (process.argv.length < 3) {
cmds = ['check', 'fetch', 'fetchDeps', 'build', 'copy', 'link'];
cmds = ["check", "fetch", "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))) {
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;
@@ -145,7 +130,7 @@ async function main() {
for (const cmd of cmds) {
if (GENERALCOMMANDS.includes(cmd)) {
if (cmd === 'target') {
if (cmd === "target") {
console.log(hakEnv.getNodeTriple());
}
return;
@@ -160,15 +145,12 @@ async function main() {
process.exit(1);
}
const cmdFunc = (await import('./' + cmd)).default;
const cmdFunc = (await import("./" + cmd)).default;
for (const mod of modules) {
const depInfo = deps[mod];
if (depInfo === undefined) {
console.log(
"Module " + mod + " not found - is it in hakDependencies " +
"in your package.json?",
);
console.log("Module " + mod + " not found - is it in hakDependencies " + "in your package.json?");
process.exit(1);
}
console.log("hak " + cmd + ": " + mod);
@@ -177,7 +159,7 @@ async function main() {
}
}
main().catch(err => {
main().catch((err) => {
console.error(err);
process.exit(1);
});

View File

@@ -14,16 +14,16 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
import path from 'path';
import os from 'os';
import fsProm from 'fs/promises';
import childProcess from 'child_process';
import path from "path";
import os from "os";
import fsProm from "fs/promises";
import childProcess from "child_process";
import HakEnv from './hakEnv';
import { DependencyInfo } from './dep';
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');
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.
// We just check to see if there is a local .yarnrc at all, and assume that
@@ -43,28 +43,34 @@ export default async function link(hakEnv: HakEnv, moduleInfo: DependencyInfo):
// (ie. Windows absolute paths) but strings in quotes get parsed as
// JSON so need to be valid JSON encoded strings (ie. have the
// backslashes escaped). JSON.stringify will add quotes and escape.
'--link-folder ' + JSON.stringify(path.join(hakEnv.dotHakDir, 'links')) + os.EOL,
"--link-folder " + JSON.stringify(path.join(hakEnv.dotHakDir, "links")) + os.EOL,
);
}
const yarnCmd = 'yarn' + (hakEnv.isWin() ? '.cmd' : '');
const yarnCmd = "yarn" + (hakEnv.isWin() ? ".cmd" : "");
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(yarnCmd, ['link'], {
const proc = childProcess.spawn(yarnCmd, ["link"], {
cwd: moduleInfo.moduleOutDir,
stdio: 'inherit',
stdio: "inherit",
// We need shell mode on Windows to be able to launch `.cmd` executables
// See https://nodejs.org/en/blog/vulnerability/april-2024-security-releases-2
shell: hakEnv.isWin(),
});
proc.on('exit', code => {
proc.on("exit", (code) => {
code ? reject(code) : resolve();
});
});
await new Promise<void>((resolve, reject) => {
const proc = childProcess.spawn(yarnCmd, ['link', moduleInfo.name], {
const proc = childProcess.spawn(yarnCmd, ["link", moduleInfo.name], {
cwd: hakEnv.projectRoot,
stdio: 'inherit',
stdio: "inherit",
// We need shell mode on Windows to be able to launch `.cmd` executables
// See https://nodejs.org/en/blog/vulnerability/april-2024-security-releases-2
shell: hakEnv.isWin(),
});
proc.on('exit', code => {
proc.on("exit", (code) => {
code ? reject(code) : resolve();
});
});

View File

@@ -14,35 +14,39 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
import { GLIBC, MUSL, family as processLibC } from "detect-libc";
import { GLIBC, MUSL, familySync 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';
| "aarch64-apple-darwin"
| "x86_64-apple-darwin"
| "universal-apple-darwin"
| "i686-pc-windows-msvc"
| "x86_64-pc-windows-msvc"
| "aarch64-pc-windows-msvc"
| "i686-unknown-freebsd"
| "x86_64-unknown-freebsd"
| "aarch64-unknown-freebsd"
| "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';
export type Platform = "darwin" | "freebsd" | "linux" | "win32";
// Values are expected to match those used in `process.arch`.
export type Arch = 'arm64' | 'ia32' | 'x64' | 'ppc64' | 'universal';
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 VcVarsArch = "amd64" | "arm64" | "x86";
export type Target = {
id: TargetId;
@@ -51,140 +55,165 @@ export type Target = {
};
export type WindowsTarget = Target & {
platform: 'win32';
platform: "win32";
vcVarsArch: VcVarsArch;
};
export type LinuxTarget = Target & {
platform: 'linux';
libC: typeof processLibC;
platform: "linux";
libC: typeof GLIBC | typeof MUSL;
};
export type UniversalTarget = Target & {
arch: 'universal';
arch: "universal";
subtargets: Target[];
};
const aarch64AppleDarwin: Target = {
id: 'aarch64-apple-darwin',
platform: 'darwin',
arch: 'arm64',
id: "aarch64-apple-darwin",
platform: "darwin",
arch: "arm64",
};
const x8664AppleDarwin: Target = {
id: 'x86_64-apple-darwin',
platform: 'darwin',
arch: 'x64',
id: "x86_64-apple-darwin",
platform: "darwin",
arch: "x64",
};
const universalAppleDarwin: UniversalTarget = {
id: 'universal-apple-darwin',
platform: 'darwin',
arch: 'universal',
subtargets: [
aarch64AppleDarwin,
x8664AppleDarwin,
],
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',
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',
id: "x86_64-pc-windows-msvc",
platform: "win32",
arch: "x64",
vcVarsArch: "amd64",
};
const aarch64WindowsMsvc: WindowsTarget = {
id: "aarch64-pc-windows-msvc",
platform: "win32",
arch: "arm64",
vcVarsArch: "arm64",
};
const i686UnknownFreebsd: Target = {
id: "i686-unknown-freebsd",
platform: "freebsd",
arch: "ia32",
};
const x8664UnknownFreebsd: Target = {
id: "x86_64-unknown-freebsd",
platform: "freebsd",
arch: "x64",
};
const aarch64UnknownFreebsd: Target = {
id: "aarch64-unknown-freebsd",
platform: "freebsd",
arch: "arm64",
};
const x8664UnknownLinuxGnu: LinuxTarget = {
id: 'x86_64-unknown-linux-gnu',
platform: 'linux',
arch: 'x64',
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',
id: "x86_64-unknown-linux-musl",
platform: "linux",
arch: "x64",
libC: MUSL,
};
const i686UnknownLinuxGnu: LinuxTarget = {
id: 'i686-unknown-linux-gnu',
platform: 'linux',
arch: 'ia32',
id: "i686-unknown-linux-gnu",
platform: "linux",
arch: "ia32",
libC: GLIBC,
};
const i686UnknownLinuxMusl: LinuxTarget = {
id: 'i686-unknown-linux-musl',
platform: 'linux',
arch: 'ia32',
id: "i686-unknown-linux-musl",
platform: "linux",
arch: "ia32",
libC: MUSL,
};
const aarch64UnknownLinuxGnu: LinuxTarget = {
id: 'aarch64-unknown-linux-gnu',
platform: 'linux',
arch: 'arm64',
id: "aarch64-unknown-linux-gnu",
platform: "linux",
arch: "arm64",
libC: GLIBC,
};
const aarch64UnknownLinuxMusl: LinuxTarget = {
id: 'aarch64-unknown-linux-musl',
platform: 'linux',
arch: 'arm64',
id: "aarch64-unknown-linux-musl",
platform: "linux",
arch: "arm64",
libC: MUSL,
};
const powerpc64leUnknownLinuxGnu: LinuxTarget = {
id: 'powerpc64le-unknown-linux-gnu',
platform: 'linux',
arch: 'ppc64',
id: "powerpc64le-unknown-linux-gnu",
platform: "linux",
arch: "ppc64",
libC: GLIBC,
};
const powerpc64leUnknownLinuxMusl: LinuxTarget = {
id: 'powerpc64le-unknown-linux-musl',
platform: 'linux',
arch: 'ppc64',
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,
"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,
"i686-pc-windows-msvc": i686PcWindowsMsvc,
"x86_64-pc-windows-msvc": x8664PcWindowsMsvc,
"aarch64-pc-windows-msvc": aarch64WindowsMsvc,
// FreeBSD
"i686-unknown-freebsd": i686UnknownFreebsd,
"x86_64-unknown-freebsd": x8664UnknownFreebsd,
"aarch64-unknown-freebsd": aarch64UnknownFreebsd,
// 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,
"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
)
));
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 {

View File

@@ -1,18 +0,0 @@
{
"compilerOptions": {
"moduleResolution": "node",
"esModuleInterop": true,
"target": "es2017",
"module": "commonjs",
"sourceMap": false,
"lib": [
"es2019",
]
},
"include": [
"./**/*.ts"
],
"ts-node": {
"transpileOnly": true
}
}

View File

@@ -11,6 +11,7 @@ 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 \
--platform linux/amd64 \
--env-file <(env | grep -E '^INDOCKER_' | sed -e 's/^INDOCKER_//') \
--env ELECTRON_CACHE="/root/.cache/electron" \
--env ELECTRON_BUILDER_CACHE="/root/.cache/electron-builder" \

View File

@@ -1,32 +0,0 @@
#!/bin/sh
# Take the deb and bundle it into a apt repository
if [[ $# -lt 1 ]]
then
echo "Usage $0 <config dir>"
exit
fi
confdir=$1
set -ex
ver=`jq -r .version package.json`
distdir=$PWD/dist
confdir=$PWD/$confdir
repodir=`mktemp -d -t repo`
mkdir $repodir/conf
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/element-desktop_${ver}_amd64.deb
done
tar cvzf $distdir/element-desktop_repo_$ver.tar.gz .
popd
rm -r $repodir

Some files were not shown because too many files have changed in this diff Show More