From 2039f1fcae9ad41973cc24e7ae18097e35dfd7e8 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 1 Dec 2021 10:50:08 +0000 Subject: [PATCH 01/36] Document feature_breadcrumbs_v2 (#19700) --- docs/labs.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/labs.md b/docs/labs.md index 1cb1b790718..47e430013b2 100644 --- a/docs/labs.md +++ b/docs/labs.md @@ -154,3 +154,8 @@ entirely incomplete and may not work at all - it is not recommended for general Metaspaces are automatically populated spaces you can enable in your Space panel. By default, you'll have Home or All rooms, but you can opt in to a People, Favourites, and Other Rooms metaspace too. + +## Breadcrumbs v2 (`feature_breadcrumbs_v2`) + +Instead of showing the horizontal list of breadcrumbs under the filter field, the new UX is an interactive context menu +triggered by the button to the right of the filter field. From 0e69caee7c6a51d253677e51af674c92d31b12d9 Mon Sep 17 00:00:00 2001 From: "J. Ryan Stinnett" Date: Thu, 2 Dec 2021 12:46:00 +0000 Subject: [PATCH 02/36] Upgrade matrix-widget-api to 0.1.0-beta.18 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 7cf8bc0499e..ce2f1fb466c 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "katex": "^0.12.0", "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop", "matrix-react-sdk": "github:matrix-org/matrix-react-sdk#develop", - "matrix-widget-api": "^0.1.0-beta.17", + "matrix-widget-api": "^0.1.0-beta.18", "prop-types": "^15.7.2", "react": "17.0.2", "react-dom": "17.0.2", diff --git a/yarn.lock b/yarn.lock index d0bb8c6699f..88dbf0e7483 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7948,10 +7948,10 @@ matrix-react-test-utils@^0.2.3: "@babel/traverse" "^7.13.17" walk "^2.3.14" -matrix-widget-api@^0.1.0-beta.17: - version "0.1.0-beta.17" - resolved "https://registry.yarnpkg.com/matrix-widget-api/-/matrix-widget-api-0.1.0-beta.17.tgz#392be2bf42990e8f7e16aeadf2546f18681af49b" - integrity sha512-hyaDLQNvGvV67Ss23vI69y/ZwVMVz2160LJ2nYyhO0C4mk9zTl0Rbe9jNQ9B453V8MadHLiUUdjzoe++WW+6jA== +matrix-widget-api@^0.1.0-beta.17, matrix-widget-api@^0.1.0-beta.18: + version "0.1.0-beta.18" + resolved "https://registry.yarnpkg.com/matrix-widget-api/-/matrix-widget-api-0.1.0-beta.18.tgz#4efd30edec3eeb4211285985464c062fcab59795" + integrity sha512-kCpcs6rrB94Mmr2/1gBJ+6auWyZ5UvOMOn5K2VFafz2/NDMzZg9OVWj9KFYnNAuwwBE5/tCztYEj6OQ+hgbwOQ== dependencies: "@types/events" "^3.0.0" events "^3.2.0" From 7753fee9e1d596b298f2fe0d75665777b063f948 Mon Sep 17 00:00:00 2001 From: Kat Gerasimova Date: Thu, 2 Dec 2021 15:44:02 +0000 Subject: [PATCH 03/36] Issue workflow improvements (#19976) - Fix filtering for Design issues - Split out spaces jobs for new and old boards, so they don't depend on each other - Remove voice message job for the old board - Rename Priority bugs workflow to be shorter - Improve naming for jobs so they're easier to read in the GitHub Actions page --- .github/workflows/triage-move-labelled.yml | 43 ++++++++++---------- .github/workflows/triage-move-unlabelled.yml | 2 +- .github/workflows/triage-priority-bugs.yml | 2 +- 3 files changed, 24 insertions(+), 23 deletions(-) diff --git a/.github/workflows/triage-move-labelled.yml b/.github/workflows/triage-move-labelled.yml index b6147c15010..29a849cf6bd 100644 --- a/.github/workflows/triage-move-labelled.yml +++ b/.github/workflows/triage-move-labelled.yml @@ -6,7 +6,7 @@ on: jobs: move_needs_info_issues: - name: Move X-Needs-Info issues to Need info on triage board + name: X-Needs-Info issues to Need info column on triage board runs-on: ubuntu-latest steps: - uses: konradpabjan/move-labeled-or-milestoned-issue@219d384e03fa4b6460cd24f9f37d19eb033a4338 @@ -17,17 +17,17 @@ jobs: label-name: "X-Needs-Info" add_priority_design_issues_to_project: - name: Move priority X-Needs-Design issues to Design project board + name: P1 X-Needs-Design to Design project board runs-on: ubuntu-latest if: > contains(github.event.issue.labels.*.name, 'X-Needs-Design') && - contains(github.event.issue.labels.*.name, 'S-Critical') && - (contains(github.event.issue.labels.*.name, 'O-Frequent') || - contains(github.event.issue.labels.*.name, 'O-Occasional')) || - contains(github.event.issue.labels.*.name, 'S-Major') && - contains(github.event.issue.labels.*.name, 'O-Frequent') || - contains(github.event.issue.labels.*.name, 'A11y') && - contains(github.event.issue.labels.*.name, 'O-Frequent') + (contains(github.event.issue.labels.*.name, 'S-Critical') && + (contains(github.event.issue.labels.*.name, 'O-Frequent') || + contains(github.event.issue.labels.*.name, 'O-Occasional')) || + contains(github.event.issue.labels.*.name, 'S-Major') && + contains(github.event.issue.labels.*.name, 'O-Frequent') || + contains(github.event.issue.labels.*.name, 'A11y') && + contains(github.event.issue.labels.*.name, 'O-Frequent')) steps: - uses: octokit/graphql-action@v2.x id: add_to_project @@ -47,8 +47,8 @@ jobs: PROJECT_ID: "PN_kwDOAM0swc0sUA" GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }} - move_spaces_issues: - name: Move Spaces issues to Delight project board + spaces_issues_to_old_board: + name: Spaces issues to old Delight project board runs-on: ubuntu-latest if: > contains(github.event.issue.labels.*.name, 'A-Spaces') || @@ -61,8 +61,16 @@ jobs: project-url: "https://github.com/orgs/vector-im/projects/6" column-name: "📥 Inbox" label-name: "A-Spaces" + + spaces_issues_to_new_board: + name: Spaces issues to new Delight project board + runs-on: ubuntu-latest + if: > + contains(github.event.issue.labels.*.name, 'A-Spaces') || + contains(github.event.issue.labels.*.name, 'A-Space-Settings') || + contains(github.event.issue.labels.*.name, 'A-Subspaces') + steps: - uses: octokit/graphql-action@v2.x - id: add_to_delight2 with: headers: '{"GraphQL-Features": "projects_next_graphql"}' query: | @@ -80,19 +88,12 @@ jobs: GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }} move_voice-message_issues: - name: Move A-Voice Messages to Voice message board + name: A-Voice Messages to voice message board runs-on: ubuntu-latest if: > contains(github.event.issue.labels.*.name, 'A-Voice Messages') steps: - - uses: konradpabjan/move-labeled-or-milestoned-issue@219d384e03fa4b6460cd24f9f37d19eb033a4338 - with: - action-token: "${{ secrets.ELEMENT_BOT_TOKEN }}" - project-url: "https://github.com/vector-im/element-web/projects/28" - column-name: "📥 Inbox" - label-name: "A-Voice Messages" - uses: octokit/graphql-action@v2.x - id: add_to_voice with: headers: '{"GraphQL-Features": "projects_next_graphql"}' query: | @@ -110,7 +111,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }} move_threads_issues: - name: Move A-Threads to Thread board + name: A-Threads to Thread board runs-on: ubuntu-latest if: > contains(github.event.issue.labels.*.name, 'A-Threads') diff --git a/.github/workflows/triage-move-unlabelled.yml b/.github/workflows/triage-move-unlabelled.yml index 94bd049b919..5a10cb23760 100644 --- a/.github/workflows/triage-move-unlabelled.yml +++ b/.github/workflows/triage-move-unlabelled.yml @@ -3,7 +3,7 @@ name: Move unlabelled from needs info columns to triaged on: issues: types: [unlabeled] - + jobs: Move_Unabeled_Issue_On_Project_Board: name: Move no longer X-Needs-Info issues to Triaged diff --git a/.github/workflows/triage-priority-bugs.yml b/.github/workflows/triage-priority-bugs.yml index d67afcdfbaa..80e65c35f88 100644 --- a/.github/workflows/triage-priority-bugs.yml +++ b/.github/workflows/triage-priority-bugs.yml @@ -1,4 +1,4 @@ -name: Move labelled issues into the Priority bugs column for the Web App Team +name: Move P1 bugs to boards on: issues: From 459f2f2334ffb00a58e7e442f533f3b91489513f Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Thu, 2 Dec 2021 18:11:05 -0700 Subject: [PATCH 04/36] Fix widget-api dependency with a react-sdk upgrade (#20023) This appears to have wanted to update all the dependencies of the react-sdk as well, but at least it avoids two widget apis running in release builds. --- yarn.lock | 241 ++++++++++++++++++++++++++---------------------------- 1 file changed, 115 insertions(+), 126 deletions(-) diff --git a/yarn.lock b/yarn.lock index 88dbf0e7483..17b4c243d13 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1014,7 +1014,14 @@ pirates "^4.0.0" source-map-support "^0.5.16" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.15.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.3.tgz#b86f0db02a04187a3c17caa77de69840165d42d5" + integrity sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.12.5", "@babel/runtime@^7.8.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a" integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw== @@ -1308,6 +1315,7 @@ "@matrix-org/olm@https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.3.tgz": version "3.2.3" + uid cc332fdd25c08ef0e40f4d33fc3f822a0f98b6f4 resolved "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.3.tgz#cc332fdd25c08ef0e40f4d33fc3f822a0f98b6f4" "@mrmlnc/readdir-enhanced@^2.2.1": @@ -1463,13 +1471,13 @@ integrity sha512-KJKkiKG63ugBjf8U0e9jUcI9CLPTFIsxXplEDE0oi3mPpxd90X9SJovo3W2l7yh/ARKIYXhQq8fSXUN7M29TzQ== "@sentry/browser@^6.11.0": - version "6.13.3" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.13.3.tgz#d4511791b1e484ad48785eba3bce291fdf115c1e" - integrity sha512-jwlpsk2/u1cofvfYsjmqcnx50JJtf/T6HTgdW+ih8+rqWC5ABEZf4IiB/H+KAyjJ3wVzCOugMq5irL83XDCfqQ== + version "6.15.0" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.15.0.tgz#7a1d316dd31cedee446e359a21774bf93d1e553d" + integrity sha512-ZiqfHK5DMVgDsgMTuSwxilWIqEnZzy4yuJ9Sr6Iap1yZddPSiKHYjbBieSHn57UsWHViRB3ojbwu44LfvXKJdQ== dependencies: - "@sentry/core" "6.13.3" - "@sentry/types" "6.13.3" - "@sentry/utils" "6.13.3" + "@sentry/core" "6.15.0" + "@sentry/types" "6.15.0" + "@sentry/utils" "6.15.0" tslib "^1.9.3" "@sentry/cli@^1.68.0": @@ -1484,57 +1492,57 @@ progress "^2.0.3" proxy-from-env "^1.1.0" -"@sentry/core@6.13.3": - version "6.13.3" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.13.3.tgz#5cbbb995128e793ebebcbf1d3b7514e0e5e8b221" - integrity sha512-obm3SjgCk8A7nB37b2AU1eq1q7gMoJRrGMv9VRIyfcG0Wlz/5lJ9O3ohUk+YZaaVfZMxXn6hFtsBiOWmlv7IIA== +"@sentry/core@6.15.0": + version "6.15.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.15.0.tgz#5e877042fe18452f2273247126b32e139d5f907c" + integrity sha512-mCbKyqvD1G3Re6gv6N8tRkBz84gvVWDfLtC6d1WBArIopzter6ktEbvq0cMT6EOvGI2OLXuJ6mtHA93/Q0gGpw== dependencies: - "@sentry/hub" "6.13.3" - "@sentry/minimal" "6.13.3" - "@sentry/types" "6.13.3" - "@sentry/utils" "6.13.3" + "@sentry/hub" "6.15.0" + "@sentry/minimal" "6.15.0" + "@sentry/types" "6.15.0" + "@sentry/utils" "6.15.0" tslib "^1.9.3" -"@sentry/hub@6.13.3": - version "6.13.3" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.13.3.tgz#cc09623a69b5343315fdb61c7fdd0be74b72299f" - integrity sha512-eYppBVqvhs5cvm33snW2sxfcw6G20/74RbBn+E4WDo15hozis89kU7ZCJDOPkXuag3v1h9igns/kM6PNBb41dw== +"@sentry/hub@6.15.0": + version "6.15.0" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.15.0.tgz#fb8a91d12fdd2726a884374ea7242f6bbd081d69" + integrity sha512-cUbHPeG6kKpGBaEMgbTWeU03Y1Up5T3urGF+cgtrn80PmPYYSUPvVvWlZQWPb8CJZ1yQ0gySWo5RUTatBFrEHA== dependencies: - "@sentry/types" "6.13.3" - "@sentry/utils" "6.13.3" + "@sentry/types" "6.15.0" + "@sentry/utils" "6.15.0" tslib "^1.9.3" -"@sentry/minimal@6.13.3": - version "6.13.3" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.13.3.tgz#a675a79bcc830142e4f95e6198a2efde2cd3901e" - integrity sha512-63MlYYRni3fs5Bh8XBAfVZ+ctDdWg0fapSTP1ydIC37fKvbE+5zhyUqwrEKBIiclEApg1VKX7bkKxVdu/vsFdw== +"@sentry/minimal@6.15.0": + version "6.15.0" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.15.0.tgz#fcc083ba901cfe57d25303d0b5fa8cd13e164466" + integrity sha512-7RJIvZsjBa1qFUfMrAzQsWdfZT6Gm4t6ZTYfkpsXPBA35hkzglKbBrhhsUvkxGIhUGw/PiCUqxBUjcmzQP0vfg== dependencies: - "@sentry/hub" "6.13.3" - "@sentry/types" "6.13.3" + "@sentry/hub" "6.15.0" + "@sentry/types" "6.15.0" tslib "^1.9.3" "@sentry/tracing@^6.11.0": - version "6.13.3" - resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.13.3.tgz#ca657d4afa99c50f15e638fe38405bac33e780ee" - integrity sha512-yyOFIhqlprPM0g4f35Icear3eZk2mwyYcGEzljJfY2iU6pJwj1lzia5PfSwiCW7jFGMmlBJNhOAIpfhlliZi8Q== - dependencies: - "@sentry/hub" "6.13.3" - "@sentry/minimal" "6.13.3" - "@sentry/types" "6.13.3" - "@sentry/utils" "6.13.3" + version "6.15.0" + resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.15.0.tgz#5a5f08ee6b9cc1189227536fca053cd23488600d" + integrity sha512-V5unvX8qNEfdawX+m2n0jKgmH/YR2ItWZLH+3UevBTptO+xyfvRtpgGXYWUCo3iGvFgWb1C+iIC7LViR9rTvBg== + dependencies: + "@sentry/hub" "6.15.0" + "@sentry/minimal" "6.15.0" + "@sentry/types" "6.15.0" + "@sentry/utils" "6.15.0" tslib "^1.9.3" -"@sentry/types@6.13.3": - version "6.13.3" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.13.3.tgz#63ad5b6735b0dfd90b3a256a9f8e77b93f0f66b2" - integrity sha512-Vrz5CdhaTRSvCQjSyIFIaV9PodjAVFkzJkTRxyY7P77RcegMsRSsG1yzlvCtA99zG9+e6MfoJOgbOCwuZids5A== +"@sentry/types@6.15.0": + version "6.15.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.15.0.tgz#a2917f8aed91471bdfd6651384ffcd47b95c43ad" + integrity sha512-zBw5gPUsofXUSpS3ZAXqRNedLRBvirl3sqkj2Lez7X2EkKRgn5D8m9fQIrig/X3TsKcXUpijDW5Buk5zeCVzJA== -"@sentry/utils@6.13.3": - version "6.13.3" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.13.3.tgz#188754d40afe693c3fcae410f9322531588a9926" - integrity sha512-zYFuFH3MaYtBZTeJ4Yajg7pDf0pM3MWs3+9k5my9Fd+eqNcl7dYQYJbT9gyC0HXK1QI4CAMNNlHNl4YXhF91ag== +"@sentry/utils@6.15.0": + version "6.15.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.15.0.tgz#0c247cb092b1796d39c3d16d8e6977b9cdab9ca2" + integrity sha512-gnhKKyFtnNmKWjDizo7VKD0/Vx8cgW1lCusM6WI7jy2jlO3bQA0+Dzgmr4mIReZ74mq4VpOd2Vfrx7ZldW1DMw== dependencies: - "@sentry/types" "6.13.3" + "@sentry/types" "6.15.0" tslib "^1.9.3" "@sentry/webpack-plugin@^1.18.1": @@ -1761,10 +1769,10 @@ dependencies: "@types/react" "*" -"@types/react-redux@^7.1.16": - version "7.1.19" - resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.19.tgz#477bd0a9b01bae6d6bf809418cdfa7d3c16d4c62" - integrity sha512-L37dSCT0aoJnCgpR8Iuginlbxoh7qhWOXiaDqEsxVMrER1CmVhFD+63NxgJeT4pkmEM28oX0NH4S4f+sXHTZjA== +"@types/react-redux@^7.1.20": + version "7.1.20" + resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.20.tgz#42f0e61ababb621e12c66c96dda94c58423bd7df" + integrity sha512-q42es4c8iIeTgcnB+yJgRTTzftv3eYYvCZOh1Ckn2eX/3o5TdsQYKUWpLoLuGlcY/p+VAhV9IOEZJcWk/vfkXw== dependencies: "@types/hoist-non-react-statics" "^3.3.0" "@types/react" "*" @@ -2650,7 +2658,7 @@ base64-arraybuffer-es6@^0.7.0: resolved "https://registry.yarnpkg.com/base64-arraybuffer-es6/-/base64-arraybuffer-es6-0.7.0.tgz#dbe1e6c87b1bf1ca2875904461a7de40f21abc86" integrity sha512-ESyU/U1CFZDJUdr+neHRhNozeCv72Y7Vm0m1DCbjX3KBjT6eYocvAJlSk6+8+HkVwXlT1FNxhGW6q3UKAlCvvw== -base64-js@^1.0.2, base64-js@^1.3.1: +base64-js@^1.0.2: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -2906,25 +2914,7 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - -buffer-from@^1.0.0, buffer-from@^1.1.1: +buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== @@ -2948,14 +2938,6 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -buffer@^5.4.3: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" @@ -3962,9 +3944,9 @@ cssstyle@^2.3.0: cssom "~0.3.6" csstype@^3.0.2: - version "3.0.9" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.9.tgz#6410af31b26bd0520933d02cbc64fce9ce3fbf0b" - integrity sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw== + version "3.0.10" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.10.tgz#2ad3a7bed70f35b965707c092e5f30b327c290e5" + integrity sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA== cyclist@^1.0.1: version "1.0.1" @@ -4326,9 +4308,9 @@ domhandler@^2.3.0: domelementtype "1" domhandler@^4.0.0, domhandler@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.2.tgz#e825d721d19a86b8c201a35264e226c678ee755f" - integrity sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w== + version "4.3.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626" + integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g== dependencies: domelementtype "^2.2.0" @@ -4445,6 +4427,11 @@ emojis-list@^3.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== +encode-utf8@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/encode-utf8/-/encode-utf8-1.0.3.tgz#f30fdd31da07fb596f281beb2f6b027851994cda" + integrity sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw== + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -5149,9 +5136,9 @@ fbjs@0.1.0-alpha.7: whatwg-fetch "^0.9.0" fbjs@^0.8.4: - version "0.8.17" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" - integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90= + version "0.8.18" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.18.tgz#9835e0addb9aca2eff53295cd79ca1cfc7c9662a" + integrity sha512-EQaWFK+fEPSoibjNy8IxUtaFOMXcWsY0JaVrQoZR9zC8N2Ygf9iDITPWjUTVIax95b6I742JFLqASHfsag/vKA== dependencies: core-js "^1.0.0" isomorphic-fetch "^2.1.1" @@ -5159,7 +5146,7 @@ fbjs@^0.8.4: object-assign "^4.1.0" promise "^7.1.1" setimmediate "^1.0.5" - ua-parser-js "^0.7.18" + ua-parser-js "^0.7.30" fflate@^0.4.1: version "0.4.8" @@ -5335,7 +5322,7 @@ flux@2.1.1: fbjs "0.1.0-alpha.7" immutable "^3.7.4" -focus-lock@^0.9.1: +focus-lock@^0.9.2: version "0.9.2" resolved "https://registry.yarnpkg.com/focus-lock/-/focus-lock-0.9.2.tgz#9d30918aaa99b1b97677731053d017f82a540d5b" integrity sha512-YtHxjX7a0IC0ZACL5wsX8QdncXofWpGPNoVMuI/nZUrPGp6LmNI6+D5j0pPj+v8Kw5EpweA+T5yImK0rnWf7oQ== @@ -6127,7 +6114,7 @@ icss-utils@^4.0.0, icss-utils@^4.1.1: dependencies: postcss "^7.0.14" -ieee754@^1.1.13, ieee754@^1.1.4: +ieee754@^1.1.4: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -6848,7 +6835,7 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= -isarray@^2.0.1, isarray@^2.0.5: +isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== @@ -7879,7 +7866,7 @@ matrix-mock-request@^1.2.3: "matrix-react-sdk@github:matrix-org/matrix-react-sdk#develop": version "3.35.1" - resolved "https://codeload.github.com/matrix-org/matrix-react-sdk/tar.gz/ea25f74714ef8e603ccf1e1a7b302671a570213b" + resolved "https://codeload.github.com/matrix-org/matrix-react-sdk/tar.gz/141950d9e6a8f7f642ca640efb57b228478c51be" dependencies: "@babel/runtime" "^7.12.5" "@sentry/browser" "^6.11.0" @@ -7911,7 +7898,7 @@ matrix-mock-request@^1.2.3: linkifyjs "^2.1.9" lodash "^4.17.20" matrix-js-sdk "github:matrix-org/matrix-js-sdk#develop" - matrix-widget-api "^0.1.0-beta.17" + matrix-widget-api "^0.1.0-beta.18" minimist "^1.2.5" opus-recorder "^8.0.3" pako "^2.0.3" @@ -7948,7 +7935,7 @@ matrix-react-test-utils@^0.2.3: "@babel/traverse" "^7.13.17" walk "^2.3.14" -matrix-widget-api@^0.1.0-beta.17, matrix-widget-api@^0.1.0-beta.18: +matrix-widget-api@^0.1.0-beta.18: version "0.1.0-beta.18" resolved "https://registry.yarnpkg.com/matrix-widget-api/-/matrix-widget-api-0.1.0-beta.18.tgz#4efd30edec3eeb4211285985464c062fcab59795" integrity sha512-kCpcs6rrB94Mmr2/1gBJ+6auWyZ5UvOMOn5K2VFafz2/NDMzZg9OVWj9KFYnNAuwwBE5/tCztYEj6OQ+hgbwOQ== @@ -9152,10 +9139,10 @@ png-chunks-extract@^1.0.0: dependencies: crc-32 "^0.3.0" -pngjs@^3.3.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" - integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== +pngjs@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" + integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== portfinder@^1.0.26: version "1.0.28" @@ -10111,17 +10098,14 @@ q@^1.1.2: integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= qrcode@^1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.4.4.tgz#f0c43568a7e7510a55efc3b88d9602f71963ea83" - integrity sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q== + version "1.5.0" + resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.0.tgz#95abb8a91fdafd86f8190f2836abbfc500c72d1b" + integrity sha512-9MgRpgVc+/+47dFvQeD6U2s0Z92EsKzcHogtum4QB+UNd025WOJSHvn/hjk9xmzj7Stj95CyUAs31mrjxliEsQ== dependencies: - buffer "^5.4.3" - buffer-alloc "^1.2.0" - buffer-from "^1.1.1" dijkstrajs "^1.0.1" - isarray "^2.0.1" - pngjs "^3.3.0" - yargs "^13.2.4" + encode-utf8 "^1.0.3" + pngjs "^5.0.0" + yargs "^15.3.1" qs@6.7.0: version "6.7.0" @@ -10272,38 +10256,38 @@ react-dom@17.0.2: scheduler "^0.20.2" react-focus-lock@^2.5.0: - version "2.5.2" - resolved "https://registry.yarnpkg.com/react-focus-lock/-/react-focus-lock-2.5.2.tgz#f1e4db5e25cd8789351f2bd5ebe91e9dcb9c2922" - integrity sha512-WzpdOnEqjf+/A3EH9opMZWauag7gV0BxFl+EY4ElA4qFqYsUsBLnmo2sELbN5OC30S16GAWMy16B9DLPpdJKAQ== + version "2.6.0" + resolved "https://registry.yarnpkg.com/react-focus-lock/-/react-focus-lock-2.6.0.tgz#97345c7abe439bf2974410b45529c2e208b1a633" + integrity sha512-2yB5KWyaefbvFDgqvsg/KpIjbqVlhIY2c/dyDcokDLhB3Ib7I4bjsrta5OkI5euUoIu5xBTyBwIQZPykUJAr1g== dependencies: "@babel/runtime" "^7.0.0" - focus-lock "^0.9.1" + focus-lock "^0.9.2" prop-types "^15.6.2" react-clientside-effect "^1.2.5" use-callback-ref "^1.2.5" use-sidecar "^1.0.5" -react-is@^16.13.1, react-is@^16.7.0, react-is@^16.8.1: +react-is@^16.7.0, react-is@^16.8.1: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-is@^17.0.1: +react-is@^17.0.1, react-is@^17.0.2: version "17.0.2" resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== react-redux@^7.2.0: - version "7.2.5" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.5.tgz#213c1b05aa1187d9c940ddfc0b29450957f6a3b8" - integrity sha512-Dt29bNyBsbQaysp6s/dN0gUodcq+dVKKER8Qv82UrpeygwYeX1raTtil7O/fftw/rFqzaf6gJhDZRkkZnn6bjg== + version "7.2.6" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.6.tgz#49633a24fe552b5f9caf58feb8a138936ddfe9aa" + integrity sha512-10RPdsz0UUrRL1NZE0ejTkucnclYSgXp5q+tB5SWx2qeG2ZJQJyymgAhwKy73yiL/13btfB6fPr+rgbMAaZIAQ== dependencies: - "@babel/runtime" "^7.12.1" - "@types/react-redux" "^7.1.16" + "@babel/runtime" "^7.15.4" + "@types/react-redux" "^7.1.20" hoist-non-react-statics "^3.3.2" loose-envify "^1.4.0" prop-types "^15.7.2" - react-is "^16.13.1" + react-is "^17.0.2" react-refresh@^0.10.0: version "0.10.0" @@ -10420,9 +10404,9 @@ redent@^3.0.0: strip-indent "^3.0.0" redux@^4.0.0, redux@^4.0.4: - version "4.1.1" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.1.1.tgz#76f1c439bb42043f985fbd9bf21990e60bd67f47" - integrity sha512-hZQZdDEM25UY2P493kPYuKqviVwZ58lEmGQNeQ+gXa+U0gYPUBf7NKYazbe3m+bs/DzM/ahN12DbF+NG8i0CWw== + version "4.1.2" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.1.2.tgz#140f35426d99bb4729af760afcf79eaaac407104" + integrity sha512-SH8PglcebESbd/shgf6mii6EIoRM0zrQyjcuQ+ojmfxjTtE0z9Y8pa62iA/OJ58qjP6j27uyW4kUF4jl/jd6sw== dependencies: "@babel/runtime" "^7.9.2" @@ -11858,9 +11842,9 @@ timsort@^0.3.0: integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= tiny-invariant@^1.0.6: - version "1.1.0" - resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" - integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== + version "1.2.0" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.2.0.tgz#a1141f86b672a9148c72e978a19a73b9b94a15a9" + integrity sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg== tmatch@^2.0.1: version "2.0.1" @@ -12090,11 +12074,16 @@ typeson@^6.0.0, typeson@^6.1.0: resolved "https://registry.yarnpkg.com/typeson/-/typeson-6.1.0.tgz#5b2a53705a5f58ff4d6f82f965917cabd0d7448b" integrity sha512-6FTtyGr8ldU0pfbvW/eOZrEtEkczHRUtduBnA90Jh9kMPCiFNnXIon3vF41N0S4tV1HHQt4Hk1j4srpESziCaA== -ua-parser-js@^0.7.18, ua-parser-js@^0.7.24: +ua-parser-js@^0.7.24: version "0.7.28" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== +ua-parser-js@^0.7.30: + version "0.7.31" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.31.tgz#649a656b191dffab4f21d5e053e27ca17cbff5c6" + integrity sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ== + uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" @@ -12872,7 +12861,7 @@ yargs-parser@^20.2.2, yargs-parser@^20.2.3: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs@^13.2.4, yargs@^13.3.0, yargs@^13.3.2: +yargs@^13.3.0, yargs@^13.3.2: version "13.3.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== @@ -12888,7 +12877,7 @@ yargs@^13.2.4, yargs@^13.3.0, yargs@^13.3.2: y18n "^4.0.0" yargs-parser "^13.1.2" -yargs@^15.4.1: +yargs@^15.3.1, yargs@^15.4.1: version "15.4.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== From 883d8cecaaaed9f617768a65402c94bcac796c5f Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Fri, 3 Dec 2021 11:03:01 +0000 Subject: [PATCH 05/36] Improve platform types (#20027) --- src/vector/platform/ElectronPlatform.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/vector/platform/ElectronPlatform.tsx b/src/vector/platform/ElectronPlatform.tsx index b8f229db30f..5573db8164f 100644 --- a/src/vector/platform/ElectronPlatform.tsx +++ b/src/vector/platform/ElectronPlatform.tsx @@ -52,11 +52,11 @@ import ToastStore from "matrix-react-sdk/src/stores/ToastStore"; import GenericExpiringToast from "matrix-react-sdk/src/components/views/toasts/GenericExpiringToast"; import SettingsStore from 'matrix-react-sdk/src/settings/SettingsStore'; import { IMatrixProfile, IEventWithRoomId as IMatrixEvent, IResultRoomEvents } from "matrix-js-sdk/src/@types/search"; +import { logger } from "matrix-js-sdk/src/logger"; +import { MatrixEvent } from "matrix-js-sdk/src/models/event"; import VectorBasePlatform from './VectorBasePlatform'; -import { logger } from "matrix-js-sdk/src/logger"; - const electron = window.electron; const isMac = navigator.platform.toUpperCase().includes('MAC'); @@ -399,7 +399,7 @@ export default class ElectronPlatform extends VectorBasePlatform { return notification; } - loudNotification(ev: Event, room: Object) { + loudNotification(ev: MatrixEvent, room: Room) { electron.send('loudNotification'); } From 1a403a37f93be292451af38c47fda4791e988ba1 Mon Sep 17 00:00:00 2001 From: Linerly <47475676+Linerly@users.noreply.github.com> Date: Fri, 3 Dec 2021 19:40:56 +0700 Subject: [PATCH 06/36] Add support for the Indonesian language (#20032) Co-authored-by: Michael Telatynski <7t3chguy@gmail.com> --- scripts/copy-res.js | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/copy-res.js b/scripts/copy-res.js index 297e905b527..425b9c96011 100755 --- a/scripts/copy-res.js +++ b/scripts/copy-res.js @@ -29,6 +29,7 @@ const INCLUDE_LANGS = [ {'value': 'he', 'label': 'עברית'}, {'value': 'hi', 'label': 'हिन्दी'}, {'value': 'hu', 'label': 'Magyar'}, + {'value': 'id', 'label': 'Bahasa Indonesia'}, {'value': 'is', 'label': 'íslenska'}, {'value': 'it', 'label': 'Italiano'}, {'value': 'ja', 'label': '日本語'}, From 317430b6b1b4a091cc792c42943c2a53ae4a8366 Mon Sep 17 00:00:00 2001 From: James Salter Date: Mon, 6 Dec 2021 11:42:19 +1100 Subject: [PATCH 07/36] Add analyticsOwner (#19401) --- docs/config.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/config.md b/docs/config.md index c36419bb313..3c27ea2a094 100644 --- a/docs/config.md +++ b/docs/config.md @@ -152,6 +152,8 @@ For a good example, see https://develop.element.io/config.json. 1. `sentry`: [Sentry](https://sentry.io/) configuration for rageshake data being sent to sentry. 1. `dsn`: the Sentry [DSN](https://docs.sentry.io/product/sentry-basics/dsn-explainer/) 2. `environment`: (optional) The [Environment](https://docs.sentry.io/product/sentry-basics/environments/) to pass to sentry +1. `analyticsOwner`: The entity that analytics data is being sent to. Used in copy + when explaining to the user where data is being sent. If not set, defaults to `brand`. Note that `index.html` also has an og:image meta tag that is set to an image hosted on riot.im. This is the image used if links to your copy of Element From 95a2b8eb2f9a4b5353fdfb0f7baf95f9a64f615c Mon Sep 17 00:00:00 2001 From: James Salter Date: Mon, 6 Dec 2021 11:49:08 +1100 Subject: [PATCH 08/36] Remove feature_pseudonymous_analytics_opt_in (#19900) Depends on https://github.com/matrix-org/matrix-react-sdk/pull/6936/ --- docs/labs.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/labs.md b/docs/labs.md index 47e430013b2..35d12179a0f 100644 --- a/docs/labs.md +++ b/docs/labs.md @@ -130,10 +130,6 @@ Enables sending hidden read receipts as per [MSC2285](https://github.com/matrix- Adds a "Message layout" section under `Settings -> Appearance`, where the user can select their preferred message layout (e.g. IRC or Modern). Additionally, adds a new "Message bubbles" layout. -## Pseudonymous Analytics opt-in (`feature_pseudonymous_analytics_opt_in`) - -Opts in to collection of pseudonymous analytics data via Posthog. See https://github.com/matrix-org/matrix-react-sdk/pull/6495 - ## Polls (`feature_polls`) [In Development] Polls are a way to gauge interest from your community about a certain topic with a simple voting mechanic From 9b780e0e6073a16d642094ccf0fd86aa6d31bd4e Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Mon, 6 Dec 2021 10:11:06 +0000 Subject: [PATCH 09/36] Simple static location sharing (#19754) Adds static location share a la [MSC3488](https://github.com/matrix-org/matrix-doc/pull/3488) behind a labs flag, supporting legacy `m.location` `msgtype` too. Powered by https://github.com/matrix-org/matrix-react-sdk/pull/7135. Adds maplibre as a dependency. To make this work, you have to add a valid `map_style_url` to your config.json. --- docs/config.md | 2 ++ docs/labs.md | 13 +++++++++++++ src/vector/index.html | 2 +- test/jest-mocks.js | 3 +++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/docs/config.md b/docs/config.md index 3c27ea2a094..3b7aee0a220 100644 --- a/docs/config.md +++ b/docs/config.md @@ -152,6 +152,8 @@ For a good example, see https://develop.element.io/config.json. 1. `sentry`: [Sentry](https://sentry.io/) configuration for rageshake data being sent to sentry. 1. `dsn`: the Sentry [DSN](https://docs.sentry.io/product/sentry-basics/dsn-explainer/) 2. `environment`: (optional) The [Environment](https://docs.sentry.io/product/sentry-basics/environments/) to pass to sentry +1. `map_style_url`: Maptile server URL for location sharing. e.g. + 'https://api.maptiler.com/maps/basic/style.json?key=YOUR_KEY_GOES_HERE' 1. `analyticsOwner`: The entity that analytics data is being sent to. Used in copy when explaining to the user where data is being sent. If not set, defaults to `brand`. diff --git a/docs/labs.md b/docs/labs.md index 35d12179a0f..4920776b2e8 100644 --- a/docs/labs.md +++ b/docs/labs.md @@ -151,6 +151,19 @@ entirely incomplete and may not work at all - it is not recommended for general Metaspaces are automatically populated spaces you can enable in your Space panel. By default, you'll have Home or All rooms, but you can opt in to a People, Favourites, and Other Rooms metaspace too. +## Location sharing (`feature_location_share`) [In Development] + +Allows users to send and display location data using [maplibre](https://maplibre.org). + +The current implementation is a quick in-progress development spike to +demonstrate viability and prove [MSC3488](https://github.com/matrix-org/matrix-doc/pull/3488) +and [MSC3489](https://github.com/matrix-org/matrix-doc/pull/3489) - **the UI has not yet +been designed, and it will not exit labs until it has**. + +For this to work, you must specify a valid maptiler.com API key in +`"map_style_url": "https://api.maptiler.com/maps/basic/style.json?key=YOUR_KEY_GOES_HERE"` +in your config.json, or find an alternative map tile server. + ## Breadcrumbs v2 (`feature_breadcrumbs_v2`) Instead of showing the horizontal list of breadcrumbs under the filter field, the new UX is an interactive context menu diff --git a/src/vector/index.html b/src/vector/index.html index b0a2425338d..fba86dbdce9 100644 --- a/src/vector/index.html +++ b/src/vector/index.html @@ -32,7 +32,7 @@ font-src 'self' data:; media-src * blob: data:; child-src * blob: data:; - worker-src 'self'; + worker-src 'self' blob:; frame-src * blob: data:; form-action 'self'; manifest-src 'self'; diff --git a/test/jest-mocks.js b/test/jest-mocks.js index e924768b9bd..6e1ea8a6051 100644 --- a/test/jest-mocks.js +++ b/test/jest-mocks.js @@ -12,3 +12,6 @@ Object.defineProperty(window, 'matchMedia', { dispatchEvent: jest.fn(), })), }); + +// maplibre requires a createObjectURL mock +global.URL.createObjectURL = jest.fn(); From 60788da1a36d0a3482f4eaa2892177fe01d2dda7 Mon Sep 17 00:00:00 2001 From: James Salter Date: Mon, 6 Dec 2021 23:12:29 +1100 Subject: [PATCH 10/36] Normalize the local app version (#20061) We need to strip the leading v from the local app version in pollForUpdate to ensure it compares correctly the version from the /version request indicating what the latest available version is. Previously, we only stripped the leading in getAppVersion which is used in some other places but not to decide whether an update is available. --- src/vector/platform/WebPlatform.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/vector/platform/WebPlatform.ts b/src/vector/platform/WebPlatform.ts index b7b59826b40..f3f3d55ac96 100644 --- a/src/vector/platform/WebPlatform.ts +++ b/src/vector/platform/WebPlatform.ts @@ -128,7 +128,7 @@ export default class WebPlatform extends VectorBasePlatform { }); } - getAppVersion(): Promise { + getNormalizedAppVersion(): string { let ver = process.env.VERSION; // if version looks like semver with leading v, strip it @@ -137,7 +137,11 @@ export default class WebPlatform extends VectorBasePlatform { if (semVerRegex.test(process.env.VERSION)) { ver = process.env.VERSION.substr(1); } - return Promise.resolve(ver); + return ver; + } + + getAppVersion(): Promise { + return Promise.resolve(this.getNormalizedAppVersion()); } startUpdater() { @@ -151,9 +155,11 @@ export default class WebPlatform extends VectorBasePlatform { pollForUpdate = () => { return this.getMostRecentVersion().then((mostRecentVersion) => { - if (process.env.VERSION !== mostRecentVersion) { + const currentVersion = this.getNormalizedAppVersion(); + + if (currentVersion !== mostRecentVersion) { if (this.shouldShowUpdate(mostRecentVersion)) { - showUpdateToast(process.env.VERSION, mostRecentVersion); + showUpdateToast(currentVersion, mostRecentVersion); } return { status: UpdateCheckStatus.Ready }; } else { From 83f0f1de729bfd880f71f2dab368dfd9729e4b46 Mon Sep 17 00:00:00 2001 From: "J. Ryan Stinnett" Date: Mon, 6 Dec 2021 16:40:24 +0000 Subject: [PATCH 11/36] Update lockfile for widget API via matrix-react-sdk --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8967553d608..0793ef809f1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7988,7 +7988,7 @@ matrix-mock-request@^1.2.3: "matrix-react-sdk@github:matrix-org/matrix-react-sdk#develop": version "3.36.0" - resolved "https://codeload.github.com/matrix-org/matrix-react-sdk/tar.gz/8b82836499bfb1b525b617c8e19c6f7977e6e007" + resolved "https://codeload.github.com/matrix-org/matrix-react-sdk/tar.gz/8715316a665a54dedc948fcfbae5f98ded34a0e7" dependencies: "@babel/runtime" "^7.12.5" "@sentry/browser" "^6.11.0" @@ -8023,7 +8023,7 @@ matrix-mock-request@^1.2.3: maplibre-gl "^1.15.2" matrix-analytics-events "https://github.com/matrix-org/matrix-analytics-events.git#1eab4356548c97722a183912fda1ceabbe8cc7c1" matrix-js-sdk "github:matrix-org/matrix-js-sdk#develop" - matrix-widget-api "^0.1.0-beta.17" + matrix-widget-api "^0.1.0-beta.18" minimist "^1.2.5" opus-recorder "^8.0.3" pako "^2.0.3" @@ -8060,7 +8060,7 @@ matrix-react-test-utils@^0.2.3: "@babel/traverse" "^7.13.17" walk "^2.3.14" -matrix-widget-api@^0.1.0-beta.17, matrix-widget-api@^0.1.0-beta.18: +matrix-widget-api@^0.1.0-beta.18: version "0.1.0-beta.18" resolved "https://registry.yarnpkg.com/matrix-widget-api/-/matrix-widget-api-0.1.0-beta.18.tgz#4efd30edec3eeb4211285985464c062fcab59795" integrity sha512-kCpcs6rrB94Mmr2/1gBJ+6auWyZ5UvOMOn5K2VFafz2/NDMzZg9OVWj9KFYnNAuwwBE5/tCztYEj6OQ+hgbwOQ== From b3c5bb899bed14f3dbb6355960a98db42e04be47 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 6 Dec 2021 17:09:04 +0000 Subject: [PATCH 12/36] Add map_style_url to develop.element.io (#20068) --- element.io/develop/config.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/element.io/develop/config.json b/element.io/develop/config.json index 3f7900a3469..914dde9bcf6 100644 --- a/element.io/develop/config.json +++ b/element.io/develop/config.json @@ -59,5 +59,6 @@ }, "features": { "feature_spaces_metaspaces": true - } + }, + "map_style_url": "https://api.maptiler.com/maps/basic/style.json?key=JCdnMQY3oGklTYYLIvtI" } From b0abbfacd48bf0f3962ce7c2e8ebd504c7cdfd26 Mon Sep 17 00:00:00 2001 From: James Salter Date: Tue, 7 Dec 2021 15:11:01 +1100 Subject: [PATCH 13/36] Fix Docker build versioning (#20077) * Centralise version scripts and fix Docker version * Refactor generation of a git-hash-based version into get-version-from-git * Refactor normalization of versions (stripping leading v) into normalize-version.sh * Call get-version-from-git from ci_package.sh, call normalize-version from package.sh * Refactor docker-write-version.sh into docker-package.sh, which both writes the version file and invokes yarn build passing VERSION * Normalize the version received from the server --- Dockerfile | 7 ++----- scripts/ci_package.sh | 12 +++-------- ...ker-write-version.sh => docker-package.sh} | 7 +++---- scripts/get-version-from-git.sh | 10 +++++++++ scripts/normalize-version.sh | 8 +++++++ scripts/package.sh | 7 +------ src/vector/platform/WebPlatform.ts | 21 ++++++++----------- 7 files changed, 36 insertions(+), 36 deletions(-) rename scripts/{docker-write-version.sh => docker-package.sh} (65%) mode change 100644 => 100755 create mode 100755 scripts/get-version-from-git.sh create mode 100755 scripts/normalize-version.sh diff --git a/Dockerfile b/Dockerfile index 601f2cdbbb8..d33e1d8458a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,15 +16,12 @@ WORKDIR /src COPY . /src RUN dos2unix /src/scripts/docker-link-repos.sh && bash /src/scripts/docker-link-repos.sh RUN yarn --network-timeout=100000 install -RUN yarn build + +RUN dos2unix /src/scripts/docker-package.sh && bash /src/scripts/docker-package.sh # Copy the config now so that we don't create another layer in the app image RUN cp /src/config.sample.json /src/webapp/config.json -# Ensure we populate the version file -RUN dos2unix /src/scripts/docker-write-version.sh && bash /src/scripts/docker-write-version.sh - - # App FROM nginx:alpine diff --git a/scripts/ci_package.sh b/scripts/ci_package.sh index 41d82016e7e..72ae5f3a4e6 100755 --- a/scripts/ci_package.sh +++ b/scripts/ci_package.sh @@ -1,17 +1,11 @@ #!/bin/bash -# Runs package.sh setting the version to git hashes of the element-web, -# react-sdk & js-sdk checkouts, for the case where these dependencies -# are git checkouts. +# Runs package.sh, passing DIST_VERSION determined by git set -ex rm dist/element-*.tar.gz || true # rm previous artifacts without failing if it doesn't exist -# Since the deps are fetched from git, we can rev-parse -REACT_SHA=$(cd node_modules/matrix-react-sdk; git rev-parse --short=12 HEAD) -JSSDK_SHA=$(cd node_modules/matrix-js-sdk; git rev-parse --short=12 HEAD) +DIST_VERSION=`$(dirname $0)/get-version-from-git.sh` -VECTOR_SHA=$(git rev-parse --short=12 HEAD) # use the ACTUAL SHA rather than assume develop - -CI_PACKAGE=true DIST_VERSION=$VECTOR_SHA-react-$REACT_SHA-js-$JSSDK_SHA scripts/package.sh +CI_PACKAGE=true DIST_VERSION=$DIST_VERSION scripts/package.sh diff --git a/scripts/docker-write-version.sh b/scripts/docker-package.sh old mode 100644 new mode 100755 similarity index 65% rename from scripts/docker-write-version.sh rename to scripts/docker-package.sh index 87014b4ff19..f1bb99abf43 --- a/scripts/docker-write-version.sh +++ b/scripts/docker-package.sh @@ -13,10 +13,9 @@ DIST_VERSION=$TAG # for an appropriately tagged branch as well (heads/v1.2.3). if [[ $BRANCH != HEAD && ! $BRANCH =~ heads/v.+ ]] then - REACT_SHA=$(cd node_modules/matrix-react-sdk; git rev-parse --short=12 HEAD) - JSSDK_SHA=$(cd node_modules/matrix-js-sdk; git rev-parse --short=12 HEAD) - VECTOR_SHA=$(git rev-parse --short=12 HEAD) # use the ACTUAL SHA rather than assume develop - DIST_VERSION=$VECTOR_SHA-react-$REACT_SHA-js-$JSSDK_SHA + DIST_VERSION=`$(dirname $0)/get-version-from-git.sh` fi +DIST_VERSION=`$(dirname $0)/normalize-version.sh ${DIST_VERSION}` +VERSION=$DIST_VERSION yarn build echo $DIST_VERSION > /src/webapp/version diff --git a/scripts/get-version-from-git.sh b/scripts/get-version-from-git.sh new file mode 100755 index 00000000000..f3abdcb7c72 --- /dev/null +++ b/scripts/get-version-from-git.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# Echoes a version based on the git hashes of the element-web, react-sdk & js-sdk checkouts, for the case where +# these dependencies are git checkouts. + +# Since the deps are fetched from git, we can rev-parse +REACT_SHA=$(cd node_modules/matrix-react-sdk; git rev-parse --short=12 HEAD) +JSSDK_SHA=$(cd node_modules/matrix-js-sdk; git rev-parse --short=12 HEAD) +VECTOR_SHA=$(git rev-parse --short=12 HEAD) # use the ACTUAL SHA rather than assume develop +echo $VECTOR_SHA-react-$REACT_SHA-js-$JSSDK_SHA diff --git a/scripts/normalize-version.sh b/scripts/normalize-version.sh new file mode 100755 index 00000000000..d8a68bebd87 --- /dev/null +++ b/scripts/normalize-version.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# If $1 looks like v1.2.3 or v1.2.3-foo, strip the leading v, then print it to stdout +if [[ $1 =~ ^v[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+(-.+)?$ ]]; then + echo ${1:1} +else + echo $1 +fi diff --git a/scripts/package.sh b/scripts/package.sh index b7c27755d96..9f95e87f1af 100755 --- a/scripts/package.sh +++ b/scripts/package.sh @@ -21,12 +21,7 @@ cp -r webapp element-$version # Just in case you have a local config, remove it before packaging rm element-$version/config.json || true -# if $version looks like semver with leading v, strip it before writing to file -if [[ ${version} =~ ^v[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+(-.+)?$ ]]; then - echo ${version:1} > element-$version/version -else - echo ${version} > element-$version/version -fi +$(dirname $0)/normalize-version.sh ${version} > element-$version/version tar chvzf dist/element-$version.tar.gz element-$version rm -r element-$version diff --git a/src/vector/platform/WebPlatform.ts b/src/vector/platform/WebPlatform.ts index f3f3d55ac96..439ee31c408 100644 --- a/src/vector/platform/WebPlatform.ts +++ b/src/vector/platform/WebPlatform.ts @@ -107,7 +107,7 @@ export default class WebPlatform extends VectorBasePlatform { // presence of intermediate caching proxies), but still: we're trying // to tell the user that there is a new version. - return new Promise(function(resolve, reject) { + return new Promise((resolve, reject) => { request( { method: "GET", @@ -121,27 +121,24 @@ export default class WebPlatform extends VectorBasePlatform { return; } - const ver = body.trim(); - resolve(ver); + resolve(this.getNormalizedAppVersion(body.trim())); }, ); }); } - getNormalizedAppVersion(): string { - let ver = process.env.VERSION; - + getNormalizedAppVersion(version: string): string { // if version looks like semver with leading v, strip it - // (matches scripts/package.sh) + // (matches scripts/normalize-version.sh) const semVerRegex = new RegExp("^v[0-9]+.[0-9]+.[0-9]+(-.+)?$"); - if (semVerRegex.test(process.env.VERSION)) { - ver = process.env.VERSION.substr(1); + if (semVerRegex.test(version)) { + return version.substr(1); } - return ver; + return version; } getAppVersion(): Promise { - return Promise.resolve(this.getNormalizedAppVersion()); + return Promise.resolve(this.getNormalizedAppVersion(process.env.VERSION)); } startUpdater() { @@ -155,7 +152,7 @@ export default class WebPlatform extends VectorBasePlatform { pollForUpdate = () => { return this.getMostRecentVersion().then((mostRecentVersion) => { - const currentVersion = this.getNormalizedAppVersion(); + const currentVersion = this.getNormalizedAppVersion(process.env.VERSION); if (currentVersion !== mostRecentVersion) { if (this.shouldShowUpdate(mostRecentVersion)) { From de9f427364e9a1743b66c4091ebc89478698a3df Mon Sep 17 00:00:00 2001 From: Germain Date: Wed, 8 Dec 2021 12:34:34 +0000 Subject: [PATCH 14/36] Update outdated unit test info in README.md (#20096) --- README.md | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 38f8caeecbc..2c1a4a18f91 100644 --- a/README.md +++ b/README.md @@ -375,20 +375,11 @@ Running the tests ----------------- There are a number of application-level tests in the `tests` directory; these -are designed to run in a browser instance under the control of -[karma](https://karma-runner.github.io). To run them: +are designed to run with Jest and JSDOM. To run them -* Make sure you have Chrome installed (a recent version, like 59) -* Make sure you have `matrix-js-sdk` and `matrix-react-sdk` installed and - built, as above -* `yarn test` - -The above will run the tests under Chrome in a `headless` mode. - -You can also tell karma to run the tests in a loop (every time the source -changes), in an instance of Chrome on your desktop, with `yarn -test-multi`. This also gives you the option of running the tests in 'debug' -mode, which is useful for stepping through the tests in the developer tools. +``` +yarn test +``` ### End-to-End tests From dc755909165291e17316f05e3fe27f4da1979353 Mon Sep 17 00:00:00 2001 From: Kat Gerasimova Date: Thu, 9 Dec 2021 11:24:51 +0000 Subject: [PATCH 15/36] Update issue automation for the Delight team (#20112) - Remove automation for v1 board as v2 board is now in use - Update naming for the workflow because there's only one board now - Add Z-IA issues to Delight workboard --- .github/workflows/triage-move-labelled.yml | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/.github/workflows/triage-move-labelled.yml b/.github/workflows/triage-move-labelled.yml index 29a849cf6bd..580ad615c2b 100644 --- a/.github/workflows/triage-move-labelled.yml +++ b/.github/workflows/triage-move-labelled.yml @@ -47,28 +47,14 @@ jobs: PROJECT_ID: "PN_kwDOAM0swc0sUA" GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }} - spaces_issues_to_old_board: - name: Spaces issues to old Delight project board + Delight_issues_to_board: + name: Delight issues to project board runs-on: ubuntu-latest if: > contains(github.event.issue.labels.*.name, 'A-Spaces') || contains(github.event.issue.labels.*.name, 'A-Space-Settings') || - contains(github.event.issue.labels.*.name, 'A-Subspaces') - steps: - - uses: konradpabjan/move-labeled-or-milestoned-issue@219d384e03fa4b6460cd24f9f37d19eb033a4338 - with: - action-token: "${{ secrets.ELEMENT_BOT_TOKEN }}" - project-url: "https://github.com/orgs/vector-im/projects/6" - column-name: "📥 Inbox" - label-name: "A-Spaces" - - spaces_issues_to_new_board: - name: Spaces issues to new Delight project board - runs-on: ubuntu-latest - if: > - contains(github.event.issue.labels.*.name, 'A-Spaces') || - contains(github.event.issue.labels.*.name, 'A-Space-Settings') || - contains(github.event.issue.labels.*.name, 'A-Subspaces') + contains(github.event.issue.labels.*.name, 'A-Subspaces') || + contains(github.event.issue.labels.*.name, 'Z-IA') steps: - uses: octokit/graphql-action@v2.x with: From b155d199341692d3963f95c84773f00cdf40fa6d Mon Sep 17 00:00:00 2001 From: Kerry Date: Thu, 9 Dec 2021 14:23:03 +0100 Subject: [PATCH 16/36] add aria-hidden and alt for preload svg images (#20113) Signed-off-by: Kerry Archibald --- src/vector/index.html | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/vector/index.html b/src/vector/index.html index fba86dbdce9..848241ef73a 100644 --- a/src/vector/index.html +++ b/src/vector/index.html @@ -64,14 +64,14 @@ - - - - - - - - + + + + + + + +