Skip to content

Commit f4139d3

Browse files
committed
Merge tag 'v1.11.109' into sipb
Release v1.11.109
2 parents 80bd3c1 + 29e8950 commit f4139d3

File tree

3,168 files changed

+109617
-48778
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

3,168 files changed

+109617
-48778
lines changed

.eslintignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,7 @@ test/end-to-end-tests/lib/
77
src/component-index.js
88
# Auto-generated file
99
src/modules.ts
10+
src/modules.js
11+
# Test result files
12+
/playwright/test-results/
13+
/playwright/html-report/

.eslintrc.js

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
module.exports = {
2-
plugins: ["matrix-org"],
3-
extends: ["plugin:matrix-org/babel", "plugin:matrix-org/react", "plugin:matrix-org/a11y"],
2+
plugins: ["matrix-org", "eslint-plugin-react-compiler"],
3+
extends: [
4+
"plugin:matrix-org/babel",
5+
"plugin:matrix-org/react",
6+
"plugin:matrix-org/a11y",
7+
"plugin:storybook/recommended",
8+
],
49
parserOptions: {
510
project: ["./tsconfig.json"],
611
},
@@ -30,6 +35,10 @@ module.exports = {
3035
["window.innerHeight", "window.innerWidth", "window.visualViewport"],
3136
"Use UIStore to access window dimensions instead.",
3237
),
38+
...buildRestrictedPropertiesOptions(
39+
["React.forwardRef", "*.forwardRef", "forwardRef"],
40+
"Use ref props instead.",
41+
),
3342
...buildRestrictedPropertiesOptions(
3443
["*.mxcUrlToHttp", "*.getHttpUriForMxc"],
3544
"Use Media helper instead to centralise access for customisation.",
@@ -55,6 +64,11 @@ module.exports = {
5564
"error",
5665
{
5766
paths: [
67+
{
68+
name: "react",
69+
importNames: ["forwardRef"],
70+
message: "Use ref props instead.",
71+
},
5872
{
5973
name: "@testing-library/react",
6074
message: "Please use jest-matrix-react instead",
@@ -170,6 +184,8 @@ module.exports = {
170184
"jsx-a11y/role-supports-aria-props": "off",
171185

172186
"matrix-org/require-copyright-header": "error",
187+
188+
"react-compiler/react-compiler": "error",
173189
},
174190
overrides: [
175191
{
@@ -198,8 +214,13 @@ module.exports = {
198214
"@typescript-eslint/ban-ts-comment": "off",
199215
// We're okay with assertion errors when we ask for them
200216
"@typescript-eslint/no-non-null-assertion": "off",
201-
// We do this sometimes to brand interfaces
202-
"@typescript-eslint/no-empty-object-type": "off",
217+
"@typescript-eslint/no-empty-object-type": [
218+
"error",
219+
{
220+
// We do this sometimes to brand interfaces
221+
allowInterfaces: "with-single-extends",
222+
},
223+
],
203224
},
204225
},
205226
// temporary override for offending icon require files
@@ -245,6 +266,7 @@ module.exports = {
245266
// We don't need super strict typing in test utilities
246267
"@typescript-eslint/explicit-function-return-type": "off",
247268
"@typescript-eslint/explicit-member-accessibility": "off",
269+
"@typescript-eslint/no-empty-object-type": "off",
248270

249271
// Jest/Playwright specific
250272

@@ -262,6 +284,7 @@ module.exports = {
262284

263285
// These are fine in tests
264286
"no-restricted-globals": "off",
287+
"react-compiler/react-compiler": "off",
265288
},
266289
},
267290
{
@@ -271,6 +294,7 @@ module.exports = {
271294
},
272295
rules: {
273296
"react-hooks/rules-of-hooks": ["off"],
297+
"@typescript-eslint/no-floating-promises": ["error"],
274298
},
275299
},
276300
{

.github/CODEOWNERS

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,23 @@
33
/package.json @element-hq/element-web-team
44
/yarn.lock @element-hq/element-web-team
55

6-
/src/SecurityManager.ts @element-hq/element-crypto-web-reviewers
7-
/test/SecurityManager-test.ts @element-hq/element-crypto-web-reviewers
8-
/src/async-components/views/dialogs/security/ @element-hq/element-crypto-web-reviewers
9-
/src/components/views/dialogs/security/ @element-hq/element-crypto-web-reviewers
10-
/test/components/views/dialogs/security/ @element-hq/element-crypto-web-reviewers
11-
/src/stores/SetupEncryptionStore.ts @element-hq/element-crypto-web-reviewers
12-
/test/stores/SetupEncryptionStore-test.ts @element-hq/element-crypto-web-reviewers
6+
/src/SecurityManager.ts @element-hq/element-crypto-web-reviewers
7+
/test/SecurityManager-test.ts @element-hq/element-crypto-web-reviewers
8+
/src/async-components/views/dialogs/security/ @element-hq/element-crypto-web-reviewers
9+
/src/components/views/dialogs/security/ @element-hq/element-crypto-web-reviewers
10+
/test/components/views/dialogs/security/ @element-hq/element-crypto-web-reviewers
11+
/src/stores/SetupEncryptionStore.ts @element-hq/element-crypto-web-reviewers
12+
/test/stores/SetupEncryptionStore-test.ts @element-hq/element-crypto-web-reviewers
13+
/src/components/views/settings/tabs/user/EncryptionUserSettingsTab.tsx @element-hq/element-crypto-web-reviewers
14+
/src/components/views/settings/encryption/ @element-hq/element-crypto-web-reviewers
15+
/test/unit-tests/components/views/settings/encryption/ @element-hq/element-crypto-web-reviewers
16+
/src/components/views/dialogs/devtools/Crypto.tsx @element-hq/element-crypto-web-reviewers
17+
/playwright/e2e/crypto/ @element-hq/element-crypto-web-reviewers
18+
/playwright/e2e/settings/encryption-user-tab/ @element-hq/element-crypto-web-reviewers
1319

1420
# Ignore translations as those will be updated by GHA for Localazy download
1521
/src/i18n/strings
1622
/src/i18n/strings/en_EN.json @element-hq/element-web-reviewers
1723
# Ignore the synapse plugin as this is updated by GHA for docker image updating
18-
/playwright/plugins/homeserver/synapse/index.ts
24+
/playwright/testcontainers/synapse.ts
1925

.github/actions/download-verify-element-tarball/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ runs:
1111
using: composite
1212
steps:
1313
- name: Download release tarball
14-
uses: robinraju/release-downloader@a96f54c1b5f5e09e47d9504526e96febd949d4c2 # v1
14+
uses: robinraju/release-downloader@daf26c55d821e836577a15f77d86ddc078948b05 # v1
1515
with:
1616
tag: ${{ inputs.tag }}
1717
fileName: element-*.tar.gz*

.github/labels.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,9 @@
210210
- name: "X-Upcoming-Release-Blocker"
211211
description: "This does not affect the current release cycle but will affect the next one"
212212
color: "e99695"
213+
- name: "X-Run-All-Tests"
214+
description: "When applied to PRs, it'll run the full gamut of end-to-end tests on the PR"
215+
color: "ff7979"
213216
- name: "Z-Actions"
214217
color: "ededed"
215218
- name: "Z-Cache-Confusion"
@@ -232,6 +235,15 @@
232235
- name: "Z-Flaky-Test"
233236
description: "A test is raising false alarms"
234237
color: "ededed"
238+
- name: "Z-Flaky-Test-Chrome"
239+
description: "Flaky playwright test in Chrome"
240+
color: "ededed"
241+
- name: "Z-Flaky-Test-Firefox"
242+
description: "Flaky playwright test in Firefox"
243+
color: "ededed"
244+
- name: "Z-Flaky-Test-Webkit"
245+
description: "Flaky playwright test in Webkit"
246+
color: "ededed"
235247
- name: "Z-Flaky-Jest-Test"
236248
description: "A Jest test is raising false alarms"
237249
color: "ededed"

.github/workflows/build.yml

Lines changed: 40 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ on:
55
branches: [develop, master]
66
merge_group:
77
types: [checks_requested]
8+
concurrency:
9+
group: ${{ github.workflow }}-${{ github.head_ref || github.sha }}
10+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
811
# develop pushes and repository_dispatch handled in build_develop.yaml
912
env:
1013
# These must be set for fetchdep.sh to get the right branch
@@ -24,27 +27,58 @@ jobs:
2427
- macos-14
2528
isDevelop:
2629
- ${{ github.event_name == 'push' && github.ref_name == 'develop' }}
30+
isPullRequest:
31+
- ${{ github.event_name == 'pull_request' }}
2732
# Skip the ubuntu-24.04 build for the develop branch as the dedicated CD build_develop workflow handles that
33+
# Skip the non-linux builds for pull requests as Windows is awfully slow, so run in merge queue only
2834
exclude:
2935
- isDevelop: true
3036
image: ubuntu-24.04
37+
- isPullRequest: true
38+
image: windows-2022
39+
- isPullRequest: true
40+
image: macos-14
3141
runs-on: ${{ matrix.image }}
3242
defaults:
3343
run:
3444
shell: bash
3545
steps:
36-
- uses: actions/checkout@v4
46+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
3747

38-
- uses: actions/setup-node@v4
48+
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
3949
with:
40-
cache: "yarn"
50+
# Disable cache on Windows as it is slower than not caching
51+
# https://github.com/actions/setup-node/issues/975
52+
cache: ${{ runner.os != 'Windows' && 'yarn' || '' }}
4153
node-version: "lts/*"
4254

4355
# Workaround for yarn install timeouts, especially on Windows
4456
- run: yarn config set network-timeout 300000
4557

46-
- name: Install Dependencies
47-
run: "./scripts/layered.sh"
58+
- name: Fetch layered build
59+
id: layered_build
60+
env:
61+
# tell layered.sh to check out the right sha of the JS-SDK & EW, if they were given one
62+
JS_SDK_GITHUB_BASE_REF: ${{ inputs.matrix-js-sdk-sha }}
63+
run: |
64+
scripts/layered.sh
65+
JSSDK_SHA=$(git -C matrix-js-sdk rev-parse --short=12 HEAD)
66+
VECTOR_SHA=$(git rev-parse --short=12 HEAD)
67+
echo "VERSION=$VECTOR_SHA--js-$JSSDK_SHA" >> $GITHUB_OUTPUT
68+
69+
- name: Copy config
70+
run: cp element.io/develop/config.json config.json
4871

4972
- name: Build
50-
run: "yarn build"
73+
env:
74+
CI_PACKAGE: true
75+
VERSION: "${{ steps.layered_build.outputs.VERSION }}"
76+
run: |
77+
yarn build
78+
79+
- name: Upload Artifact
80+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
81+
with:
82+
name: webapp-${{ matrix.image }}
83+
path: webapp
84+
retention-days: 1

.github/workflows/build_debian.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
R2_URL: ${{ vars.CF_R2_S3_API }}
1515
VERSION: ${{ github.ref_name }}
1616
steps:
17-
- uses: actions/checkout@v4
17+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
1818

1919
- name: Download package
2020
run: |
@@ -62,7 +62,7 @@ jobs:
6262
dpkg-gencontrol -v"$VERSION" -ldebian/tmp/DEBIAN/changelog
6363
dpkg-deb -Zxz --root-owner-group --build debian/tmp element-web.deb
6464
65-
- uses: actions/upload-artifact@v4
65+
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
6666
with:
6767
name: element-web.deb
6868
path: element-web.deb

.github/workflows/build_develop.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ jobs:
2626
R2_URL: ${{ vars.CF_R2_S3_API }}
2727
R2_PUBLIC_URL: "https://element-web-develop.element.io"
2828
steps:
29-
- uses: actions/checkout@v4
29+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
3030

31-
- uses: actions/setup-node@v4
31+
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
3232
with:
3333
cache: "yarn"
3434
node-version: "lts/*"
@@ -53,7 +53,7 @@ jobs:
5353

5454
- run: mv dist/element-*.tar.gz dist/develop.tar.gz
5555

56-
- uses: actions/upload-artifact@v4
56+
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
5757
with:
5858
name: webapp
5959
path: dist/develop.tar.gz
@@ -109,10 +109,11 @@ jobs:
109109
# We keep the latest develop.tar.gz on R2 instead of relying on the github artifact uploaded earlier
110110
# as the expires after 24h and requires auth to download.
111111
# Element Desktop's fetch script uses this tarball to fetch latest develop to build Nightlies.
112+
# Checksum algorithm specified as per https://developers.cloudflare.com/r2/examples/aws/aws-cli/
112113
- name: Deploy to R2
113114
run: |
114-
aws s3 cp dist/develop.tar.gz s3://$R2_BUCKET/develop.tar.gz --endpoint-url $R2_URL --region=auto
115-
aws s3 cp _deploy/ s3://$R2_BUCKET/ --recursive --endpoint-url $R2_URL --region=auto
115+
aws s3 cp dist/develop.tar.gz s3://$R2_BUCKET/develop.tar.gz --endpoint-url $R2_URL --region=auto --checksum-algorithm CRC32
116+
aws s3 cp _deploy/ s3://$R2_BUCKET/ --recursive --endpoint-url $R2_URL --region=auto --checksum-algorithm CRC32
116117
env:
117118
AWS_ACCESS_KEY_ID: ${{ secrets.CF_R2_ACCESS_KEY_ID }}
118119
AWS_SECRET_ACCESS_KEY: ${{ secrets.CF_R2_TOKEN }}

.github/workflows/deploy.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ on:
1616
options:
1717
- staging.element.io
1818
- app.element.io
19+
skip-checks:
20+
description: Skip CI on the tagged commit
21+
required: true
22+
default: false
23+
type: boolean
1924
concurrency: ${{ inputs.site || 'staging.element.io' }}
2025
permissions: {}
2126
jobs:
@@ -29,7 +34,7 @@ jobs:
2934
env:
3035
SITE: ${{ inputs.site || 'staging.element.io' }}
3136
steps:
32-
- uses: actions/checkout@v4
37+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
3338

3439
- name: Load GPG key
3540
run: |
@@ -75,6 +80,7 @@ jobs:
7580

7681
- name: Wait for other steps to succeed
7782
uses: t3chguy/wait-on-check-action@18541021811b56544d90e0f073401c2b99e249d6 # fork
83+
if: inputs.skip-checks != true
7884
with:
7985
ref: ${{ github.sha }}
8086
running-workflow-name: "Deploy to Cloudflare Pages"
@@ -90,3 +96,4 @@ jobs:
9096
projectName: ${{ env.SITE == 'staging.element.io' && 'element-web-staging' || 'element-web' }}
9197
directory: _deploy
9298
gitHubToken: ${{ secrets.GITHUB_TOKEN }}
99+
branch: main

0 commit comments

Comments
 (0)