diff --git a/apps/desktop/dockerbuild/Dockerfile b/apps/desktop/dockerbuild/Dockerfile index 2fc76c830d..3e46198ad4 100644 --- a/apps/desktop/dockerbuild/Dockerfile +++ b/apps/desktop/dockerbuild/Dockerfile @@ -1,10 +1,17 @@ +# syntax=docker.io/docker/dockerfile:1.25-labs@sha256:4426b5e269e36911b94fb79cf67f1fd7155ef11b2bbc8ab23cbfcbc97130efe9 # Docker image to facilitate building Element Desktop's native bits using a glibc version (2.31) # with broader compatibility, down to Debian bullseye & Ubuntu focal. +# PNPM source +FROM --platform=$BUILDPLATFORM ghcr.io/pnpm/pnpm:11.10.0@sha256:9a6eb06d5f861d830fe27d85a91415e60527fa45ec45b52ee43c92a8aaf3bf8a AS pnpm + FROM rust:bullseye@sha256:21d112adb6ab370d39eef8f861f10b42342419b9569e7a05dac15e19eb65a3b4 ENV DEBIAN_FRONTEND=noninteractive +COPY --from=pnpm /opt/pnpm /opt/pnpm +RUN ln -s /opt/pnpm/pnpm /usr/local/bin/pnpm + RUN apt-get -qq update && apt-get -y -qq dist-upgrade && \ apt-get -y -qq install --no-install-recommends \ # tclsh is required for building SQLite as part of SQLCipher diff --git a/apps/desktop/dockerbuild/setup.sh b/apps/desktop/dockerbuild/setup.sh index a1b89d0faa..1b01e8ee69 100755 --- a/apps/desktop/dockerbuild/setup.sh +++ b/apps/desktop/dockerbuild/setup.sh @@ -9,4 +9,5 @@ ARCH="${archMap["$TARGETARCH"]}" NODE_VERSION=$(cat /.node-version | sed -e 's/^v//') curl --proto "=https" -L "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-$TARGETOS-$ARCH.tar.gz" | tar xz -C /usr/local --strip-components=1 && \ unlink /usr/local/CHANGELOG.md && unlink /usr/local/LICENSE && unlink /usr/local/README.md -corepack enable \ No newline at end of file +# We need yarn classic to build seshat +npm install --global yarn@1 diff --git a/apps/desktop/playwright/Dockerfile b/apps/desktop/playwright/Dockerfile index c3ec32a55f..b5f2d3f6b4 100644 --- a/apps/desktop/playwright/Dockerfile +++ b/apps/desktop/playwright/Dockerfile @@ -1,14 +1,21 @@ +# syntax=docker.io/docker/dockerfile:1.25-labs@sha256:4426b5e269e36911b94fb79cf67f1fd7155ef11b2bbc8ab23cbfcbc97130efe9 + +# PNPM source +FROM --platform=$BUILDPLATFORM ghcr.io/pnpm/pnpm:11.10.0@sha256:9a6eb06d5f861d830fe27d85a91415e60527fa45ec45b52ee43c92a8aaf3bf8a AS pnpm + FROM mcr.microsoft.com/playwright:v1.61.1-jammy@sha256:7b86926fff94374389e8e1f4fdc5c76d050d4a06a7886bb537bf412b20e2b71e WORKDIR /work +COPY --from=pnpm /opt/pnpm /opt/pnpm +RUN ln -s /opt/pnpm/pnpm /usr/local/bin/pnpm + RUN apt-get update && \ apt-get -y install xvfb dbus-x11 && \ apt-get purge -y --auto-remove && \ rm -rf /var/lib/apt/lists/* && \ - corepack enable + npm install -g pnpm@latest-11 -ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0 ENV GITHUB_ACTIONS=1 ENV DEBUG=pw:browser diff --git a/apps/web/Dockerfile b/apps/web/Dockerfile index 3a0566c4d2..eae1493e0f 100644 --- a/apps/web/Dockerfile +++ b/apps/web/Dockerfile @@ -1,9 +1,15 @@ # syntax=docker.io/docker/dockerfile:1.25-labs@sha256:4426b5e269e36911b94fb79cf67f1fd7155ef11b2bbc8ab23cbfcbc97130efe9 # Context must be the root of the monorepo +# PNPM source +FROM --platform=$BUILDPLATFORM ghcr.io/pnpm/pnpm:11.10.0@sha256:9a6eb06d5f861d830fe27d85a91415e60527fa45ec45b52ee43c92a8aaf3bf8a AS pnpm + # Builder FROM --platform=$BUILDPLATFORM node:24-bullseye@sha256:b2f4f5e6553256d611490b757e7aa80da1faae9d264d77ac8c2ddca96ace9d68 AS builder +COPY --from=pnpm /opt/pnpm /opt/pnpm +RUN ln -s /opt/pnpm/pnpm /usr/local/bin/pnpm + # Support custom branch of the js-sdk. This also helps us build images of element-web develop. ARG USE_CUSTOM_SDKS=false ARG JS_SDK_REPO="https://github.com/matrix-org/matrix-js-sdk.git" @@ -13,7 +19,6 @@ WORKDIR /src # Install dependencies COPY --parents package.json pnpm-lock.yaml pnpm-workspace.yaml patches scripts **/package.json /src/ -RUN corepack enable RUN pnpm install --frozen-lockfile RUN --mount=type=bind,source=.git,target=/src/.git /src/scripts/docker-link-repos.sh diff --git a/package.json b/package.json index d76f265bad..24e3ae4df6 100644 --- a/package.json +++ b/package.json @@ -55,8 +55,8 @@ "devEngines": { "packageManager": { "name": "pnpm", - "version": "11.2.2+sha512.36e6621fad506178936455e70247b8808ef4ec25797a9f437a93281a020484e2607f6a469a22e982987c3dbb8866e3071514ab10a4a1749e06edcd1ec118436f", - "onFail": "error" + "version": "11.5.2", + "onFail": "download" } }, "private": true, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 750dc1ae04..b8fed6358e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,52 +7,52 @@ importers: configDependencies: {} packageManagerDependencies: '@pnpm/exe': - specifier: 11.2.2 - version: 11.2.2 + specifier: 11.5.2 + version: 11.5.2 pnpm: - specifier: 11.2.2 - version: 11.2.2 + specifier: 11.5.2 + version: 11.5.2 packages: - '@pnpm/exe@11.2.2': - resolution: {integrity: sha512-9AGho6f10GYF/XHvnpO6wnzDIAiHNSs2PyOTelrNNyUiHwfTVtnJoXwRz/6yPJAYOF3erhPauv5oxf62uh581w==} + '@pnpm/exe@11.5.2': + resolution: {integrity: sha512-4UFnP2rhNu1xjAQ+I1GdIUUEtCJuTYJlbpiWSFA4POAID3Lpt+2vrjImWO7eOJ7iCY3vpc4TFe2IW3sAolW4Kg==} hasBin: true - '@pnpm/linux-arm64@11.2.2': - resolution: {integrity: sha512-cMEqyEwpghHb1UggKuowTuGKvbWe1Ra6bK3SF9CWoIrz36mzQz3FXxYXx1Theo8lmkwWH2MZdUGHKgtUoqEGKg==} + '@pnpm/linux-arm64@11.5.2': + resolution: {integrity: sha512-MbJySnu2y9cCBqlODLjUlZ87JnRC3Inq40rvGHWJSrSQ0PnuHeSw2NDMnLI8Hf9hCY+ooussRc5iiR4IAkjUvg==} cpu: [arm64] os: [linux] - '@pnpm/linux-x64@11.2.2': - resolution: {integrity: sha512-AShxDdan9wfAFbIGAO5YnbGRf3zuETOZVMuWqmx4mJLaAOR3kiA3Rwhzj3jyTsAoodn7Xdaxq9G1M3FpB92mkQ==} + '@pnpm/linux-x64@11.5.2': + resolution: {integrity: sha512-g6g2BGpQA47wUACy6B1MdeSHPtnl6x4AeCg0IOWQ7xXorEtC+VRiSHhLpA5kByFGeSwyYh/nLc7mLul5DAaELw==} cpu: [x64] os: [linux] - '@pnpm/linuxstatic-arm64@11.2.2': - resolution: {integrity: sha512-m7BCdqFdMFo3fkiOpcOLa70c3Ppy5OKv78HXSIfzL4ajHBdPQfmv03VgC3U08l1ST/EeQFuSt+Za0azmOJyYqA==} + '@pnpm/linuxstatic-arm64@11.5.2': + resolution: {integrity: sha512-xTxs9BLxYW39BPNGnmvYCUBnMPWm4mzmzujmdYbpRxDnBXrx55qPR5K/3LSohX7VrmsdDrYxuH6AmG1AaOlIfA==} cpu: [arm64] os: [linux] libc: [musl] - '@pnpm/linuxstatic-x64@11.2.2': - resolution: {integrity: sha512-UABTQUhdn6eCx/IlGVrdwklKT00pTHrjLNXdviP4OReJa1trM5HDWcDnreIg89ghCFmee+UTBKDx1FYlLON8EQ==} + '@pnpm/linuxstatic-x64@11.5.2': + resolution: {integrity: sha512-RGmmc/SoGLD90gmOHcU85UEKNoNRstLvizli4wzDASmETz/VeqJOqU5nD1YBgjzcP72sUMS352dh4bmzTfKyvQ==} cpu: [x64] os: [linux] libc: [musl] - '@pnpm/macos-arm64@11.2.2': - resolution: {integrity: sha512-EakwHSWIxzza6fO6zQkmkUphoadjer9VXCsWRax1D4qNWmChKfn2muYFj6BOChS999lwb4fb42gc61Nbx0X6iw==} + '@pnpm/macos-arm64@11.5.2': + resolution: {integrity: sha512-gW3A2jRlC3SJRw8qX2SAzjMIu9o98daTSqCKzeeYcjF/uEbtbz3dn4HqYrYffBnenKbc4hsgZQmNOHAvUKIlSg==} cpu: [arm64] os: [darwin] - '@pnpm/win-arm64@11.2.2': - resolution: {integrity: sha512-eXzlXAnwRAI9Uff1U2pfTJxC78vL8aGxU/fsUt/RzWjS09xMQZ2qtAunKg869fAi6xfsquDbogkdTZA3163lIw==} + '@pnpm/win-arm64@11.5.2': + resolution: {integrity: sha512-+VJCDoH/pRzLXBikwjvxgAnGfQufT8EALBX8cfSmrwD40JABUZvgPtjBjde7OwEoK/XwtlH8w+ZceFV0K3/YHQ==} cpu: [arm64] os: [win32] - '@pnpm/win-x64@11.2.2': - resolution: {integrity: sha512-X74bQ4bvjSCYapcupRsGrse8cAg7XhPKXRn1o1qOouux1nJquz9lh2h5uKz8GPx816OUsYo9FS8DV3N9W+L8QA==} + '@pnpm/win-x64@11.5.2': + resolution: {integrity: sha512-zgglREh75RbFgV/E0tNRS03ElX+hJOV43KRSSeaboxtj3ei1rrguxOgOCXUs/GsizoHVsuD+qXGABE4Kc4GMCg==} cpu: [x64] os: [win32] @@ -116,45 +116,45 @@ packages: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} - pnpm@11.2.2: - resolution: {integrity: sha512-NuZiH61QYXiTZFXnAke4gI707CV5ep9DepMoGgIEhOJgf2pGmiLpgph8PbuIZuMHFRSrEKShdJ4G7c0ewRhDbw==} + pnpm@11.5.2: + resolution: {integrity: sha512-ccYx44IGbvwlYl1c8CkHXeB7YbN/bic1D72Esb2lhkyMGWetwoB3a0XDCnFcA1mjvgj+9C1bsJ4rmQKZeWkpFg==} engines: {node: '>=22.13'} hasBin: true snapshots: - '@pnpm/exe@11.2.2': + '@pnpm/exe@11.5.2': dependencies: '@reflink/reflink': 0.1.19 detect-libc: 2.1.2 optionalDependencies: - '@pnpm/linux-arm64': 11.2.2 - '@pnpm/linux-x64': 11.2.2 - '@pnpm/linuxstatic-arm64': 11.2.2 - '@pnpm/linuxstatic-x64': 11.2.2 - '@pnpm/macos-arm64': 11.2.2 - '@pnpm/win-arm64': 11.2.2 - '@pnpm/win-x64': 11.2.2 + '@pnpm/linux-arm64': 11.5.2 + '@pnpm/linux-x64': 11.5.2 + '@pnpm/linuxstatic-arm64': 11.5.2 + '@pnpm/linuxstatic-x64': 11.5.2 + '@pnpm/macos-arm64': 11.5.2 + '@pnpm/win-arm64': 11.5.2 + '@pnpm/win-x64': 11.5.2 - '@pnpm/linux-arm64@11.2.2': + '@pnpm/linux-arm64@11.5.2': optional: true - '@pnpm/linux-x64@11.2.2': + '@pnpm/linux-x64@11.5.2': optional: true - '@pnpm/linuxstatic-arm64@11.2.2': + '@pnpm/linuxstatic-arm64@11.5.2': optional: true - '@pnpm/linuxstatic-x64@11.2.2': + '@pnpm/linuxstatic-x64@11.5.2': optional: true - '@pnpm/macos-arm64@11.2.2': + '@pnpm/macos-arm64@11.5.2': optional: true - '@pnpm/win-arm64@11.2.2': + '@pnpm/win-arm64@11.5.2': optional: true - '@pnpm/win-x64@11.2.2': + '@pnpm/win-x64@11.5.2': optional: true '@reflink/reflink-darwin-arm64@0.1.19': @@ -194,7 +194,7 @@ snapshots: detect-libc@2.1.2: {} - pnpm@11.2.2: {} + pnpm@11.5.2: {} --- lockfileVersion: '9.0' @@ -637,7 +637,7 @@ importers: version: 1.0.3 matrix-js-sdk: specifier: github:matrix-org/matrix-js-sdk#develop - version: https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/e78c67a2b01d27f8ceb7d5c1dcdaf82860621e0d + version: https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/8372260ae33df95e531064382aa6ddce487a952b matrix-widget-api: specifier: ^1.17.0 version: 1.17.0 @@ -10382,8 +10382,8 @@ packages: matrix-events-sdk@0.0.1: resolution: {integrity: sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA==} - matrix-js-sdk@https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/e78c67a2b01d27f8ceb7d5c1dcdaf82860621e0d: - resolution: {gitHosted: true, integrity: sha512-TExM09iu+jIDDbqe7RL+XTO+UFN7DfMHBP3g7gxKTQwqaPMtm4OarZRzlKvZ8b+EpVIiIfZkdUPmTplqToVoyQ==, tarball: https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/e78c67a2b01d27f8ceb7d5c1dcdaf82860621e0d} + matrix-js-sdk@https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/8372260ae33df95e531064382aa6ddce487a952b: + resolution: {gitHosted: true, tarball: https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/8372260ae33df95e531064382aa6ddce487a952b} version: 41.9.0 engines: {node: '>=22.0.0'} @@ -23775,7 +23775,7 @@ snapshots: matrix-events-sdk@0.0.1: {} - matrix-js-sdk@https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/e78c67a2b01d27f8ceb7d5c1dcdaf82860621e0d: + matrix-js-sdk@https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/8372260ae33df95e531064382aa6ddce487a952b: dependencies: '@babel/runtime': 8.0.0 '@matrix-org/matrix-sdk-crypto-wasm': 18.3.1