diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 20e642cb92..0d52ad98dc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,7 +2,7 @@ name: Build on: pull_request: {} push: - branches: [master] + branches: [develop, master] # develop pushes and repository_dispatch handled in build_develop.yaml env: # These must be set for fetchdep.sh to get the right branch @@ -10,8 +10,25 @@ env: PR_NUMBER: ${{ github.event.pull_request.number }} jobs: build: - name: "Build" - runs-on: ubuntu-latest + name: "Build on ${{ matrix.image }}" + # We build on all 3 platforms to ensure we don't have any OS-specific build incompatibilities + strategy: + fail-fast: false + matrix: + image: + - ubuntu-latest + - windows-latest + - macos-latest + isDevelop: + - ${{ github.event_name == 'push' && github.ref_name == 'develop' }} + # Skip the ubuntu-latest build for the develop branch as the dedicated CD build_develop workflow handles that + exclude: + - isDevelop: true + image: ubuntu-latest + runs-on: ${{ matrix.image }} + defaults: + run: + shell: bash steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/triage-labelled.yml b/.github/workflows/triage-labelled.yml index c433d1e876..f8cd7e9939 100644 --- a/.github/workflows/triage-labelled.yml +++ b/.github/workflows/triage-labelled.yml @@ -99,45 +99,6 @@ jobs: project-url: https://github.com/orgs/vector-im/projects/48 github-token: ${{ secrets.ELEMENT_BOT_TOKEN }} - ps_features1: - name: Add labelled issues to PS features team 1 - runs-on: ubuntu-latest - if: > - contains(github.event.issue.labels.*.name, 'A-Polls') || - contains(github.event.issue.labels.*.name, 'A-Location-Sharing') || - (contains(github.event.issue.labels.*.name, 'A-Voice-Messages') && - !contains(github.event.issue.labels.*.name, 'A-Broadcast')) || - (contains(github.event.issue.labels.*.name, 'A-Session-Mgmt') && - contains(github.event.issue.labels.*.name, 'A-User-Settings')) - steps: - - uses: actions/add-to-project@main - with: - project-url: https://github.com/orgs/vector-im/projects/56 - github-token: ${{ secrets.ELEMENT_BOT_TOKEN }} - - ps_features2: - name: Add labelled issues to PS features team 2 - runs-on: ubuntu-latest - if: > - contains(github.event.issue.labels.*.name, 'A-DM-Start') || - contains(github.event.issue.labels.*.name, 'A-Broadcast') - steps: - - uses: actions/add-to-project@main - with: - project-url: https://github.com/orgs/vector-im/projects/58 - github-token: ${{ secrets.ELEMENT_BOT_TOKEN }} - - ps_features3: - name: Add labelled issues to PS features team 3 - runs-on: ubuntu-latest - if: > - contains(github.event.issue.labels.*.name, 'A-Rich-Text-Editor') - steps: - - uses: actions/add-to-project@main - with: - project-url: https://github.com/orgs/vector-im/projects/57 - github-token: ${{ secrets.ELEMENT_BOT_TOKEN }} - voip: name: Add labelled issues to VoIP project board runs-on: ubuntu-latest @@ -159,3 +120,19 @@ jobs: with: project-url: https://github.com/orgs/vector-im/projects/57 github-token: ${{ secrets.ELEMENT_BOT_TOKEN }} + + tech_debt: + name: Add labelled issues to tech debt project + runs-on: ubuntu-latest + if: > + contains(github.event.issue.labels.*.name, 'A-Developer-Experience') || + contains(github.event.issue.labels.*.name, 'A-Documentation') || + contains(github.event.issue.labels.*.name, 'A-Packaging') || + contains(github.event.issue.labels.*.name, 'A-Technical-Debt') || + contains(github.event.issue.labels.*.name, 'A-Testing') || + contains(github.event.issue.labels.*.name, 'Z-Flaky-Test') + steps: + - uses: actions/add-to-project@main + with: + project-url: https://github.com/orgs/vector-im/projects/101 + github-token: ${{ secrets.ELEMENT_BOT_TOKEN }} diff --git a/CHANGELOG.md b/CHANGELOG.md index b776a5ffcd..c9dbbfaf5c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,35 @@ +Changes in [1.11.46](https://github.com/vector-im/element-web/releases/tag/v1.11.46) (2023-10-10) +================================================================================================= + +## ✨ Features + * Use .well-known to discover a default rendezvous server for use with Sign in with QR ([\#11655](https://github.com/matrix-org/matrix-react-sdk/pull/11655)). Contributed by @hughns. + * Message layout will update according to the selected style ([\#10170](https://github.com/matrix-org/matrix-react-sdk/pull/10170)). Fixes #21782. Contributed by @manancodes. + * Implement MSC4039: Add an MSC for a new Widget API action to upload files into the media repository ([\#11311](https://github.com/matrix-org/matrix-react-sdk/pull/11311)). Contributed by @dhenneke. + * Render space pills with square corners to match new avatar ([\#11632](https://github.com/matrix-org/matrix-react-sdk/pull/11632)). Fixes #26056. + * Linkify room topic ([\#11631](https://github.com/matrix-org/matrix-react-sdk/pull/11631)). Fixes #26185. + * Show knock rooms in the list ([\#11573](https://github.com/matrix-org/matrix-react-sdk/pull/11573)). Contributed by @maheichyk. + +## 🐛 Bug Fixes + * Bump matrix-web-i18n dependency to 3.1.3 ([\#26287](https://github.com/vector-im/element-web/pull/26287)) + * Fix: Avatar shrinks with long names ([\#11698](https://github.com/matrix-org/matrix-react-sdk/pull/11698)). Fixes #26252. Contributed by @manancodes. + * Update custom translations to support nested fields in structured JSON ([\#11685](https://github.com/matrix-org/matrix-react-sdk/pull/11685)). + * Fix: Edited message remove button is hard to reach. ([\#11674](https://github.com/matrix-org/matrix-react-sdk/pull/11674)). Fixes #24917. Contributed by @manancodes. + * Fix: Theme selector radio button not aligned in center with the text ([\#11676](https://github.com/matrix-org/matrix-react-sdk/pull/11676)). Fixes #25460. Contributed by @manancodes. + * Fix: Unread notification dot aligned ([\#11658](https://github.com/matrix-org/matrix-react-sdk/pull/11658)). Fixes #25285. Contributed by @manancodes. + * Fix: sync intentional mentions push rules with legacy rules ([\#11667](https://github.com/matrix-org/matrix-react-sdk/pull/11667)). Fixes #26227. Contributed by @kerryarchibald. + * Revert "Fix regression around FacePile with overflow (#11527)" ([\#11634](https://github.com/matrix-org/matrix-react-sdk/pull/11634)). Fixes #26209. + * Fix: Alignment Fixed ([\#11648](https://github.com/matrix-org/matrix-react-sdk/pull/11648)). Fixes #26169. Contributed by @manancodes. + * Fix: onFinished added which closes the menu ([\#11647](https://github.com/matrix-org/matrix-react-sdk/pull/11647)). Fixes #25556. Contributed by @manancodes. + * Don't start key backups when opening settings ([\#11640](https://github.com/matrix-org/matrix-react-sdk/pull/11640)). + * Fix add to space avatar text centering ([\#11643](https://github.com/matrix-org/matrix-react-sdk/pull/11643)). Fixes #26154. + * fix avatar styling in lightbox ([\#11641](https://github.com/matrix-org/matrix-react-sdk/pull/11641)). Fixes #26196. + +Changes in [1.11.45](https://github.com/vector-im/element-web/releases/tag/v1.11.45) (2023-09-29) +================================================================================================= + +## 🐛 Bug Fixes + * Fix Emoji font on Safari 17 ([\#11673](https://github.com/matrix-org/matrix-react-sdk/pull/11673)). + Changes in [1.11.44](https://github.com/vector-im/element-web/releases/tag/v1.11.44) (2023-09-26) ================================================================================================= diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7c7dc57da4..48f5002a85 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -204,7 +204,7 @@ and we'll try to fix it :) In order to have a concrete record that your contribution is intentional and you agree to license it under the same terms as the project's license, we've adopted the same lightweight approach that the Linux Kernel -(https://www.kernel.org/doc/Documentation/SubmittingPatches), Docker +(https://www.kernel.org/doc/html/latest/process/submitting-patches.html), Docker (https://github.com/docker/docker/blob/master/CONTRIBUTING.md), and many other projects use: the DCO (Developer Certificate of Origin: http://developercertificate.org/). This is a simple declaration that you wrote diff --git a/code_style.md b/code_style.md index c1c9beda78..0462f3a4a9 100644 --- a/code_style.md +++ b/code_style.md @@ -113,15 +113,17 @@ Unless otherwise specified, the following applies to all code: } ``` -14. Explicitly cast to a boolean, rather than relying on implicit truthiness of non-boolean values: +14. If a variable's type should be boolean, make sure it really is one. ```typescript - const isRealUser = !!userId && ...; - // ... or ... - const isRealUser = Boolean(userId) && ...; + const isRealUser = !!userId && ...; // good + const isRealUser = Boolean(userId) && Boolean(userName); // also good + const isRealUser = Boolean(userId) && isReal; // also good (where isReal is another boolean variable) + const isRealUser = Boolean(userId && userName); // also fine + const isRealUser = Boolean(userId || userName); // good: same as && + const isRealUser = userId && ...; // bad: isRealUser is userId's type, not a boolean - // but *not*: - const isRealUser = userId && ...; // invalid implicit cast + if (userId) // fine: userId is evaluated for truthiness, not stored as a boolean ``` 15. Use `switch` statements when checking against more than a few enum-like values. diff --git a/docs/config.md b/docs/config.md index b8ddeed93d..2f3a5031b1 100644 --- a/docs/config.md +++ b/docs/config.md @@ -139,7 +139,7 @@ complete re-branding/private labeling, a more personalised experience can be ach configuration found in the well-known location is used instead. 10. `welcome_user_id`: An optional user ID to start a DM with after creating an account. Defaults to nothing (no DM created). 11. `custom_translations_url`: An optional URL to allow overriding of translatable strings. The JSON file must be in a format of - `{"affected string": {"languageCode": "new string"}}`. See https://github.com/matrix-org/matrix-react-sdk/pull/7886 for details. + `{"affected|translation|key": {"languageCode": "new string"}}`. See https://github.com/matrix-org/matrix-react-sdk/pull/7886 for details. 12. `branding`: Options for configuring various assets used within the app. Described in more detail down below. 13. `embedded_pages`: Further optional URLs for various assets used within the app. Described in more detail down below. 14. `disable_3pid_login`: When `false` (default), **enables** the options to log in with email address or phone number. Set to diff --git a/docs/translating.md b/docs/translating.md index a487de7dea..2eb4038255 100644 --- a/docs/translating.md +++ b/docs/translating.md @@ -1,7 +1,5 @@ # How to translate Element -# 🚨 Translations are currently frozen as we are migrating Translation Management Systems! 🚨 - ## Requirements - Web Browser diff --git a/element.io/develop/config.json b/element.io/develop/config.json index 6d3e27d572..99b6ce8004 100644 --- a/element.io/develop/config.json +++ b/element.io/develop/config.json @@ -51,7 +51,7 @@ "feature_video_rooms": true }, "element_call": { - "url": "https://element-call-livekit.netlify.app" + "url": "https://call.element.dev" }, "map_style_url": "https://api.maptiler.com/maps/streets/style.json?key=fU3vlMsMn4Jb6dnEIFsx" } diff --git a/package.json b/package.json index 53ddfe5997..da9efbdade 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "element-web", - "version": "1.11.44", + "version": "1.11.46", "description": "A feature-rich client for Matrix.org", "author": "New Vector Ltd.", "repository": { @@ -151,7 +151,7 @@ "json-loader": "^0.5.7", "loader-utils": "^3.0.0", "matrix-mock-request": "^2.5.0", - "matrix-web-i18n": "^3.1.1", + "matrix-web-i18n": "^3.1.3", "mini-css-extract-plugin": "^2.7.6", "minimist": "^1.2.6", "mkdirp": "^3.0.0", diff --git a/res/apple-app-site-association b/res/apple-app-site-association index 61a0eaa20d..94869effab 100644 --- a/res/apple-app-site-association +++ b/res/apple-app-site-association @@ -1,26 +1,35 @@ { - "applinks": { - "apps": [], - "details": [ - { - "appIDs":[ - "7J4U792NQT.im.vector.app", - "7J4U792NQT.io.element.elementx", - "7J4U792NQT.io.element.elementx.nightly", - "7J4U792NQT.io.element.elementx.pr" - ], - "paths": [ - "*" - ] - } + "applinks": { + "details": [ + { + "appIDs": [ + "7J4U792NQT.im.vector.app", + "7J4U792NQT.io.element.elementx", + "7J4U792NQT.io.element.elementx.nightly", + "7J4U792NQT.io.element.elementx.pr" + ], + "components": [ + { + "?": { + "no_universal_links": "?*" + }, + "exclude": true, + "comment": "Opt out of universal links" + }, + { + "/": "/*", + "comment": "Matches any URL" + } ] - }, - "webcredentials": { - "apps": [ - "7J4U792NQT.im.vector.app", - "7J4U792NQT.io.element.elementx", - "7J4U792NQT.io.element.elementx.nightly", - "7J4U792NQT.io.element.elementx.pr" - ] - } + } + ] + }, + "webcredentials": { + "apps": [ + "7J4U792NQT.im.vector.app", + "7J4U792NQT.io.element.elementx", + "7J4U792NQT.io.element.elementx.nightly", + "7J4U792NQT.io.element.elementx.pr" + ] + } } diff --git a/res/manifest.json b/res/manifest.json index 69465591e0..f6f1e91bf4 100644 --- a/res/manifest.json +++ b/res/manifest.json @@ -77,6 +77,11 @@ "url": "https://play.google.com/store/apps/details?id=im.vector.app", "id": "im.vector.app" }, + { + "platform": "f-droid", + "url": "https://f-droid.org/repository/browse/?fdid=im.vector.app", + "id": "im.vector.app" + }, { "platform": "itunes", "url": "https://apps.apple.com/app/vector/id1083446067" diff --git a/src/async-components/structures/CompatibilityView.tsx b/src/async-components/structures/CompatibilityView.tsx index c6f197e6da..a9f1cce51a 100644 --- a/src/async-components/structures/CompatibilityView.tsx +++ b/src/async-components/structures/CompatibilityView.tsx @@ -40,12 +40,7 @@ const CompatibilityView: React.FC = ({ onAccept }) => {

iOS (iPhone or iPad)

- + Apple App Store @@ -63,7 +58,7 @@ const CompatibilityView: React.FC = ({ onAccept }) => { // undefined or string android.push( = ({ onAccept }) => { // undefined or string android.push(