Skip to content

Commit 4a0d9fe

Browse files
committed
Merge tag 'v3.44.0' into sc
* Made the location map change the cursor to a pointer so it looks like it's clickable (https ([\matrix-org#8451](matrix-org#8451)). Fixes element-hq/element-web#21991. Contributed by @Odyssey346. * Implement improved spacing for the thread list and timeline ([\matrix-org#8337](matrix-org#8337)). Fixes element-hq/element-web#21759. Contributed by @luixxiul. * LLS: expose way to enable live sharing labs flag from location dialog ([\matrix-org#8416](matrix-org#8416)). * Fix source text boxes in View Source modal should have full width ([\matrix-org#8425](matrix-org#8425)). Fixes element-hq/element-web#21938. Contributed by @EECvision. * Read Receipts: never show +1, if it’s just 4, show all of them ([\matrix-org#8428](matrix-org#8428)). Fixes element-hq/element-web#21935. * Add opt-in analytics to onboarding tasks ([\matrix-org#8409](matrix-org#8409)). Fixes element-hq/element-web#21705. * Allow user to control if they are signed out of all devices when changing password ([\matrix-org#8259](matrix-org#8259)). Fixes element-hq/element-web#2671. * Implement new Read Receipt design ([\matrix-org#8389](matrix-org#8389)). Fixes element-hq/element-web#20574. * Stick connected video rooms to the top of the room list ([\matrix-org#8353](matrix-org#8353)). * LLS: fix jumpy maximised map ([\matrix-org#8387](matrix-org#8387)). * Persist audio and video mute state in video rooms ([\matrix-org#8376](matrix-org#8376)). * Forcefully disconnect from video rooms on logout and tab close ([\matrix-org#8375](matrix-org#8375)). * Add local echo of connected devices in video rooms ([\matrix-org#8368](matrix-org#8368)). * Improve text of account deactivation dialog ([\matrix-org#8371](matrix-org#8371)). Fixes element-hq/element-web#17421. * Live location sharing: own live beacon status on maximised view ([\matrix-org#8374](matrix-org#8374)). * Show a lobby screen in video rooms ([\matrix-org#8287](matrix-org#8287)). * Settings toggle to disable Composer Markdown ([\matrix-org#8358](matrix-org#8358)). Fixes element-hq/element-web#20321. * Cache localStorage objects for SettingsStore ([\matrix-org#8366](matrix-org#8366)). * Bring `View Source` back from behind developer mode ([\matrix-org#8369](matrix-org#8369)). Fixes element-hq/element-web#21771. * Fix race conditions around threads ([\matrix-org#8448](matrix-org#8448)). Fixes element-hq/element-web#21627. * Fix reading of cached room device setting values ([\matrix-org#8495](matrix-org#8495)). * Fix issue with dispatch happening mid-dispatch due to js-sdk emit ([\matrix-org#8473](matrix-org#8473)). Fixes element-hq/element-web#22019. * Match MSC behaviour for threads when disabled (thread-aware mode) ([\matrix-org#8476](matrix-org#8476)). Fixes element-hq/element-web#22033. * Specify position of DisambiguatedProfile inside a thread on bubble message layout ([\matrix-org#8452](matrix-org#8452)). Fixes element-hq/element-web#21998. Contributed by @luixxiul. * Location sharing: do not trackuserlocation in location picker ([\matrix-org#8466](matrix-org#8466)). Fixes element-hq/element-web#22013. * fix text and map indent in thread view ([\matrix-org#8462](matrix-org#8462)). Fixes element-hq/element-web#21997. * Live location sharing: don't group beacon info with room creation summary ([\matrix-org#8468](matrix-org#8468)). * Don't linkify code blocks ([\matrix-org#7859](matrix-org#7859)). Fixes element-hq/element-web#9613. * read receipts: improve tooltips to show names of users ([\matrix-org#8438](matrix-org#8438)). Fixes element-hq/element-web#21940. * Fix poll overflowing a reply tile on bubble message layout ([\matrix-org#8459](matrix-org#8459)). Fixes element-hq/element-web#22005. Contributed by @luixxiul. * Fix text link buttons on UserInfo panel ([\matrix-org#8247](matrix-org#8247)). Fixes element-hq/element-web#21702. Contributed by @luixxiul. * Clear local storage settings handler cache on logout ([\matrix-org#8454](matrix-org#8454)). Fixes element-hq/element-web#21994. * Fix jump to bottom button being always displayed in non-overflowing timelines ([\matrix-org#8460](matrix-org#8460)). Fixes element-hq/element-web#22003. * fix timeline search with empty text box should do nothing ([\matrix-org#8262](matrix-org#8262)). Fixes element-hq/element-web#21714. Contributed by @EECvision. * Fixes "space panel kebab menu is rendered out of view on sub spaces" ([\matrix-org#8350](matrix-org#8350)). Contributed by @yaya-usman. * Add margin to the location map inside ThreadView ([\matrix-org#8442](matrix-org#8442)). Fixes element-hq/element-web#21982. Contributed by @luixxiul. * Patch: "Reloading the registration page should warn about data loss" ([\matrix-org#8377](matrix-org#8377)). Contributed by @yaya-usman. * Live location sharing: fix safari timestamps pt 2 ([\matrix-org#8443](matrix-org#8443)). * Fix issue with thread notification state ignoring initial events ([\matrix-org#8417](matrix-org#8417)). Fixes element-hq/element-web#21927. * Fix event text overflow on bubble message layout ([\matrix-org#8391](matrix-org#8391)). Fixes element-hq/element-web#21882. Contributed by @luixxiul. * Disable the message action bar when hovering over the 1px border between threads on the list ([\matrix-org#8429](matrix-org#8429)). Fixes element-hq/element-web#21955. Contributed by @luixxiul. * correctly align read receipts to state events in bubble layout ([\matrix-org#8419](matrix-org#8419)). Fixes element-hq/element-web#21899. * Fix issue with underfilled timelines when barren of content ([\matrix-org#8432](matrix-org#8432)). Fixes element-hq/element-web#21930. * Fix baseline misalignment of thread panel summary by deduplication ([\matrix-org#8413](matrix-org#8413)). * Fix editing of non-html replies ([\matrix-org#8418](matrix-org#8418)). Fixes element-hq/element-web#21928. * Read Receipts "Fall from the Sky" ([\matrix-org#8414](matrix-org#8414)). Fixes element-hq/element-web#21888. * Make read receipts handle nullable roomMembers correctly ([\matrix-org#8410](matrix-org#8410)). Fixes element-hq/element-web#21896. * Don't form continuations on either side of a thread root ([\matrix-org#8408](matrix-org#8408)). Fixes element-hq/element-web#20908. * Fix centering issue with sticker placeholder ([\matrix-org#8404](matrix-org#8404)). Fixes element-hq/element-web#18014 and element-hq/element-web#6449. * Disable download option on <video/> , preferring dedicated download button ([\matrix-org#8403](matrix-org#8403)). Fixes element-hq/element-web#21902. * Fix infinite loop when pinning/unpinning persistent widgets ([\matrix-org#8396](matrix-org#8396)). Fixes element-hq/element-web#21864. * Tweak ReadReceiptGroup to better handle disambiguation ([\matrix-org#8402](matrix-org#8402)). Fixes element-hq/element-web#21897. * stop the bottom edge of buttons getting clipped in devtools ([\matrix-org#8400](matrix-org#8400)). * Fix issue with threads timelines with few events cropping events ([\matrix-org#8392](matrix-org#8392)). Fixes element-hq/element-web#20594. * Changed font-weight to 400 to support light weight font ([\matrix-org#8345](matrix-org#8345)). Fixes element-hq/element-web#21171. Contributed by @goelesha. * Fix issue with thread panel not updating when it loads on first render ([\matrix-org#8382](matrix-org#8382)). Fixes element-hq/element-web#21737. * fix: "Mention highlight and cursor hover highlight has different corner radius" ([\matrix-org#8384](matrix-org#8384)). Contributed by @yaya-usman. * Fix regression around haveRendererForEvent for hidden events ([\matrix-org#8379](matrix-org#8379)). Fixes element-hq/element-web#21862 and element-hq/element-web#21725. * Fix regression around the room list treeview keyboard a11y ([\matrix-org#8385](matrix-org#8385)). Fixes element-hq/element-web#21436. * Remove float property to let the margin between events appear on bubble message layout ([\matrix-org#8373](matrix-org#8373)). Fixes element-hq/element-web#21861. Contributed by @luixxiul. * Fix race in Registration between server change and flows fetch ([\matrix-org#8359](matrix-org#8359)). Fixes element-hq/element-web#21800. * fix rainbow breaks compound emojis ([\matrix-org#8245](matrix-org#8245)). Fixes element-hq/element-web#21371. Contributed by @EECvision. * Fix RightPanelStore handling first room on app launch wrong ([\matrix-org#8370](matrix-org#8370)). Fixes element-hq/element-web#21741. * Fix UnknownBody error message unalignment ([\matrix-org#8346](matrix-org#8346)). Fixes element-hq/element-web#21828. Contributed by @luixxiul. * Use -webkit-line-clamp for the room header topic overflow ([\matrix-org#8367](matrix-org#8367)). Fixes element-hq/element-web#21852. Contributed by @luixxiul. * Fix issue with ServerInfo crashing the modal ([\matrix-org#8364](matrix-org#8364)). * Fixes around threads beta in degraded mode ([\matrix-org#8319](matrix-org#8319)). Fixes element-hq/element-web#21762.
2 parents 1bddcc8 + 6d0e44c commit 4a0d9fe

File tree

216 files changed

+8305
-2813
lines changed

Some content is hidden

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

216 files changed

+8305
-2813
lines changed

.editorconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,6 @@ insert_final_newline = true
2121
indent_style = space
2222
indent_size = 4
2323
trim_trailing_whitespace = true
24+
25+
[*.{yml,yaml}]
26+
indent_size = 2

.github/workflows/element-build-and-test.yaml

Lines changed: 95 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -3,47 +3,100 @@
33
# as an artifact and run integration tests.
44
name: Element Web - Build and Test
55
on:
6-
pull_request:
6+
pull_request: { }
7+
push:
8+
branches: [ develop, master ]
9+
repository_dispatch:
10+
types: [ upstream-sdk-notify ]
11+
env:
12+
# These must be set for fetchdep.sh to get the right branch
13+
REPOSITORY: ${{ github.repository }}
14+
PR_NUMBER: ${{ github.event.pull_request.number }}
715
jobs:
8-
build:
9-
runs-on: ubuntu-latest
16+
build:
17+
name: "Build Element-Web"
18+
runs-on: ubuntu-latest
19+
steps:
20+
- uses: actions/checkout@v2
21+
22+
- uses: actions/setup-node@v3
23+
with:
24+
cache: 'yarn'
25+
26+
- name: Fetch layered build
27+
id: layered_build
28+
run: |
29+
scripts/ci/layered.sh
30+
JSSDK_SHA=$(git -C matrix-js-sdk rev-parse --short=12 HEAD)
31+
REACT_SHA=$(git rev-parse --short=12 HEAD)
32+
VECTOR_SHA=$(git -C element-web rev-parse --short=12 HEAD)
33+
echo "::set-output name=VERSION::$VECTOR_SHA-react-$REACT_SHA-js-$JSSDK_SHA"
34+
35+
- name: Copy config
36+
run: cp element.io/develop/config.json config.json
37+
working-directory: ./element-web
38+
39+
- name: Build
1040
env:
11-
# This must be set for fetchdep.sh to get the right branch
12-
PR_NUMBER: ${{github.event.number}}
13-
steps:
14-
- uses: actions/checkout@v2
15-
- name: Build
16-
run: scripts/ci/layered.sh && cd element-web && cp element.io/develop/config.json config.json && CI_PACKAGE=true yarn build
17-
- name: Upload Artifact
18-
uses: actions/upload-artifact@v2
19-
with:
20-
name: previewbuild
21-
path: element-web/webapp
22-
# We'll only use this in a triggered job, then we're done with it
23-
retention-days: 1
24-
cypress:
25-
needs: build
26-
runs-on: ubuntu-latest
27-
steps:
28-
- uses: actions/checkout@v2
29-
- name: Download build
30-
uses: actions/download-artifact@v3
31-
with:
32-
name: previewbuild
33-
path: webapp
34-
- name: Run Cypress tests
35-
uses: cypress-io/github-action@v2
36-
with:
37-
# The built in Electron runner seems to grind to a halt trying
38-
# to run the tests, so use chrome.
39-
browser: chrome
40-
start: npx serve -p 8080 webapp
41-
- name: Upload Artifact
42-
if: failure()
43-
uses: actions/upload-artifact@v2
44-
with:
45-
name: cypress-results
46-
path: |
47-
cypress/screenshots
48-
cypress/videos
49-
cypress/synapselogs
41+
CI_PACKAGE: true
42+
VERSION: "${{ steps.layered_build.outputs.VERSION }}"
43+
run: yarn build
44+
working-directory: ./element-web
45+
46+
- name: Upload Artifact
47+
uses: actions/upload-artifact@v2
48+
with:
49+
name: previewbuild
50+
path: element-web/webapp
51+
# We'll only use this in a triggered job, then we're done with it
52+
retention-days: 1
53+
54+
cypress:
55+
name: "Cypress End to End Tests"
56+
needs: build
57+
runs-on: ubuntu-latest
58+
steps:
59+
- uses: actions/checkout@v2
60+
61+
- name: Download build
62+
uses: actions/download-artifact@v3
63+
with:
64+
name: previewbuild
65+
path: webapp
66+
67+
- name: Run Cypress tests
68+
uses: cypress-io/github-action@v2
69+
with:
70+
# The built in Electron runner seems to grind to a halt trying
71+
# to run the tests, so use chrome.
72+
browser: chrome
73+
start: npx serve -p 8080 webapp
74+
record: true
75+
env:
76+
# pass the Dashboard record key as an environment variable
77+
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
78+
# pass GitHub token to allow accurately detecting a build vs a re-run build
79+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
80+
81+
- name: Upload Artifact
82+
if: failure()
83+
uses: actions/upload-artifact@v2
84+
with:
85+
name: cypress-results
86+
path: |
87+
cypress/screenshots
88+
cypress/videos
89+
cypress/synapselogs
90+
91+
app-tests:
92+
name: Element Web Integration Tests
93+
runs-on: ubuntu-latest
94+
steps:
95+
- uses: actions/checkout@v2
96+
97+
- uses: actions/setup-node@v3
98+
with:
99+
cache: 'yarn'
100+
101+
- name: Run tests
102+
run: "./scripts/ci/app-tests.sh"

.github/workflows/pull_request.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Pull Request
2+
on:
3+
pull_request_target:
4+
types: [ opened, edited, labeled, unlabeled ]
5+
jobs:
6+
changelog:
7+
name: Preview Changelog
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: matrix-org/allchange@main
11+
with:
12+
ghToken: ${{ secrets.GITHUB_TOKEN }}
13+
14+
enforce-label:
15+
name: Enforce Labels
16+
runs-on: ubuntu-latest
17+
permissions:
18+
pull-requests: read
19+
steps:
20+
- uses: yogevbd/[email protected]
21+
with:
22+
REQUIRED_LABELS_ANY: "T-Defect,T-Enhancement,T-Task"
23+
BANNED_LABELS: "X-Blocked"
24+
BANNED_LABELS_DESCRIPTION: "Preventing merge whilst PR is marked blocked!"

.github/workflows/sonarqube.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: SonarQube
2+
on:
3+
workflow_run:
4+
workflows: [ "Tests" ]
5+
types:
6+
- completed
7+
jobs:
8+
sonarqube:
9+
name: SonarQube
10+
runs-on: ubuntu-latest
11+
if: github.event.workflow_run.conclusion == 'success'
12+
steps:
13+
- uses: actions/checkout@v2
14+
with:
15+
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
16+
17+
# There's a 'download artifact' action, but it hasn't been updated for the workflow_run action
18+
# (https://github.com/actions/download-artifact/issues/60) so instead we get this mess:
19+
- name: Download Coverage Report
20+
uses: actions/[email protected]
21+
with:
22+
script: |
23+
const artifacts = await github.actions.listWorkflowRunArtifacts({
24+
owner: context.repo.owner,
25+
repo: context.repo.repo,
26+
run_id: ${{ github.event.workflow_run.id }},
27+
});
28+
const matchArtifact = artifacts.data.artifacts.filter((artifact) => {
29+
return artifact.name == "coverage"
30+
})[0];
31+
const download = await github.actions.downloadArtifact({
32+
owner: context.repo.owner,
33+
repo: context.repo.repo,
34+
artifact_id: matchArtifact.id,
35+
archive_format: 'zip',
36+
});
37+
const fs = require('fs');
38+
fs.writeFileSync('${{github.workspace}}/coverage.zip', Buffer.from(download.data));
39+
40+
- name: Extract Coverage Report
41+
run: unzip -d coverage coverage.zip && rm coverage.zip
42+
43+
- name: SonarCloud Scan
44+
uses: SonarSource/sonarcloud-github-action@master
45+
env:
46+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
47+
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
name: Static Analysis
2+
on:
3+
pull_request: { }
4+
push:
5+
branches: [ develop, master ]
6+
repository_dispatch:
7+
types: [ upstream-sdk-notify ]
8+
env:
9+
# These must be set for fetchdep.sh to get the right branch
10+
REPOSITORY: ${{ github.repository }}
11+
PR_NUMBER: ${{ github.event.pull_request.number }}
12+
jobs:
13+
ts_lint:
14+
name: "Typescript Syntax Check"
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@v2
18+
19+
- uses: actions/setup-node@v3
20+
with:
21+
cache: 'yarn'
22+
23+
- name: Install Deps
24+
run: "./scripts/ci/install-deps.sh --ignore-scripts"
25+
26+
- name: Typecheck
27+
run: "yarn run lint:types"
28+
29+
- name: Switch js-sdk to release mode
30+
run: |
31+
scripts/ci/js-sdk-to-release.js
32+
cd node_modules/matrix-js-sdk
33+
yarn install
34+
yarn run build:compile
35+
yarn run build:types
36+
37+
- name: Typecheck (release mode)
38+
run: "yarn run lint:types"
39+
40+
i18n_lint:
41+
name: "i18n Check"
42+
runs-on: ubuntu-latest
43+
permissions:
44+
pull-requests: read
45+
steps:
46+
- uses: actions/checkout@v2
47+
48+
- name: "Get modified files"
49+
id: changed_files
50+
if: github.event_name == 'pull_request'
51+
uses: tj-actions/changed-files@v19
52+
with:
53+
files: |
54+
src/i18n/strings/*
55+
files_ignore: |
56+
src/i18n/strings/en_EN.json
57+
58+
- name: "Assert only en_EN was modified"
59+
if: github.event_name == 'pull_request' && steps.changed_files.outputs.any_modified == 'true'
60+
run: |
61+
echo "You can only modify en_EN.json, do not touch any of the other i18n files as Weblate will be confused"
62+
exit 1
63+
64+
- uses: actions/setup-node@v3
65+
with:
66+
cache: 'yarn'
67+
68+
# Does not need branch matching as only analyses this layer
69+
- name: Install Deps
70+
run: "yarn install"
71+
72+
- name: i18n Check
73+
run: "yarn run diff-i18n"
74+
75+
js_lint:
76+
name: "ESLint"
77+
runs-on: ubuntu-latest
78+
steps:
79+
- uses: actions/checkout@v2
80+
81+
- uses: actions/setup-node@v3
82+
with:
83+
cache: 'yarn'
84+
85+
# Does not need branch matching as only analyses this layer
86+
- name: Install Deps
87+
run: "yarn install"
88+
89+
- name: Run Linter
90+
run: "yarn run lint:js"
91+
92+
style_lint:
93+
name: "Style Lint"
94+
runs-on: ubuntu-latest
95+
steps:
96+
- uses: actions/checkout@v2
97+
98+
- uses: actions/setup-node@v3
99+
with:
100+
cache: 'yarn'
101+
102+
# Does not need branch matching as only analyses this layer
103+
- name: Install Deps
104+
run: "yarn install"
105+
106+
- name: Run Linter
107+
run: "yarn run lint:style"

.github/workflows/tests.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Tests
2+
on:
3+
pull_request: { }
4+
push:
5+
branches: [ develop, master ]
6+
repository_dispatch:
7+
types: [ upstream-sdk-notify ]
8+
env:
9+
# These must be set for fetchdep.sh to get the right branch
10+
REPOSITORY: ${{ github.repository }}
11+
PR_NUMBER: ${{ github.event.pull_request.number }}
12+
jobs:
13+
jest:
14+
name: Jest
15+
runs-on: ubuntu-latest
16+
steps:
17+
- name: Checkout code
18+
uses: actions/checkout@v2
19+
20+
- name: Yarn cache
21+
uses: actions/setup-node@v3
22+
with:
23+
cache: 'yarn'
24+
25+
- name: Install Deps
26+
run: "./scripts/ci/install-deps.sh --ignore-scripts"
27+
28+
- name: Run tests with coverage
29+
run: "yarn coverage --ci"
30+
31+
- name: Upload Artifact
32+
uses: actions/upload-artifact@v2
33+
with:
34+
name: coverage
35+
path: |
36+
coverage
37+
!coverage/lcov-report

0 commit comments

Comments
 (0)