From 0f4934a947ee700a9363685f3c1b89bf7d75b813 Mon Sep 17 00:00:00 2001 From: SamTV12345 <40429738+samtv12345@users.noreply.github.com> Date: Sun, 26 Apr 2026 11:19:36 +0200 Subject: [PATCH 1/2] chore: added release notes for 2.7.1 --- .github/workflows/backend-tests.yml | 190 ++++++++++++------ .github/workflows/build-and-deploy-docs.yml | 42 ++-- .github/workflows/docker.yml | 33 +-- .github/workflows/frontend-admin-tests.yml | 44 ++-- .github/workflows/frontend-tests.yml | 94 ++++++--- .github/workflows/handleRelease.yml | 43 ++-- .github/workflows/load-test.yml | 122 ++++++----- .github/workflows/perform-type-check.yml | 39 ++-- .github/workflows/rate-limit.yml | 34 ++-- .github/workflows/release.yml | 41 ++-- .github/workflows/releaseEtherpad.yml | 41 ++-- .github/workflows/update-plugins.yml | 2 +- .../workflows/upgrade-from-latest-release.yml | 51 +++-- CHANGELOG.md | 12 ++ 14 files changed, 496 insertions(+), 292 deletions(-) diff --git a/.github/workflows/backend-tests.yml b/.github/workflows/backend-tests.yml index 55ea64b90c0..5ebb80f13b5 100644 --- a/.github/workflows/backend-tests.yml +++ b/.github/workflows/backend-tests.yml @@ -28,27 +28,41 @@ jobs: fail-fast: false matrix: # PRs: test on latest Node only. Push to develop: full matrix. - node: ${{ github.event_name == 'pull_request' && fromJSON('[">=24.0.0 <25.0.0"]') || fromJSON('[">=20.0.0 <21.0.0", ">=22.0.0 <23.0.0", ">=24.0.0 <25.0.0"]') }} + node: ${{ github.event_name == 'pull_request' && fromJSON('[24]') || fromJSON('[20, 22, 24]') }} steps: - name: Checkout repository uses: actions/checkout@v6 - uses: actions/cache@v5 - name: Setup gnpm cache - if: always() + name: Cache pnpm store + with: + path: ${{ env.PNPM_HOME }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + - uses: actions/cache@v5 + name: Cache node_modules with: path: | - ${{ env.PNPM_HOME }} - ~/.local/share/gnpm - /usr/local/bin/gnpm - /usr/local/bin/gnpm-0.0.12 - key: ${{ runner.os }}-gnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + node_modules + src/node_modules + admin/node_modules + ui/node_modules + bin/node_modules + doc/node_modules + key: ${{ runner.os }}-node${{ matrix.node }}-modules-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.os }}-gnpm-store- - - name: Setup gnpm - uses: SamTV12345/gnpm-setup@main + ${{ runner.os }}-node${{ matrix.node }}-modules- + - uses: pnpm/action-setup@v6 + name: Install pnpm + with: + version: 10.33.2 + run_install: false + - name: Use Node.js + uses: actions/setup-node@v6 with: - version: 0.0.12 + node-version: ${{ matrix.node }} + cache: pnpm - name: Install libreoffice uses: awalsh128/cache-apt-pkgs-action@v1.6.0 @@ -57,19 +71,19 @@ jobs: version: 1.0 - name: Install all dependencies and symlink for ep_etherpad-lite - run: gnpm i --frozen-lockfile --runtimeVersion="${{ matrix.node }}" + run: pnpm i --frozen-lockfile - name: Install admin ui working-directory: admin - run: gnpm install --runtimeVersion="${{ matrix.node }}" + run: pnpm install - name: Build admin ui working-directory: admin - run: gnpm build --runtimeVersion="${{ matrix.node }}" + run: pnpm build - name: Run the backend tests - run: gnpm test --runtimeVersion="${{ matrix.node }}" + run: pnpm test - name: Run the new vitest tests working-directory: src - run: gnpm run test:vitest --runtimeVersion="${{ matrix.node }}" + run: pnpm run test:vitest withpluginsLinux: env: @@ -84,27 +98,41 @@ jobs: strategy: fail-fast: false matrix: - node: ${{ github.event_name == 'pull_request' && fromJSON('[">=24.0.0 <25.0.0"]') || fromJSON('[">=20.0.0 <21.0.0", ">=22.0.0 <23.0.0", ">=24.0.0 <25.0.0"]') }} + node: ${{ github.event_name == 'pull_request' && fromJSON('[24]') || fromJSON('[20, 22, 24]') }} steps: - name: Checkout repository uses: actions/checkout@v6 - uses: actions/cache@v5 - name: Setup pnpm cache - if: always() + name: Cache pnpm store + with: + path: ${{ env.PNPM_HOME }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + - uses: actions/cache@v5 + name: Cache node_modules with: path: | - ${{ env.PNPM_HOME }} - ~/.local/share/gnpm - /usr/local/bin/gnpm - /usr/local/bin/gnpm-0.0.12 - key: ${{ runner.os }}-gnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + node_modules + src/node_modules + admin/node_modules + ui/node_modules + bin/node_modules + doc/node_modules + key: ${{ runner.os }}-node${{ matrix.node }}-modules-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.os }}-gnpm-store- - - name: Setup gnpm - uses: SamTV12345/gnpm-setup@main + ${{ runner.os }}-node${{ matrix.node }}-modules- + - uses: pnpm/action-setup@v6 + name: Install pnpm + with: + version: 10.33.2 + run_install: false + - name: Use Node.js + uses: actions/setup-node@v6 with: - version: 0.0.12 + node-version: ${{ matrix.node }} + cache: pnpm - name: Install libreoffice uses: awalsh128/cache-apt-pkgs-action@v1.6.0 @@ -113,14 +141,14 @@ jobs: version: 1.0 - name: Install all dependencies and symlink for ep_etherpad-lite - run: gnpm install --frozen-lockfile --runtimeVersion="${{ matrix.node }}" + run: pnpm install --frozen-lockfile - name: Build admin ui working-directory: admin - run: gnpm build --runtimeVersion="${{ matrix.node }}" + run: pnpm build - name: Install Etherpad plugins run: > - gnpm install --workspace-root + pnpm add -w ep_align ep_author_hover ep_cursortrace @@ -134,10 +162,10 @@ jobs: ep_table_of_contents - name: Run the backend tests - run: gnpm test --runtimeVersion="${{ matrix.node }}" + run: pnpm test - name: Run the new vitest tests working-directory: src - run: gnpm run test:vitest --runtimeVersion="${{ matrix.node }}" + run: pnpm run test:vitest # Windows tests only run on push to develop/master, not on PRs withoutpluginsWindows: @@ -148,7 +176,7 @@ jobs: strategy: fail-fast: false matrix: - node: [">=20.0.0 <21.0.0", ">=22.0.0 <23.0.0", ">=24.0.0 <25.0.0"] + node: [20, 22, 24] name: Windows without plugins runs-on: windows-latest steps: @@ -156,26 +184,41 @@ jobs: name: Checkout repository uses: actions/checkout@v6 - uses: actions/cache@v5 - name: Setup pnpm cache - if: always() + name: Cache pnpm store + with: + path: ${{ env.PNPM_HOME }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + - uses: actions/cache@v5 + name: Cache node_modules with: path: | - ${{ env.PNPM_HOME }} - C:\gnpm\ - C:\Users\runneradmin\AppData\Roaming\gnpm\ - key: ${{ runner.os }}-gnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + node_modules + src/node_modules + admin/node_modules + ui/node_modules + bin/node_modules + doc/node_modules + key: ${{ runner.os }}-node${{ matrix.node }}-modules-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.os }}-gnpm-store- - - name: Setup gnpm - uses: SamTV12345/gnpm-setup@main + ${{ runner.os }}-node${{ matrix.node }}-modules- + - uses: pnpm/action-setup@v6 + name: Install pnpm + with: + version: 10.33.2 + run_install: false + - name: Use Node.js + uses: actions/setup-node@v6 with: - version: 0.0.12 + node-version: ${{ matrix.node }} + cache: pnpm - name: Install all dependencies and symlink for ep_etherpad-lite - run: gnpm install --frozen-lockfile --runtimeVersion="${{ matrix.node }}" + run: pnpm install --frozen-lockfile - name: Build admin ui working-directory: admin - run: gnpm build --runtimeVersion="${{ matrix.node }}" + run: pnpm build - name: Fix up the settings.json run: | @@ -184,10 +227,10 @@ jobs: - name: Run the backend tests working-directory: src - run: gnpm test --runtimeVersion="${{ matrix.node }}" + run: pnpm test - name: Run the new vitest tests working-directory: src - run: gnpm run test:vitest --runtimeVersion="${{ matrix.node }}" + run: pnpm run test:vitest withpluginsWindows: env: @@ -197,7 +240,7 @@ jobs: strategy: fail-fast: false matrix: - node: [">=20.0.0 <21.0.0", ">=22.0.0 <23.0.0", ">=24.0.0 <25.0.0"] + node: [20, 22, 24] name: Windows with Plugins runs-on: windows-latest @@ -206,29 +249,44 @@ jobs: name: Checkout repository uses: actions/checkout@v6 - uses: actions/cache@v5 - name: Setup pnpm cache - if: always() + name: Cache pnpm store + with: + path: ${{ env.PNPM_HOME }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + - uses: actions/cache@v5 + name: Cache node_modules with: path: | - ${{ env.PNPM_HOME }} - C:\gnpm\ - C:\Users\runneradmin\AppData\Roaming\gnpm\ - key: ${{ runner.os }}-gnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + node_modules + src/node_modules + admin/node_modules + ui/node_modules + bin/node_modules + doc/node_modules + key: ${{ runner.os }}-node${{ matrix.node }}-modules-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.os }}-gnpm-store- - - name: Setup gnpm - uses: SamTV12345/gnpm-setup@main + ${{ runner.os }}-node${{ matrix.node }}-modules- + - uses: pnpm/action-setup@v6 + name: Install pnpm + with: + version: 10.33.2 + run_install: false + - name: Use Node.js + uses: actions/setup-node@v6 with: - version: 0.0.12 + node-version: ${{ matrix.node }} + cache: pnpm - name: Install dependencies - run: gnpm install --runtimeVersion="${{ matrix.node }}" + run: pnpm install - name: Build admin ui working-directory: admin - run: gnpm build --runtimeVersion="${{ matrix.node }}" + run: pnpm build - name: Install Etherpad plugins run: > - gnpm install --workspace-root + pnpm add -w ep_align ep_author_hover ep_cursortrace @@ -251,7 +309,7 @@ jobs: # rules. - name: Install all dependencies and symlink for ep_etherpad-lite - run: gnpm install --frozen-lockfile --runtimeVersion="${{ matrix.node }}" + run: pnpm install --frozen-lockfile - name: Fix up the settings.json run: | @@ -260,7 +318,7 @@ jobs: - name: Run the backend tests working-directory: src - run: gnpm test --runtimeVersion="${{ matrix.node }}" + run: pnpm test - name: Run the new vitest tests working-directory: src - run: gnpm run test:vitest --runtimeVersion="${{ matrix.node }}" + run: pnpm run test:vitest diff --git a/.github/workflows/build-and-deploy-docs.yml b/.github/workflows/build-and-deploy-docs.yml index 6482328bd0a..d38fdbf0615 100644 --- a/.github/workflows/build-and-deploy-docs.yml +++ b/.github/workflows/build-and-deploy-docs.yml @@ -34,28 +34,44 @@ jobs: - name: Checkout uses: actions/checkout@v6 - uses: actions/cache@v5 - name: Setup gnpm cache - if: always() + name: Cache pnpm store + with: + path: ~/.pnpm-store + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + - uses: actions/cache@v5 + name: Cache node_modules with: path: | - ${{ env.STORE_PATH }} - ~/.local/share/gnpm - /usr/local/bin/gnpm - /usr/local/bin/gnpm-0.0.12 - key: ${{ runner.os }}-gnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + node_modules + src/node_modules + admin/node_modules + ui/node_modules + bin/node_modules + doc/node_modules + key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-node-modules- + - uses: actions/cache@v5 + name: Cache vitepress build + with: + path: doc/.vitepress/cache + key: ${{ runner.os }}-vitepress-${{ hashFiles('doc/**/*.md', 'doc/.vitepress/config.*') }} restore-keys: | - ${{ runner.os }}-gnpm-store- - - name: Setup gnpm - uses: SamTV12345/gnpm-setup@main + ${{ runner.os }}-vitepress- + - uses: pnpm/action-setup@v6 + name: Install pnpm with: - version: 0.0.12 + version: 10.33.2 + run_install: false - name: Setup Pages uses: actions/configure-pages@v6 - name: Install dependencies - run: gnpm install + run: pnpm install --frozen-lockfile - name: Build app working-directory: doc - run: gnpm run docs:build + run: pnpm run docs:build env: COMMIT_REF: ${{ github.sha }} - name: Upload artifact diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 4c97bcf52c9..2c1e31284e5 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -43,21 +43,30 @@ jobs: cache-from: type=gha cache-to: type=gha,mode=max - uses: actions/cache@v5 - name: Setup gnpm cache - if: always() + name: Cache pnpm store + with: + path: ${{ env.PNPM_HOME }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + - uses: actions/cache@v5 + name: Cache node_modules with: path: | - ${{ env.PNPM_HOME }} - ~/.local/share/gnpm - /usr/local/bin/gnpm - /usr/local/bin/gnpm-0.0.12 - key: ${{ runner.os }}-gnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + node_modules + src/node_modules + admin/node_modules + ui/node_modules + bin/node_modules + doc/node_modules + key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.os }}-gnpm-store- - - name: Setup gnpm - uses: SamTV12345/gnpm-setup@main + ${{ runner.os }}-node-modules- + - uses: pnpm/action-setup@v6 + name: Install pnpm with: - version: 0.0.12 + version: 10.33.2 + run_install: false - name: Test working-directory: etherpad @@ -74,7 +83,7 @@ jobs: *) printf %s\\n "unexpected status: ${status}" >&2; exit 1;; esac done - (cd src && gnpm run test-container) + (cd src && pnpm run test-container) git clean -dxf . build-test-db-drivers: diff --git a/.github/workflows/frontend-admin-tests.yml b/.github/workflows/frontend-admin-tests.yml index f31f442f889..37f3c5b0e0f 100644 --- a/.github/workflows/frontend-admin-tests.yml +++ b/.github/workflows/frontend-admin-tests.yml @@ -29,24 +29,38 @@ jobs: name: Checkout repository uses: actions/checkout@v6 - uses: actions/cache@v5 - name: Setup gnpm cache - if: always() + name: Cache pnpm store + with: + path: ${{ env.PNPM_HOME }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + - uses: actions/cache@v5 + name: Cache node_modules with: path: | - ${{ env.PNPM_HOME }} - ~/.local/share/gnpm - /usr/local/bin/gnpm - /usr/local/bin/gnpm-0.0.12 - key: ${{ runner.os }}-gnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + node_modules + src/node_modules + admin/node_modules + ui/node_modules + bin/node_modules + doc/node_modules + key: ${{ runner.os }}-node${{ matrix.node }}-modules-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.os }}-gnpm-store- - - name: Setup gnpm - uses: SamTV12345/gnpm-setup@main + ${{ runner.os }}-node${{ matrix.node }}-modules- + - uses: pnpm/action-setup@v6 + name: Install pnpm + with: + version: 10.33.2 + run_install: false + - name: Use Node.js + uses: actions/setup-node@v6 with: - version: 0.0.12 + node-version: ${{ matrix.node }} + cache: pnpm - name: Install all dependencies and symlink for ep_etherpad-lite - run: gnpm i --runtimeVersion="${{ matrix.node }}" + run: pnpm i - name: Cache Playwright browsers uses: actions/cache@v5 id: playwright-cache @@ -71,11 +85,11 @@ jobs: - name: Build admin frontend working-directory: admin run: | - gnpm run build --runtimeVersion="${{ matrix.node }}" + pnpm run build - name: Run the frontend admin tests shell: bash run: | - gnpm run prod --runtimeVersion="${{ matrix.node }}" > /tmp/etherpad-server.log 2>&1 & + pnpm run prod > /tmp/etherpad-server.log 2>&1 & connected=false can_connect() { curl -sSfo /dev/null http://localhost:9001/ || return 1 @@ -87,7 +101,7 @@ jobs: sleep 1 done cd src - gnpm run test-admin --runtimeVersion="${{ matrix.node }}" + pnpm run test-admin - name: Upload server log on failure uses: actions/upload-artifact@v7 if: failure() diff --git a/.github/workflows/frontend-tests.yml b/.github/workflows/frontend-tests.yml index da5ce0a3be8..530af551870 100644 --- a/.github/workflows/frontend-tests.yml +++ b/.github/workflows/frontend-tests.yml @@ -22,32 +22,47 @@ jobs: name: Checkout repository uses: actions/checkout@v6 - uses: actions/cache@v5 - name: Setup gnpm cache - if: always() + name: Cache pnpm store + with: + path: ${{ env.PNPM_HOME }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + - uses: actions/cache@v5 + name: Cache node_modules with: path: | - ${{ env.PNPM_HOME }} - ~/.cache/ms-playwright - ~/.local/share/gnpm - /usr/local/bin/gnpm - /usr/local/bin/gnpm-0.0.12 - key: ${{ runner.os }}-gnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + node_modules + src/node_modules + admin/node_modules + ui/node_modules + bin/node_modules + doc/node_modules + key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-node-modules- + - uses: actions/cache@v5 + name: Cache Playwright browsers + with: + path: ~/.cache/ms-playwright + key: ${{ runner.os }}-playwright-${{ hashFiles('src/package.json', 'pnpm-lock.yaml') }} restore-keys: | - ${{ runner.os }}-gnpm-store- - - name: Setup gnpm - uses: SamTV12345/gnpm-setup@main + ${{ runner.os }}-playwright- + - uses: pnpm/action-setup@v6 + name: Install pnpm with: - version: 0.0.12 + version: 10.33.2 + run_install: false - name: Install all dependencies and symlink for ep_etherpad-lite - run: gnpm install --frozen-lockfile + run: pnpm install --frozen-lockfile - name: Create settings.json run: cp ./src/tests/settings.json settings.json - name: Run the frontend tests shell: bash run: | - gnpm run prod > /tmp/etherpad-server.log 2>&1 & + pnpm run prod > /tmp/etherpad-server.log 2>&1 & connected=false can_connect() { curl -sSfo /dev/null http://localhost:9001/ || return 1 @@ -59,8 +74,8 @@ jobs: sleep 1 done cd src - gnpm exec playwright install chromium --with-deps - gnpm run test-ui --project=chromium + pnpm exec playwright install chromium --with-deps + pnpm run test-ui --project=chromium - name: Upload server log on failure uses: actions/upload-artifact@v7 if: failure() @@ -83,30 +98,45 @@ jobs: - name: Checkout repository uses: actions/checkout@v6 - uses: actions/cache@v5 - name: Setup gnpm cache - if: always() + name: Cache pnpm store + with: + path: ${{ env.PNPM_HOME }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + - uses: actions/cache@v5 + name: Cache node_modules with: path: | - ${{ env.PNPM_HOME }} - ~/.local/share/gnpm - ~/.cache/ms-playwright - /usr/local/bin/gnpm - /usr/local/bin/gnpm-0.0.12 - key: ${{ runner.os }}-gnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + node_modules + src/node_modules + admin/node_modules + ui/node_modules + bin/node_modules + doc/node_modules + key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-node-modules- + - uses: actions/cache@v5 + name: Cache Playwright browsers + with: + path: ~/.cache/ms-playwright + key: ${{ runner.os }}-playwright-${{ hashFiles('src/package.json', 'pnpm-lock.yaml') }} restore-keys: | - ${{ runner.os }}-gnpm-store- - - name: Setup gnpm - uses: SamTV12345/gnpm-setup@main + ${{ runner.os }}-playwright- + - uses: pnpm/action-setup@v6 + name: Install pnpm with: - version: 0.0.12 + version: 10.33.2 + run_install: false - name: Install all dependencies and symlink for ep_etherpad-lite - run: gnpm install --frozen-lockfile + run: pnpm install --frozen-lockfile - name: Create settings.json run: cp ./src/tests/settings.json settings.json - name: Run the frontend tests shell: bash run: | - gnpm run prod > /tmp/etherpad-server.log 2>&1 & + pnpm run prod > /tmp/etherpad-server.log 2>&1 & connected=false can_connect() { curl -sSfo /dev/null http://localhost:9001/ || return 1 @@ -118,8 +148,8 @@ jobs: sleep 1 done cd src - gnpm exec playwright install firefox --with-deps - gnpm run test-ui --project=firefox + pnpm exec playwright install firefox --with-deps + pnpm run test-ui --project=firefox - name: Upload server log on failure uses: actions/upload-artifact@v7 if: failure() diff --git a/.github/workflows/handleRelease.yml b/.github/workflows/handleRelease.yml index a69d20b6f64..2b931d4b2ea 100644 --- a/.github/workflows/handleRelease.yml +++ b/.github/workflows/handleRelease.yml @@ -29,30 +29,41 @@ jobs: name: Checkout repository uses: actions/checkout@v6 - uses: actions/cache@v5 - name: Setup gnpm cache - if: always() + name: Cache pnpm store + with: + path: ${{ env.PNPM_HOME }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + - uses: actions/cache@v5 + name: Cache node_modules with: path: | - ${{ env.STORE_PATH }} - ~/.local/share/gnpm - ~/.cache/ms-playwright - /usr/local/bin/gnpm - /usr/local/bin/gnpm-0.0.12 - key: ${{ runner.os }}-gnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + node_modules + src/node_modules + admin/node_modules + ui/node_modules + bin/node_modules + doc/node_modules + key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.os }}-gnpm-store- - - name: Setup gnpm - uses: SamTV12345/gnpm-setup@main + ${{ runner.os }}-node-modules- + - uses: pnpm/action-setup@v6 + name: Install pnpm with: - version: 0.0.12 + version: 10.33.2 + run_install: false - name: Install all dependencies and symlink for ep_etherpad-lite - run: gnpm install --frozen-lockfile + run: pnpm install --frozen-lockfile - name: Build etherpad - run: gnpm run build:etherpad - # On release, create release + run: pnpm run build:etherpad + # On release, create release. `--silent` suppresses pnpm's lifecycle + # banner ("> generateChangelog\n> node ...") that would otherwise be + # captured into CHANGELOG.txt and end up at the top of the GitHub + # release notes. - name: Generate Changelog working-directory: bin - run: gnpm run generateChangelog ${{ github.ref }} > ${{ github.workspace }}-CHANGELOG.txt + run: pnpm --silent run generateChangelog ${{ github.ref }} > ${{ github.workspace }}-CHANGELOG.txt - name: Release uses: softprops/action-gh-release@v3 if: ${{startsWith(github.ref, 'refs/tags/v') }} diff --git a/.github/workflows/load-test.yml b/.github/workflows/load-test.yml index 46a960aab59..91fa4de0e85 100644 --- a/.github/workflows/load-test.yml +++ b/.github/workflows/load-test.yml @@ -26,35 +26,39 @@ jobs: name: Checkout repository uses: actions/checkout@v6 - uses: actions/cache@v5 - name: Setup gnpm cache - if: always() + name: Cache pnpm store + with: + path: ${{ env.PNPM_HOME }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + - uses: actions/cache@v5 + name: Cache node_modules with: path: | - ${{ env.STORE_PATH }} - ~/.local/share/gnpm - ~/.cache/ms-playwright - /usr/local/bin/gnpm - /usr/local/bin/gnpm-0.0.12 - key: ${{ runner.os }}-gnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + node_modules + src/node_modules + admin/node_modules + ui/node_modules + bin/node_modules + doc/node_modules + key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.os }}-gnpm-store- - - name: Setup gnpm - uses: SamTV12345/gnpm-setup@main + ${{ runner.os }}-node-modules- + - uses: pnpm/action-setup@v6 + name: Install pnpm with: - version: 0.0.12 + version: 10.33.2 + run_install: false - name: Install all dependencies and symlink for ep_etherpad-lite - run: gnpm install --frozen-lockfile + run: pnpm install --frozen-lockfile - name: Install etherpad-load-test run: sudo npm install -g etherpad-load-test-socket-io - name: Run load test - run: | - gnpm --gnpmEnv - eval "$(gnpm --gnpmEnv)" - echo $PATH - src/tests/frontend/travis/runnerLoadTest.sh 25 50 + run: src/tests/frontend/travis/runnerLoadTest.sh 25 50 withplugins: # run on pushes to any branch @@ -69,31 +73,37 @@ jobs: name: Checkout repository uses: actions/checkout@v6 - uses: actions/cache@v5 - name: Setup gnpm cache - if: always() + name: Cache pnpm store + with: + path: ${{ env.PNPM_HOME }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + - uses: actions/cache@v5 + name: Cache node_modules with: path: | - ${{ env.STORE_PATH }} - ~/.local/share/gnpm - ~/.cache/ms-playwright - /usr/local/bin/gnpm - /usr/local/bin/gnpm-0.0.12 - key: ${{ runner.os }}-gnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + node_modules + src/node_modules + admin/node_modules + ui/node_modules + bin/node_modules + doc/node_modules + key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.os }}-gnpm-store- - - name: Setup gnpm - uses: SamTV12345/gnpm-setup@main + ${{ runner.os }}-node-modules- + - uses: pnpm/action-setup@v6 + name: Install pnpm with: - version: 0.0.12 + version: 10.33.2 + run_install: false - name: Install etherpad-load-test run: sudo npm install -g etherpad-load-test-socket-io - name: Install etherpad plugins - # The --legacy-peer-deps flag is required to work around a bug in npm v7: - # https://github.com/npm/cli/issues/2199 run: > - gnpm install --workspace-root + pnpm add -w ep_align ep_author_hover ep_cursortrace @@ -117,12 +127,10 @@ jobs: # rules. - name: Install all dependencies and symlink for ep_etherpad-lite - run: gnpm install --frozen-lockfile + run: pnpm install --frozen-lockfile - name: Run load test - run: | - eval "$(gnpm --gnpmEnv)" - src/tests/frontend/travis/runnerLoadTest.sh 25 50 + run: src/tests/frontend/travis/runnerLoadTest.sh 25 50 long: # run on pushes to any branch @@ -137,32 +145,36 @@ jobs: name: Checkout repository uses: actions/checkout@v6 - uses: actions/cache@v5 - name: Setup gnpm cache - if: always() + name: Cache pnpm store + with: + path: ${{ env.PNPM_HOME }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + - uses: actions/cache@v5 + name: Cache node_modules with: path: | - ${{ env.STORE_PATH }} - ~/.local/share/gnpm - ~/.cache/ms-playwright - /usr/local/bin/gnpm - /usr/local/bin/gnpm-0.0.12 - key: ${{ runner.os }}-gnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + node_modules + src/node_modules + admin/node_modules + ui/node_modules + bin/node_modules + doc/node_modules + key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.os }}-gnpm-store- - - name: Setup gnpm - uses: SamTV12345/gnpm-setup@main + ${{ runner.os }}-node-modules- + - uses: pnpm/action-setup@v6 + name: Install pnpm with: - version: 0.0.12 + version: 10.33.2 + run_install: false - name: Install all dependencies and symlink for ep_etherpad-lite - run: gnpm install --frozen-lockfile + run: pnpm install --frozen-lockfile - name: Install etherpad-load-test run: sudo npm install -g etherpad-load-test-socket-io - name: Run load test - run: | - gnpm --gnpmEnv - eval "$(gnpm --gnpmEnv)" - echo $PATH - src/tests/frontend/travis/runnerLoadTest.sh 5000 5 + run: src/tests/frontend/travis/runnerLoadTest.sh 5000 5 diff --git a/.github/workflows/perform-type-check.yml b/.github/workflows/perform-type-check.yml index a2105615ef0..938bf1489f2 100644 --- a/.github/workflows/perform-type-check.yml +++ b/.github/workflows/perform-type-check.yml @@ -26,25 +26,32 @@ jobs: - name: Checkout repository uses: actions/checkout@v6 - uses: actions/cache@v5 - name: Setup gnpm cache - if: always() + name: Cache pnpm store + with: + path: ${{ env.PNPM_HOME }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + - uses: actions/cache@v5 + name: Cache node_modules with: path: | - ${{ env.STORE_PATH }} - ~/.local/share/gnpm - ~/.cache/ms-playwright - /usr/local/bin/gnpm - /usr/local/bin/gnpm-0.0.12 - key: ${{ runner.os }}-gnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + node_modules + src/node_modules + admin/node_modules + ui/node_modules + bin/node_modules + doc/node_modules + key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.os }}-gnpm-store- - - name: Setup gnpm - uses: SamTV12345/gnpm-setup@main + ${{ runner.os }}-node-modules- + - uses: pnpm/action-setup@v6 + name: Install pnpm with: - version: 0.0.12 - - - name: Install all dependencies and symlink for ep_etherpad-lite - run: gnpm install --frozen-lockfile + version: 10.33.2 + run_install: false + - name: Install all dependencies and symlink for ep_etherpad-lite + run: pnpm install --frozen-lockfile - name: Perform type check working-directory: ./src - run: gnpm run ts-check + run: pnpm run ts-check diff --git a/.github/workflows/rate-limit.yml b/.github/workflows/rate-limit.yml index 0a0699c6fa6..edcfc9e51d5 100644 --- a/.github/workflows/rate-limit.yml +++ b/.github/workflows/rate-limit.yml @@ -29,22 +29,30 @@ jobs: name: Checkout repository uses: actions/checkout@v6 - uses: actions/cache@v5 - name: Setup gnpm cache - if: always() + name: Cache pnpm store + with: + path: ${{ env.PNPM_HOME }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + - uses: actions/cache@v5 + name: Cache node_modules with: path: | - ${{ env.STORE_PATH }} - ~/.local/share/gnpm - ~/.cache/ms-playwright - /usr/local/bin/gnpm - /usr/local/bin/gnpm-0.0.12 - key: ${{ runner.os }}-gnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + node_modules + src/node_modules + admin/node_modules + ui/node_modules + bin/node_modules + doc/node_modules + key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.os }}-gnpm-store- - - name: Setup gnpm - uses: SamTV12345/gnpm-setup@main + ${{ runner.os }}-node-modules- + - uses: pnpm/action-setup@v6 + name: Install pnpm with: - version: 0.0.12 + version: 10.33.2 + run_install: false - name: docker network @@ -63,7 +71,7 @@ jobs: docker run --rm --network ep_net --ip 172.23.42.3 --name anotherip -dt anotherip - name: install dependencies and create symlink for ep_etherpad-lite - run: gnpm install --frozen-lockfile + run: pnpm install --frozen-lockfile - name: run rate limit test run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d77f94641cb..6925044a2a5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -48,24 +48,33 @@ jobs: path: ether.github.com token: '${{ secrets.ETHER_RELEASE_TOKEN }}' - uses: actions/cache@v5 - name: Setup gnpm cache - if: always() + name: Cache pnpm store with: - path: | - ${{ env.STORE_PATH }} - ~/.local/share/gnpm - ~/.cache/ms-playwright - /usr/local/bin/gnpm - /usr/local/bin/gnpm-0.0.12 - key: ${{ runner.os }}-gnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + path: ${{ env.PNPM_HOME }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.os }}-gnpm-store- - - name: Setup gnpm - uses: SamTV12345/gnpm-setup@main + ${{ runner.os }}-pnpm-store- + - uses: actions/cache@v5 + name: Cache node_modules (ether.github.com) + with: + path: ether.github.com/node_modules + key: ${{ runner.os }}-ghpages-node-modules-${{ hashFiles('ether.github.com/pnpm-lock.yaml', 'ether.github.com/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-ghpages-node-modules- + - uses: actions/cache@v5 + name: Cache node_modules (etherpad bin) + with: + path: etherpad/bin/node_modules + key: ${{ runner.os }}-bin-node-modules-${{ hashFiles('etherpad/bin/package.json') }} + restore-keys: | + ${{ runner.os }}-bin-node-modules- + - uses: pnpm/action-setup@v6 + name: Install pnpm with: - version: 0.0.12 + version: 10.33.2 + run_install: false - name: Install dependencies ether.github.com - run: gnpm install --frozen-lockfile + run: pnpm install --frozen-lockfile working-directory: ether.github.com - name: Set git user run: | @@ -82,8 +91,8 @@ jobs: working-directory: etherpad run: | cd bin - gnpm install - gnpm run release ${{ inputs.release_type }} + pnpm install + pnpm run release ${{ inputs.release_type }} - name: Push after release working-directory: etherpad run: | diff --git a/.github/workflows/releaseEtherpad.yml b/.github/workflows/releaseEtherpad.yml index e9575a49481..5bb49b18bc0 100644 --- a/.github/workflows/releaseEtherpad.yml +++ b/.github/workflows/releaseEtherpad.yml @@ -23,33 +23,38 @@ jobs: registry-url: https://registry.npmjs.org/ - name: Upgrade npm to >=11.5.1 (required for trusted publishing) run: npm install -g npm@latest - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - uses: actions/cache@v5 - name: Setup pnpm cache - if: always() + name: Cache pnpm store + with: + path: ${{ env.PNPM_HOME }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + - uses: actions/cache@v5 + name: Cache node_modules with: path: | - ${{ env.STORE_PATH }} - ~/.local/share/gnpm - /usr/local/bin/gnpm - /usr/local/bin/gnpm-0.0.12 - key: ${{ runner.os }}-gnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + node_modules + src/node_modules + admin/node_modules + ui/node_modules + bin/node_modules + doc/node_modules + key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.os }}-gnpm-store- - - name: Setup gnpm - uses: SamTV12345/gnpm-setup@main + ${{ runner.os }}-node-modules- + - uses: pnpm/action-setup@v6 + name: Install pnpm with: - version: 0.0.12 + version: 10.33.2 + run_install: false - name: Install dependencies - run: gnpm install --frozen-lockfile + run: pnpm install --frozen-lockfile - name: Rename etherpad working-directory: ./src run: sed -i 's/ep_etherpad-lite/ep_etherpad/g' package.json - # Use `npm publish` directly (not `gnpm`/`pnpm` wrappers) because OIDC - # trusted publishing requires npm CLI >= 11.5.1 and the wrappers shell + # Use `npm publish` directly (not the `pnpm` wrapper) because OIDC + # trusted publishing requires npm CLI >= 11.5.1 and the wrapper shells # out to npm; calling npm directly avoids any shim ambiguity. The # ep_etherpad package must have a trusted publisher configured on # npmjs.com pointing at this workflow file. See: diff --git a/.github/workflows/update-plugins.yml b/.github/workflows/update-plugins.yml index 4b6a282a889..447ecdcf13a 100644 --- a/.github/workflows/update-plugins.yml +++ b/.github/workflows/update-plugins.yml @@ -21,7 +21,7 @@ jobs: - uses: pnpm/action-setup@v6 name: Install pnpm with: - version: 10 + version: 10.33.2 run_install: false - name: Use Node.js diff --git a/.github/workflows/upgrade-from-latest-release.yml b/.github/workflows/upgrade-from-latest-release.yml index c60af163a0a..9ee3240f2a2 100644 --- a/.github/workflows/upgrade-from-latest-release.yml +++ b/.github/workflows/upgrade-from-latest-release.yml @@ -36,22 +36,35 @@ jobs: with: ref: develop #FIXME change to master when doing release - uses: actions/cache@v5 - name: Setup gnpm cache - if: always() + name: Cache pnpm store + with: + path: ${{ env.PNPM_HOME }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + - uses: actions/cache@v5 + name: Cache node_modules with: path: | - ${{ env.STORE_PATH }} - ~/.local/share/gnpm - ~/.cache/ms-playwright - /usr/local/bin/gnpm - /usr/local/bin/gnpm-0.0.12 - key: ${{ runner.os }}-gnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + node_modules + src/node_modules + admin/node_modules + ui/node_modules + bin/node_modules + doc/node_modules + key: ${{ runner.os }}-node${{ matrix.node }}-modules-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.os }}-gnpm-store- - - name: Setup gnpm - uses: SamTV12345/gnpm-setup@main + ${{ runner.os }}-node${{ matrix.node }}-modules- + - uses: pnpm/action-setup@v6 + name: Install pnpm + with: + version: 10.33.2 + run_install: false + - name: Use Node.js + uses: actions/setup-node@v6 with: - version: 0.0.12 + node-version: ${{ matrix.node }} + cache: pnpm - name: Install libreoffice uses: awalsh128/cache-apt-pkgs-action@v1.6.0 with: @@ -59,14 +72,14 @@ jobs: version: 1.0 - name: Install all dependencies and symlink for ep_etherpad-lite - run: gnpm install --frozen-lockfile --runtimeVersion="${{ matrix.node }}" + run: pnpm install --frozen-lockfile - name: Build admin ui working-directory: admin - run: gnpm build --runtimeVersion="${{ matrix.node }}" + run: pnpm build - name: Install Etherpad plugins run: > - gnpm run install-plugins + pnpm run install-plugins ep_align ep_author_hover ep_cursortrace @@ -78,13 +91,13 @@ jobs: ep_set_title_on_pad ep_spellcheck ep_subscript_and_superscript - ep_table_of_contents --runtimeVersion="${{ matrix.node }}" + ep_table_of_contents - name: Run the backend tests - run: gnpm run test --runtimeVersion="${{ matrix.node }}" + run: pnpm run test - name: Install all dependencies and symlink for ep_etherpad-lite - run: gnpm install --frozen-lockfile --runtimeVersion="${{ matrix.node }}" + run: pnpm install --frozen-lockfile # Because actions/checkout@v6 is called with "ref: master" and without # "fetch-depth: 0", the local clone does not have the ${GITHUB_SHA} # commit. Fetch ${GITHUB_REF} to get the ${GITHUB_SHA} commit. Note that a @@ -101,4 +114,4 @@ jobs: # commit that merges the PR's source branch to its destination branch. run: git checkout "${GITHUB_SHA}" - name: Run the backend tests - run: gnpm run test --runtimeVersion="${{ matrix.node }}" + run: pnpm run test diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c23547eb78..64bfa75af26 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +# 2.7.2 + +### Notable enhancements and fixes + +- Accessibility pass: corrected dialog semantics, improved focus management, added missing icon labels, and set the `html lang` attribute correctly. +- Chat: clicking the chat icon works again, disabled toggles render properly, and the username layout no longer overflows. +- `/export/etherpad` now honors the `:rev` URL segment, so revision-specific exports return the requested revision instead of the latest. +- Undo / redo now scrolls the viewport to follow the caret, so reverted edits stay in view. +- Page Down / Page Up now scrolls by viewport height instead of a fixed line count, matching standard editor behavior on tall and short windows alike. +- Editbar: caret is restored to the pad after changing a toolbar select, so typing continues in the document instead of falling through to the toolbar. +- Admin: i18n is restored on `/admin` so the admin UI is translated again. + # 2.7.1 ### Notable enhancements and fixes From 742c040a50852557a295ccaa9ff172d86ec2921d Mon Sep 17 00:00:00 2001 From: SamTV12345 <40429738+samtv12345@users.noreply.github.com> Date: Sun, 26 Apr 2026 11:28:40 +0200 Subject: [PATCH 2/2] chore: don't cache node_modules due to cas --- .github/workflows/backend-tests.yml | 52 ------------------- .github/workflows/build-and-deploy-docs.yml | 13 ----- .github/workflows/docker.yml | 13 ----- .github/workflows/frontend-admin-tests.yml | 13 ----- .github/workflows/frontend-tests.yml | 26 ---------- .github/workflows/handleRelease.yml | 13 ----- .github/workflows/load-test.yml | 39 -------------- .github/workflows/perform-type-check.yml | 13 ----- .github/workflows/rate-limit.yml | 13 ----- .github/workflows/release.yml | 14 ----- .github/workflows/releaseEtherpad.yml | 13 ----- .../workflows/upgrade-from-latest-release.yml | 13 ----- 12 files changed, 235 deletions(-) diff --git a/.github/workflows/backend-tests.yml b/.github/workflows/backend-tests.yml index 5ebb80f13b5..e3cbf936523 100644 --- a/.github/workflows/backend-tests.yml +++ b/.github/workflows/backend-tests.yml @@ -40,19 +40,6 @@ jobs: key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - - uses: actions/cache@v5 - name: Cache node_modules - with: - path: | - node_modules - src/node_modules - admin/node_modules - ui/node_modules - bin/node_modules - doc/node_modules - key: ${{ runner.os }}-node${{ matrix.node }}-modules-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-node${{ matrix.node }}-modules- - uses: pnpm/action-setup@v6 name: Install pnpm with: @@ -110,19 +97,6 @@ jobs: key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - - uses: actions/cache@v5 - name: Cache node_modules - with: - path: | - node_modules - src/node_modules - admin/node_modules - ui/node_modules - bin/node_modules - doc/node_modules - key: ${{ runner.os }}-node${{ matrix.node }}-modules-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-node${{ matrix.node }}-modules- - uses: pnpm/action-setup@v6 name: Install pnpm with: @@ -190,19 +164,6 @@ jobs: key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - - uses: actions/cache@v5 - name: Cache node_modules - with: - path: | - node_modules - src/node_modules - admin/node_modules - ui/node_modules - bin/node_modules - doc/node_modules - key: ${{ runner.os }}-node${{ matrix.node }}-modules-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-node${{ matrix.node }}-modules- - uses: pnpm/action-setup@v6 name: Install pnpm with: @@ -255,19 +216,6 @@ jobs: key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - - uses: actions/cache@v5 - name: Cache node_modules - with: - path: | - node_modules - src/node_modules - admin/node_modules - ui/node_modules - bin/node_modules - doc/node_modules - key: ${{ runner.os }}-node${{ matrix.node }}-modules-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-node${{ matrix.node }}-modules- - uses: pnpm/action-setup@v6 name: Install pnpm with: diff --git a/.github/workflows/build-and-deploy-docs.yml b/.github/workflows/build-and-deploy-docs.yml index d38fdbf0615..84cb1bb0065 100644 --- a/.github/workflows/build-and-deploy-docs.yml +++ b/.github/workflows/build-and-deploy-docs.yml @@ -40,19 +40,6 @@ jobs: key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - - uses: actions/cache@v5 - name: Cache node_modules - with: - path: | - node_modules - src/node_modules - admin/node_modules - ui/node_modules - bin/node_modules - doc/node_modules - key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-node-modules- - uses: actions/cache@v5 name: Cache vitepress build with: diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 2c1e31284e5..35811cad578 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -49,19 +49,6 @@ jobs: key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - - uses: actions/cache@v5 - name: Cache node_modules - with: - path: | - node_modules - src/node_modules - admin/node_modules - ui/node_modules - bin/node_modules - doc/node_modules - key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-node-modules- - uses: pnpm/action-setup@v6 name: Install pnpm with: diff --git a/.github/workflows/frontend-admin-tests.yml b/.github/workflows/frontend-admin-tests.yml index 37f3c5b0e0f..dff5fc24dff 100644 --- a/.github/workflows/frontend-admin-tests.yml +++ b/.github/workflows/frontend-admin-tests.yml @@ -35,19 +35,6 @@ jobs: key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - - uses: actions/cache@v5 - name: Cache node_modules - with: - path: | - node_modules - src/node_modules - admin/node_modules - ui/node_modules - bin/node_modules - doc/node_modules - key: ${{ runner.os }}-node${{ matrix.node }}-modules-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-node${{ matrix.node }}-modules- - uses: pnpm/action-setup@v6 name: Install pnpm with: diff --git a/.github/workflows/frontend-tests.yml b/.github/workflows/frontend-tests.yml index 530af551870..c972000b0d5 100644 --- a/.github/workflows/frontend-tests.yml +++ b/.github/workflows/frontend-tests.yml @@ -28,19 +28,6 @@ jobs: key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - - uses: actions/cache@v5 - name: Cache node_modules - with: - path: | - node_modules - src/node_modules - admin/node_modules - ui/node_modules - bin/node_modules - doc/node_modules - key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-node-modules- - uses: actions/cache@v5 name: Cache Playwright browsers with: @@ -104,19 +91,6 @@ jobs: key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - - uses: actions/cache@v5 - name: Cache node_modules - with: - path: | - node_modules - src/node_modules - admin/node_modules - ui/node_modules - bin/node_modules - doc/node_modules - key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-node-modules- - uses: actions/cache@v5 name: Cache Playwright browsers with: diff --git a/.github/workflows/handleRelease.yml b/.github/workflows/handleRelease.yml index 2b931d4b2ea..3149d217286 100644 --- a/.github/workflows/handleRelease.yml +++ b/.github/workflows/handleRelease.yml @@ -35,19 +35,6 @@ jobs: key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - - uses: actions/cache@v5 - name: Cache node_modules - with: - path: | - node_modules - src/node_modules - admin/node_modules - ui/node_modules - bin/node_modules - doc/node_modules - key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-node-modules- - uses: pnpm/action-setup@v6 name: Install pnpm with: diff --git a/.github/workflows/load-test.yml b/.github/workflows/load-test.yml index 91fa4de0e85..06660afdbff 100644 --- a/.github/workflows/load-test.yml +++ b/.github/workflows/load-test.yml @@ -32,19 +32,6 @@ jobs: key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - - uses: actions/cache@v5 - name: Cache node_modules - with: - path: | - node_modules - src/node_modules - admin/node_modules - ui/node_modules - bin/node_modules - doc/node_modules - key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-node-modules- - uses: pnpm/action-setup@v6 name: Install pnpm with: @@ -79,19 +66,6 @@ jobs: key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - - uses: actions/cache@v5 - name: Cache node_modules - with: - path: | - node_modules - src/node_modules - admin/node_modules - ui/node_modules - bin/node_modules - doc/node_modules - key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-node-modules- - uses: pnpm/action-setup@v6 name: Install pnpm with: @@ -151,19 +125,6 @@ jobs: key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - - uses: actions/cache@v5 - name: Cache node_modules - with: - path: | - node_modules - src/node_modules - admin/node_modules - ui/node_modules - bin/node_modules - doc/node_modules - key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-node-modules- - uses: pnpm/action-setup@v6 name: Install pnpm with: diff --git a/.github/workflows/perform-type-check.yml b/.github/workflows/perform-type-check.yml index 938bf1489f2..aacfe279f2e 100644 --- a/.github/workflows/perform-type-check.yml +++ b/.github/workflows/perform-type-check.yml @@ -32,19 +32,6 @@ jobs: key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - - uses: actions/cache@v5 - name: Cache node_modules - with: - path: | - node_modules - src/node_modules - admin/node_modules - ui/node_modules - bin/node_modules - doc/node_modules - key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-node-modules- - uses: pnpm/action-setup@v6 name: Install pnpm with: diff --git a/.github/workflows/rate-limit.yml b/.github/workflows/rate-limit.yml index edcfc9e51d5..861d576c203 100644 --- a/.github/workflows/rate-limit.yml +++ b/.github/workflows/rate-limit.yml @@ -35,19 +35,6 @@ jobs: key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - - uses: actions/cache@v5 - name: Cache node_modules - with: - path: | - node_modules - src/node_modules - admin/node_modules - ui/node_modules - bin/node_modules - doc/node_modules - key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-node-modules- - uses: pnpm/action-setup@v6 name: Install pnpm with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6925044a2a5..e9eb3d373e4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -54,20 +54,6 @@ jobs: key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - - uses: actions/cache@v5 - name: Cache node_modules (ether.github.com) - with: - path: ether.github.com/node_modules - key: ${{ runner.os }}-ghpages-node-modules-${{ hashFiles('ether.github.com/pnpm-lock.yaml', 'ether.github.com/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-ghpages-node-modules- - - uses: actions/cache@v5 - name: Cache node_modules (etherpad bin) - with: - path: etherpad/bin/node_modules - key: ${{ runner.os }}-bin-node-modules-${{ hashFiles('etherpad/bin/package.json') }} - restore-keys: | - ${{ runner.os }}-bin-node-modules- - uses: pnpm/action-setup@v6 name: Install pnpm with: diff --git a/.github/workflows/releaseEtherpad.yml b/.github/workflows/releaseEtherpad.yml index 5bb49b18bc0..731ae29309b 100644 --- a/.github/workflows/releaseEtherpad.yml +++ b/.github/workflows/releaseEtherpad.yml @@ -30,19 +30,6 @@ jobs: key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - - uses: actions/cache@v5 - name: Cache node_modules - with: - path: | - node_modules - src/node_modules - admin/node_modules - ui/node_modules - bin/node_modules - doc/node_modules - key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-node-modules- - uses: pnpm/action-setup@v6 name: Install pnpm with: diff --git a/.github/workflows/upgrade-from-latest-release.yml b/.github/workflows/upgrade-from-latest-release.yml index 9ee3240f2a2..e5260d449e6 100644 --- a/.github/workflows/upgrade-from-latest-release.yml +++ b/.github/workflows/upgrade-from-latest-release.yml @@ -42,19 +42,6 @@ jobs: key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - - uses: actions/cache@v5 - name: Cache node_modules - with: - path: | - node_modules - src/node_modules - admin/node_modules - ui/node_modules - bin/node_modules - doc/node_modules - key: ${{ runner.os }}-node${{ matrix.node }}-modules-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-node${{ matrix.node }}-modules- - uses: pnpm/action-setup@v6 name: Install pnpm with: