Compare commits

..

230 Commits

Author SHA1 Message Date
RiotRobot
bb3954c235 v1.11.55 2024-01-19 13:57:00 +00:00
RiotRobot
1669477d87 Upgrade matrix-js-sdk to 31.1.0 2024-01-19 13:56:58 +00:00
RiotRobot
9ca55b76b0 Upgrade matrix-react-sdk to 3.90.0 2024-01-19 13:56:49 +00:00
RiotRobot
d7ab867af3 v1.11.54 2024-01-16 17:44:22 +00:00
RiotRobot
500f3485e0 Upgrade matrix-js-sdk to 31.0.0 2024-01-16 17:44:21 +00:00
RiotRobot
97412e5e12 Upgrade matrix-react-sdk to 3.89.0 2024-01-16 17:44:13 +00:00
RiotRobot
4032304f01 v1.11.54-rc.0 2024-01-09 18:01:38 +00:00
RiotRobot
a5caa5055e Upgrade matrix-js-sdk to 31.0.0-rc.0 2024-01-09 18:01:37 +00:00
RiotRobot
3f159934e4 Upgrade matrix-react-sdk to 3.89.0-rc.0 2024-01-09 18:01:29 +00:00
Michael Telatynski
436790cfd8 Merge pull request #26840 from element-hq/t3chguy/fix/26839
Fix CSS stacking context order determinism
2024-01-09 17:01:01 +00:00
Michael Telatynski
a012fb282f Merge pull request #26831 from element-hq/t3chguy/data-testid
Strip data-testid in production
2024-01-09 17:00:52 +00:00
Michael Telatynski
68fec606f2 Fix merge queue
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-01-09 17:00:43 +00:00
Michael Telatynski
03a624f788 Fix CSS stacking context order determinism
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-01-09 12:44:44 +00:00
Michael Telatynski
922f16812c Run Playwright tests on merge queue (#26801) 2024-01-08 12:35:42 +00:00
Richard van der Hoff
9ee7440dfd Split up the changelog (#26832)
* Split up the changelog

The current changelog causes github to give unicorns, so is a bit pointless.

* more split

* prettierignore split changelogs
2024-01-08 10:12:55 +00:00
Michael Telatynski
2d26c46c1c Strip data-testid in production
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-01-05 10:46:39 +00:00
RiotRobot
99974e4099 Reset matrix-js-sdk back to develop branch 2024-01-04 14:43:44 +00:00
RiotRobot
a04e6c220e Reset matrix-react-sdk back to develop branch 2024-01-04 14:43:33 +00:00
RiotRobot
f926118d1d Merge branch 'master' into develop 2024-01-04 14:43:17 +00:00
RiotRobot
c4c0b44471 v1.11.53 2024-01-04 14:40:09 +00:00
RiotRobot
463f8e938d Upgrade matrix-react-sdk to 3.88.0 2024-01-04 14:40:08 +00:00
David Langley
8ea729e98f Merge pull request #26818 from element-hq/langleyd/update_team_names
Update teams names in CODEOWNERS and workflows
2024-01-03 11:13:07 +00:00
David Langley
2e3d20aa5d update teams names in CODEOWNERS and workflows 2024-01-03 10:57:51 +00:00
David Langley
5d461ac48d Merge pull request #26793 from element-hq/langleyd/rename_org_in_docs
Rename the GH org to element-hq in documentation, configuration and within code, comments and snapshot tests.
2024-01-03 10:38:55 +00:00
David Langley
2b09f81f60 Merge branch 'develop' into langleyd/rename_org_in_docs 2024-01-03 10:26:34 +00:00
renovate[bot]
188aac111b Update dependency prettier to v3 (#26815)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-01-02 17:53:39 +00:00
renovate[bot]
6ef7aab959 Update dependency webpack-cli to v5 (#26816)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-02 17:49:09 +00:00
Richard van der Hoff
258fc405db Update tests not to mock out an ancient server (#26796)
The loading test, which mocks a `/versions` response, currently mocks the
response of a 2-year-old server. This will soon be incompatible with the
JS-SDK. Update the test in preparation.
2024-01-02 11:14:57 +00:00
Michael Telatynski
2555ffc0d4 Fix react.d.ts forwardRef types
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2023-12-20 15:38:42 +00:00
Michael Telatynski
0d86bab0dc Iterate landmarks around the app in order to improve a11y (#26776) 2023-12-20 15:32:23 +00:00
David Langley
855bb568b9 rename the GH org in links within documentation 2023-12-20 12:21:26 +00:00
David Langley
da90425289 Merge pull request #26791 from element-hq/langleyd/remove_epic_label
Remove Epic label in favour of T-Epic
2023-12-20 11:52:51 +00:00
David Langley
77352f53f9 Remove Epic in favour of T-Epic 2023-12-20 09:16:57 +00:00
RiotRobot
10dca7f305 Reset matrix-js-sdk back to develop branch 2023-12-19 16:03:10 +00:00
RiotRobot
9d58f29f5e Reset matrix-react-sdk back to develop branch 2023-12-19 16:02:59 +00:00
RiotRobot
d42c56357c Merge branch 'master' into develop 2023-12-19 16:02:41 +00:00
RiotRobot
cce2dc91af v1.11.52 2023-12-19 15:59:33 +00:00
RiotRobot
632d791c48 Upgrade matrix-js-sdk to 30.3.0 2023-12-19 15:59:32 +00:00
RiotRobot
5881f4ef9b Upgrade matrix-react-sdk to 3.87.0 2023-12-19 15:59:24 +00:00
Pankaj Singh
4203c953eb fix(contributing.md): added private sign off process (#26785)
Signed-off-by: Pankaj Singh <pankajsingh132000@gmail.com>
2023-12-18 15:50:31 +00:00
ElementRobot
e9f0a8cddc Merge pull request #26767 from element-hq/actions/localazy-download
Localazy Download
2023-12-15 06:28:43 +00:00
t3chguy
2b06101502 [create-pull-request] automated change 2023-12-15 06:07:37 +00:00
Michael Telatynski
4e952e7cb5 Upgrade css-loader to v5 (#26758) 2023-12-13 15:41:33 +00:00
Michael Telatynski
fc1f706540 Improve install.md docs 2023-12-13 14:53:58 +00:00
Florian Duros
1038500e71 Merge pull request #26757 from element-hq/revert-26750-renovate/css-loader-6.x
Revert "Update dependency css-loader to v6"
2023-12-13 15:08:08 +01:00
Florian Duros
039d625031 Revert "Update dependency css-loader to v6 (#26750)"
This reverts commit 3281523961.
2023-12-13 14:46:57 +01:00
renovate[bot]
3281523961 Update dependency css-loader to v6 (#26750)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-13 11:51:23 +00:00
renovate[bot]
c9aa12d936 Update typescript-eslint monorepo to v6 (major) (#26754)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-13 11:35:27 +00:00
renovate[bot]
2cab6ed369 Update dependency babel-loader to v9 (#26749)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-13 11:29:45 +00:00
renovate[bot]
85d5add803 Update dependency style-loader to v3 (#26746)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-13 11:28:34 +00:00
renovate[bot]
5df9eab4a9 Update dependency stylelint-config-standard to v35 (#26747)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-13 11:27:39 +00:00
renovate[bot]
42e860db2e Update dependency @types/jest to v29.5.11 (#26736)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-13 09:40:08 +00:00
renovate[bot]
85d057c427 Update dependency stylelint to v16 (#26740)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-12-13 09:36:21 +00:00
renovate[bot]
2877e797a3 Update actions/deploy-pages action to v3 (#26739)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-13 09:03:36 +00:00
renovate[bot]
9c89d6dbd9 Update babel monorepo to v7.23.5 (#26735)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-13 09:02:34 +00:00
renovate[bot]
bfa7763f15 Update dependency @types/node to v16.18.68 (#26737)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-13 09:00:57 +00:00
renovate[bot]
ad2592a253 Update dependency typescript to v5.3.3 (#26738)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-13 09:00:48 +00:00
renovate[bot]
9ed1c21159 Update all non-major dependencies (#26734)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-13 08:59:42 +00:00
renovate[bot]
4f3b730e90 Update docker/metadata-action digest to 31cebac (#26733)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-13 08:59:24 +00:00
ElementRobot
8980ff6366 Merge pull request #26732 from element-hq/actions/localazy-download
Localazy Download
2023-12-13 06:20:00 +00:00
t3chguy
1ce3fe6e73 [create-pull-request] automated change 2023-12-13 06:07:38 +00:00
RiotRobot
9ae3bade02 v1.11.52-rc.0 2023-12-12 17:06:02 +00:00
RiotRobot
01c1243fe4 Upgrade matrix-js-sdk to 30.3.0-rc.0 2023-12-12 17:06:01 +00:00
RiotRobot
ab3639f7eb Upgrade matrix-react-sdk to 3.87.0-rc.0 2023-12-12 17:05:52 +00:00
David Langley
c26517a73a Merge pull request #26728 from element-hq/langleyd/update_org_in_codeowners
Update to org to element-hq in CODEOWNERS
2023-12-12 11:02:27 +00:00
David Langley
a237948991 Merge pull request #26727 from element-hq/langleyd/update_org_in_workflows
Update org in scripts and workflows
2023-12-12 10:58:57 +00:00
David Langley
19015fe40e Merge branch 'develop' into langleyd/update_org_in_workflows 2023-12-12 10:46:37 +00:00
Florian Duros
9b0063dfca Merge pull request #26710 from nordeck/cn/add-opendesk-module
Add @nordeck/element-web-opendesk-module@0.3.0 to variants/openDesk/build_config.yaml
2023-12-12 11:41:40 +01:00
David Langley
0562942972 Update org in scripts and workflows 2023-12-12 10:31:44 +00:00
David Langley
007501aa9c update to org to element-hq 2023-12-11 20:20:51 +00:00
ElementRobot
a1a4847e09 Merge pull request #26712 from vector-im/actions/localazy-download
Localazy Download
2023-12-08 06:22:00 +00:00
t3chguy
558996e96d [create-pull-request] automated change 2023-12-08 06:07:38 +00:00
Charly Nguyen
0041d82553 Add @nordeck/element-web-opendesk-module@0.3.0 to variants/openDesk/build_config.yaml
Signed-off-by: Charly Nguyen <charly.nguyen@nordeck.net>
2023-12-07 12:23:35 +01:00
RiotRobot
31ce458fe1 Reset matrix-js-sdk back to develop branch 2023-12-05 14:25:41 +00:00
RiotRobot
2e7fc13fe3 Reset matrix-react-sdk back to develop branch 2023-12-05 14:25:32 +00:00
RiotRobot
a798d0465f Merge branch 'master' into develop 2023-12-05 14:25:18 +00:00
RiotRobot
0051710ba1 v1.11.51 2023-12-05 14:21:43 +00:00
RiotRobot
1cec24074f Upgrade matrix-js-sdk to 30.2.0 2023-12-05 14:21:41 +00:00
RiotRobot
09fd60785d Upgrade matrix-react-sdk to 3.86.0 2023-12-05 14:21:32 +00:00
Johannes Marbach
b9d616a0b7 Merge pull request #25885 from vector-im/germain-gg/25884
Remove documentation for 'feature_state_counters'
2023-11-30 00:41:37 +01:00
Johannes Marbach
fb963b9242 Merge pull request #26674 from vector-im/Johennes-patch-1 2023-11-29 12:54:47 +01:00
Johannes Marbach
e493ef1cdb Undry the workflow 2023-11-29 11:44:55 +01:00
Johannes Marbach
98e860a8a8 Enable label sync workflow 2023-11-29 11:26:52 +01:00
Johannes Marbach
bcec77c946 Merge pull request #26673 from vector-im/Johennes-patch-1 2023-11-29 10:55:21 +01:00
Johannes Marbach
482a52d4e3 Pretty it up 2023-11-29 10:42:03 +01:00
Johannes Marbach
377a7e4308 Replace quotes 2023-11-29 10:34:06 +01:00
Johannes Marbach
be646418bf Add missing labels for label sync
This adds all the labels that element-web has over element-meta to labels.yml. There is some deduplication to do that we can take care of over time. This at least should ensure that we don't lose anything we have to day while still benefiting from label sync.
2023-11-29 10:30:30 +01:00
Johannes Marbach
16df760ac2 Merge pull request #26672 from vector-im/johannes/sync-labels 2023-11-29 09:46:15 +01:00
Johannes Marbach
7cb841a4cd Adapt label-sync workflow to new version of upstream workflow 2023-11-29 08:34:04 +01:00
ElementRobot
43acadf2e3 Merge pull request #26671 from vector-im/actions/localazy-download
Localazy Download
2023-11-29 07:16:30 +01:00
t3chguy
5de3af52ab [create-pull-request] automated change 2023-11-29 06:07:31 +00:00
renovate[bot]
bfa50913e1 Update dependency typescript to v5.3.2 (#26668)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-28 18:58:48 +00:00
renovate[bot]
74460e6545 Update dependency @types/jest to v29.5.10 (#26667)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-28 18:44:55 +00:00
renovate[bot]
ad2b4d8dfd Update all non-major dependencies (#26664)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-28 18:44:39 +00:00
renovate[bot]
6f6fd0c5be Update babel monorepo to v7.23.4 (#26665)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-28 18:43:43 +00:00
renovate[bot]
28bf0f7a2c Update docker/build-push-action digest to 4a13e50 (#26663)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-28 18:42:49 +00:00
renovate[bot]
3c8df025c1 Update definitelyTyped (#26666)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-28 18:41:57 +00:00
RiotRobot
ba2ef79d2a v1.11.51-rc.0 2023-11-28 17:29:10 +00:00
RiotRobot
709049ab7c Upgrade matrix-js-sdk to 30.2.0-rc.0 2023-11-28 17:29:10 +00:00
RiotRobot
db513593b4 Upgrade matrix-react-sdk to 3.86.0-rc.2 2023-11-28 17:29:02 +00:00
Michael Telatynski
198ea60677 Fix types
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2023-11-28 17:26:07 +00:00
Michael Telatynski
4c182928e1 Improve Module API docs & example (#26637) 2023-11-28 09:45:59 +01:00
Johannes Marbach
2ee082652a Merge pull request #26641 from vector-im/johannes/release-make 2023-11-24 15:40:48 +01:00
Johannes Marbach
eac0d97738 Adapt to renaming of release-action workflow 2023-11-24 15:32:17 +01:00
Johannes Marbach
94779bb2c9 Merge pull request #26630 from vector-im/johannes/new-room-header-on-develop 2023-11-24 13:31:49 +01:00
Johannes Marbach
aa5e1d79cc Enable new room header by default on develop
Relates to: vector-im/element-web#25883
2023-11-23 13:59:57 +01:00
Johannes Marbach
c378f676fd Merge pull request #26622 from vector-im/johannes/bundle-jitsi 2023-11-22 21:23:09 +01:00
Johannes Marbach
d3ef8ff658 Add license and copy it into bundle while making terser ignore the SDK 2023-11-22 21:04:39 +01:00
Johannes Marbach
cb5d5d00f1 Merge branch 'develop' into germain-gg/25884 2023-11-22 17:17:12 +01:00
Johannes Marbach
6500d9a9d9 Merge pull request #26621 from vector-im/johannes/action-validator 2023-11-22 15:53:41 +01:00
Johannes Marbach
1575832766 Merge branch 'develop' into germain-gg/25884 2023-11-22 15:41:10 +01:00
Michael Telatynski
087be3e685 Update path
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2023-11-21 21:07:33 +00:00
Michael Telatynski
b9b732134d Improve rendering style of markdown in the mdbook (#26616) 2023-11-21 21:03:24 +00:00
Johannes Marbach
27bba26856 Make prettier ignore jitsi_external_api.min.js 2023-11-21 20:37:19 +01:00
Johannes Marbach
b08f83b415 Add Jitsi SDK as a static resource and set up CI to update it on change 2023-11-21 20:24:38 +01:00
Johannes Marbach
e8668614a7 Setup CI to lint workflows with action-validator 2023-11-21 19:45:44 +01:00
Michael Telatynski
802571176e Improve debian package and docs (#26618) 2023-11-21 17:28:28 +01:00
Michael Telatynski
94228574d4 Prettier 2023-11-21 16:00:45 +00:00
Johannes Marbach
49783d511c Quote names 2023-11-21 16:31:49 +01:00
Johannes Marbach
6389ffd751 Fix quotes 2023-11-21 16:30:09 +01:00
Johannes Marbach
e6c1a79067 Add labels currently added with respect to element-meta 2023-11-21 16:28:50 +01:00
Johannes Marbach
acad93dd7f Rename action to not tap outside exclusion list 2023-11-21 15:36:15 +01:00
Johannes Marbach
03b43d3c84 Use correct key 2023-11-21 14:14:59 +01:00
Johannes Marbach
21cf6edae6 Merge pull request #26612 from vector-im/johannes/sync-labels 2023-11-21 14:12:32 +01:00
Johannes Marbach
be0de442a2 Make it preeeeeetty 2023-11-21 14:04:28 +01:00
Johannes Marbach
8dae3562e9 Set up rudimentary workflow for manually triggering label sync 2023-11-21 13:57:41 +01:00
Michael Telatynski
b4891715c0 Update CHANGELOG.md 2023-11-21 11:37:24 +00:00
RiotRobot
23eb48132a Reset matrix-js-sdk back to develop branch 2023-11-21 11:36:19 +00:00
RiotRobot
0ea2091b2d Reset matrix-react-sdk back to develop branch 2023-11-21 11:36:10 +00:00
RiotRobot
2debdda2b3 Merge branch 'master' into develop 2023-11-21 11:35:52 +00:00
Michael Telatynski
4bd9336be1 Update release-gitflow.yml 2023-11-21 11:35:01 +00:00
RiotRobot
38dd45a51c v1.11.50 2023-11-21 11:21:42 +00:00
RiotRobot
af3f25eb4d Upgrade matrix-js-sdk to 30.1.0 2023-11-21 11:21:41 +00:00
RiotRobot
c8b916fdff Upgrade matrix-react-sdk to 3.85.0 2023-11-21 11:21:32 +00:00
Johannes Marbach
619f36b82a Merge pull request #26229 from vector-im/johannes/webpack-5 2023-11-20 13:30:36 +01:00
Michael Telatynski
4a519916e5 Add documentation around releases (#26602) 2023-11-20 09:58:18 +00:00
Johannes Marbach
37c1c4e8ae Set es2022 globally but force CommonJS when using ts-node for scripts 2023-11-19 20:38:51 +01:00
Johannes Marbach
f46cdd0757 Merge branch 'develop' into johannes/webpack-5 2023-11-18 21:52:51 +01:00
Johannes Marbach
6093cd8fe8 Move worklet rule up to where it used to be 2023-11-18 21:39:17 +01:00
Johannes Marbach
e2fdddaa1f Add custom loader for recorder worklet 2023-11-18 21:37:30 +01:00
Timo
3c3ec88bba Add feature_disable_call_per_sender_encryption documentation (in labs.md) (#26548)
* add feature_disable_call_per_sender_encryption doc

Co-authored-by: aceArt-GmbH <33117017+aceArt-GmbH@users.noreply.github.com>

---------

Signed-off-by: Timo K <toger5@hotmail.de>
Co-authored-by: aceArt-GmbH <33117017+aceArt-GmbH@users.noreply.github.com>
2023-11-17 17:38:13 +01:00
Johannes Marbach
8dbefcc589 Undo auto public path disablement as it doesn't work with workers 2023-11-16 19:39:39 +01:00
Johannes Marbach
4e32b6fbe1 Update copy-webpack-plugin to latest 2023-11-16 19:22:34 +01:00
Johannes Marbach
a56a2268f0 Merge branch 'develop' into johannes/webpack-5 2023-11-16 19:20:22 +01:00
Johannes Marbach
e6f69f7dce Merge pull request #26599 from vector-im/johannes/copy-webpack-plugin 2023-11-16 14:58:48 +01:00
Johannes Marbach
710336208f Allow config.json to be missing 2023-11-16 14:45:31 +01:00
Johannes Marbach
47b37c996d Revert "Try explicitly relative path for config.json"
This reverts commit 46ecafa73b.
2023-11-16 14:44:42 +01:00
Johannes Marbach
46ecafa73b Try explicitly relative path for config.json 2023-11-16 14:42:19 +01:00
Johannes Marbach
d2fa827fad Replace copy/watching of non-language assets with copy-webpack-plugin 2023-11-16 14:21:45 +01:00
RiotRobot
eb31e39f9e v1.11.50-rc.1 2023-11-16 09:29:09 +00:00
Michael Telatynski
ccaef6f14b Update build_debian.yaml 2023-11-16 09:18:24 +00:00
Johannes Marbach
fd2f7884c8 Merge pull request #26593 from vector-im/johannes/two-phase-copy-res 2023-11-16 08:17:32 +01:00
Johannes Marbach
37b67a8c76 Merge branch 'develop' into johannes/two-phase-copy-res 2023-11-16 08:00:53 +01:00
Johannes Marbach
897bca6ca2 Merge pull request #26591 from vector-im/johannes/one-watcher-to-rule-them-all 2023-11-16 08:00:24 +01:00
renovate[bot]
ec1ff4b606 Update dependency @types/jest to v29.5.8 (#26580)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-11-15 23:11:10 +00:00
renovate[bot]
fd9cb159ca Update babel monorepo to v7.23.3 (#26578)
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:54 +00:00
renovate[bot]
829c0ec22f Update definitelyTyped (#26579)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-15 22:49:04 +00:00
dependabot[bot]
3bf7017f37 Bump crypto-js from 4.1.1 to 4.2.0 (#26460)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-15 22:30:10 +00:00
renovate[bot]
f9293f92e5 Update all non-major dependencies (#26581)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-15 22:29:33 +00:00
renovate[bot]
277016d104 Update actions/github-script action to v7 (#26583)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-15 22:29:06 +00:00
Michael Telatynski
64028270dd Remove unused dependencies and add transitive deps (#26543) 2023-11-15 22:05:29 +00:00
Johannes Marbach
9d9a81aca4 Merge branch 'johannes/one-watcher-to-rule-them-all' into johannes/two-phase-copy-res 2023-11-15 21:43:57 +01:00
Johannes Marbach
ba72b3b09b Prevent copy-res -w from triggering unnecessary changes while webpack is already building 2023-11-15 21:43:00 +01:00
Johannes Marbach
8a3f8a499e Appease the linter 2023-11-15 20:35:09 +01:00
Johannes Marbach
08bc6d816a Use only chokidar for watching and add more logging 2023-11-15 20:15:25 +01:00
RiotRobot
2a26d39867 v1.11.50-rc.0 2023-11-14 16:23:38 +00:00
RiotRobot
613b50a4c6 Upgrade matrix-js-sdk to 30.1.0-rc.1 2023-11-14 16:23:37 +00:00
RiotRobot
4bb0cdf298 Upgrade matrix-react-sdk to 3.85.0-rc.1 2023-11-14 16:23:27 +00:00
Michael Telatynski
e1b5c72e14 Merge remote-tracking branch 'origin/develop' into develop 2023-11-14 16:25:59 +01:00
Michael Telatynski
651b6db5cc Explicitly specify secrets
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2023-11-14 16:25:42 +01:00
Michael Telatynski
1300a2bfbb Update build_develop.yml 2023-11-14 15:05:13 +00:00
Michael Telatynski
6c38ad7179 Update release-drafter.yml 2023-11-14 14:43:34 +00:00
Johannes Marbach
5e9763e3a1 Update mocks for workers / worklets 2023-11-14 14:02:40 +01:00
Johannes Marbach
432c1d65e1 Squashed commit of the following:
commit 069c1bc833
Author: Johannes Marbach <johannesm@element.io>
Date:   Sat Nov 11 16:08:30 2023 +0100

    Replace worker-loader with built-in Webpack 5 support for web workers
2023-11-13 20:18:00 +01:00
Johannes Marbach
bbd449f9f4 Merge branch 'develop' into johannes/webpack-5 2023-11-13 20:02:26 +01:00
Michael Telatynski
781a067772 New release automations (#26495) 2023-11-13 10:49:01 +00:00
Michael Telatynski
fc28d15c07 Update build_debian.yaml 2023-11-13 10:46:09 +00:00
ElementRobot
6a79993019 Merge branch 'master' into develop
# Conflicts:
#	package.json
#	yarn.lock
2023-11-13 10:32:03 +00:00
ElementRobot
5b1b7acc62 v1.11.49 2023-11-13 10:28:08 +00:00
ElementRobot
3f2dea5b6b Prepare changelog for v1.11.49 2023-11-13 10:28:08 +00:00
ElementRobot
5928fb9735 Upgrade matrix-js-sdk to 30.0.1 2023-11-13 10:26:44 +00:00
ElementRobot
f69b58e797 Upgrade matrix-react-sdk to 3.84.1 2023-11-13 10:26:32 +00:00
ElementRobot
db2ab2f07d [Backport staging] Ship element-web as a debian package (#26563)
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-11-13 09:49:27 +00:00
ElementRobot
b42c1cfeb3 Merge pull request #26562 from vector-im/actions/localazy-download
Localazy Download
2023-11-13 10:43:20 +01:00
t3chguy
3d29596e6e [create-pull-request] automated change 2023-11-13 09:31:14 +00:00
Michael Telatynski
e4b0429c0e Update CODEOWNERS 2023-11-13 09:20:57 +00:00
Johannes Marbach
91f46cc8f4 Disable automatic publicPath to unbreak worklets 2023-11-12 12:23:36 +01:00
Johannes Marbach
0584c39a70 Add defaults and fix comment 2023-11-11 21:36:41 +01:00
Michael Telatynski
c6e5280ae8 Run Localazy Download on a schedule 3 times a week instead of during release process (#26550) 2023-11-10 17:30:24 +00:00
Michael Telatynski
2bc514357d Update translating-dev.md 2023-11-10 12:27:02 +00:00
Michael Telatynski
ac16b9cfad Only update repo description once (#26517) 2023-11-09 16:27:01 +00:00
Johannes Marbach
3e03b2ea29 Appease the linter 2023-11-09 17:05:41 +01:00
Johannes Marbach
37632d84c8 Eliminate worklet-loader 2023-11-09 16:47:01 +01:00
Johannes Marbach
42da986ed3 Only show overlay on build errors 2023-11-09 16:11:49 +01:00
Johannes Marbach
ae1d21f08e Remove obsolete comment 2023-11-09 15:47:55 +01:00
Johannes Marbach
e6ba36d1cf Merge branch 'develop' into johannes/webpack-5 2023-11-09 15:43:44 +01:00
Johannes Marbach
de9def13b3 Merge pull request #26534 from nordeck/charlynguyen/update-react-sdk-module-api 2023-11-09 12:24:00 +01:00
Charly Nguyen
99c10cb422 Update @matrix-org/react-sdk-module-api 2023-11-09 11:28:16 +01:00
Michael Telatynski
edeaf8065e Ship element-web as a debian package (#26533) 2023-11-09 09:56:26 +00:00
Johannes Marbach
f0c5ed8a30 Appease the linter 2023-11-08 10:06:13 +01:00
Johannes Marbach
0a36934d55 Eliminate use of loader-utils 2023-11-08 10:04:09 +01:00
Johannes Marbach
25bb2ae492 Replace optimize-css-assets-webpack-plugin with css-minimizer-webpack-plugin 2023-11-08 09:19:20 +01:00
Johannes Marbach
fe46b05bfb Remove unused extract-text-webpack-plugin 2023-11-08 09:16:04 +01:00
Johannes Marbach
e271f2cadb Upgrade webpack to 5.89.0 2023-11-08 09:15:27 +01:00
Johannes Marbach
4ffac57990 Merge branch 'develop' into johannes/webpack-5 2023-11-08 08:55:15 +01:00
ElementRobot
8b01798bd6 Reset matrix-js-sdk back to develop branch 2023-11-07 15:26:48 +00:00
ElementRobot
740bf8ae70 Reset matrix-react-sdk back to develop branch 2023-11-07 15:26:41 +00:00
ElementRobot
51f9e52538 Merge branch 'master' into develop 2023-11-07 15:26:26 +00:00
Johannes Marbach
b350d2211c Merge pull request #26511 from vector-im/Johennes-patch-1 2023-11-07 09:40:38 +01:00
Johannes Marbach
11f46a0d11 Add input parameter for ELEMENT_BOT_TOKEN 2023-11-06 15:55:50 +01:00
Johannes Marbach
8769dbb3f7 Merge pull request #26509 from vector-im/Johennes-patch-1 2023-11-06 14:23:53 +01:00
Johannes Marbach
222cf5cb67 Make triage-labelled workflow reusable 2023-11-06 14:09:13 +01:00
Johannes Marbach
17147ade05 Merge branch 'develop' into johannes/webpack-5 2023-11-06 13:59:38 +01:00
Michael Telatynski
019a7cc02d Ship OpenCoDE variant to Dockerhub (#26399) 2023-11-06 16:31:02 +05:30
renovate[bot]
61cfe56774 Update all non-major dependencies (#26482)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-01 08:28:54 +00:00
renovate[bot]
5ae434d90d Update dependency eslint-plugin-unicorn to v49 (#26485)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-31 18:42:32 +00:00
renovate[bot]
ecb557dff2 Update actions/setup-node action to v4 (#26484)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-31 18:42:07 +00:00
renovate[bot]
c4c759c951 Update dependency @types/jest to v29.5.7 (#26480)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-31 18:27:58 +00:00
renovate[bot]
8447c77d95 Update definitelyTyped (#26479)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-31 18:15:36 +00:00
renovate[bot]
b3037c73d1 Update titoportas/update-project-fields digest to 421a544 (#26478)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-31 17:42:46 +00:00
Johannes Marbach
d8f46abd77 Appease the linter 2023-10-25 17:11:25 +02:00
Johannes Marbach
3a73f6baaa Merge branch 'develop' into johannes/webpack-5 2023-10-25 16:51:14 +02:00
Johannes Marbach
98c27c8bd4 Merge branch 'johannes/webpack-cli-4.10.0' into johannes/webpack-5 2023-10-24 13:49:35 +02:00
Johannes Marbach
88666ee647 Also polyfill buffer and process/browser 2023-10-16 08:16:28 +02:00
Johannes Marbach
0b706bb1de Merge branch 'johannes/webpack-cli-4.10.0' into johannes/webpack-5 2023-10-16 07:56:48 +02:00
Johannes Marbach
2984c3bdfb Remove . since path is already relative 2023-09-30 21:50:52 +02:00
Johannes Marbach
9b8d6e7607 Set context manually in NormalModuleReplacementPlugin to fix relative import paths 2023-09-29 22:02:38 +02:00
Johannes Marbach
c844d80217 Merge branch 'johannes/webpack-cli-4.10.0' into johannes/webpack-5 2023-09-29 11:00:03 +02:00
Johannes Marbach
af3659a90e Update to webpack 5 2023-09-23 21:34:56 +02:00
Germain
bca63dead7 Remove documentation for 'feature_state_counters' 2023-07-31 11:46:02 +01:00
104 changed files with 12776 additions and 12500 deletions

9
.github/CODEOWNERS vendored
View File

@@ -1,4 +1,5 @@
* @vector-im/element-web
/.github/workflows/** @vector-im/element-web-app-team
/package.json @vector-im/element-web-app-team
/yarn.lock @vector-im/element-web-app-team
* @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

View File

@@ -5,7 +5,7 @@ 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).
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/element-hq/element-meta/discussions/new?category=ideas).
- type: textarea
id: usecase
attributes:

View File

@@ -4,7 +4,7 @@
- [ ] Tests written for new code (and old code if feasible)
- [ ] 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))
- [ ] Sign-off given on the changes (see [CONTRIBUTING.md](https://github.com/element-hq/element-web/blob/develop/CONTRIBUTING.md))
<!--
If you would like to specify text for the changelog entry other than your PR title, add the following:

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

@@ -0,0 +1,260 @@
- name: "A-Aliases"
color: "bfd4f2"
- name: "A-Authentication"
color: "bfd4f2"
- name: "A-Autocomplete"
color: "bfd4f2"
- name: "A-Breadcrumbs"
color: "bfd4f2"
- name: "A-Bridge"
color: "bfd4f2"
- name: "A-Broadcast"
description: "Broadcast-style voice messages"
color: "bfd4f2"
- name: "A-Create-Room"
description: "Create room flow, user suggestions, etc."
color: "bfd4f2"
- name: "A-DevTools"
description: "/devtools, show hidden events, etc."
color: "bfd4f2"
- name: "A-Dialogs"
color: "bfd4f2"
- name: "A-Disambiguation"
color: "bfd4f2"
- name: "A-DM-Start"
description: "Creating a DM with another user"
color: "bfd4f2"
- name: "A-E2EE-Dehydration"
color: "8CC59A"
- name: "A-Electron"
color: "bfd4f2"
- name: "A-Element-Call"
description: "Group calls via Element Call"
color: "bfd4f2"
- name: "A-Element-R"
description: "Issues affecting the port of Element's crypto layer to Rust"
color: "bfd4f2"
- name: "A-ELS"
description: "Event List Summary (and Membership ELS, MELS)"
color: "bfd4f2"
- name: "A-Emotes"
color: "bfd4f2"
- name: "A-EMS"
description: "Issues related to EMS"
color: "bfd4f2"
- name: "A-Error-Message"
color: "bfd4f2"
- name: "A-Federation"
color: "bfd4f2"
- name: "A-Feedback-Reporting"
description: "Reporting process for bugs, debug logs (rageshakes), suggestions"
color: "bfd4f2"
- name: "A-File-Download"
color: "bfd4f2"
- name: "A-File-Panel"
color: "bfd4f2"
- name: "A-Identity-Server"
color: "bfd4f2"
- name: "A-Indexing"
description: "Indexing messages via Seshat"
color: "bfd4f2"
- name: "A-IRC-Layout"
color: "bfd4f2"
- name: "A-Jump-To-Date"
description: "Jump to date headers or slash command"
color: "bfd4f2"
- name: "A-Lazy-Loading"
color: "bfd4f2"
- name: "A-Light-Box"
description: "UI when viewing an image"
color: "bfd4f2"
- name: "A-Location-Sharing"
color: "bfd4f2"
- name: "A-Logout"
description: "Logout, sign out, etc."
color: "bfd4f2"
- name: "A-Maths"
description: "Render LaTeX maths in messages"
color: "bfd4f2"
- name: "A-Memory"
description: "Memory leaks, leak hunting tools"
color: "bfd4f2"
- name: "A-Message-Forwarding"
color: "bfd4f2"
- name: "A-Message-Pinning"
color: "bfd4f2"
- name: "A-Message-Previews"
color: "bfd4f2"
- name: "A-Message-Starring"
description: "Saving favourite messages for later"
color: "bfd4f2"
- name: "A-Modules"
description: "Module system related"
color: "bfd4f2"
- name: "A-New-Search-Experience"
description: "The new search dialog available in Labs"
color: "bfd4f2"
- name: "A-Packaging"
description: "Packaging, signing, releasing"
color: "bfd4f2"
- name: "A-Peeking"
color: "bfd4f2"
- name: "A-Picture-in-Picture"
color: "bfd4f2"
- name: "A-Power-Levels"
description: "The permissions that users have in rooms and spaces"
color: "bfd4f2"
- name: "A-Replies"
description: "reply"
color: "bfd4f2"
- name: "A-Session-Mgmt"
description: "Session / device names, management UI, etc."
color: "bfd4f2"
- name: "A-Share"
color: "bfd4f2"
- name: "A-Shortcuts"
description: "Keyboard shortcuts"
color: "bfd4f2"
- name: "A-Sliding-Sync"
description: "Also known as Sync v3 - https://github.com/matrix-org/sliding-sync"
color: "bfd4f2"
- name: "A-Soft-Logout"
description: "https://github.com/element-hq/element-web/issues/10224"
color: "bfd4f2"
- name: "A-Spaces-Settings"
color: "bfd4f2"
- name: "A-SSO"
color: "bfd4f2"
- name: "A-Status-Bar"
description: "Unsent messages warning and 'Connectivity to the server has been lost'"
color: "bfd4f2"
- name: "A-Storage"
description: "Storage layer of the app, including IndexedDB, local storage, etc."
color: "bfd4f2"
- name: "A-Technical-Debt"
color: "bfd4f2"
- name: "A-Testing"
description: "Testing, code coverage, etc."
color: "bfd4f2"
- name: "A-Themes-Custom"
description: "Custom theme variables or support"
color: "bfd4f2"
- name: "A-Themes-Official"
description: "Official themes (light, dark)"
color: "bfd4f2"
- name: "A-Theming"
color: "bfd4f2"
- name: "A-Timeline-Jumpy-Scroll"
description: "Stable timeline dream ✨"
color: "bfd4f2"
- name: "A-Timesheet-1"
description: "Log any time spent on this into the A-Timesheet-1 project"
color: "5319E7"
- name: "A-Toast"
color: "bfd4f2"
- name: "A-Tooltips"
description: "Anything related to tooltips"
color: "bfd4f2"
- name: "A-UI-Customisation"
description: "UIFeatures etc. for customising entire parts of the UI"
color: "bfd4f2"
- name: "A-URL-Previews"
color: "bfd4f2"
- name: "A-User-Menu"
description: "The top left main menu with the user's name and avatar"
color: "bfd4f2"
- name: "A-User-Search"
description: "The start DM or invite to room dialogs (things dealing with `/user_directory/search`)"
color: "bfd4f2"
- name: "A-Video-Rooms"
description: "Persistent group calls"
color: "bfd4f2"
- name: "A-Voice-Messages"
color: "bfd4f2"
- name: "A-Welcome-Page"
color: "bfd4f2"
- name: "backport staging"
description: "Label to automatically backport PR to staging branch"
color: "B60205"
- name: "Dependencies"
description: "Pull requests that update a dependency file"
color: "0366d6"
- name: "Hacktoberfest"
description: "Issues which are suitable for Hacktoberfest PRs: https://hacktoberfest.digitalocean.com/"
color: "ff7518"
- name: "P4"
description: "[OBSOLETE LABEL] Interesting — Not yet scheduled, will accept patches"
color: "d1e5f0"
- name: "spam"
color: "B60205"
- name: "Sponsored"
color: "ffc8f4"
- name: "T-Deprecation"
description: "A pull request that makes something deprecated"
color: "98e6ae"
- name: "T-Other"
description: "Questions, user support, anything else"
color: "98e6ae"
- name: "Team: App"
color: "FFA500"
- name: "X-Blocked"
color: "ff7979"
- name: "X-Cannot-Reproduce"
color: "ff7979"
- name: "X-Command"
description: "Created using the !github command"
color: "ff7979"
- name: "X-Community-Supported-Platform"
description: "This issue occurs in a platform not directly supported by us, but by a community project elsewhere"
color: "ff7979"
- name: "X-Upcoming-Release-Blocker"
description: "This does not affect the current release cycle but will affect the next one"
color: "e99695"
- name: "Z-Actions"
color: "ededed"
- name: "Z-Cache-Confusion"
description: "Related to internal cache (clearing helps / causes the issue)"
color: "ededed"
- name: "Z-Community-PR"
description: "Issue is solved by a community member's PR"
color: "ededed"
- name: "Z-Element-R-Blocker"
description: "A blocker for enabling Element R by default"
color: "ededed"
- name: "Z-Experimental"
color: "ededed"
- name: "Z-Fixed by Element Call"
description: "Issues which can be closed when we move to Element Call"
color: "ededed"
- name: "Z-Flaky-Test"
description: "A test is raising false alarms"
color: "ededed"
- name: "Z-FOSDEM"
description: "Issues in chat.fosdem.org"
color: "ededed"
- name: "Z-Gitter"
description: "Issues relating to or coming out of the Gitter migration, feature parity, etc"
color: "ededed"
- name: "Z-Legacy-Crypto"
description: "Issues affecting the legacy crypto stack"
color: "EEEEEE"
- name: "Z-Maximised-Widgets"
color: "ededed"
- name: "Z-Papercuts"
description: "Visible. Impactful. Predictable to action."
color: "ededed"
- name: "Z-Power-Users"
color: "ededed"
- name: "Z-Rageshake"
description: "Has attached rageshake (not for log submission process)"
color: "ededed"
- name: "Z-RICE"
color: "ededed"
- name: "Z-Soft-Crash"
description: "React soft crash caught by an error boundary"
color: "ededed"
- name: "Z-Spec-Compliance"
description: "An area where Element doesn't correctly implement the spec"
color: "ededed"
- name: "Z-t3chguy"
color: "ededed"

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

@@ -0,0 +1,3 @@
_extends: matrix-org/matrix-react-sdk
version-resolver:
default: patch

View File

@@ -3,6 +3,8 @@ on:
pull_request: {}
push:
branches: [develop, master]
merge_group:
types: [checks_requested]
# develop pushes and repository_dispatch handled in build_develop.yaml
env:
# These must be set for fetchdep.sh to get the right branch
@@ -32,7 +34,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
cache: "yarn"

View File

@@ -17,8 +17,8 @@ jobs:
- name: Download package
run: |
wget "https://github.com/vector-im/element-web/releases/download/$VERSION/element-$VERSION.tar.gz"
wget "https://github.com/vector-im/element-web/releases/download/$VERSION/element-$VERSION.tar.gz.asc"
wget "https://github.com/element-hq/element-web/releases/download/$VERSION/element-$VERSION.tar.gz"
wget "https://github.com/element-hq/element-web/releases/download/$VERSION/element-$VERSION.tar.gz.asc"
- name: Check GPG signature
run: |
@@ -31,38 +31,48 @@ jobs:
- name: Prepare
run: |
mkdir -p /tmp/element-web-debian/DEBIAN
cp -R debian/ /tmp/element-web-debian/DEBIAN/
mkdir -p /tmp/element-web-debian/usr/share/element-web/
mkdir -p debian/tmp/DEBIAN
find debian -maxdepth 1 -type f -exec cp "{}" debian/tmp/DEBIAN/ \;
mkdir -p debian/tmp/usr/share/element-web/ debian/tmp/etc/element-web/
tar -xf "element-$VERSION.tar.gz" -C /tmp/element-web-debian/usr/share/element-web --strip-components=1
cp config.sample.json /tmp/element-web-debian/usr/share/element-web/config.json
tar -xf "element-$VERSION.tar.gz" -C debian/tmp/usr/share/element-web --strip-components=1 --no-same-owner --no-same-permissions
mv debian/tmp/usr/share/element-web/config.sample.json debian/tmp/etc/element-web/config.json
ln -s /etc/element-web/config.json debian/tmp/usr/share/element-web/config.json
- name: Write changelog
run: |
VERSION=$(cat package.json | jq -r .version)
TIME=$(date -d "$PUBLISHED_AT" -R)
{
echo "element-web ($VERSION) default; urgency=medium"
echo "$BODY" | sed 's/^##/\n */g;s/^\*/ */g' | perl -pe 's/\[.+?]\((.+?)\)/\1/g'
echo ""
echo " -- $ACTOR <support@element.io> $TIME"
} > debian/tmp/DEBIAN/changelog
env:
ACTOR: ${{ github.actor }}
VERSION: ${{ github.event.release.tag_name }}
BODY: ${{ github.event.release.body }}
PUBLISHED_AT: ${{ github.event.release.published_at }}
- name: Build deb package
run: |
VERSION=$(cat package.json | jq -r .version)
chmod -R u=rw,go=r /tmp/element-web-debian/usr/share/element-web/
dpkg-deb -Zxz --root-owner-group -VVersion=$VERSION --build /tmp/element-web-debian element-web.deb
dpkg-gencontrol -v"$VERSION" -ldebian/tmp/DEBIAN/changelog
dpkg-deb -Zxz --root-owner-group --build debian/tmp element-web.deb
# For now just upload the artifact to github
- uses: actions/upload-artifact@v3
with:
name: debs
path: "*.deb"
name: element-web.deb
path: element-web.deb
retention-days: 14
#- name: Upload incoming deb
# if: github.event.release.prerelease == false
# run: aws s3 cp element-web.deb "s3://$R2_INCOMING_BUCKET" --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 }}
#reprepro:
# needs: build
# name: Run reprepro
# if: github.event.release.prerelease == false
# uses: ./.github/workflows/reprepro.yaml
# secrets: inherit
# with:
# incoming: element-web.deb
- name: Publish to packages.element.io
if: github.event.release.prerelease == false
uses: element-hq/packages.element.io@master
with:
file: element-web.deb
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 }}

View File

@@ -13,7 +13,7 @@ jobs:
build:
name: "Build & Deploy develop.element.io"
# Only respect triggers from our develop branch, ignore that of forks
if: github.repository == 'vector-im/element-web'
if: github.repository == 'element-hq/element-web'
runs-on: ubuntu-latest
environment: develop
env:
@@ -23,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
cache: "yarn"
@@ -91,7 +91,7 @@ jobs:
running-workflow-name: "Build & Deploy develop.element.io"
repo-token: ${{ secrets.GITHUB_TOKEN }}
wait-interval: 10
check-regexp: ^((?!SonarCloud|SonarQube|issue|board|label).)*$
check-regexp: ^((?!SonarCloud|SonarQube|issue|board|label|Release).)*$
# We keep the latest develop.tar.gz on R2 instead of relying on the github artifact uploaded earlier
# as the expires after 24h and requires auth to download.

View File

@@ -12,11 +12,24 @@ jobs:
name: Docker Buildx
runs-on: ubuntu-latest
environment: dockerhub
strategy:
fail-fast: false
matrix:
include:
- variant: vanilla
# Variant we ship to aid ESS in providing a build on the OpenCoDE platform including specific modules
- variant: opendesk
flavor: suffix=-opendesk,onlatest=true
prepare: mv variants/openDesk/* .
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # needed for docker-package to be able to calculate the version
- name: Prepare
if: matrix.prepare
run: ${{ matrix.prepare }}
- name: Set up QEMU
uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3
@@ -33,7 +46,7 @@ jobs:
- name: Docker meta
id: meta
uses: docker/metadata-action@96383f45573cb7f253c731d3b3ab81c87ef81934 # v5
uses: docker/metadata-action@31cebacef4805868f9ce9a0cb03ee36c32df2ac4 # v5
with:
images: |
vectorim/element-web
@@ -42,9 +55,10 @@ jobs:
type=ref,event=tag
flavor: |
latest=${{ contains(github.ref_name, '-rc.') && 'false' || 'auto' }}
${{ matrix.flavor }}
- name: Build and push
uses: docker/build-push-action@0565240e2d4ab88bba5387d719585280857ece09 # v5
uses: docker/build-push-action@4a13e500e55cf31b7a5d59a38ab2040ab0f42f56 # v5
with:
context: .
push: true
@@ -53,6 +67,7 @@ jobs:
labels: ${{ steps.meta.outputs.labels }}
- name: Update repo description
if: matrix.variant == 'vanilla'
uses: peter-evans/dockerhub-description@dc67fad7001ef9e8e3c124cb7a64e16d0a63d864 # v3
continue-on-error: true
with:

View File

@@ -22,7 +22,7 @@ jobs:
- name: Fetch element-desktop
uses: actions/checkout@v4
with:
repository: vector-im/element-desktop
repository: element-hq/element-desktop
path: element-desktop
- name: Fetch element-web
@@ -42,7 +42,7 @@ jobs:
repository: matrix-org/matrix-js-sdk
path: matrix-js-sdk
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
cache: "yarn"
cache-dependency-path: element-web/yarn.lock
@@ -112,4 +112,4 @@ jobs:
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v2
uses: actions/deploy-pages@v3

View File

@@ -0,0 +1,17 @@
name: Build downstream artifacts
on:
merge_group:
types: [checks_requested]
pull_request: {}
push:
branches: [develop, master]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build-element-web:
name: Build element-web
uses: matrix-org/matrix-react-sdk/.github/workflows/element-web.yaml@develop
with:
element-web-sha: ${{ github.sha }}
react-sdk-repository: matrix-org/matrix-react-sdk

56
.github/workflows/end-to-end-tests.yaml vendored Normal file
View File

@@ -0,0 +1,56 @@
# Triggers after the "Downstream artifacts" build has finished, to run the
# matrix-react-sdk playwright tests (with access to repo secrets)
name: matrix-react-sdk End to End Tests
on:
workflow_run:
workflows: ["Build downstream artifacts"]
types:
- completed
concurrency:
group: ${{ github.workflow }}-${{ github.event.workflow_run.head_branch || github.run_id }}
cancel-in-progress: ${{ github.event.workflow_run.event == 'pull_request' }}
jobs:
playwright:
name: Playwright
# We only want to run the playwright tests on merge queue to prevent regressions
# from creeping in. They take a long time to run and consume multiple concurrent runners.
if: github.event.workflow_run.event == 'merge_group'
uses: matrix-org/matrix-react-sdk/.github/workflows/end-to-end-tests.yaml@develop
permissions:
actions: read
issues: read
statuses: write
pull-requests: read
deployments: write
with:
react-sdk-repository: matrix-org/matrix-react-sdk
# We want to make the Playwright tests a required check for the merge queue.
#
# Unfortunately, github doesn't distinguish between "checks needed for branch
# protection" (ie, the things that must pass before the PR will even be added
# to the merge queue) and "checks needed in the merge queue". We just have to add
# the check to the branch protection list.
#
# Ergo, if we know we're not going to run the Playwright tests, we need to add a
# passing status check manually.
mark_skipped:
if: github.event.workflow_run.event != 'merge_group'
permissions:
statuses: write
runs-on: ubuntu-latest
steps:
- uses: Sibz/github-status-action@071b5370da85afbb16637d6eed8524a06bc2053e # v1
with:
authToken: "${{ secrets.GITHUB_TOKEN }}"
state: success
description: Playwright skipped
# Keep in step with the `context` that is updated by `Sibz/github-status-action`
# in matrix-org/matrix-react-sdk/.github/workflows/end-to-end-tests.yaml.
context: "${{ github.workflow }} / end-to-end-tests"
sha: "${{ github.event.workflow_run.head_sha }}"

View File

@@ -9,7 +9,7 @@ jobs:
name: Tidy closed issues
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v6
- uses: actions/github-script@v7
id: main
with:
# PAT needed as the GITHUB_TOKEN won't be able to see cross-references from other orgs (matrix-org)
@@ -141,7 +141,7 @@ jobs:
});
}
}
- uses: actions/github-script@v6
- uses: actions/github-script@v7
name: Close duplicate as Not Planned
if: steps.main.outputs.closeAsNotPlanned
with:

View File

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

View File

@@ -10,10 +10,10 @@ jobs:
runs-on: ubuntu-latest
environment: Matrix
env:
URL: "https://github.com/pulls?q=is%3Apr+is%3Aopen+repo%3Amatrix-org%2Fmatrix-js-sdk+repo%3Amatrix-org%2Fmatrix-react-sdk+repo%3Avector-im%2Felement-web+repo%3Avector-im%2Felement-desktop+review-requested%3A%40me+sort%3Aupdated-desc+"
RELEASE_BLOCKERS_URL: "https://github.com/pulls?q=is%3Aopen+repo%3Amatrix-org%2Fmatrix-js-sdk+repo%3Amatrix-org%2Fmatrix-react-sdk+repo%3Avector-im%2Felement-web+repo%3Avector-im%2Felement-desktop+sort%3Aupdated-desc+label%3AX-Release-Blocker+"
URL: "https://github.com/pulls?q=is%3Apr+is%3Aopen+repo%3Amatrix-org%2Fmatrix-js-sdk+repo%3Amatrix-org%2Fmatrix-react-sdk+repo%3Aelement-hq%2Felement-web+repo%3Aelement-hq%2Felement-desktop+review-requested%3A%40me+sort%3Aupdated-desc+"
RELEASE_BLOCKERS_URL: "https://github.com/pulls?q=is%3Aopen+repo%3Amatrix-org%2Fmatrix-js-sdk+repo%3Amatrix-org%2Fmatrix-react-sdk+repo%3Aelement-hq%2Felement-web+repo%3Aelement-hq%2Felement-desktop+sort%3Aupdated-desc+label%3AX-Release-Blocker+"
steps:
- uses: actions/github-script@v6
- uses: actions/github-script@v7
env:
HS_URL: ${{ secrets.BETABOT_HS_URL }}
ROOM_ID: ${{ secrets.ROOM_ID }}
@@ -60,16 +60,16 @@ jobs:
}
const repos = [
"vector-im/element-desktop",
"vector-im/element-web",
"element-hq/element-desktop",
"element-hq/element-web",
"matrix-org/matrix-react-sdk",
"matrix-org/matrix-js-sdk",
];
const teams = [
"matrix-org/element-web-app-team",
"matrix-org/element-web",
"vector-im/element-web-app-team",
"vector-im/element-web",
"matrix-org/element-web-team",
"matrix-org/element-web-reviewers",
"element-hq/element-web-team",
"element-hq/element-web-reviewers",
];
let issueCount = 0;

View File

@@ -2,6 +2,8 @@ name: Pull Request
on:
pull_request_target:
types: [opened, edited, labeled, unlabeled, synchronize]
merge_group:
types: [checks_requested]
jobs:
action:
uses: matrix-org/matrix-js-sdk/.github/workflows/pull_request.yaml@develop

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

@@ -0,0 +1,21 @@
name: Release Drafter
on:
push:
branches: [staging]
workflow_dispatch:
inputs:
previous-version:
description: What release to use as a base for release note purposes
required: false
type: string
concurrency: ${{ github.workflow }}
jobs:
draft:
runs-on: ubuntu-latest
steps:
- uses: release-drafter/release-drafter@e64b19c4c46173209ed9f2e5a2f4ca7de89a0e86 # v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
disable-autolabeler: true
previous-version: ${{ inputs.previous-version }}

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

@@ -0,0 +1,15 @@
# 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 }}
with:
dependencies: |
matrix-react-sdk
matrix-js-sdk

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

@@ -0,0 +1,39 @@
name: Release Process
on:
workflow_dispatch:
inputs:
mode:
description: What type of release
required: true
default: rc
type: choice
options:
- rc
- final
matrix-react-sdk:
description: React SDK version to use (current|X.Y.Z)
required: false
default: current
type: string
matrix-js-sdk:
description: JS SDK version to use (current|X.Y.Z)
required: false
default: current
type: string
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' }}
include-changes: matrix-react-sdk
gpg-fingerprint: ${{ vars.GPG_FINGERPRINT }}
asset-path: dist/*.tar.gz
expected-asset-count: 3
dependencies: |
matrix-react-sdk=${{ inputs.matrix-react-sdk }}
matrix-js-sdk=${{ inputs.matrix-js-sdk }}

View File

@@ -30,7 +30,7 @@ jobs:
uses: actions/checkout@v4
if: inputs.element-desktop
with:
repository: vector-im/element-desktop
repository: element-hq/element-desktop
path: element-desktop
ref: staging
fetch-depth: 0
@@ -40,7 +40,7 @@ jobs:
uses: actions/checkout@v4
if: inputs.element-web
with:
repository: vector-im/element-web
repository: element-hq/element-web
path: element-web
ref: staging
fetch-depth: 0

View File

@@ -3,6 +3,8 @@ on:
pull_request: {}
push:
branches: [develop, master]
merge_group:
types: [checks_requested]
repository_dispatch:
types: [element-web-notify]
env:
@@ -16,7 +18,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
cache: "yarn"
@@ -36,7 +38,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
cache: "yarn"
@@ -53,7 +55,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
cache: "yarn"
@@ -64,13 +66,30 @@ jobs:
- name: Run Linter
run: "yarn run lint:style"
workflow_lint:
name: "Workflow Lint"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
cache: "yarn"
# 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@v3
- uses: actions/setup-node@v4
with:
cache: "yarn"

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

@@ -0,0 +1,21 @@
name: Sync labels
on:
workflow_dispatch: {}
schedule:
- cron: "0 1 * * *" # 1am 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-meta
.github/labels.yml
DELETE: true
WET: true
secrets:
ELEMENT_BOT_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}

View File

@@ -3,6 +3,8 @@ on:
pull_request: {}
push:
branches: [develop, master]
merge_group:
types: [checks_requested]
repository_dispatch:
types: [element-web-notify]
env:
@@ -18,7 +20,7 @@ jobs:
uses: actions/checkout@v4
- name: Yarn cache
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
cache: "yarn"

View File

@@ -14,5 +14,5 @@ jobs:
steps:
- uses: actions/add-to-project@main
with:
project-url: https://github.com/orgs/vector-im/projects/67
project-url: https://github.com/orgs/element-hq/projects/67
github-token: ${{ secrets.ELEMENT_BOT_TOKEN }}

View File

@@ -3,6 +3,10 @@ name: Move labelled issues to correct projects
on:
issues:
types: [labeled]
workflow_call:
secrets:
ELEMENT_BOT_TOKEN:
required: true
jobs:
apply_Z-Labs_label:
@@ -23,7 +27,7 @@ jobs:
contains(github.event.issue.labels.*.name, 'A-Element-Call') ||
contains(github.event.issue.labels.*.name, 'A-Element-R')
steps:
- uses: actions/github-script@v6
- uses: actions/github-script@v7
with:
script: |
github.rest.issues.addLabels({
@@ -40,7 +44,7 @@ jobs:
contains(github.event.issue.labels.*.name, 'good first issue') ||
contains(github.event.issue.labels.*.name, 'Hacktoberfest')
steps:
- uses: actions/github-script@v6
- uses: actions/github-script@v7
with:
script: |
github.rest.issues.addLabels({
@@ -57,7 +61,7 @@ jobs:
- uses: konradpabjan/move-labeled-or-milestoned-issue@190352295fe309fcb113b49193bc81d9aaa9cb01
with:
action-token: "${{ secrets.ELEMENT_BOT_TOKEN }}"
project-url: "https://github.com/vector-im/element-web/projects/27"
project-url: "https://github.com/element-hq/element-web/projects/27"
column-name: "Need info"
label-name: "X-Needs-Info"
@@ -75,7 +79,7 @@ jobs:
steps:
- uses: actions/add-to-project@main
with:
project-url: https://github.com/orgs/vector-im/projects/18
project-url: https://github.com/orgs/element-hq/projects/18
github-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
add_product_issues:
@@ -86,7 +90,7 @@ jobs:
steps:
- uses: actions/add-to-project@main
with:
project-url: https://github.com/orgs/vector-im/projects/28
project-url: https://github.com/orgs/element-hq/projects/28
github-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
Search_issues_to_board:
@@ -97,7 +101,7 @@ jobs:
steps:
- uses: actions/add-to-project@main
with:
project-url: https://github.com/orgs/vector-im/projects/48
project-url: https://github.com/orgs/element-hq/projects/48
github-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
voip:
@@ -108,7 +112,7 @@ jobs:
steps:
- uses: actions/add-to-project@main
with:
project-url: https://github.com/orgs/vector-im/projects/41
project-url: https://github.com/orgs/element-hq/projects/41
github-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
verticals_feature:
@@ -119,7 +123,7 @@ jobs:
steps:
- uses: actions/add-to-project@main
with:
project-url: https://github.com/orgs/vector-im/projects/57
project-url: https://github.com/orgs/element-hq/projects/57
github-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
tech_debt:
@@ -135,7 +139,7 @@ jobs:
steps:
- uses: actions/add-to-project@main
with:
project-url: https://github.com/orgs/vector-im/projects/101
project-url: https://github.com/orgs/element-hq/projects/101
github-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
element_r:
@@ -151,7 +155,7 @@ jobs:
github-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
- id: set_fields
uses: titoportas/update-project-fields@020b5aa9db8f9501d4b16d6417c2132ff26e6279 # v0.1.0
uses: titoportas/update-project-fields@421a54430b3cdc9eefd8f14f9ce0142ab7678751 # v0.1.0
with:
project-url: ${{ env.PROJECT_URL }}
github-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
@@ -159,4 +163,4 @@ jobs:
field-keys: Workstream,module
field-values: Element-R,web
env:
PROJECT_URL: https://github.com/orgs/vector-im/projects/76
PROJECT_URL: https://github.com/orgs/element-hq/projects/76

View File

@@ -14,7 +14,7 @@ jobs:
headers: '{"GraphQL-Features": "projects_next_graphql"}'
query: |
query find_team_members($team: String!) {
organization(login: "vector-im") {
organization(login: "element-hq") {
team(slug: $team) {
members {
nodes {
@@ -81,7 +81,7 @@ jobs:
headers: '{"GraphQL-Features": "projects_next_graphql"}'
query: |
query find_team_members($team: String!) {
organization(login: "vector-im") {
organization(login: "element-hq") {
team(slug: $team) {
members {
nodes {

View File

@@ -60,7 +60,7 @@ jobs:
contains(github.event.issue.labels.*.name, 'A-Element-Call')) &&
contains(github.event.issue.labels.*.name, 'Z-Labs')
steps:
- uses: actions/github-script@v6
- uses: actions/github-script@v7
with:
script: |
github.rest.issues.removeLabel({

31
.github/workflows/update-jitsi.yml vendored Normal file
View File

@@ -0,0 +1,31 @@
# Re-fetches the Jitsi SDK and opens a PR to update it if it's different from what's in the repository
name: Update Jitsi
on:
workflow_dispatch: {}
schedule:
- cron: "0 3 * * 0" # 3am every Sunday
jobs:
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
cache: "yarn"
- name: Install Deps
run: "yarn install --frozen-lockfile"
- name: Fetch Jitsi
run: "yarn update:jitsi"
- name: Create Pull Request
uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38 # v5
with:
token: ${{ secrets.ELEMENT_BOT_TOKEN }}
branch: actions/jitsi-update
delete-branch: true
title: Jitsi Update
labels: |
T-Task

View File

@@ -21,7 +21,7 @@ jobs:
runs-on: ubuntu-latest
environment: Matrix
steps:
- uses: actions/github-script@v6
- uses: actions/github-script@v7
env:
HS_URL: ${{ secrets.BETABOT_HS_URL }}
LOBBY_ROOM_ID: ${{ secrets.ROOM_ID }}

View File

@@ -23,6 +23,12 @@ electron/pub
src/vector/index.html
src/vector/modernizr.js
/docs/lib
/book
/debian/tmp
# This file is owned, parsed, and generated by allchange, which doesn't comply with prettier
/CHANGELOG.md
/docs/changelogs
# Downloaded and already minified
res/jitsi_external_api.min.js

File diff suppressed because it is too large Load Diff

View File

@@ -271,9 +271,20 @@ on Git 2.17+ you can mass signoff using rebase:
git rebase --signoff origin/develop
```
## Private sign off
If you would like to provide your legal name privately to the Matrix.org
Foundation (instead of in a public commit or comment), you can do so by emailing
your legal name and a link to the pull request to dco@matrix.org. It helps to
include "sign off" or similar in the subject line. You will then be instructed
further.
Once private sign off is complete, doing so for future contributions will not
be required.
# Review expectations
See https://github.com/vector-im/element-meta/wiki/Review-process
See https://github.com/element-hq/element-meta/wiki/Review-process
# Merge Strategy

106
README.md
View File

@@ -1,6 +1,6 @@
[![Chat](https://img.shields.io/matrix/element-web:matrix.org?logo=matrix)](https://matrix.to/#/#element-web:matrix.org)
![Tests](https://github.com/vector-im/element-web/actions/workflows/tests.yaml/badge.svg)
![Static Analysis](https://github.com/vector-im/element-web/actions/workflows/static_analysis.yaml/badge.svg)
![Tests](https://github.com/element-hq/element-web/actions/workflows/tests.yaml/badge.svg)
![Static Analysis](https://github.com/element-hq/element-web/actions/workflows/static_analysis.yaml/badge.svg)
[![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-web&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=element-web)
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=element-web&metric=coverage)](https://sonarcloud.io/summary/new_code?id=element-web)
@@ -32,8 +32,8 @@ Element has several tiers of support for different environments:
- Everything else
For accessing Element on an Android or iOS device, we currently recommend the
native apps [element-android](https://github.com/vector-im/element-android)
and [element-ios](https://github.com/vector-im/element-ios).
native apps [element-android](https://github.com/element-hq/element-android)
and [element-ios](https://github.com/element-hq/element-ios).
# Getting Started
@@ -41,29 +41,9 @@ The easiest way to test Element is to just use the hosted copy at <https://app.e
The `develop` branch is continuously deployed to <https://develop.element.io>
for those who like living dangerously.
To host your own copy of Element, the quickest bet is to use a pre-built
released version of Element:
To host your own instance of Element see [Installing Element Web](docs/install.md).
1. Download the latest version from <https://github.com/vector-im/element-web/releases>
1. Untar the tarball on your web server
1. Move (or symlink) the `element-x.x.x` directory to an appropriate name
1. Configure the correct caching headers in your webserver (see below)
1. Configure the app by copying `config.sample.json` to `config.json` and
modifying it. See the [configuration docs](docs/config.md) for details.
1. Enter the URL into your browser and log into Element!
Releases are signed using gpg and the OpenPGP standard, and can be checked against the public key located
at <https://packages.riot.im/element-release-key.asc>.
Note that for the security of your chats will need to serve Element
over HTTPS. Major browsers also do not allow you to use VoIP/video
chats over HTTP, as WebRTC is only usable over HTTPS.
There are some exceptions like when using localhost, which is
considered a [secure context](https://developer.mozilla.org/docs/Web/Security/Secure_Contexts)
and thus allowed.
To install Element as a desktop application, see [Running as a desktop
app](#running-as-a-desktop-app) below.
To install Element as a desktop application, see [Running as a desktop app](#running-as-a-desktop-app) below.
# Important Security Notes
@@ -77,7 +57,7 @@ access to Element (or other apps) due to sharing the same domain.
We have put some coarse mitigations into place to try to protect against this
situation, but it's still not good practice to do it in the first place. See
<https://github.com/vector-im/element-web/issues/1977> for more details.
<https://github.com/element-hq/element-web/issues/1977> for more details.
## Configuration best practices
@@ -131,7 +111,7 @@ guide](https://classic.yarnpkg.com/en/docs/install) if you do not have it alread
1. Install or update `node.js` so that your `node` is at least the current recommended LTS.
1. Install `yarn` if not present already.
1. Clone the repo: `git clone https://github.com/vector-im/element-web.git`.
1. Clone the repo: `git clone https://github.com/element-hq/element-web.git`.
1. Switch to the element-web directory: `cd element-web`.
1. Install the prerequisites: `yarn install`.
- If you're using the `develop` branch, then it is recommended to set up a
@@ -157,65 +137,11 @@ Element can also be run as a desktop app, wrapped in Electron. You can download
pre-built version from <https://element.io/get-started> or, if you prefer,
build it yourself.
To build it yourself, follow the instructions at <https://github.com/vector-im/element-desktop>.
To build it yourself, follow the instructions at <https://github.com/element-hq/element-desktop>.
Many thanks to @aviraldg for the initial work on the Electron integration.
Other options for running as a desktop app:
- @asdf:matrix.org points out that you can use nativefier and it just works(tm)
```bash
yarn global add nativefier
nativefier https://app.element.io/
```
The [configuration docs](docs/config.md#desktop-app-configuration) show how to
override the desktop app's default settings if desired.
# Running from Docker
The Docker image can be used to serve element-web as a web server. The easiest way to use
it is to use the prebuilt image:
```bash
docker run -p 80:80 vectorim/element-web
```
To supply your own custom `config.json`, map a volume to `/app/config.json`. For example,
if your custom config was located at `/etc/element-web/config.json` then your Docker command
would be:
```bash
docker run -p 80:80 -v /etc/element-web/config.json:/app/config.json vectorim/element-web
```
To build the image yourself:
```bash
git clone https://github.com/vector-im/element-web.git element-web
cd element-web
git checkout master
docker build .
```
If you're building a custom branch, or want to use the develop branch, check out the appropriate
element-web branch and then run:
```bash
docker build -t \
--build-arg USE_CUSTOM_SDKS=true \
--build-arg REACT_SDK_REPO="https://github.com/matrix-org/matrix-react-sdk.git" \
--build-arg REACT_SDK_BRANCH="develop" \
--build-arg JS_SDK_REPO="https://github.com/matrix-org/matrix-js-sdk.git" \
--build-arg JS_SDK_BRANCH="develop" \
.
```
# Running in Kubernetes
The provided element-web docker image can also be run from within a Kubernetes cluster.
See the [Kubernetes example](docs/kubernetes.md) for more details.
The [configuration docs](docs/config.md#desktop-app-configuration) show how to override the desktop app's default settings if desired.
# config.json
@@ -225,7 +151,7 @@ See the [configuration docs](docs/config.md) for more details.
# Labs Features
Some features of Element may be enabled by flags in the `Labs` section of the settings.
Some of these features are described in [labs.md](https://github.com/vector-im/element-web/blob/develop/docs/labs.md).
Some of these features are described in [labs.md](https://github.com/element-hq/element-web/blob/develop/docs/labs.md).
# Caching requirements
@@ -305,7 +231,7 @@ popd
Clone the repo and switch to the `element-web` directory:
```bash
git clone https://github.com/vector-im/element-web.git
git clone https://github.com/element-hq/element-web.git
cd element-web
```
@@ -341,8 +267,8 @@ for changes. If the inotify limits are too low your build will fail silently or
`Error: EMFILE: too many open files`. To avoid these issues, we recommend a watch limit
of at least `128M` and instance limit around `512`.
You may be interested in issues [#15750](https://github.com/vector-im/element-web/issues/15750) and
[#15774](https://github.com/vector-im/element-web/issues/15774) for further details.
You may be interested in issues [#15750](https://github.com/element-hq/element-web/issues/15750) and
[#15774](https://github.com/element-hq/element-web/issues/15774) for further details.
To set a new inotify watch and instance limit, execute:
@@ -390,6 +316,6 @@ For a developer guide, see the [translating dev doc](docs/translating-dev.md).
# Triaging issues
Issues are triaged by community members and the Web App Team, following the [triage process](https://github.com/vector-im/element-meta/wiki/Triage-process).
Issues are triaged by community members and the Web App Team, following the [triage process](https://github.com/element-hq/element-meta/wiki/Triage-process).
We use [issue labels](https://github.com/vector-im/element-meta/wiki/Issue-labelling) to sort all incoming issues.
We use [issue labels](https://github.com/element-hq/element-meta/wiki/Issue-labelling) to sort all incoming issues.

View File

@@ -18,9 +18,10 @@ create-missing = false
# Remove the numbers that appear before each item in the sidebar, as they can
# get quite messy as we nest deeper
no-section-label = true
additional-css = ["docs/lib/custom.css"]
# The source code URL of the repository
git-repository-url = "https://github.com/vector-im/element-web"
git-repository-url = "https://github.com/element-hq/element-web"
# The path that the docs are hosted on
site-url = "/element-web/"

View File

@@ -21,5 +21,5 @@ modules:
# An example of pulling a module from NPM
- "@vector-im/element-web-ilag-module@^0.0.1"
# An example of pulling a module from github
- "github:vector-im/element-web-ilag-module#main"
# An example of pulling a module from local filesystem during development
- "file:/home/user/development/element-web-ilag-module"

View File

@@ -2,12 +2,12 @@
"name": "Element",
"description": "A glossy Matrix collaboration client for the web.",
"repository": {
"url": "https://github.com/vector-im/element-web",
"url": "https://github.com/element-hq/element-web",
"license": "Apache License 2.0"
},
"bugs": {
"list": "https://github.com/vector-im/element-web/issues",
"report": "https://github.com/vector-im/element-web/issues/new/choose"
"list": "https://github.com/element-hq/element-web/issues",
"report": "https://github.com/element-hq/element-web/issues/new/choose"
},
"keywords": ["chat", "riot", "matrix"]
}

2
debian/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
/files
/tmp

2
debian/conffiles vendored
View File

@@ -1 +1 @@
/usr/share/element-web/config.json
/etc/element-web/config.json

13
debian/control vendored
View File

@@ -1,12 +1,13 @@
Package: element-web
License: Apache-2.0
Vendor: support@element.io
Architecture: all
Source: element-web
Maintainer: support@element.io
Recommends: element-io-archive-keyring
Section: web
Priority: optional
Homepage: https://element.io/
Version: ${Version}
Package: element-web
Architecture: all
Recommends: httpd, element-io-archive-keyring
Description:
A feature-rich client for Matrix.org
This package contains the web-based client that can be served through a web
server.

View File

@@ -9,6 +9,7 @@
# Setup
- [Install](install.md)
- [Config](config.md)
- [Custom home page](custom-home.md)
- [Kubernetes](kubernetes.md)
@@ -37,3 +38,4 @@
- [Jitsi](jitsi-dev.md)
- [Feature flags](feature-flags.md)
- [OIDC and delegated authentication](oidc.md)
- [Release Process](release.md)

View File

@@ -4,7 +4,7 @@ Beta features are features that are not ready for production yet but the team
wants more people to try the features and give feedback on them.
Before a feature gets into its beta phase, it is often a labs feature (see
[Labs](https://github.com/vector-im/element-web/blob/develop/docs/labs.md)).
[Labs](https://github.com/element-hq/element-web/blob/develop/docs/labs.md)).
**Be warned! Beta features may not be completely finalised or stable!**

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -18,12 +18,12 @@ If you're looking for inspiration on where to start, keep reading!
## Finding a good first issue
All the issues for Element Web live in the
[element-web](https://github.com/vector-im/element-web) repository, including
[element-web](https://github.com/element-hq/element-web) repository, including
issues that actually need fixing in `matrix-react-sdk` or one of the related
repos.
The first place to look is for
[issues tagged with "good first issue"](https://github.com/vector-im/element-web/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22).
[issues tagged with "good first issue"](https://github.com/element-hq/element-web/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22).
Look through that list and find something that catches your interest. If there
is nothing, there, try gently asking in
@@ -38,8 +38,8 @@ issue a **GOOD** choice:
- You think you can understand what's needed.
- It already has approval from Element Web's designers (look for comments from
members of the
[Product](https://github.com/orgs/vector-im/teams/product/members) or
[Design](https://github.com/orgs/vector-im/teams/design/members) teams).
[Product](https://github.com/orgs/element-hq/teams/product/members) or
[Design](https://github.com/orgs/element-hq/teams/design/members) teams).
Here are some things that might make it a **BAD** choice:
@@ -57,7 +57,7 @@ way the product works, or how it looks in a specific area.
Once you've fixed a few small things, you can consider taking on something a
little larger. This should mostly be driven by what you find interesting, but
you may also find the
[Help Wanted](https://github.com/vector-im/element-web/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%22Help+Wanted%22)
[Help Wanted](https://github.com/element-hq/element-web/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%22Help+Wanted%22)
label useful.
Note that the same comment applies as in the previous section: if you want to

View File

@@ -480,7 +480,7 @@ decentralised.
## Desktop app configuration
See https://github.com/vector-im/element-desktop#user-specified-configjson
See https://github.com/element-hq/element-desktop#user-specified-configjson
## UI Features

View File

@@ -2,7 +2,7 @@
### 🦖 DEPRECATED
Customisations have been deprecated in favour of the [Module API](https://github.com/vector-im/element-web/blob/develop/docs/modules.md).
Customisations have been deprecated in favour of the [Module API](https://github.com/element-hq/element-web/blob/develop/docs/modules.md).
If you have use cases from customisations which are not yet available via the Module API please open an issue.
Customisations will be removed from the codebase in a future release.

View File

@@ -53,7 +53,7 @@ When starting work on a feature, we should create a matching feature flag:
SettingsStore.getValue("feature_cats");
```
3. Document the feature in the [labs documentation](https://github.com/vector-im/element-web/blob/develop/docs/labs.md)
3. Document the feature in the [labs documentation](https://github.com/element-hq/element-web/blob/develop/docs/labs.md)
With these steps completed, the feature is disabled by default, but can be
enabled on develop and nightly by interested users for testing.
@@ -64,9 +64,9 @@ The following lists a few common options.
## Enabling by default on develop and nightly
Set the feature to `true` in the
[develop](https://github.com/vector-im/element-web/blob/develop/element.io/develop/config.json)
[develop](https://github.com/element-hq/element-web/blob/develop/element.io/develop/config.json)
and
[nightly](https://github.com/vector-im/element-desktop/blob/develop/element.io/nightly/config.json)
[nightly](https://github.com/element-hq/element-desktop/blob/develop/element.io/nightly/config.json)
configs:
```json
@@ -78,9 +78,9 @@ configs:
## Enabling by default on staging, app, and release
Set the feature to `true` in the
[staging / app](https://github.com/vector-im/element-web/blob/develop/element.io/app/config.json)
[staging / app](https://github.com/element-hq/element-web/blob/develop/element.io/app/config.json)
and
[release](https://github.com/vector-im/element-desktop/blob/develop/element.io/release/config.json)
[release](https://github.com/element-hq/element-desktop/blob/develop/element.io/release/config.json)
configs.
**Note:** The above will only enable the feature for https://app.element.io and official Element
@@ -95,19 +95,19 @@ If the feature is meant to be turned off/on by the user:
1. Remove `isFeature` from the [setting](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.ts)
2. Change the `default` to `true` (if desired).
3. Remove the feature from the [labs documentation](https://github.com/vector-im/element-web/blob/develop/docs/labs.md)
3. Remove the feature from the [labs documentation](https://github.com/element-hq/element-web/blob/develop/docs/labs.md)
4. Celebrate! 🥳
If the feature is meant to be forced on (non-configurable):
1. Remove the [setting](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.ts)
2. Remove all `getValue` lines that test for the feature.
3. Remove the feature from the [labs documentation](https://github.com/vector-im/element-web/blob/develop/docs/labs.md)
3. Remove the feature from the [labs documentation](https://github.com/element-hq/element-web/blob/develop/docs/labs.md)
4. If applicable, remove the feature state from
[develop](https://github.com/vector-im/element-web/blob/develop/element.io/develop/config.json),
[nightly](https://github.com/vector-im/element-desktop/blob/develop/element.io/nightly/config.json),
[staging / app](https://github.com/vector-im/element-web/blob/develop/element.io/app/config.json),
[develop](https://github.com/element-hq/element-web/blob/develop/element.io/develop/config.json),
[nightly](https://github.com/element-hq/element-desktop/blob/develop/element.io/nightly/config.json),
[staging / app](https://github.com/element-hq/element-web/blob/develop/element.io/app/config.json),
and
[release](https://github.com/vector-im/element-desktop/blob/develop/element.io/release/config.json)
[release](https://github.com/element-hq/element-desktop/blob/develop/element.io/release/config.json)
configs
5. Celebrate! 🥳

80
docs/install.md Normal file
View File

@@ -0,0 +1,80 @@
# Installing Element Web
**Familiarise yourself with the [Important Security Notes](../README.md#important-security-notes) before starting, they apply to all installation methods.**
_Note: that for the security of your chats will need to serve Element over HTTPS.
Major browsers also do not allow you to use VoIP/video chats over HTTP, as WebRTC is only usable over HTTPS.
There are some exceptions like when using localhost, which is considered a [secure context](https://developer.mozilla.org/docs/Web/Security/Secure_Contexts) and thus allowed._
## Release tarball
1. Download the latest version from <https://github.com/element-hq/element-web/releases>
1. Untar the tarball on your web server
1. Move (or symlink) the `element-x.x.x` directory to an appropriate name
1. Configure the correct caching headers in your webserver (see below)
1. Configure the app by copying `config.sample.json` to `config.json` and
modifying it. See the [configuration docs](config.md) for details.
1. Enter the URL into your browser and log into Element!
Releases are signed using gpg and the OpenPGP standard,
and can be checked against the public key located at <https://packages.element.io/element-release-key.asc>.
## Debian package
Element Web is now also available as a Debian package for Debian and Ubuntu based systems.
```shell
sudo apt install -y wget apt-transport-https
sudo wget -O /usr/share/keyrings/element-io-archive-keyring.gpg https://packages.element.io/debian/element-io-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/element-io-archive-keyring.gpg] https://packages.element.io/debian/ default main" | sudo tee /etc/apt/sources.list.d/element-io.list
sudo apt update
sudo apt install element-web
```
Configure the app by modifying `/etc/element-web/config.json`. See the [configuration docs](config.md) for details.
Then point your chosen web server (e.g. Caddy, Nginx, Apache, etc) at the `/usr/share/element-web` webroot.
## Docker
The Docker image can be used to serve element-web as a web server. The easiest way to use
it is to use the prebuilt image:
```bash
docker run -p 80:80 vectorim/element-web
```
To supply your own custom `config.json`, map a volume to `/app/config.json`. For example,
if your custom config was located at `/etc/element-web/config.json` then your Docker command
would be:
```bash
docker run -p 80:80 -v /etc/element-web/config.json:/app/config.json vectorim/element-web
```
To build the image yourself:
```bash
git clone https://github.com/element-hq/element-web.git element-web
cd element-web
git checkout master
docker build .
```
If you're building a custom branch, or want to use the develop branch, check out the appropriate
element-web branch and then run:
```bash
docker build -t \
--build-arg USE_CUSTOM_SDKS=true \
--build-arg REACT_SDK_REPO="https://github.com/matrix-org/matrix-react-sdk.git" \
--build-arg REACT_SDK_BRANCH="develop" \
--build-arg JS_SDK_REPO="https://github.com/matrix-org/matrix-js-sdk.git" \
--build-arg JS_SDK_BRANCH="develop" \
.
```
## Kubernetes
The provided element-web docker image can also be run from within a Kubernetes cluster.
See the [Kubernetes example](kubernetes.md) for more details.

View File

@@ -64,7 +64,7 @@ Element Android (1.0.5+) supports custom Jitsi domains, similar to Element Web a
calls work directly between clients or via TURN servers configured on the respective
homeservers.
For rooms with more than 2 joined members, when creating a Jitsi conference via call/video buttons of the toolbar (not via integration manager), Element Android will create a widget using the [wrapper](https://github.com/vector-im/element-web/blob/develop/docs/jitsi-dev.md) hosted on `app.element.io`.
For rooms with more than 2 joined members, when creating a Jitsi conference via call/video buttons of the toolbar (not via integration manager), Element Android will create a widget using the [wrapper](https://github.com/element-hq/element-web/blob/develop/docs/jitsi-dev.md) hosted on `app.element.io`.
The domain used is the one specified by the `/.well-known/matrix/client` endpoint, and if not present it uses the fallback defined in `config.json` (meet.element.io)
For active Jitsi widgets in the room, a native Jitsi widget UI is created and points to the instance specified in the `domain` key of the widget content data.

View File

@@ -5,7 +5,7 @@ to `Settings->Labs`. This list is non-exhaustive and subject to change, chat in
[#element-web:matrix.org](https://matrix.to/#/#element-web:matrix.org) for more information.
If a labs features gets more stable, it _may_ be promoted to a beta feature
(see [Betas](https://github.com/vector-im/element-web/blob/develop/docs/betas.md)).
(see [Betas](https://github.com/element-hq/element-web/blob/develop/docs/betas.md)).
**Be warned! Labs features are not finalised, they may be fragile, they may change, they may be
dropped. Ask in the room if you are unclear about any details here.**
@@ -37,29 +37,6 @@ date from the calendar.
Also adds the `/jumptodate 2022-01-31` slash command.
## Render simple counters in room header (`feature_state_counters`)
Allows rendering of labelled counters above the message list.
Once enabled, send a custom state event to a room to set values:
1. In a room, type `/devtools` to bring up the devtools interface
2. Click "Send Custom Event"
3. Toggle from "Event" to "State Event"
4. Set the event type to: `re.jki.counter` and give it a unique key
5. Specify the content in the following format:
```
{
"link": "",
"severity": "normal",
"title": "my counter",
"value": 0
}
```
That's it. Now should see your new counter under the header.
## New ways to ignore people (`feature_mjolnir`)
When enabled, a new settings tab appears for users to be able to manage their ban lists.
@@ -120,6 +97,15 @@ This feature allows users to place and join native [MSC3401](https://github.com/
If you're enabling this at the deployment level, you may also want to reference the docs for the `element_call` config section.
## Disable per-sender encryption for Element Call (`feature_disable_call_per_sender_encryption`)
The default for embedded Element Call in Element Web is per-participant encryption.
This labs flag disables encryption for embedded Element Call in encrypted rooms.
Under the hood this stops Element Web from adding the `perParticipantE2EE` flag for the Element Call widget url.
This is useful while we experiment with encryption and to make calling compatible with platforms that don't use encryption yet.
## Rich text in room topics (`feature_html_topic`) [In Development]
Enables rendering of MD / HTML in room topics.

14
docs/lib/custom.css Normal file
View File

@@ -0,0 +1,14 @@
/* Prevent collapsible headings from wrapping onto two lines eagerly */
summary > h1,
summary > h2,
summary > h3,
summary > h4,
summary > h5,
summary > h6 {
display: inline-block;
}
/* Prevent longer checkbox lists from wrapping eagerly */
input + p {
display: inline;
}

View File

@@ -6,7 +6,7 @@ at runtime.
## Installing modules
If you already have a module you want to install, such as our [ILAG Module](https://github.com/vector-im/element-web-ilag-module),
If you already have a module you want to install, such as our [ILAG Module](https://github.com/element-hq/element-web-ilag-module),
then copy `build_config.sample.yaml` to `build_config.yaml` in the same directory. In your new `build_config.yaml` simply
add the reference to the module as described by the sample file, using the same syntax you would for `yarn add`:
@@ -30,7 +30,7 @@ Once your change to the module API is accepted, the `@matrix-org/react-sdk-modul
`matrix-react-sdk` and `element-web` layers (usually by us, the maintainers) to ensure your module can operate.
If you're not adding anything to the module API, or your change was accepted per above, then start off with a clone of
our [ILAG module](https://github.com/vector-im/element-web-ilag-module) which will give you a general idea for what the
our [ILAG module](https://github.com/element-hq/element-web-ilag-module) which will give you a general idea for what the
structure of a module is and how it works.
The following requirements are key for any module:
@@ -40,6 +40,8 @@ The following requirements are key for any module:
which takes a single parameter: a `ModuleApi` instance. This instance is passed to `super()`.
3. The module must be deployed in a way where `yarn add` can access it, as that is how the build system will try to
install it. Note that while this is often NPM, it can also be a GitHub/GitLab repo or private NPM registry.
Be careful when using git dependencies in yarn classic, many lifecycle scripts will not be executed which may mean
that your module is not built and thus may fail to be imported.
... and that's pretty much it. As with any code, please be responsible and call things in line with the documentation.
Both `RuntimeModule` and `ModuleApi` have extensive documentation to describe what is proper usage and how to set things

View File

@@ -1,3 +1,3 @@
# Native Node Modules
This documentation moved to the [`element-desktop`](https://github.com/vector-im/element-desktop/blob/develop/docs/native-node-modules.md) repository.
This documentation moved to the [`element-desktop`](https://github.com/element-hq/element-desktop/blob/develop/docs/native-node-modules.md) repository.

268
docs/release.md Normal file
View File

@@ -0,0 +1,268 @@
> Tip: Paste this into the browser console to make the checkboxes on this page tickable. (Bear in mind that your ticks will be lost if you reload though.)
>
> ```
> document.querySelectorAll("input[type='checkbox']").forEach(i => {i.disabled = false;})
> ```
<details><summary><h1>Branches</h1></summary><blockquote>
#### develop
The develop branch holds the very latest and greatest code we have to offer, as such it may be less stable. It corresponds to the develop.element.io CD platform.
#### staging
The staging branch corresponds to the very latest release regardless of whether it is an RC or not. Deployed to staging.element.io manually.
#### master
The master branch is the most stable as it is the very latest non-RC release. Deployed to app.element.io manually.
</blockquote></details>
<details><summary><h1>Versions</h1></summary><blockquote>
The matrix-js-sdk follows semver, the matrix-react-sdk loosely follows semver, most releases for both will bump the minor version number.
Breaking changes will bump the major version number.
Element Web & Element Desktop do not follow semver and always have matching version numbers. The patch version number is normally incremented for every release.
</blockquote></details>
<details><summary><h1>Release Types</h1></summary><blockquote>
#### Release candidate
A normal release begins with a Release Candidate on the Tick phase of the release cycle,
and may contain as many further RCs as are needed before the Tock phase of cycle.
Each subsequent RC may add additional commits via any of the means of preparation.
A normal release is the most typical run-of-the-mill release,
with at least one RC (Release Candidate) followed by a FINAL release.
The typical cadence for these is every 2 weeks we'll do a new initial RC,
then the following week we'll do that release cycle's FINAL release with sometimes more RCs in between, as needed.
#### Final
A normal release culminates with a Final release on the Tock phase of the cycle.
This may be merely shipping the very latest RC with an adjusted version number,
but can also include (hopefully small) additional changes present on `staging` if they are deemed safe to skip an RC.
### Hotfix / Security
This is an accelerated type of release which sits somewhere between RC and Final.
They tend to contain few patches delta from the previous release but also skip any form of RC
and in the case of Security the patch lands on GitHub only moments prior.
For all intents and purposes they are the same as a Final release but with a different purpose.
</blockquote></details>
<details><summary><h1>Release Blockers</h1></summary><blockquote>
You should become release rabbit on the day after the last full release.
For that week, it's your job to keep an eye on the Releases room and see whether any issues marked `X-Release-Blocker` are opened,
or were already open. You should chase people to fix them, so that on RC day you can make the release.
If release-blocking issues are still open, you need to delay the release until they are fixed or reclassified.
There are two labels for tracking release blockers.
#### X-Release-Blocker
This label applied to an issue means we cannot ship a release affected by the specific issue.
This means we cannot cut branches for an RC but security & hotfix releases may still be fine.
#### X-Upcoming-Release-Blocker
This label applied to an issue means that the next (read: not current) release cycle will be affected by the specific issue.
This label will automagically convert to `X-Release-Blocker` at the conclusion of a full release.
</blockquote></details>
<details><summary><h1>Repositories</h1></summary><blockquote>
This release process revolves around our four main repositories:
- [Element Desktop](https://github.com/element-hq/element-desktop/)
- [Element Web](https://github.com/element-hq/element-web/)
- [Matrix React SDK](https://github.com/matrix-org/matrix-react-sdk/)
- [Matrix JS SDK](https://github.com/matrix-org/matrix-js-sdk/)
We own other repositories, but they have more ad-hoc releases and are not part of the bi-weekly cycle:
- https://github.com/matrix-org/matrix-web-i18n/
- https://github.com/matrix-org/matrix-react-sdk-module-api
</blockquote></details>
<details><summary><h1>Prerequisites</h1></summary><blockquote>
- You must be part of the 2 Releasers GitHub groups:
- <https://github.com/orgs/element-hq/teams/element-web-releasers>
- <https://github.com/orgs/matrix-org/teams/element-web-releasers>
- You will need access to the **VPN** ([docs](https://gitlab.matrix.org/new-vector/internal/-/wikis/SRE/Tailscale)) to be able to follow the instructions under Deploy below.
- You will need the ability to **SSH** in to the production machines to be able to follow the instructions under Deploy below. Ensure that your SSH key has a non-empty passphrase, and you registered your SSH key with Ops. Log a ticket at https://github.com/matrix-org/matrix-ansible-private and ask for:
- Two-factor authentication to be set up on your SSH key. (This is needed to get access to production).
- SSH access to `horme` (staging.element.io and app.element.io)
- Permission to sudo on horme as the user `element`
- You need "**jumphost**" configuration in your local `~/.ssh/config`. This should have been set up as part of your onboarding.
</blockquote></details>
<details><summary><h1>Overview</h1></summary><blockquote>
```mermaid
flowchart TD
P[[Prepare staging branches]]
P --> R1
subgraph Releasing
R1[[Releasing matrix-js-sdk]]
R2[[Releasing matrix-react-sdk]]
R3[[Releasing element-web]]
R4[[Releasing element-desktop]]
R1 --> R2 --> R3 --> R4
end
R4 --> D1
subgraph Deploying
D1[\Deploy staging.element.io/]
D2[\Check dockerhub/]
D3[\Deploy app.element.io/]
D4[\Check desktop package/]
D1 --> D2 --> D
D{FINAL?}
D -->|Yes| D3 --> D4
end
D -->|No| H1
D4 --> H1
subgraph Housekeeping
H1[\Update topics/]
H2[\Announce/]
H3[\Archive done column/]
H4[\Add diary entry/]
H5[\Renovate/]
H1 --> H2 --> H
H{FINAL?}
H -->|Yes| H3 --> H4 --> DONE
H -->|No| H5
end
DONE([You are done!])
H5 --> DONE
```
</blockquote></details>
---
# Preparation
The goal of this stage is to get the code you want to ship onto the `staging` branch.
There are multiple ways to accomplish this depending on the type of release you need to perform.
For the first RC in a given release cycle the easiest way to prepare branches is using the
[Cut branches automation](https://github.com/element-hq/element-web/actions/workflows/release_prepare.yml) -
this will take `develop` and merge it into the `staging` on the chosen repositories.
For subsequent RCs, if you need to include a change you may PR it directly to the `staging` branch or rely on the
backport automation via labelling a PR to `develop` with `backport staging` which will cause a new PR to be opened
which backports the requested change to the `staging` branch.
For security, you may wish to merge the security advisory private fork or apply the patches manually and then push them directly to `staging`.
It is worth noting that at the end of the Final/Hotfix/Security release `staging` is merged to `master` which is merged back into `develop` -
this means that any commit which goes to `staging` will eventually make its way back to the default branch.
- [ ] The staging branch is prepared
# Releasing
Shortly after concluding the preparation stage (or pushing any changes to `staging` in general);
a draft release will be automatically made on the 4 project repositories with suggested changelogs and version numbers.
Review the draft releases created, check the version number makes sense and that the changelog contains everything you'd expect to.
_Note: we should add a step here to write summaries atop the changelogs manually, or via AI_
### Matrix JS SDK
The first stop is the matrix-js-sdk; kick off a release using [the automation](https://github.com/matrix-org/matrix-js-sdk/actions/workflows/release.yml) - making sure to select the right type of release. For anything other than an RC: choose final. You should not need to ever switch off either of the Publishing options.
- [ ] matrix-js-sdk has been released & published to npm
### Matrix React SDK
The next stop is matrix-react-sdk; kick off a release using [the automation](https://github.com/matrix-org/matrix-react-sdk/actions/workflows/release.yml) - making sure to select the right type of release. For anything other than an RC: choose final. In the JS SDK version field enter the version of the JS SDK you wish to use, for typical releases including all the layers this would be the version released in the stage above.
- [ ] matrix-react-sdk has been released & published to npm
### Element Web
The next stop is element-web; kick off a release using [the automation](https://github.com/element-hq/element-web/actions/workflows/release.yml) - making sure to select the right type of release. For anything other than an RC: choose final. In the SDK version fields enter the versions you wish to use, for typical releases including all the layers this would be the versions released in the stages above.
- [ ] Element Web has been released
### Element Desktop
The next stop is element-desktop; kick off a release using [the automation](https://github.com/element-hq/element-desktop/actions/workflows/release.yml) - making sure to select the right type of release. For anything other than an RC: choose final. In the JS SDK version field enter the version of the JS SDK you wish to use, for typical releases including all the layers this would be the version released in the stage above.
- [ ] Element Desktop has been released
# Deploying
We ship the SDKs to npm, this happens as part of the release process.
We ship Element Web to dockerhub, `*.element.io`, and packages.element.io.
We ship Element Desktop to packages.element.io.
- [ ] Check that element-web has shipped to dockerhub
- [ ] Deploy staging.element.io. [See docs.](https://handbook.element.io/books/element-web-team/page/deploying-appstagingelementio)
- [ ] Test staging.element.io
For final releases additionally do these steps:
- [ ] Deploy app.element.io. [See docs.](https://handbook.element.io/books/element-web-team/page/deploying-appstagingelementio)
- [ ] Test app.element.io
- [ ] Ensure Element Web package has shipped to packages.element.io
- [ ] Ensure Element Desktop packages have shipped to packages.element.io
# Housekeeping
We have some manual housekeeping to do in order to prepare for the next release.
- [ ] Update topics using [the automation](https://github.com/element-hq/element-web/actions/workflows/update-topics.yaml). It will autodetect the current latest version. Don't forget the date you supply should be e.g. September 5th (including the "th") for the script to work.
- [ ] Announce the release in [#element-web-announcements:matrix.org](https://matrix.to/#/#element-web-announcements:matrix.org)
<details><summary>(show)</summary>
With wording like:
> Element Web v1.11.24 is here!
>
> This version adds ... and fixes bugs ...
>
> Check it out at app.element.io, in Element Desktop, or from Docker Hub. Changelog and more details at https://github.com/element-hq/element-web/releases/tag/v1.11.24
</details>
For the first RC of a given release cycle do these steps:
- [ ] Go to the [matrix-js-sdk Renovate dashboard](https://github.com/matrix-org/matrix-js-sdk/issues/2406) and click the checkbox to create/update its PRs.
- [ ] Go to the [matrix-react-sdk Renovate dashboard](https://github.com/matrix-org/matrix-react-sdk/issues/9667) and click the checkbox to create/update its PRs.
- [ ] Go to the [element-web Renovate dashboard](https://github.com/element-hq/element-web/issues/22941) and click the checkbox to create/update its PRs.
- [ ] Go to the [element-desktop Renovate dashboard](https://github.com/element-hq/element-desktop/issues/465) and click the checkbox to create/update its PRs.
- [ ] Later, check back and merge the PRs that succeeded to build. The ones that failed will get picked up by the [maintainer](https://docs.google.com/document/d/1V5VINWXATMpz9UBw4IKmVVB8aw3CxM0Jt7igtHnDfSk/edit#).
For final releases additionally do these steps:
- [ ] Archive done column on the [team board](https://github.com/orgs/element-hq/projects/67/views/34) _Note: this should be automated_
- [ ] Add entry to the [milestones diary](https://docs.google.com/document/d/1cpRFJdfNCo2Ps6jqzQmatzbYEToSrQpyBug0aP_iwZE/edit#heading=h.6y55fw4t283z). The document says only to add significant releases, but we add all of them just in case.

View File

@@ -36,7 +36,7 @@ function getColorName(hex) {
## Key naming rules
These rules are based on https://github.com/vector-im/element-x-android/blob/develop/tools/localazy/README.md
These rules are based on https://github.com/element-hq/element-x-android/blob/develop/tools/localazy/README.md
At this time we are not trying to have a translation key per UI element as some methodologies use,
whilst that would offer the greatest flexibility, it would also make reuse between projects nigh impossible.
We are aiming for a set of common strings to be shared then some more localised translations per context they may appear in.
@@ -47,10 +47,6 @@ We are aiming for a set of common strings to be shared then some more localised
4. Otherwise, try to group keys logically and nest where appropriate, such as `keyboard_` for strings relating to keyboard shortcuts.
5. Ensure your translation keys do not include `.` or `|` or ` `. Try to balance string length against descriptiveness.
## matrix-react-sdk is still undergoing migration to translation keys
If you are fortunate enough to be modifying not yet migrated strings please treat them as a new string using instructions below.
## Adding new strings
1. Check if the import `import { _t } from 'matrix-react-sdk/src/languageHandler';` is present. If not add it to the other import statements. Also import `_td` if needed.

View File

@@ -29,3 +29,8 @@ A special case is `%(count)s` as this is also used to determine which pluralisat
These things are markup tags, they encapsulate sections of translations to be marked up, with links, buttons, emphasis and such.
You must keep these markers surrounding the equivalent string in your language that needs to be marked up.
### When will my translations be available?
We automatically pull changes from Localazy 3 times a week, so your translations should be available at https://develop.element.io
within a few days of you submitting them and them being approved. They will then also be included in the following release cycle.

View File

@@ -6,7 +6,7 @@ official element.io distribution, but these files may be useful if you want to
inspect the configuration used there.
Element Desktop uses a separate config (see
https://github.com/vector-im/element-desktop/tree/develop/element.io).
https://github.com/element-hq/element-desktop/tree/develop/element.io).
Deployment scripts (such as app/deploy.py) are meant to be run on the web server
hosting the Element installation.

View File

@@ -49,7 +49,8 @@
"privacy_policy_url": "https://element.io/cookie-policy",
"features": {
"feature_video_rooms": true,
"feature_rust_crypto": true
"feature_rust_crypto": true,
"feature_new_room_decoration_ui": true
},
"element_call": {
"url": "https://call.element.dev"

View File

@@ -40,9 +40,9 @@ const config: Config = {
"waveWorker\\.min\\.js": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js",
"context-filter-polyfill": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js",
"FontManager.ts": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/FontManager.js",
"workers/(.+)\\.worker\\.ts": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/workerMock.js",
"workers/(.+)Factory": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/workerFactoryMock.js",
"^!!raw-loader!.*": "jest-raw-loader",
"RecorderWorklet": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js",
"recorderWorkletFactory": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js",
"^fetch-mock$": "<rootDir>/node_modules/fetch-mock",
},
transformIgnorePatterns: ["/node_modules/(?!matrix-js-sdk).+$", "/node_modules/(?!matrix-react-sdk).+$"],

View File

@@ -1,11 +1,11 @@
{
"name": "element-web",
"version": "1.11.48",
"version": "1.11.55",
"description": "A feature-rich client for Matrix.org",
"author": "New Vector Ltd.",
"repository": {
"type": "git",
"url": "https://github.com/vector-im/element-web"
"url": "https://github.com/element-hq/element-web"
},
"license": "Apache-2.0",
"files": [
@@ -32,38 +32,39 @@
"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 --write src/i18n/strings/ --ignore-path /dev/null",
"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",
"clean": "rimraf lib webapp",
"build": "yarn clean && yarn build:genfiles && yarn build:bundle",
"build-stats": "yarn clean && yarn build:genfiles && yarn build:bundle-stats",
"build:jitsi": "ts-node scripts/build-jitsi.ts",
"build:res": "ts-node scripts/copy-res.ts",
"build:genfiles": "yarn build:res && yarn build:jitsi && yarn build:module_system",
"build:genfiles": "yarn build:res && yarn build:module_system",
"build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js",
"build:bundle": "webpack --progress --mode production",
"build:bundle-stats": "webpack --progress --mode production --json > webpack-stats.json",
"build:module_system": "tsc --project ./tsconfig.module_system.json && node ./lib/module_system/scripts/install.js",
"build:module_system": "ts-node --project ./tsconfig.module_system.json module_system/scripts/install.ts",
"dist": "scripts/package.sh",
"start": "yarn build:module_system && concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n res,element-js \"yarn start:res\" \"yarn start:js\"",
"start": "concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n modules,res \"yarn build:module_system\" \"yarn build:res\" && concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n res,element-js \"yarn start:res\" \"yarn start:js\"",
"start:https": "concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n res,element-js \"yarn start:res\" \"yarn start:js --https\"",
"start:res": "yarn build:jitsi && ts-node scripts/copy-res.ts -w",
"start:js": "webpack serve --output-path webapp --mode development",
"lint": "yarn lint:types && yarn lint:js && yarn lint:style",
"start:res": "ts-node scripts/copy-res.ts -w",
"start:js": "webpack serve --output-path webapp --output-filename=bundles/_dev_/[name].js --output-chunk-filename=bundles/_dev_/[name].js --mode development",
"lint": "yarn lint:types && yarn lint:js && yarn lint:style && yarn lint:workflows",
"lint:js": "yarn lint:js:src && yarn lint:js:module_system",
"lint:js:src": "eslint --max-warnings 0 src test && prettier --check .",
"lint:js:module_system": "eslint --max-warnings 0 --config .eslintrc-module_system.js module_system",
"lint:js-fix": "yarn lint:js-fix:src && yarn lint:js-fix:module_system",
"lint:js-fix:src": "prettier --write . && eslint --fix src test",
"lint:js-fix:src": "prettier --log-level=warn --write . && eslint --fix src test",
"lint:js-fix:module_system": "eslint --fix --config .eslintrc-module_system.js module_system",
"lint:types": "yarn lint:types:src && yarn lint:types:module_system",
"lint:types:src": "tsc --noEmit --jsx react",
"lint:types:module_system": "tsc --noEmit --project ./tsconfig.module_system.json",
"lint:style": "stylelint \"res/css/**/*.pcss\"",
"lint:workflows": "find .github/workflows -type f \\( -iname '*.yaml' -o -iname '*.yml' \\) | xargs -I {} sh -c 'echo \"Linting {}\"; action-validator \"{}\"'",
"test": "jest",
"coverage": "yarn test --coverage",
"analyse:unused-exports": "ts-node ./scripts/analyse_unused_exports.ts",
"analyse:webpack-bundles": "webpack-bundle-analyzer webpack-stats.json webapp"
"analyse:webpack-bundles": "webpack-bundle-analyzer webpack-stats.json webapp",
"update:jitsi": "curl -s https://meet.element.io/libs/external_api.min.js > ./res/jitsi_external_api.min.js"
},
"resolutions": {
"@types/react-dom": "17.0.21",
@@ -71,19 +72,21 @@
},
"dependencies": {
"@matrix-org/olm": "3.2.15",
"@matrix-org/react-sdk-module-api": "^2.1.0",
"@matrix-org/react-sdk-module-api": "^2.2.1",
"gfm.css": "^1.1.2",
"jsrsasign": "^10.5.25",
"katex": "^0.16.0",
"lodash": "^4.17.21",
"matrix-js-sdk": "30.0.0",
"matrix-react-sdk": "3.84.0",
"matrix-js-sdk": "31.1.0",
"matrix-react-sdk": "3.90.0",
"matrix-widget-api": "^1.3.1",
"react": "17.0.2",
"react-dom": "17.0.2",
"ua-parser-js": "^1.0.0"
},
"devDependencies": {
"@action-validator/cli": "^0.5.3",
"@action-validator/core": "^0.5.3",
"@babel/core": "^7.12.10",
"@babel/eslint-parser": "^7.12.10",
"@babel/eslint-plugin": "^7.12.10",
@@ -103,31 +106,51 @@
"@babel/runtime": "^7.12.5",
"@casualbot/jest-sonar-reporter": "2.2.7",
"@principalstudio/html-webpack-inject-preload": "^1.2.7",
"@sentry/webpack-plugin": "^2.0.0",
"@sentry/webpack-plugin": "^2.7.1",
"@svgr/webpack": "^5.5.0",
"@testing-library/react": "^12.1.5",
"@types/commonmark": "^0.27.9",
"@types/content-type": "^1.1.8",
"@types/counterpart": "^0.18.4",
"@types/diff-match-patch": "^1.0.36",
"@types/escape-html": "^1.0.4",
"@types/file-saver": "^2.0.7",
"@types/glob-to-regexp": "^0.4.4",
"@types/jest": "^29.0.0",
"@types/jitsi-meet": "^2.0.2",
"@types/jsrsasign": "^10.5.4",
"@types/loader-utils": "^2.0.4",
"@types/katex": "^0.16.7",
"@types/lodash": "^4.14.197",
"@types/minimist": "^1.2.5",
"@types/modernizr": "^3.5.6",
"@types/node": "^16",
"@types/node-fetch": "^2.6.4",
"@types/pako": "^2.0.3",
"@types/qrcode": "^1.5.5",
"@types/react": "17.0.68",
"@types/react-beautiful-dnd": "^13.1.7",
"@types/react-dom": "17.0.21",
"@types/react-transition-group": "^4.4.9",
"@types/sanitize-html": "^2.9.5",
"@types/sdp-transform": "^2.4.9",
"@types/tar-js": "^0.3.5",
"@types/ua-parser-js": "^0.7.36",
"@typescript-eslint/eslint-plugin": "^5.45.0",
"@typescript-eslint/parser": "^5.45.0",
"@types/uuid": "^9.0.7",
"@typescript-eslint/eslint-plugin": "^6.0.0",
"@typescript-eslint/parser": "^6.0.0",
"allchange": "^1.0.6",
"babel-jest": "^29.0.0",
"babel-loader": "^8.2.2",
"babel-loader": "^9.0.0",
"babel-plugin-jsx-remove-data-test-id": "^3.0.0",
"buffer": "^6.0.3",
"chokidar": "^3.5.1",
"concurrently": "^8.0.0",
"cpx": "1.5.0",
"copy-webpack-plugin": "^11.0.0",
"cronstrue": "^2.41.0",
"css-loader": "^4",
"css-loader": "^5.2.7",
"css-minimizer-webpack-plugin": "^5.0.1",
"dotenv": "^16.0.2",
"eslint": "8.51.0",
"eslint": "8.55.0",
"eslint-config-google": "^0.14.0",
"eslint-config-prettier": "^9.0.0",
"eslint-plugin-deprecate": "0.8.4",
@@ -135,28 +158,24 @@
"eslint-plugin-matrix-org": "^1.0.0",
"eslint-plugin-react": "^7.28.0",
"eslint-plugin-react-hooks": "^4.3.0",
"eslint-plugin-unicorn": "^48.0.0",
"extract-text-webpack-plugin": "^4.0.0-beta.0",
"eslint-plugin-unicorn": "^49.0.0",
"fake-indexeddb": "^5.0.0",
"fetch-mock": "9.11.0",
"fetch-mock-jest": "^1.5.1",
"file-loader": "^6.0.0",
"fs-extra": "^11.0.0",
"html-webpack-plugin": "^4.5.2",
"html-webpack-plugin": "^5.5.3",
"jest": "^29.0.0",
"jest-canvas-mock": "2.5.2",
"jest-environment-jsdom": "^29.0.0",
"jest-mock": "^29.0.0",
"jest-raw-loader": "^1.0.1",
"json-loader": "^0.5.7",
"loader-utils": "^3.0.0",
"matrix-mock-request": "^2.5.0",
"matrix-web-i18n": "^3.1.3",
"mini-css-extract-plugin": "^1",
"mini-css-extract-plugin": "^2.7.6",
"minimist": "^1.2.6",
"mkdirp": "^3.0.0",
"modernizr": "^3.12.0",
"node-fetch": "^2.6.7",
"optimize-css-assets-webpack-plugin": "^6.0.0",
"postcss": "^8.4.31",
"postcss-easings": "^2.0.0",
"postcss-hexrgba": "2.0.1",
@@ -167,26 +186,27 @@
"postcss-preset-env": "^6.7.0",
"postcss-scss": "^4.0.4",
"postcss-simple-vars": "^5.0.2",
"prettier": "2.8.8",
"prettier": "3.1.1",
"process": "^0.11.10",
"proxy-agent": "^6.3.0",
"raw-loader": "^4.0.2",
"rimraf": "^5.0.0",
"semver": "^7.5.2",
"setimmediate": "^1.0.5",
"string-replace-loader": "3",
"style-loader": "2",
"stylelint": "^15.10.1",
"stylelint-config-standard": "^34.0.0",
"stylelint-scss": "^5.0.0",
"terser-webpack-plugin": "^4.0.0",
"style-loader": "3",
"stylelint": "^16.0.0",
"stylelint-config-standard": "^35.0.0",
"stylelint-scss": "^6.0.0",
"terser-webpack-plugin": "^5.3.9",
"ts-node": "^10.9.1",
"ts-prune": "^0.10.3",
"typescript": "5.2.2",
"webpack": "^4.47.0",
"typescript": "5.3.3",
"util": "^0.12.5",
"webpack": "^5.89.0",
"webpack-bundle-analyzer": "^4.8.0",
"webpack-cli": "^4.10.0",
"webpack-cli": "^5.0.0",
"webpack-dev-server": "^4.15.1",
"worker-loader": "^3.0.0",
"worklet-loader": "^2.0.0",
"yaml": "^2.3.3"
},
"@casualbot/jest-sonar-reporter": {

View File

@@ -0,0 +1,45 @@
/*
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.
*/
// Inspired by https://github.com/reklawnos/worklet-loader which doesn't
// formally support Webpack 5
const SingleEntryPlugin = require("webpack/lib/SingleEntryPlugin");
module.exports = function () {};
module.exports.pitch = function pitch(request) {
const cb = this.async();
const filename = "recorder.worklet.js";
const compiler = this._compilation.createChildCompiler("worker", {
filename,
chunkFilename: `[id].${filename}`,
namedChunkFilename: null,
});
new SingleEntryPlugin(this.context, `!!${request}`, "main").apply(compiler);
compiler.runAsChild((err, entries, compilation) => {
if (err) {
return cb(err);
}
if (entries[0]) {
return cb(null, `module.exports = __webpack_public_path__ + ${JSON.stringify(entries[0].files[0])};`);
}
return cb(null, null);
});
};

View File

@@ -14,8 +14,8 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
// import font-size variables manually,
// ideally this file would get loaded by the theme which has all variables in context
/* import font-size variables manually,
ideally this file would get loaded by the theme which has all variables in context */
@import "../../../node_modules/matrix-react-sdk/res/css/_font-sizes.pcss";
.mx_ErrorView {

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<title>Rageshake decoder ring</title>

3
res/jitsi_external_api.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,219 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
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.
Note:
This project was originally contributed to the community under the MIT license and with the following notice:
The MIT License (MIT)
Copyright (c) 2013 ESTOS GmbH
Copyright (c) 2013 BlueJimp SARL
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -1,30 +0,0 @@
// This is a JS script so that the directory is created in-process on Windows.
// If the script isn't run in-process, there's a risk of it racing or never running
// due to file associations in Windows.
// Sorry.
import * as fs from "node:fs";
import * as path from "node:path";
import { mkdirpSync } from "mkdirp";
import fetch from "node-fetch";
import { ProxyAgent } from "proxy-agent";
console.log("Making webapp directory");
mkdirpSync("webapp");
// curl -s https://meet.element.io/libs/external_api.min.js > ./webapp/jitsi_external_api.min.js
console.log("Downloading Jitsi script");
const fname = path.join("webapp", "jitsi_external_api.min.js");
fetch("https://meet.element.io/libs/external_api.min.js", {
agent: new ProxyAgent(),
})
.then((res) => {
const stream = fs.createWriteStream(fname);
return new Promise<void>((resolve, reject) => {
res.body.pipe(stream);
res.body.on("error", (err) => reject(err));
res.body.on("finish", () => resolve());
});
})
.then(() => console.log("Done with Jitsi download"));

View File

@@ -6,8 +6,7 @@ import parseArgs from "minimist";
import * as chokidar from "chokidar";
import * as fs from "node:fs";
import _ from "lodash";
import { Cpx } from "cpx";
import * as loaderUtils from "loader-utils";
import { util } from "webpack";
import { Translations } from "matrix-web-i18n";
const REACT_I18N_BASE_PATH = "node_modules/matrix-react-sdk/src/i18n/strings/";
@@ -16,29 +15,6 @@ const INCLUDE_LANGS = [...new Set([...fs.readdirSync(I18N_BASE_PATH), ...fs.read
.filter((fn) => fn.endsWith(".json"))
.map((f) => f.slice(0, -5));
// cpx includes globbed parts of the filename in the destination, but excludes
// common parents. Hence, "res/{a,b}/**": the output will be "dest/a/..." and
// "dest/b/...".
const COPY_LIST: [
sourceGlob: string,
outputPath: string,
opts?: {
directwatch?: 1;
},
][] = [
["res/apple-app-site-association", "webapp"],
["res/manifest.json", "webapp"],
["res/sw.js", "webapp"],
["res/welcome.html", "webapp"],
["res/welcome/**", "webapp/welcome"],
["res/themes/**", "webapp/themes"],
["res/vector-icons/**", "webapp/vector-icons"],
["res/decoder-ring/**", "webapp/decoder-ring"],
["node_modules/matrix-react-sdk/res/media/**", "webapp/media"],
["node_modules/@matrix-org/olm/olm_legacy.js", "webapp", { directwatch: 1 }],
["./config.json", "webapp", { directwatch: 1 }],
["contribute.json", "webapp"],
];
const argv = parseArgs(process.argv.slice(2), {});
const watch = argv.w;
@@ -60,53 +36,13 @@ if (!fs.existsSync("webapp/i18n/")) {
fs.mkdirSync("webapp/i18n/");
}
function next(i: number, err?: Error): void {
errCheck(err);
if (i >= COPY_LIST.length) {
return;
}
const ent = COPY_LIST[i];
const source = ent[0];
const dest = ent[1];
const opts = ent[2] || {};
const cpx = new Cpx(source, dest);
const logWatch = (path: string) => {
if (verbose) {
cpx.on("copy", (event) => {
console.log(`Copied: ${event.srcPath} --> ${event.dstPath}`);
});
cpx.on("remove", (event) => {
console.log(`Removed: ${event.path}`);
});
console.log(`Watching: ${path}`);
}
};
const cb = (err?: Error): void => {
next(i + 1, err);
};
if (watch) {
if (opts.directwatch) {
// cpx -w creates a watcher for the parent of any files specified,
// which in the case of config.json is '.', which inevitably takes
// ages to crawl. So we create our own watcher on the files
// instead.
const copy = (): void => {
cpx.copy(errCheck);
};
chokidar.watch(source).on("add", copy).on("change", copy).on("ready", cb).on("error", errCheck);
} else {
cpx.on("watch-ready", cb);
cpx.on("watch-error", cb);
cpx.watch();
}
} else {
cpx.copy(cb);
}
}
function genLangFile(lang: string, dest: string): string {
function prepareLangFile(lang: string, dest: string): [filename: string, json: string] {
const reactSdkFile = REACT_I18N_BASE_PATH + lang + ".json";
const riotWebFile = I18N_BASE_PATH + lang + ".json";
@@ -124,15 +60,17 @@ function genLangFile(lang: string, dest: string): string {
const json = JSON.stringify(translations, null, 4);
const jsonBuffer = Buffer.from(json);
const digest = loaderUtils.getHashDigest(jsonBuffer, null, "hex", 7);
const digest = util.createHash("xxhash64").update(jsonBuffer).digest("hex").slice(0, 7);
const filename = `${lang}.${digest}.json`;
return [filename, json];
}
function genLangFile(dest: string, filename: string, json: string) {
fs.writeFileSync(dest + filename, json);
if (verbose) {
console.log("Generated language file: " + filename);
}
return filename;
}
function genLangList(langFileMap: Record<string, string>): void {
@@ -175,29 +113,38 @@ function watchLanguage(lang: string, dest: string, langFileMap: Record<string, s
clearTimeout(makeLangDebouncer);
}
makeLangDebouncer = setTimeout(() => {
const filename = genLangFile(lang, dest);
const [filename, json] = prepareLangFile(lang, dest);
genLangFile(dest, filename, json);
langFileMap[lang] = filename;
genLangList(langFileMap);
}, 500);
};
[reactSdkFile, riotWebFile].forEach(function (f) {
chokidar.watch(f).on("add", makeLang).on("change", makeLang).on("error", errCheck);
chokidar
.watch(f, { ignoreInitial: true })
.on("ready", () => {
logWatch(f);
})
.on("add", makeLang)
.on("change", makeLang)
.on("error", errCheck);
});
}
// language resources
const I18N_DEST = "webapp/i18n/";
const I18N_FILENAME_MAP = INCLUDE_LANGS.reduce<Record<string, string>>((m, l) => {
const filename = genLangFile(l, I18N_DEST);
const [filename, json] = prepareLangFile(l, I18N_DEST);
if (!watch) {
genLangFile(I18N_DEST, filename, json);
}
m[l] = filename;
return m;
}, {});
genLangList(I18N_FILENAME_MAP);
if (watch) {
INCLUDE_LANGS.forEach((l) => watchLanguage(l, I18N_DEST, I18N_FILENAME_MAP));
} else {
genLangList(I18N_FILENAME_MAP);
}
// non-language resources
next(0);

View File

@@ -400,7 +400,11 @@ class MermaidFlowchartPrinter {
this.currentIndent += delta * MermaidFlowchartPrinter.INDENT;
}
public constructor(direction: "TD" | "TB" | "BT" | "RL" | "LR", title?: string, private readonly markdown = false) {
public constructor(
direction: "TD" | "TB" | "BT" | "RL" | "LR",
title?: string,
private readonly markdown = false,
) {
if (this.markdown) {
this.print("```mermaid");
}

View File

@@ -18,7 +18,7 @@ my $gh = Net::GitHub->new(
login => 'ara4n', pass => read_password("github password: "),
);
$gh->set_default_user_repo('vector-im', 'element-web');
$gh->set_default_user_repo('element-hq', 'element-web');
#my @issues = $gh->issue->repos_issues({ state => 'all', milestone => 3 });
my @issues = $gh->issue->repos_issues({ state => 'all' });

View File

@@ -18,7 +18,7 @@ my $gh = Net::GitHub->new(
login => 'ara4n', pass => read_password("github password: "),
);
$gh->set_default_user_repo('vector-im', 'element-web');
$gh->set_default_user_repo('element-hq', 'element-web');
#my @issues = $gh->issue->repos_issues({ state => 'all', milestone => 3 });
my @issues = $gh->issue->repos_issues({ state => 'all' });

View File

@@ -17,7 +17,7 @@ set -ex
yarn install --frozen-lockfile
# Pass appropriate repo to fetchdep.sh
export PR_ORG=vector-im
export PR_ORG=element-hq
export PR_REPO=element-web
# Set up the js-sdk first

43
src/@types/cpx.d.ts vendored
View File

@@ -1,43 +0,0 @@
/*
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.
*/
declare module "cpx" {
export class Cpx {
public constructor(source: string, outDir: string, options?: object);
public on(eventName: "copy", fn: (event: { srcPath: string; dstPath: string }) => void): void;
public on(eventName: "remove", fn: (event: { path: string }) => void): void;
public on(eventName: "watch-ready", fn: () => void): void;
public on(eventName: "watch-error", fn: (error: Error) => void): void;
/**
* Copy all files that matches `this.source` pattern to `this.outDir`.
*
* @param {function} [cb = null] - A callback function.
* @returns {void}
*/
public copy(cb: Function | null): void;
/**
* Copy all files that matches `this.source` pattern to `this.outDir`.
* And watch changes in `this.base`, and copy only the file every time.
*
* @returns {void}
* @throws {Error} This had been watching already.
*/
public watch(): void;
}
}

View File

@@ -1,28 +0,0 @@
/*
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 * as LoaderUtils from "loader-utils";
declare module "loader-utils" {
export function getHashDigest(
buffer: Buffer,
hashType: null,
digestType: LoaderUtils.DigestType,
maxLength: number,
): string;
}
export as namespace Cpx;

View File

@@ -25,7 +25,7 @@ const VectorAuthFooter = (): ReactElement => {
const links = brandingConfig?.get("auth_footer_links") ?? [
{ text: "Blog", url: "https://element.io/blog" },
{ text: "Twitter", url: "https://twitter.com/element_hq" },
{ text: "GitHub", url: "https://github.com/vector-im/element-web" },
{ text: "GitHub", url: "https://github.com/element-hq/element-web" },
];
const authFooterLinks: JSX.Element[] = [];

View File

@@ -9,6 +9,7 @@
"auth": {
"sso_complete_in_browser_dialog_title": "Přejděte do prohlížeče a dokončete přihlášení"
},
"desktop_default_device_name": "%(brand)s Desktop: %(platformName)s",
"download_completed": "Stahování dokončeno",
"error": {
"app_launch_unexpected_error": "Neočekávaná chyba při přípravě aplikace. Podrobnosti najdete v konzoli.",

View File

@@ -9,6 +9,7 @@
"auth": {
"sso_complete_in_browser_dialog_title": "Browser öffnen, um die Anmeldung abzuschließen"
},
"desktop_default_device_name": "%(brand)s Desktop: %(platformName)s",
"download_completed": "Herunterladen fertiggestellt",
"error": {
"app_launch_unexpected_error": "Unerwarteter Fehler bei der Vorbereitung der App; mehr Details in der Konsole.",

View File

@@ -1,5 +0,0 @@
{
"action": {
"sign_in": "Sign in"
}
}

View File

@@ -9,6 +9,7 @@
"auth": {
"sso_complete_in_browser_dialog_title": "Sisselogimiseks ava oma brauser"
},
"desktop_default_device_name": "%(brand)s töölaud: %(platformName)s",
"download_completed": "Allalaadimine on lõpetatud",
"error": {
"app_launch_unexpected_error": "Rakenduse ettevalmistamisel tekkis ootamatu viga. Täpsema teabe leiad konsoolist.",

View File

@@ -14,6 +14,7 @@
"error": {
"app_launch_unexpected_error": "Váratlan hiba történt az alkalmazás előkészítésénél. A részletekért lásd a konzolt.",
"cannot_load_config": "A konfigurációs fájlt nem sikerült betölteni: frissítse az oldalt és próbálja meg újra.",
"invalid_configuration_mixed_server": "Érvénytelen konfiguráció: a default_hs_url nem adható meg a default_server_name vagy a default_server_config kulcsokkal együtt",
"invalid_configuration_no_server": "Érvénytelen konfiguráció: nincs megadva alapértelmezett kiszolgáló.",
"invalid_json": "Az Element érvénytelen JSON-t tartalmazó konfigurációval rendelkezik. Javítsa és töltse újra az oldalt.",
"invalid_json_detail": "A feldolgozó algoritmus üzenete: %(message)s",
@@ -21,7 +22,7 @@
"misconfigured": "Az Element hibásan van beállítva"
},
"failed_to_start": "Az indítás sikertelen",
"go_to_element_io": "Irány a element.io",
"go_to_element_io": "Irány az element.io",
"incompatible_browser": {
"browser_links": "A legjobb élmény érdékében telepítsen <chromeLink>Chrome-ot</chromeLink>, <firefoxLink>Firefoxot</firefoxLink> vagy <safariLink>Safarit</safariLink>.",
"continue_warning": "Megértettem a kockázatot és folytatom",

View File

@@ -9,6 +9,7 @@
"auth": {
"sso_complete_in_browser_dialog_title": "Buka peramban Anda untuk menyelesaikan Sign In"
},
"desktop_default_device_name": "%(brand)s Desktop: %(platformName)s",
"download_completed": "Unduhan Selesai",
"error": {
"app_launch_unexpected_error": "Kesalahan tak terduga saat menyiapkan aplikasi. Lihat konsol untuk detail.",

View File

@@ -9,6 +9,7 @@
"auth": {
"sso_complete_in_browser_dialog_title": "Vai nel tuo browser per completare l'accesso"
},
"desktop_default_device_name": "%(brand)s Desktop: %(platformName)s",
"download_completed": "Scaricamento completato",
"error": {
"app_launch_unexpected_error": "Errore inaspettato preparando l'app. Vedi la console per i dettagli.",

View File

@@ -14,6 +14,7 @@
"error": {
"app_launch_unexpected_error": "Неожиданная ошибка при подготовке приложения. Подробности см. в консоли.",
"cannot_load_config": "Не удалось загрузить файл конфигурации. Попробуйте обновить страницу.",
"invalid_configuration_mixed_server": "Неверная конфигурация: нельзя указать default_hs_url вместе с default_server_name или default_server_config",
"invalid_configuration_no_server": "Неверная конфигурация: сервер по умолчанию не указан.",
"invalid_json": "Конфигурация Element содержит неверный JSON. Исправьте проблему и обновите страницу.",
"invalid_json_detail": "Сообщение из парсера: %(message)s",

View File

@@ -2,7 +2,7 @@
"action": {
"create_account": "创建账户",
"dismiss": "忽略",
"explore_rooms": "探索房间",
"explore_rooms": "探索聊天室",
"open": "打开",
"sign_in": "登录"
},
@@ -14,6 +14,7 @@
"error": {
"app_launch_unexpected_error": "准备软件时出现意外错误,详细信息请查看控制台。",
"cannot_load_config": "无法加载配置文件:请刷新页面以重试。",
"invalid_configuration_mixed_server": "配置无效:无法与 default_server_name 或 default_server_config 一起指定 default_hs_url",
"invalid_configuration_no_server": "配置无效:没有指定默认服务器。",
"invalid_json": "Element 配置文件中包含无效的 JSON。请改正错误并重新加载页面。",
"invalid_json_detail": "来自解析器的消息:%(message)s",

View File

@@ -49,18 +49,17 @@
<% }
} %>
<% for (var i=0; i < htmlWebpackPlugin.tags.headTags.length; i++) {
var tag = htmlWebpackPlugin.tags.headTags[i];
var path = tag.attributes && tag.attributes.href;
if (path.includes("/Inter/")) { %>
<link rel="preload" as="font" href=".<%= path %>" crossorigin="anonymous"/>
<% for (const tag of htmlWebpackPlugin.tags.headTags) {
let path = tag.attributes && tag.attributes.href;
if (path && path.includes("/Inter/")) { %>
<link rel="preload" as="font" href="<%= path %>" crossorigin="anonymous"/>
<% }
} %>
</head>
<body style="height: 100%; margin: 0;">
<noscript>Sorry, Element requires JavaScript to be enabled.</noscript> <!-- TODO: Translate this? -->
<section id="matrixchat" style="height: 100%;" class="notranslate"></section>
<div id="matrixchat" style="height: 100%;" class="notranslate"></div>
<%
// insert <script> tags for the JS entry points
@@ -109,5 +108,11 @@
<audio id="remoteAudio"></audio>
<!-- let CSS themes pass constants to the app -->
<div id="mx_theme_accentColor"></div><div id="mx_theme_secondaryAccentColor"></div><div id="mx_theme_tertiaryAccentColor"></div>
<!-- We eagerly create these containers to ensure their CSS stacking context order is sensible -->
<div id="mx_PersistedElement_container"></div>
<div id="mx_Dialog_StaticContainer"></div>
<div id="mx_Dialog_Container"></div>
<div id="mx_ContextualMenu_Container"></div>
</body>
</html>

View File

@@ -25,6 +25,9 @@ import { extractErrorMessageFromError } from "matrix-react-sdk/src/components/vi
import { parseQsFromFragment } from "./url_utils";
import "./modernizr";
// Make setImmediate available in bundle
import "setimmediate";
// Require common CSS here; this will make webpack process it into bundle.css.
// Our own CSS (which is themed) is imported via separate webpack entry points
// in webpack.config.js
@@ -99,7 +102,7 @@ const supportedBrowser = checkBrowserFeatures();
// try in react but fallback to an `alert`
// We start loading stuff but don't block on it until as late as possible to allow
// the browser to use as much parallelism as it can.
// Load parallelism is based on research in https://github.com/vector-im/element-web/issues/12253
// Load parallelism is based on research in https://github.com/element-hq/element-web/issues/12253
async function start(): Promise<void> {
// load init.ts async so that its code is not executed immediately and we can catch any exceptions
const {
@@ -130,7 +133,7 @@ async function start(): Promise<void> {
// don't try to redirect to the native apps if we're
// verifying a 3pid (but after we've loaded the config)
// or if the user is following a deep link
// (https://github.com/vector-im/element-web/issues/7378)
// (https://github.com/element-hq/element-web/issues/7378)
const preventRedirect = fragparts.params.client_secret || fragparts.location.length > 0;
if (!preventRedirect) {

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />

View File

@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
/* TODO: Match the user's theme: https://github.com/vector-im/element-web/issues/12794 */
/* TODO: Match the user's theme: https://github.com/element-hq/element-web/issues/12794 */
@font-face {
font-family: "Nunito";

View File

@@ -459,7 +459,7 @@ async function joinConference(audioInput?: string | null, videoInput?: string |
// normal conference calls, since in video rooms we control exactly what
// set of controls appear, but in normal calls we need to leave that up
// to the deployment's configuration.
// https://github.com/vector-im/element-web/issues/4880#issuecomment-940002464
// https://github.com/element-hq/element-web/issues/4880#issuecomment-940002464
if (supportsScreensharing) options.configOverwrite!.toolbarButtons.splice(2, 0, "desktop");
// Hide all top bar elements
options.configOverwrite!.conferenceInfo = { autoHide: [] };

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<title>Element Mobile Guide</title>

View File

@@ -366,7 +366,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
}
public supportsJitsiScreensharing(): boolean {
// See https://github.com/vector-im/element-web/issues/4880
// See https://github.com/element-hq/element-web/issues/4880
return false;
}

View File

@@ -41,7 +41,7 @@ export default abstract class VectorBasePlatform extends BasePlatform {
/**
* Delay creating the `Favicon` instance until first use (on the first notification) as
* it uses canvas, which can trigger a permission prompt in Firefox's resist fingerprinting mode.
* See https://github.com/vector-im/element-web/issues/9605.
* See https://github.com/element-hq/element-web/issues/9605.
*/
public get favicon(): Favicon {
if (this._favicon) {

View File

@@ -39,6 +39,9 @@ import { cleanLocalstorage, deleteIndexedDB, waitForLoadingSpinner, waitForWelco
const DEFAULT_HS_URL = "http://my_server";
const DEFAULT_IS_URL = "http://my_is";
/** The matrix versions our mock server claims to support */
const SERVER_SUPPORTED_MATRIX_VERSIONS = ["v1.1", "v1.5", "v1.6", "v1.8", "v1.9"];
describe("loading:", function () {
let httpBackend: MockHttpBackend;
@@ -155,7 +158,7 @@ describe("loading:", function () {
async function expectAndAwaitSync(opts?: { isGuest?: boolean }): Promise<any> {
let syncRequest: (typeof MockHttpBackend.prototype.requests)[number] | null = null;
httpBackend.when("GET", "/_matrix/client/versions").respond(200, {
versions: ["v1.1"],
versions: SERVER_SUPPORTED_MATRIX_VERSIONS,
unstable_features: {},
});
const isGuest = opts?.isGuest;
@@ -215,7 +218,7 @@ describe("loading:", function () {
});
// Pass the liveliness checks
httpBackend.when("GET", "/versions").respond(200, { versions: ["v1.1"] });
httpBackend.when("GET", "/versions").respond(200, { versions: SERVER_SUPPORTED_MATRIX_VERSIONS });
httpBackend.when("GET", "/_matrix/identity/v2").respond(200, {});
return sleep(1)
@@ -265,7 +268,7 @@ describe("loading:", function () {
});
// Pass the liveliness checks
httpBackend.when("GET", "/versions").respond(200, { versions: ["v1.1"] });
httpBackend.when("GET", "/versions").respond(200, { versions: SERVER_SUPPORTED_MATRIX_VERSIONS });
httpBackend.when("GET", "/_matrix/identity/v2").respond(200, {});
return awaitLoginComponent(matrixChat)
@@ -377,7 +380,7 @@ describe("loading:", function () {
it("does not show a login view", async function () {
await awaitRoomView(matrixChat);
await screen.findByLabelText("Spaces");
await screen.getByRole("tree", { name: "Spaces" });
expect(screen.queryAllByText("Sign in")).toHaveLength(0);
});
});

View File

@@ -21,6 +21,9 @@ import fetchMock from "fetch-mock-jest";
import { loadApp } from "../../src/vector/app";
import WebPlatform from "../../src/vector/platform/WebPlatform";
/** The matrix versions our mock server claims to support */
const SERVER_SUPPORTED_MATRIX_VERSIONS = ["v1.1", "v1.5", "v1.6", "v1.8", "v1.9"];
fetchMock.config.overwriteRoutes = true;
describe("Loading server config", function () {
@@ -29,7 +32,7 @@ describe("Loading server config", function () {
PlatformPeg.set(new WebPlatform());
fetchMock.get("https://matrix-client.matrix.org/_matrix/client/versions", {
unstable_features: {},
versions: ["v1.1"],
versions: SERVER_SUPPORTED_MATRIX_VERSIONS,
});
fetchMock.get("https://matrix.org/.well-known/matrix/client", {
"m.homeserver": {

View File

@@ -28,6 +28,9 @@ import WebPlatform from "../../src/vector/platform/WebPlatform";
import { loadApp } from "../../src/vector/app";
import { waitForLoadingSpinner, waitForWelcomeComponent } from "../test-utils";
/** The matrix versions our mock server claims to support */
const SERVER_SUPPORTED_MATRIX_VERSIONS = ["v1.1", "v1.5", "v1.6", "v1.8", "v1.9"];
fetchMock.config.overwriteRoutes = true;
describe("Wrapper", () => {
@@ -36,7 +39,7 @@ describe("Wrapper", () => {
PlatformPeg.set(new WebPlatform());
fetchMock.get("https://matrix-client.matrix.org/_matrix/client/versions", {
unstable_features: {},
versions: ["v1.1"],
versions: SERVER_SUPPORTED_MATRIX_VERSIONS,
});
fetchMock.get("https://matrix.org/.well-known/matrix/client", {
"m.homeserver": {

View File

@@ -21,7 +21,7 @@ exports[`<VectorAuthFooter /> should match snapshot 1`] = `
Twitter
</a>
<a
href="https://github.com/vector-im/element-web"
href="https://github.com/element-hq/element-web"
rel="noreferrer noopener"
target="_blank"
>

View File

@@ -37,7 +37,7 @@ exports[`<VectorAuthPage /> should match snapshot 1`] = `
Twitter
</a>
<a
href="https://github.com/vector-im/element-web"
href="https://github.com/element-hq/element-web"
rel="noreferrer noopener"
target="_blank"
>

View File

@@ -4,7 +4,7 @@
"emitDecoratorMetadata": false,
"resolveJsonModule": true,
"esModuleInterop": true,
"module": "commonjs",
"module": "es2022",
"moduleResolution": "node",
"target": "es2016",
"noUnusedLocals": true,
@@ -17,6 +17,7 @@
},
"include": [
"./node_modules/matrix-js-sdk/src/@types/*.d.ts",
"./node_modules/matrix-react-sdk/src/@types/react.d.ts",
"./node_modules/matrix-react-sdk/src/@types/diff-dom.d.ts",
"./node_modules/matrix-react-sdk/src/@types/opus-recorder.d.ts",
"./node_modules/matrix-react-sdk/src/@types/png-chunks-extract.d.ts",
@@ -28,6 +29,9 @@
"./scripts/*.ts"
],
"ts-node": {
"files": true
"files": true,
"moduleTypes": {
"*": "cjs"
}
}
}

View File

@@ -0,0 +1 @@
https://gitlab.opencode.de/bmi/souveraener_arbeitsplatz

View File

@@ -0,0 +1,11 @@
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
# SPDX-License-Identifier: Apache-2.0
---
# The modules to install. See ./docs/modules.md for more information on
# what modules are.
#
# The values of this are provided to `yarn add` for inclusion.
modules:
- "@nordeck/element-web-guest-module@1.0.0"
- "@nordeck/element-web-opendesk-module@0.3.0"
- "@nordeck/element-web-widget-lifecycle-module@1.0.1"

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