Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/backend-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
fail-fast: false
matrix:
# PRs: test on latest Node only. Push to develop: full matrix.
node: ${{ github.event_name == 'pull_request' && fromJSON('[24]') || fromJSON('[20, 22, 24]') }}
node: ${{ github.event_name == 'pull_request' && fromJSON('[24]') || fromJSON('[22, 24, 25]') }}
steps:
-
name: Checkout repository
Expand Down Expand Up @@ -85,7 +85,7 @@ jobs:
strategy:
fail-fast: false
matrix:
node: ${{ github.event_name == 'pull_request' && fromJSON('[24]') || fromJSON('[20, 22, 24]') }}
node: ${{ github.event_name == 'pull_request' && fromJSON('[24]') || fromJSON('[22, 24, 25]') }}
steps:
-
name: Checkout repository
Expand Down Expand Up @@ -150,7 +150,7 @@ jobs:
strategy:
fail-fast: false
matrix:
node: [20, 22, 24]
node: [22, 24, 25]
name: Windows without plugins
runs-on: windows-latest
steps:
Expand Down Expand Up @@ -201,7 +201,7 @@ jobs:
strategy:
fail-fast: false
matrix:
node: [20, 22, 24]
node: [22, 24, 25]
name: Windows with Plugins
runs-on: windows-latest

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/frontend-admin-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
fail-fast: false
matrix:
# PRs: single Node version. Push: full matrix.
node: ${{ github.event_name == 'pull_request' && fromJSON('[24]') || fromJSON('[20, 22, 24]') }}
node: ${{ github.event_name == 'pull_request' && fromJSON('[24]') || fromJSON('[22, 24, 25]') }}

steps:
-
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/releaseEtherpad.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ jobs:
- uses: actions/setup-node@v6
with:
# OIDC trusted publishing needs npm >= 11.5.1, which requires
# Node >= 20.17.0. setup-node's `20` resolves to the latest
# 20.x, which satisfies that.
node-version: 20
# Node >= 20.17.0. setup-node's `22` resolves to the latest
# 22.x, which satisfies that.
node-version: 22
registry-url: https://registry.npmjs.org/
- name: Upgrade npm to >=11.5.1 (required for trusted publishing)
run: npm install -g npm@latest
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/upgrade-from-latest-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
fail-fast: false
matrix:
# PRs: single Node version. Push: full matrix.
node: ${{ github.event_name == 'pull_request' && fromJSON('[24]') || fromJSON('[20, 22, 24]') }}
node: ${{ github.event_name == 'pull_request' && fromJSON('[24]') || fromJSON('[22, 24, 25]') }}
steps:
-
name: Check out latest release
Expand Down
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
# 2.7.3

### Breaking changes

- **Minimum required Node.js version is now 22.** Node.js 20 is reaching end-of-life (see https://nodejs.org/en/about/previous-releases). The CI matrix now targets Node 22, 24, and 25. Upgrading should be straightforward — install a current Node.js release before updating Etherpad.

# 2.7.2

### Notable enhancements and fixes
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ If your organisation runs Etherpad and would be willing to be listed publicly, p

### Quick install (one-liner)

The fastest way to get Etherpad running. Requires `git` and Node.js >= 20.
The fastest way to get Etherpad running. Requires `git` and Node.js >= 22.

**macOS / Linux / WSL:**

Expand Down Expand Up @@ -160,7 +160,7 @@ volumes:

### Requirements

[Node.js](https://nodejs.org/) >= 20.
[Node.js](https://nodejs.org/) >= 22.

### Windows, macOS, Linux

Expand Down
6 changes: 3 additions & 3 deletions bin/plugins/lib/npmpublish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ jobs:
- uses: actions/setup-node@v6
with:
# OIDC trusted publishing needs npm >= 11.5.1, which requires
# Node >= 20.17.0. setup-node's `20` resolves to the latest
# 20.x, which satisfies that.
node-version: 20
# Node >= 20.17.0. setup-node's `22` resolves to the latest
# 22.x, which satisfies that.
node-version: 22
registry-url: https://registry.npmjs.org/
- name: Upgrade npm to >=11.5.1 (required for trusted publishing)
run: npm install -g npm@latest
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
"ui": "link:ui"
},
"engines": {
"node": ">=20.0.0"
"node": ">=22.0.0"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

1. Node engine bumped to 22 📘 Rule violation ⚙ Maintainability

This PR raises the minimum supported Node.js version from 20 to 22, which is a breaking
compatibility change for existing users who are still on Node 20. The change introduces a hard
requirement with no compatibility/fallback path, violating the backward-compatibility requirement.
Agent Prompt
## Issue description
The PR introduces a breaking increase of the minimum Node.js requirement to 22 (via `engines.node`), which violates the backward-compatibility requirement unless a compatibility/deprecation strategy is provided.

## Issue Context
Users on Node 20 will be unable to install/run after this change. If dropping Node 20 is intended, provide a compatibility plan (e.g., deprecation period, delayed enforcement, or release strategy that preserves compatibility in this line).

## Fix Focus Areas
- package.json[45-45]
- src/package.json[136-136]
- CHANGELOG.md[1-6]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Node 20 is end of life. People can update without any problem.

Comment thread
qodo-free-for-open-source-projects[bot] marked this conversation as resolved.
Comment thread
qodo-free-for-open-source-projects[bot] marked this conversation as resolved.
},
"repository": {
"type": "git",
Expand Down
2 changes: 1 addition & 1 deletion src/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@
"vitest": "^4.1.5"
},
"engines": {
"node": ">=20.0.0",
"node": ">=22.0.0",
"npm": ">=6.14.0",
"pnpm": ">=8.3.0"
},
Expand Down
Loading