Skip to content

Commit e5e9543

Browse files
Merge tag 'v1.11.39' into upgrade/element-web-v1.11.39 - conflicts solved, not tested. Patch conflicts unsolved.
* Deprecate camelCase config options ([\#25800](element-hq/element-web#25800)). * Deprecate customisations in favour of Module API ([\#25736](element-hq/element-web#25736)). Fixes #25733. * Update labs.md for knock rooms ([\#25923](element-hq/element-web#25923)). Contributed by @charlynguyen. * Package release builds of element-web in package.element.io debs ([\#25198](element-hq/element-web#25198)). * Allow knocking rooms ([\#11353](matrix-org/matrix-react-sdk#11353)). Contributed by @charlynguyen. * Support adding space-restricted joins on rooms not members of those spaces ([\#9017](matrix-org/matrix-react-sdk#9017)). Fixes #19213. * Clear requiresClient and show pop-out if widget-api fails to ready ([\#11321](matrix-org/matrix-react-sdk#11321)). Fixes vector-im/customer-retainer#73. * Bump pagination sizes due to hidden events ([\#11342](matrix-org/matrix-react-sdk#11342)). * Remove display of key backup signatures from backup settings ([\#11333](matrix-org/matrix-react-sdk#11333)). * Use PassphraseFields in ExportE2eKeysDialog to enforce minimum passphrase complexity ([\#11222](matrix-org/matrix-react-sdk#11222)). Fixes #9478. * Fix "Export chat" not respecting configured time format in plain text mode ([\#10696](matrix-org/matrix-react-sdk#10696)). Fixes #23838. Contributed by @rashmitpankhania. * Fix some missing 1-count pluralisations around event list summaries ([\#11371](matrix-org/matrix-react-sdk#11371)). Fixes #25925. * Fix create subspace dialog not working for public space creation ([\#11367](matrix-org/matrix-react-sdk#11367)). Fixes #25916. * Search for users on paste ([\#11304](matrix-org/matrix-react-sdk#11304)). Fixes #17523. Contributed by @peterscheu-aceart. * Fix AppTile context menu not always showing up when it has options ([\#11358](matrix-org/matrix-react-sdk#11358)). Fixes #25914. * Fix clicking on home all rooms space notification not working ([\#11337](matrix-org/matrix-react-sdk#11337)). Fixes #22844. * Fix joining a suggested room switching space away ([\#11347](matrix-org/matrix-react-sdk#11347)). Fixes #25838. * Fix home/all rooms context menu in space panel ([\#11350](matrix-org/matrix-react-sdk#11350)). Fixes #25896. * Make keyboard handling in and out of autocomplete completions consistent ([\#11344](matrix-org/matrix-react-sdk#11344)). Fixes #25878. * De-duplicate reactions by sender to account for faulty/malicious servers ([\#11340](matrix-org/matrix-react-sdk#11340)). Fixes #25872. * Fix disable_3pid_login being ignored for the email field ([\#11335](matrix-org/matrix-react-sdk#11335)). Fixes #25863. * Upgrade wysiwyg editor for ctrl+backspace windows fix ([\#11324](matrix-org/matrix-react-sdk#11324)). Fixes vector-im/verticals-internal#102. * Unhide the view source event toggle - it works well enough ([\#11336](matrix-org/matrix-react-sdk#11336)). Fixes #25861.
2 parents 28615a5 + 9a650bd commit e5e9543

Some content is hidden

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

61 files changed

+4319
-2758
lines changed

.eslintrc.js

+1
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ module.exports = {
9696
// We don't need super strict typing in test utilities
9797
"@typescript-eslint/explicit-function-return-type": "off",
9898
"@typescript-eslint/explicit-member-accessibility": "off",
99+
"@typescript-eslint/ban-ts-comment": "off",
99100
},
100101
},
101102
{

.github/ISSUE_TEMPLATE/config.yml

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
blank_issues_enabled: false
12
contact_links:
23
- name: Questions & support
34
url: https://tchap.beta.gouv.fr/#contact

.github/cfp_headers

+3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
/*
2+
! Access-Control-Allow-Origin
23
X-XSS-Protection: 1; mode=block
34
X-Content-Type-Options: nosniff
5+
X-Frame-Options: SAMEORIGIN
6+
Content-Security-Policy: frame-ancestors 'self'
47
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
58

69
/version

.github/workflows/build_debian.yaml

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: Build Debian package
2+
on:
3+
release:
4+
types: [published]
5+
concurrency: ${{ github.workflow }}
6+
jobs:
7+
build:
8+
name: Build package
9+
if: github.event.release.prerelease == false
10+
environment: packages.element.io
11+
runs-on: ubuntu-latest
12+
env:
13+
R2_INCOMING_BUCKET: ${{ vars.R2_INCOMING_BUCKET }}
14+
R2_URL: ${{ vars.CF_R2_S3_API }}
15+
steps:
16+
- uses: actions/checkout@v3
17+
18+
- name: Prepare
19+
run: |
20+
mkdir -p /tmp/element-web-debian/DEBIAN
21+
cp -R debian/ /tmp/element-web-debian/DEBIAN/
22+
mkdir -p /tmp/element-web-debian/usr/share/element-web/
23+
24+
wget https://github.com/vector-im/element-web/releases/download/$VERSION/element-$VERSION.tar.gz
25+
mv element-* /tmp/element-web-debian/usr/share/element-web
26+
mv debian/usr/share/element-web/config.sample.json /tmp/element-web-debian/usr/share/element-web/config.json
27+
env:
28+
VERSION: ${{ github.ref_name }}
29+
30+
- name: Build deb package
31+
run: |
32+
VERSION=$(cat package.json | jq -r .version)
33+
chmod -R u=rw,go=r /tmp/element-web-debian/usr/share/element-web/
34+
dpkg-deb -Zxz --root-owner-group -VVersion=$VERSION --build /tmp/element-web-debian element-web.deb
35+
36+
# For now just upload the artifact to github
37+
- uses: actions/upload-artifact@v3
38+
with:
39+
name: debs
40+
path: "*.deb"
41+
retention-days: 14
42+
43+
#- name: Upload incoming deb
44+
# run: aws s3 cp element-io-archive-keyring.deb "s3://$R2_INCOMING_BUCKET" --endpoint-url "$R2_URL" --region auto
45+
# env:
46+
# AWS_ACCESS_KEY_ID: ${{ secrets.CF_R2_ACCESS_KEY_ID }}
47+
# AWS_SECRET_ACCESS_KEY: ${{ secrets.CF_R2_TOKEN }}
48+
49+
#reprepro:
50+
# needs: build
51+
# name: Run reprepro
52+
# if: inputs.deploy && github.event.release.prerelease == false
53+
# uses: ./.github/workflows/reprepro.yaml
54+
# secrets: inherit
55+
# with:
56+
# incoming: element-web.deb

.github/workflows/update-topics.yaml

+95
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
name: Update release topics
2+
on:
3+
workflow_dispatch:
4+
inputs:
5+
expected_status:
6+
description: What type of release is the next expected release
7+
required: true
8+
default: RC
9+
type: choice
10+
options:
11+
- RC
12+
- Release
13+
expected_date:
14+
description: Expected release date e.g. July 11th
15+
required: true
16+
type: string
17+
concurrency: ${{ github.workflow }}
18+
jobs:
19+
bot:
20+
name: Release topic update
21+
runs-on: ubuntu-latest
22+
environment: Matrix
23+
steps:
24+
- uses: actions/github-script@v6
25+
env:
26+
HS_URL: ${{ secrets.BETABOT_HS_URL }}
27+
LOBBY_ROOM_ID: ${{ secrets.ROOM_ID }}
28+
PUBLIC_ROOM_ID: "!YTvKGNlinIzlkMTVRl:matrix.org"
29+
ANNOUNCEMENT_ROOM_ID: "!bijaLdadorKgNGtHdA:matrix.org"
30+
TOKEN: ${{ secrets.BETABOT_ACCESS_TOKEN }}
31+
RELEASE_STATUS: "Release status: ${{ inputs.expected_status }} expected ${{ inputs.expected_date }}"
32+
with:
33+
script: |
34+
const { HS_URL, TOKEN, RELEASE_STATUS, LOBBY_ROOM_ID, PUBLIC_ROOM_ID, ANNOUNCEMENT_ROOM_ID } = process.env;
35+
36+
const repo = context.repo;
37+
const { data } = await github.rest.repos.getLatestRelease({
38+
owner: repo.owner,
39+
repo: repo.repo,
40+
});
41+
console.log("Found latest version: " + data.tag_name);
42+
43+
const releaseTopic = `Stable: ${data.tag_name} | ${RELEASE_STATUS}`;
44+
console.log("Release topic: " + releaseTopic);
45+
46+
const regex = /Stable: v(.+) \| Release status: (\w+) expected (\w+ \d+\w\w)/gm;
47+
48+
async function updateReleaseInTopic(roomId) {
49+
const apiUrl = `${HS_URL}/_matrix/client/v3/rooms/${roomId}/state/m.room.topic/`;
50+
const headers = {
51+
"Content-Type": "application/json",
52+
"Authorization": `Bearer ${TOKEN}`,
53+
};
54+
await fetch(`${HS_URL}/_matrix/client/v3/rooms/${roomId}/join`, {
55+
method: "POST",
56+
headers,
57+
body: "{}",
58+
});
59+
60+
let res = await fetch(apiUrl, {
61+
method: "GET",
62+
headers,
63+
});
64+
65+
const data = await res.json();
66+
const topic = data.topic.replace(regex, releaseTopic);
67+
if (topic === data.topic) {
68+
console.log(roomId, "nothing to do");
69+
return;
70+
}
71+
if (data["org.matrix.msc3765.topic"]) {
72+
data["org.matrix.msc3765.topic"].forEach(d => {
73+
d.body = d.body.replace(regex, releaseTopic);
74+
});
75+
}
76+
77+
res = await fetch(apiUrl, {
78+
method: "PUT",
79+
body: JSON.stringify({
80+
...data,
81+
topic,
82+
}),
83+
headers,
84+
});
85+
86+
if (res.ok) {
87+
console.log(roomId, "topic updated:", topic);
88+
} else {
89+
console.log(roomId, await res.text());
90+
}
91+
}
92+
93+
await updateReleaseInTopic(LOBBY_ROOM_ID);
94+
await updateReleaseInTopic(PUBLIC_ROOM_ID);
95+
await updateReleaseInTopic(ANNOUNCEMENT_ROOM_ID);

0 commit comments

Comments
 (0)