diff --git a/.github/workflows/backend-tests.yml b/.github/workflows/backend-tests.yml index a7c254042..0b12eda68 100644 --- a/.github/workflows/backend-tests.yml +++ b/.github/workflows/backend-tests.yml @@ -16,7 +16,7 @@ jobs: strategy: fail-fast: false matrix: - node: [10, 12, 14, 15] + node: [12, 14, 15] steps: - name: Checkout repository @@ -50,7 +50,7 @@ jobs: strategy: fail-fast: false matrix: - node: [10, 12, 14, 15] + node: [12, 14, 15] steps: - name: Checkout repository diff --git a/.github/workflows/frontend-admin-tests.yml b/.github/workflows/frontend-admin-tests.yml index bff9228a7..98385e9f8 100644 --- a/.github/workflows/frontend-admin-tests.yml +++ b/.github/workflows/frontend-admin-tests.yml @@ -11,7 +11,7 @@ jobs: strategy: fail-fast: false matrix: - node: [10, 12, 14, 15] + node: [12, 14, 15] steps: - name: Generate Sauce Labs strings diff --git a/.github/workflows/upgrade-from-latest-release.yml b/.github/workflows/upgrade-from-latest-release.yml index d32c51f97..171dfc4ea 100644 --- a/.github/workflows/upgrade-from-latest-release.yml +++ b/.github/workflows/upgrade-from-latest-release.yml @@ -16,7 +16,7 @@ jobs: strategy: fail-fast: false matrix: - node: [10, 12, 14, 15] + node: [12, 14, 15] steps: - name: Check out latest release diff --git a/CHANGELOG.md b/CHANGELOG.md index a2e3184df..2b251d6af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### Compatibility changes +* Node.js v12.13.0 or later is now required. * The `favicon` setting is now interpreted as a pathname to a favicon file, not a URL. Please see the documentation comment in `settings.json.template`. * The undocumented `faviconPad` and `faviconTimeslider` settings have been diff --git a/README.md b/README.md index d3543186b..e0c110b3f 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ Etherpad is extremely flexible providing you the means to modify it to solve wha # Installation ## Requirements -- `nodejs` >= **10.17.0**. +- [Node.js](https://nodejs.org/) >= **12.13.0**. ## GNU/Linux and other UNIX-like systems @@ -46,7 +46,8 @@ src/bin/run.sh ``` ### Manual install -You'll need git and [node.js](https://nodejs.org) installed (minimum required Node version: **10.17.0**). + +You'll need Git and [Node.js](https://nodejs.org/) installed. **As any user (we recommend creating a separate user called etherpad):** diff --git a/doc/plugins.md b/doc/plugins.md index 1ed0c4f12..cc7c867d5 100644 --- a/doc/plugins.md +++ b/doc/plugins.md @@ -225,7 +225,7 @@ publish your plugin. "author": "USERNAME (REAL NAME) ", "contributors": [], "dependencies": {"MODULE": "0.3.20"}, - "engines": { "node": "^10.17.0 || >=11.14.0"} + "engines": {"node": ">=12.13.0"} } ``` diff --git a/src/bin/cleanRun.sh b/src/bin/cleanRun.sh index d8407d92e..556180eb4 100755 --- a/src/bin/cleanRun.sh +++ b/src/bin/cleanRun.sh @@ -36,4 +36,4 @@ src/bin/installDeps.sh "$@" || exit 1 #Move to the node folder and start echo "Starting Etherpad..." -exec node $(compute_node_args) src/node/server.js "$@" +exec node src/node/server.js "$@" diff --git a/src/bin/debugRun.sh b/src/bin/debugRun.sh index fd5c34b2c..2fae42eee 100755 --- a/src/bin/debugRun.sh +++ b/src/bin/debugRun.sh @@ -16,4 +16,4 @@ echo "Open 'chrome://inspect' on Chrome to start debugging." # Use 0.0.0.0 to allow external connections to the debugger # (ex: running Etherpad on a docker container). Use default port # (9229) -exec node $(compute_node_args) --inspect=0.0.0.0:9229 src/node/server.js "$@" +exec node --inspect=0.0.0.0:9229 src/node/server.js "$@" diff --git a/src/bin/doc/package.json b/src/bin/doc/package.json index a1a83423c..c17020ea6 100644 --- a/src/bin/doc/package.json +++ b/src/bin/doc/package.json @@ -4,7 +4,7 @@ "description": "Internal tool for generating Node.js API docs", "version": "0.0.0", "engines": { - "node": ">=10.17.0" + "node": ">=12.13.0" }, "dependencies": { "marked": "^2.0.0" diff --git a/src/bin/fastRun.sh b/src/bin/fastRun.sh index ec53f20fe..b2703316b 100755 --- a/src/bin/fastRun.sh +++ b/src/bin/fastRun.sh @@ -19,4 +19,4 @@ cd "${MY_DIR}/../.." || exit 1 echo "Running directly, without checking/installing dependencies" # run Etherpad main class -exec node $(compute_node_args) src/node/server.js "$@" +exec node src/node/server.js "$@" diff --git a/src/bin/functions.sh b/src/bin/functions.sh index c7f3c8556..e41fa8f39 100644 --- a/src/bin/functions.sh +++ b/src/bin/functions.sh @@ -1,5 +1,5 @@ # minimum required node version -REQUIRED_NODE_MAJOR=10 +REQUIRED_NODE_MAJOR=12 REQUIRED_NODE_MINOR=13 # minimum required npm version @@ -50,16 +50,6 @@ get_program_version() { } -compute_node_args() { - ARGS="" - - NODE_MAJOR=$(get_program_version "node" "major") - [ "$NODE_MAJOR" -eq "10" ] && ARGS="$ARGS --experimental-worker" - - echo $ARGS -} - - require_minimal_version() { PROGRAM_LABEL="$1" VERSION="$2" diff --git a/src/bin/plugins/checkPlugin.js b/src/bin/plugins/checkPlugin.js index 0bf3d25b9..3c36712ca 100755 --- a/src/bin/plugins/checkPlugin.js +++ b/src/bin/plugins/checkPlugin.js @@ -263,7 +263,7 @@ fs.readdir(pluginPath, (err, rootFiles) => { console.warn('No engines or node engine in package.json'); if (autoFix) { const engines = { - node: '^10.17.0 || >=11.14.0', + node: '>=12.13.0', }; parsedPackageJSON.engines = engines; writePackageJson(parsedPackageJSON); diff --git a/src/bin/run.sh b/src/bin/run.sh index 4f6993ff5..b655e9635 100755 --- a/src/bin/run.sh +++ b/src/bin/run.sh @@ -32,4 +32,4 @@ src/bin/installDeps.sh "$@" || exit 1 # Move to the node folder and start log "Starting Etherpad..." -exec node $(compute_node_args) src/node/server.js "$@" +exec node src/node/server.js "$@" diff --git a/src/node/server.js b/src/node/server.js index f895df2af..5fef8f330 100755 --- a/src/node/server.js +++ b/src/node/server.js @@ -41,8 +41,8 @@ if (settings.dumpOnUncleanExit) { * any modules that require newer versions of NodeJS */ const NodeVersion = require('./utils/NodeVersion'); -NodeVersion.enforceMinNodeVersion('10.17.0'); -NodeVersion.checkDeprecationStatus('10.17.0', '1.8.8'); +NodeVersion.enforceMinNodeVersion('12.13.0'); +NodeVersion.checkDeprecationStatus('12.13.0', '1.8.14'); const UpdateCheck = require('./utils/UpdateCheck'); const db = require('./db/DB'); diff --git a/src/package.json b/src/package.json index 7752ced48..9b981cf5d 100644 --- a/src/package.json +++ b/src/package.json @@ -235,7 +235,7 @@ "root": true }, "engines": { - "node": "^10.17.0 || >=11.14.0", + "node": ">=12.13.0", "npm": ">=5.5.1" }, "repository": {