diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 20e642cb921..0d52ad98dc9 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 c433d1e876a..f8cd7e99391 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 b776a5ffcd2..c9dbbfaf5c6 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 7c7dc57da4c..48f5002a857 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 c1c9beda78d..0462f3a4a93 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) && ...; - - // but *not*: - const isRealUser = userId && ...; // invalid implicit cast + 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 + + 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 b8ddeed93d4..2f3a5031b19 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 a487de7dea2..2eb40382558 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 6d3e27d5726..99b6ce8004b 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 0d782125fa3..8f130336861 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": { @@ -150,7 +150,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": "^1", "minimist": "^1.2.6", "mkdirp": "^3.0.0", diff --git a/res/apple-app-site-association b/res/apple-app-site-association index 61a0eaa20df..94869effabb 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 69465591e0d..f6f1e91bf47 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 c6f197e6da6..a9f1cce51af 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(