Skip to content

Commit 8a8e985

Browse files
committed
Merge remote-tracking branch 'upstream/master' into synodim
2 parents 0529002 + 7a513a2 commit 8a8e985

File tree

1,538 files changed

+33300
-8218
lines changed

Some content is hidden

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

1,538 files changed

+33300
-8218
lines changed

.eslintrc.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -200,8 +200,13 @@ module.exports = {
200200
"@typescript-eslint/ban-ts-comment": "off",
201201
// We're okay with assertion errors when we ask for them
202202
"@typescript-eslint/no-non-null-assertion": "off",
203-
// We do this sometimes to brand interfaces
204-
"@typescript-eslint/no-empty-object-type": "off",
203+
"@typescript-eslint/no-empty-object-type": [
204+
"error",
205+
{
206+
// We do this sometimes to brand interfaces
207+
allowInterfaces: "with-single-extends",
208+
},
209+
],
205210
},
206211
},
207212
// temporary override for offending icon require files
@@ -247,6 +252,7 @@ module.exports = {
247252
// We don't need super strict typing in test utilities
248253
"@typescript-eslint/explicit-function-return-type": "off",
249254
"@typescript-eslint/explicit-member-accessibility": "off",
255+
"@typescript-eslint/no-empty-object-type": "off",
250256

251257
// Jest/Playwright specific
252258

.github/CODEOWNERS

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,11 @@
1111
/src/stores/SetupEncryptionStore.ts @element-hq/element-crypto-web-reviewers
1212
/test/stores/SetupEncryptionStore-test.ts @element-hq/element-crypto-web-reviewers
1313
/src/components/views/settings/tabs/user/EncryptionUserSettingsTab.tsx @element-hq/element-crypto-web-reviewers
14-
/src/src/components/views/settings/encryption/ @element-hq/element-crypto-web-reviewers
14+
/src/components/views/settings/encryption/ @element-hq/element-crypto-web-reviewers
1515
/test/unit-tests/components/views/settings/encryption/ @element-hq/element-crypto-web-reviewers
16-
/playwright/e2e/settings/encryption-user-tab/ @element-hq/element-crypto-web-reviewers
1716
/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
1819

1920
# Ignore translations as those will be updated by GHA for Localazy download
2021
/src/i18n/strings

.github/workflows/triage-stale.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Close stale issues & PRs
2+
on:
3+
workflow_dispatch: {}
4+
schedule:
5+
- cron: "30 1 * * *"
6+
permissions: {}
7+
jobs:
8+
close:
9+
runs-on: ubuntu-24.04
10+
permissions:
11+
actions: write
12+
issues: write
13+
pull-requests: write
14+
steps:
15+
- uses: actions/stale@v9
16+
with:
17+
operations-per-run: 100
18+
# Flaky test issue closing
19+
only-issue-labels: "Z-Flaky-Test"
20+
days-before-issue-stale: 14
21+
days-before-issue-close: 0
22+
close-issue-message: "This flaky test issue has not been updated in 14 days. It is being closed as presumed resolved."
23+
exempt-issue-labels: "Z-Flaky-Test-Disabled"
24+
# Stale PR closing
25+
days-before-pr-stale: 180
26+
days-before-pr-close: 0
27+
close-pr-message: "This PR has been automatically closed because it has been stale for 180 days. If you wish to continue working on this PR, please ping a maintainer to reopen it."

CHANGELOG.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,40 @@
1+
Changes in [1.11.94](https://github.com/element-hq/element-web/releases/tag/v1.11.94) (2025-02-27)
2+
==================================================================================================
3+
## 🐛 Bug Fixes
4+
5+
* [Backport staging] fix: /tmp/element-web-config may already exist preventing the container from booting up ([#29377](https://github.com/element-hq/element-web/pull/29377)). Contributed by @RiotRobot.
6+
7+
8+
Changes in [1.11.93](https://github.com/element-hq/element-web/releases/tag/v1.11.93) (2025-02-25)
9+
==================================================================================================
10+
## ✨ Features
11+
12+
* [backport] Dynamically load Element Web modules in Docker entrypoint ([#29358](https://github.com/element-hq/element-web/pull/29358)). Contributed by @t3chguy.
13+
* ChangeRecoveryKey: error handling ([#29262](https://github.com/element-hq/element-web/pull/29262)). Contributed by @richvdh.
14+
* Dehydration: enable dehydrated device on "Set up recovery" ([#29265](https://github.com/element-hq/element-web/pull/29265)). Contributed by @richvdh.
15+
* Render reason for invite rejection. ([#29257](https://github.com/element-hq/element-web/pull/29257)). Contributed by @Half-Shot.
16+
* New room list: add search section ([#29251](https://github.com/element-hq/element-web/pull/29251)). Contributed by @florianduros.
17+
* New room list: hide favourites and people meta spaces ([#29241](https://github.com/element-hq/element-web/pull/29241)). Contributed by @florianduros.
18+
* New Room List: Create new labs flag ([#29239](https://github.com/element-hq/element-web/pull/29239)). Contributed by @MidhunSureshR.
19+
* Stop URl preview from covering message box ([#29215](https://github.com/element-hq/element-web/pull/29215)). Contributed by @edent.
20+
* Rename "security key" into "recovery key" ([#29217](https://github.com/element-hq/element-web/pull/29217)). Contributed by @florianduros.
21+
* Add new verification section to user profile ([#29200](https://github.com/element-hq/element-web/pull/29200)). Contributed by @MidhunSureshR.
22+
* Initial support for runtime modules ([#29104](https://github.com/element-hq/element-web/pull/29104)). Contributed by @t3chguy.
23+
* Add `Forgot recovery key?` button to encryption tab ([#29202](https://github.com/element-hq/element-web/pull/29202)). Contributed by @florianduros.
24+
* Add KeyIcon to key storage out of sync toast ([#29201](https://github.com/element-hq/element-web/pull/29201)). Contributed by @florianduros.
25+
* Improve rendering of empty topics in the timeline ([#29152](https://github.com/element-hq/element-web/pull/29152)). Contributed by @Half-Shot.
26+
27+
## 🐛 Bug Fixes
28+
29+
* Fix font scaling in member list ([#29285](https://github.com/element-hq/element-web/pull/29285)). Contributed by @florianduros.
30+
* Grow member list search field when resizing the right panel ([#29267](https://github.com/element-hq/element-web/pull/29267)). Contributed by @langleyd.
31+
* Don't reload roomview on offline connectivity check ([#29243](https://github.com/element-hq/element-web/pull/29243)). Contributed by @dbkr.
32+
* Respect user's 12/24 hour preference consistently ([#29237](https://github.com/element-hq/element-web/pull/29237)). Contributed by @t3chguy.
33+
* Restore the accessibility role on call views ([#29225](https://github.com/element-hq/element-web/pull/29225)). Contributed by @robintown.
34+
* Revert `GoToHome` keyboard shortcut to `Ctrl``Shift``H` on macOS ([#28577](https://github.com/element-hq/element-web/pull/28577)). Contributed by @gy-mate.
35+
* Encryption tab: display correct encryption panel when user cancels the reset identity flow ([#29216](https://github.com/element-hq/element-web/pull/29216)). Contributed by @florianduros.
36+
37+
138
Changes in [1.11.92](https://github.com/element-hq/element-web/releases/tag/v1.11.92) (2025-02-11)
239
==================================================================================================
340
## ✨ Features

CONTRIBUTING.md

Lines changed: 0 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -189,89 +189,6 @@ give away to contributors - if you feel that Matrix-branded apparel is missing
189189
from your life, please mail us your shipping address to matrix at matrix.org
190190
and we'll try to fix it :)
191191

192-
## Sign off
193-
194-
In order to have a concrete record that your contribution is intentional
195-
and you agree to license it under the same terms as the project's license, we've
196-
adopted the same lightweight approach that the Linux Kernel
197-
(https://www.kernel.org/doc/html/latest/process/submitting-patches.html), Docker
198-
(https://github.com/docker/docker/blob/master/CONTRIBUTING.md), and many other
199-
projects use: the DCO (Developer Certificate of Origin:
200-
http://developercertificate.org/). This is a simple declaration that you wrote
201-
the contribution or otherwise have the right to contribute it to Matrix:
202-
203-
```
204-
Developer Certificate of Origin
205-
Version 1.1
206-
207-
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
208-
660 York Street, Suite 102,
209-
San Francisco, CA 94110 USA
210-
211-
Everyone is permitted to copy and distribute verbatim copies of this
212-
license document, but changing it is not allowed.
213-
214-
Developer's Certificate of Origin 1.1
215-
216-
By making a contribution to this project, I certify that:
217-
218-
(a) The contribution was created in whole or in part by me and I
219-
have the right to submit it under the open source license
220-
indicated in the file; or
221-
222-
(b) The contribution is based upon previous work that, to the best
223-
of my knowledge, is covered under an appropriate open source
224-
license and I have the right under that license to submit that
225-
work with modifications, whether created in whole or in part
226-
by me, under the same open source license (unless I am
227-
permitted to submit under a different license), as indicated
228-
in the file; or
229-
230-
(c) The contribution was provided directly to me by some other
231-
person who certified (a), (b) or (c) and I have not modified
232-
it.
233-
234-
(d) I understand and agree that this project and the contribution
235-
are public and that a record of the contribution (including all
236-
personal information I submit with it, including my sign-off) is
237-
maintained indefinitely and may be redistributed consistent with
238-
this project or the open source license(s) involved.
239-
```
240-
241-
If you agree to this for your contribution, then all that's needed is to
242-
include the line in your commit or pull request comment:
243-
244-
```
245-
Signed-off-by: Your Name <[email protected]>
246-
```
247-
248-
We accept contributions under a legally identifiable name, such as your name on
249-
government documentation or common-law names (names claimed by legitimate usage
250-
or repute). Unfortunately, we cannot accept anonymous contributions at this
251-
time.
252-
253-
Git allows you to add this signoff automatically when using the `-s` flag to
254-
`git commit`, which uses the name and email set in your `user.name` and
255-
`user.email` git configs.
256-
257-
If you forgot to sign off your commits before making your pull request and are
258-
on Git 2.17+ you can mass signoff using rebase:
259-
260-
```
261-
git rebase --signoff origin/develop
262-
```
263-
264-
## Private sign off
265-
266-
If you would like to provide your legal name privately to the Matrix.org
267-
Foundation (instead of in a public commit or comment), you can do so by emailing
268-
your legal name and a link to the pull request to [email protected]. It helps to
269-
include "sign off" or similar in the subject line. You will then be instructed
270-
further.
271-
272-
Once private sign off is complete, doing so for future contributions will not
273-
be required.
274-
275192
# Review expectations
276193

277194
See https://github.com/element-hq/element-meta/wiki/Review-process

Dockerfile

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# syntax=docker.io/docker/dockerfile:1.7-labs
2+
13
# Builder
24
FROM --platform=$BUILDPLATFORM node:22-bullseye AS builder
35

@@ -8,7 +10,7 @@ ARG JS_SDK_BRANCH="master"
810

911
WORKDIR /src
1012

11-
COPY . /src
13+
COPY --exclude=docker . /src
1214
RUN /src/scripts/docker-link-repos.sh
1315
RUN yarn --network-timeout=200000 install
1416
RUN /src/scripts/docker-package.sh
@@ -19,11 +21,15 @@ RUN cp /src/config.sample.json /src/webapp/config.json
1921
# App
2022
FROM nginx:alpine-slim
2123

24+
# Install jq and moreutils for sponge, both used by our entrypoints
25+
RUN apk add jq moreutils
26+
2227
COPY --from=builder /src/webapp /app
2328

2429
# Override default nginx config. Templates in `/etc/nginx/templates` are passed
2530
# through `envsubst` by the nginx docker image entry point.
2631
COPY /docker/nginx-templates/* /etc/nginx/templates/
32+
COPY /docker/docker-entrypoint.d/* /docker-entrypoint.d/
2733

2834
# Tell nginx to put its pidfile elsewhere, so it can run as non-root
2935
RUN sed -i -e 's,/var/run/nginx.pid,/tmp/nginx.pid,' /etc/nginx/nginx.conf

README.md

Lines changed: 4 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -182,123 +182,11 @@ Dockerfile.
182182

183183
# Development
184184

185-
Before attempting to develop on Element you **must** read the [developer guide
186-
for `matrix-react-sdk`](https://github.com/matrix-org/matrix-react-sdk#developer-guide), which
187-
also defines the design, architecture and style for Element too.
188-
189-
Read the [Choosing an issue](docs/choosing-an-issue.md) page for some guidance
190-
about where to start. Before starting work on a feature, it's best to ensure
191-
your plan aligns well with our vision for Element. Please chat with the team in
192-
[#element-dev:matrix.org](https://matrix.to/#/#element-dev:matrix.org) before
193-
you start so we can ensure it's something we'd be willing to merge.
194-
195-
You should also familiarise yourself with the ["Here be Dragons" guide
196-
](https://docs.google.com/document/d/12jYzvkidrp1h7liEuLIe6BMdU0NUjndUYI971O06ooM)
197-
to the tame & not-so-tame dragons (gotchas) which exist in the codebase.
198-
199-
The idea of Element is to be a relatively lightweight "skin" of customisations on
200-
top of the underlying `matrix-react-sdk`. `matrix-react-sdk` provides both the
201-
higher and lower level React components useful for building Matrix communication
202-
apps using React.
203-
204-
Please note that Element is intended to run correctly without access to the public
205-
internet. So please don't depend on resources (JS libs, CSS, images, fonts)
206-
hosted by external CDNs or servers but instead please package all dependencies
207-
into Element itself.
208-
209-
# Setting up a dev environment
210-
211-
Much of the functionality in Element is actually in the `matrix-js-sdk` module.
212-
It is possible to set these up in a way that makes it easy to track the `develop` branches
213-
in git and to make local changes without having to manually rebuild each time.
214-
215-
First clone and build `matrix-js-sdk`:
216-
217-
```bash
218-
git clone https://github.com/matrix-org/matrix-js-sdk.git
219-
pushd matrix-js-sdk
220-
yarn link
221-
yarn install
222-
popd
223-
```
224-
225-
Clone the repo and switch to the `element-web` directory:
226-
227-
```bash
228-
git clone https://github.com/element-hq/element-web.git
229-
cd element-web
230-
```
231-
232-
Configure the app by copying `config.sample.json` to `config.json` and
233-
modifying it. See the [configuration docs](docs/config.md) for details.
234-
235-
Finally, build and start Element itself:
236-
237-
```bash
238-
yarn link matrix-js-sdk
239-
yarn install
240-
yarn start
241-
```
242-
243-
Wait a few seconds for the initial build to finish; you should see something like:
244-
245-
```
246-
[element-js] <s> [webpack.Progress] 100%
247-
[element-js]
248-
[element-js] ℹ 「wdm」: 1840 modules
249-
[element-js] ℹ 「wdm」: Compiled successfully.
250-
```
251-
252-
Remember, the command will not terminate since it runs the web server
253-
and rebuilds source files when they change. This development server also
254-
disables caching, so do NOT use it in production.
255-
256-
Open <http://127.0.0.1:8080/> in your browser to see your newly built Element.
257-
258-
**Note**: The build script uses inotify by default on Linux to monitor directories
259-
for changes. If the inotify limits are too low your build will fail silently or with
260-
`Error: EMFILE: too many open files`. To avoid these issues, we recommend a watch limit
261-
of at least `128M` and instance limit around `512`.
262-
263-
You may be interested in issues [#15750](https://github.com/element-hq/element-web/issues/15750) and
264-
[#15774](https://github.com/element-hq/element-web/issues/15774) for further details.
265-
266-
To set a new inotify watch and instance limit, execute:
267-
268-
```
269-
sudo sysctl fs.inotify.max_user_watches=131072
270-
sudo sysctl fs.inotify.max_user_instances=512
271-
sudo sysctl -p
272-
```
273-
274-
If you wish, you can make the new limits permanent, by executing:
275-
276-
```
277-
echo fs.inotify.max_user_watches=131072 | sudo tee -a /etc/sysctl.conf
278-
echo fs.inotify.max_user_instances=512 | sudo tee -a /etc/sysctl.conf
279-
sudo sysctl -p
280-
```
281-
282-
---
283-
284-
When you make changes to `matrix-js-sdk` they should be automatically picked up by webpack and built.
285-
286-
If any of these steps error with, `file table overflow`, you are probably on a mac
287-
which has a very low limit on max open files. Run `ulimit -Sn 1024` and try again.
288-
You'll need to do this in each new terminal you open before building Element.
289-
290-
## Running the tests
291-
292-
There are a number of application-level tests in the `tests` directory; these
293-
are designed to run with Jest and JSDOM. To run them
294-
295-
```
296-
yarn test
297-
```
298-
299-
### End-to-End tests
185+
Please read through the following:
300186

301-
See [matrix-react-sdk](https://github.com/matrix-org/matrix-react-sdk/#end-to-end-tests) for how to run the end-to-end tests.
187+
1. [Developer guide](./developer_guide.md)
188+
2. [Code style](./code_style.md)
189+
3. [Contribution guide](./CONTRIBUTING.md)
302190

303191
# Translations
304192

0 commit comments

Comments
 (0)