diff --git a/CHANGELOG.md b/CHANGELOG.md index 90d58b4932..c7ddf3956e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,26 @@ +Changes in [1.7.4](https://github.com/vector-im/element-web/releases/tag/v1.7.4) (2020-08-17) +============================================================================================= +[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.4-rc.1...v1.7.4) + + * Upgrade to React SDK 3.2.0 and JS SDK 8.1.0 + +Changes in [1.7.4-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.4-rc.1) (2020-08-13) +======================================================================================================= +[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.3...v1.7.4-rc.1) + + * Upgrade to React SDK 3.2.0-rc.1 and JS SDK 8.1.0-rc.1 + * Update policy links to element.io + [\#14905](https://github.com/vector-im/element-web/pull/14905) + * Update from Weblate + [\#14949](https://github.com/vector-im/element-web/pull/14949) + * Try to close notification on all platforms which support it, not just + electron + [\#14939](https://github.com/vector-im/element-web/pull/14939) + * Update bug report submission URL + [\#14903](https://github.com/vector-im/element-web/pull/14903) + * Fix arm docker build + [\#14522](https://github.com/vector-im/element-web/pull/14522) + Changes in [1.7.3](https://github.com/vector-im/element-web/releases/tag/v1.7.3) (2020-08-05) ============================================================================================= diff --git a/config.sample.json b/config.sample.json index 662865c041..52e47f03f1 100644 --- a/config.sample.json +++ b/config.sample.json @@ -26,11 +26,7 @@ "defaultCountryCode": "GB", "showLabsSettings": false, "features": { - "feature_new_spinner": "labs", - "feature_pinning": "labs", - "feature_custom_status": "labs", - "feature_custom_tags": "labs", - "feature_state_counters": "labs" + "feature_new_spinner": false }, "default_federate": true, "default_theme": "light", diff --git a/docs/config.md b/docs/config.md index d342aaf4f2..a9d05d8618 100644 --- a/docs/config.md +++ b/docs/config.md @@ -22,12 +22,12 @@ For a good example, see https://develop.element.io/config.json. `default_hs_url` is specified. When multiple sources are specified, it is unclear which should take priority and therefore the application cannot continue. * As of Element 1.4.0, identity servers are optional. See [Identity servers](#identity-servers) below. -1. `features`: Lookup of optional features that may be `enable`d, `disable`d, or - exposed to the user in the `labs` section of settings. The available - optional experimental features vary from release to release and are [documented](labs.md). The feature flag process is - [documented](feature-flags.md) as well. -1. `showLabsSettings`: Shows the "labs" tab of user settings even when no `features` are enabled - or present. Useful for getting at settings which may be otherwise hidden. +1. `features`: Lookup of optional features that may be force-enabled (`true`) or force-disabled (`false`). + When features are not listed here, their defaults will be used, and users can turn them on/off if `showLabsSettings` + allows them to. The available optional experimental features vary from release to release and are + [documented](labs.md). The feature flag process is [documented](feature-flags.md) as well. +1. `showLabsSettings`: Shows the "labs" tab of user settings. Useful to allow users to turn on experimental features + they might not otherwise have access to. 1. `brand`: String to pass to your homeserver when configuring email notifications, to let the homeserver know what email template to use when talking to you. 1. `branding`: Configures various branding and logo details, such as: diff --git a/docs/feature-flags.md b/docs/feature-flags.md index 115c3b25f2..5fb5545fdf 100644 --- a/docs/feature-flags.md +++ b/docs/feature-flags.md @@ -35,7 +35,7 @@ clients commit to doing the associated clean up work once a feature stabilises. When starting work on a feature, we should create a matching feature flag: 1. Add a new - [setting](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.js) + [setting](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.ts) of the form: ```js "feature_cats": { @@ -47,17 +47,9 @@ When starting work on a feature, we should create a matching feature flag: ``` 2. Check whether the feature is enabled as appropriate: ```js - SettingsStore.isFeatureEnabled("feature_cats") + SettingsStore.getValue("feature_cats") ``` -3. Add the feature to the set of labs on - [develop](https://github.com/vector-im/riot-web/blob/develop/riot.im/develop/config.json) - and [nightly](https://github.com/vector-im/riot-desktop/blob/develop/riot.im/nightly/config.json): -```json - "features": { - "feature_cats": "labs" - }, -``` -4. Document the feature in the [labs documentation](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md) +3. Document the feature in the [labs documentation](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md) With these steps completed, the feature is disabled by default, but can be enabled on develop and nightly by interested users for testing. @@ -67,7 +59,7 @@ The following lists a few common options. ## Enabling by default on develop and nightly -Set the feature to `enable` in the +Set the feature to `true` in the [develop](https://github.com/vector-im/riot-web/blob/develop/riot.im/develop/config.json) and [nightly](https://github.com/vector-im/riot-desktop/blob/develop/riot.im/nightly/config.json) @@ -75,34 +67,37 @@ configs: ```json "features": { - "feature_cats": "enable" + "feature_cats": true }, ``` ## Enabling by default on staging, app, and release -Set the feature to `enable` in the +Set the feature to `true` in the [staging / app](https://github.com/vector-im/riot-web/blob/develop/riot.im/app/config.json) and [release](https://github.com/vector-im/riot-desktop/blob/develop/riot.im/release/config.json) configs. -**Warning:** While this does mean the feature is enabled by default for -https://app.element.io and official Element Desktop builds, it will not be enabled by -default for self-hosted installs, custom desktop builds, etc. To cover those -cases as well, the best options at the moment are converting to a regular -setting defaulted on or to remove the flag. Simply enabling the existing flag by -default in `Settings.js` -[does not work currently](https://github.com/vector-im/riot-web/issues/10360). +**Note:** The above will only enable the feature for https://app.element.io and official Element +Desktop builds. It will not be enabled for self-hosted installed, custom desktop builds, etc. To +cover these cases, change the setting's `default` in `Settings.ts` to `true`. ## Feature deployed successfully -Once we're confident that a feature is working well, we should remove the flag: +Once we're confident that a feature is working well, we should remove or convert the flag. -1. Remove the [setting](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.js) -2. Remove all `isFeatureEnabled` lines that test for the feature's setting +If the feature is meant to be turned off/on by the user: +1. Remove `isFeature` from the [setting](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.ts) +2. Change the `default` to `true` (if desired). 3. Remove the feature from the [labs documentation](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md) -4. Remove feature state from +4. Celebrate! 🥳 + +If the feature is meant to be forced on (non-configurable): +1. Remove the [setting](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.ts) +2. Remove all `getValue` lines that test for the feature. +3. Remove the feature from the [labs documentation](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md) +4. If applicable, remove the feature state from [develop](https://github.com/vector-im/riot-web/blob/develop/riot.im/develop/config.json), [nightly](https://github.com/vector-im/riot-desktop/blob/develop/riot.im/nightly/config.json), [staging / app](https://github.com/vector-im/riot-web/blob/develop/riot.im/app/config.json), @@ -110,26 +105,3 @@ Once we're confident that a feature is working well, we should remove the flag: [release](https://github.com/vector-im/riot-desktop/blob/develop/riot.im/release/config.json) configs 5. Celebrate! 🥳 - -## Convert to a regular setting (optional) - -Sometimes we decide a feature should always be user-controllable as a setting -even after it has been fully deployed. In that case, we would craft a new, -regular setting: - -1. Remove the feature flag from - [settings](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.js) - and add a regular setting with the appropriate levels for your feature -2. Replace the `isFeatureEnabled` lines with `getValue` or similar calls - according to the [settings - docs](https://github.com/matrix-org/matrix-react-sdk/blob/develop/docs/settings.md) - (checking carefully, as we may want a different mix of code paths when the - feature is always present but gated by a setting) -3. Remove the feature from the [labs documentation](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md) -4. Remove feature state from - [develop](https://github.com/vector-im/riot-web/blob/develop/riot.im/develop/config.json), - [nightly](https://github.com/vector-im/riot-desktop/blob/develop/riot.im/nightly/config.json), - [staging / app](https://github.com/vector-im/riot-web/blob/develop/riot.im/app/config.json), - and - [release](https://github.com/vector-im/riot-desktop/blob/develop/riot.im/release/config.json) - configs diff --git a/docs/jitsi.md b/docs/jitsi.md index 2ae8d9a785..d289cc3818 100644 --- a/docs/jitsi.md +++ b/docs/jitsi.md @@ -50,7 +50,22 @@ default, and you are using riot-web 1.6 or newer, set the following on your home } ``` -## Mobile app support +## Element Android + +Element Android (1.0.5+) supports custom Jitsi domains, similar to Element Web above. + +1:1 calls, or calls between you and one other person, do not use Jitsi. Instead, those +calls work directly between clients or via TURN servers configured on the respective +homeservers. + +For rooms with more than 2 joined members, when creating a Jitsi conference via call/video buttons of the toolbar (not via integration manager), Element Android will create a widget using the [wrapper](https://github.com/vector-im/element-web/blob/develop/docs/jitsi-dev.md) hosted on `app.element.io`. +The domain used is the one specified by the `/.well-known/matrix/client` endpoint, and if not present it uses the fallback defined in `config.xml` (jitsi.riot.im) + +For active Jitsi widgets in the room, a native Jitsi widget UI is created and points to the instance specified in the `domain` key of the widget content data. + +Element Android manages allowed native widgets permissions a bit differently than web widgets (as the data shared are different and never shared with the widget URL). For Jitsi widgets, permissions are requested only once per domain (consent saved in account data). + +## Element iOS Currently the Element mobile apps do not support custom Jitsi servers and will instead use the default `jitsi.riot.im` server. When users on the mobile apps join the call, diff --git a/element.io/app/config.json b/element.io/app/config.json index f0af8b82bb..c8867d3dd6 100644 --- a/element.io/app/config.json +++ b/element.io/app/config.json @@ -12,8 +12,7 @@ ], "hosting_signup_link": "https://element.io/matrix-services?utm_source=element-web&utm_medium=web", "bug_report_endpoint_url": "https://element.io/bugreports/submit", - "features": { - }, + "showLabsSettings": false, "piwik": { "url": "https://piwik.riot.im/", "siteId": 1, diff --git a/element.io/develop/config.json b/element.io/develop/config.json index 4affa16c30..bcf6142d18 100644 --- a/element.io/develop/config.json +++ b/element.io/develop/config.json @@ -12,19 +12,7 @@ ], "hosting_signup_link": "https://element.io/matrix-services?utm_source=element-web&utm_medium=web", "bug_report_endpoint_url": "https://element.io/bugreports/submit", - "features": { - "feature_new_spinner": "labs", - "feature_pinning": "labs", - "feature_custom_status": "labs", - "feature_custom_tags": "labs", - "feature_state_counters": "labs", - "feature_many_integration_managers": "labs", - "feature_mjolnir": "labs", - "feature_dm_verification": "labs", - "feature_bridge_state": "labs", - "feature_presence_in_room_list": "labs", - "feature_custom_themes": "labs" - }, + "showLabsSettings": true, "piwik": { "url": "https://piwik.riot.im/", "siteId": 1, diff --git a/package.json b/package.json index d82c3d147f..364bd9446d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "riot-web", "productName": "Riot", - "version": "1.7.3", + "version": "1.7.4", "description": "A feature-rich client for Matrix.org", "author": "New Vector Ltd.", "repository": { diff --git a/scripts/copy-res.js b/scripts/copy-res.js index 71eb6b75ad..68d131c7c6 100755 --- a/scripts/copy-res.js +++ b/scripts/copy-res.js @@ -31,6 +31,7 @@ const INCLUDE_LANGS = [ {'value': 'it', 'label': 'Italiano'}, {'value': 'ja', 'label': '日本語'}, {'value': 'jbo', 'label': 'banjubu\'o'}, + {'value': 'kab', 'label': 'Taqbaylit'}, {'value': 'ko', 'label': '한국어'}, {'value': 'lt', 'label': 'Lietuvių'}, {'value': 'lv', 'label': 'Latviešu'}, diff --git a/src/async-components/structures/CompatibilityView.tsx b/src/async-components/structures/CompatibilityView.tsx index 41d21b469c..974d8c1b80 100644 --- a/src/async-components/structures/CompatibilityView.tsx +++ b/src/async-components/structures/CompatibilityView.tsx @@ -87,7 +87,7 @@ const CompatibilityView: React.FC = ({ onAccept }) => { className="mx_ClearDecoration"> Google Play Store - F-Droid diff --git a/src/vector/mobile_guide/index.html b/src/vector/mobile_guide/index.html index acd0734797..da49907f9c 100644 --- a/src/vector/mobile_guide/index.html +++ b/src/vector/mobile_guide/index.html @@ -260,7 +260,7 @@ body { - + Get it on F-Droid. diff --git a/src/vector/static/incompatible-browser.html b/src/vector/static/incompatible-browser.html index 09e5238586..bc839d6b38 100644 --- a/src/vector/static/incompatible-browser.html +++ b/src/vector/static/incompatible-browser.html @@ -339,7 +339,7 @@ - diff --git a/tsconfig.json b/tsconfig.json index 8a01ca335e..e16688adb3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -16,6 +16,11 @@ "node", "react", "flux" + ], + "lib": [ + "es2019", + "dom", + "dom.iterable" ] }, "include": [ diff --git a/yarn.lock b/yarn.lock index 1879a8f9c5..4ff565f388 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7313,8 +7313,8 @@ mathml-tag-names@^2.1.1: integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== "matrix-js-sdk@github:matrix-org/matrix-js-sdk#develop": - version "8.0.1" - resolved "https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/a6fe4cdf1cbf56baeb538f071c27326fe98630d0" + version "8.1.0" + resolved "https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/64cdd73b93a475d10284977b69ef73138315b3be" dependencies: "@babel/runtime" "^7.8.3" another-json "^0.2.0" @@ -7335,8 +7335,8 @@ matrix-mock-request@^1.2.3: expect "^1.20.2" "matrix-react-sdk@github:matrix-org/matrix-react-sdk#develop": - version "3.1.0" - resolved "https://codeload.github.com/matrix-org/matrix-react-sdk/tar.gz/45b79a0b7c9237c6b4dbafd37c1a234ed2b7cf35" + version "3.2.0" + resolved "https://codeload.github.com/matrix-org/matrix-react-sdk/tar.gz/c91fc99d4bfd76808c99327979c1b7dbcb9bf093" dependencies: "@babel/runtime" "^7.10.5" await-lock "^2.0.1"