From d4b3d21dceb3cacd9a13d2cc8f89f55fa36d31e7 Mon Sep 17 00:00:00 2001 From: Anmol Sethi Date: Thu, 14 May 2020 21:37:58 -0400 Subject: [PATCH] Require minimum node 12 --- README.md | 2 ++ ci/build/npm-postinstall.sh | 10 ++++++++++ ci/steps/publish-npm.sh | 2 +- ci/steps/release-static.sh | 2 +- doc/CONTRIBUTING.md | 2 +- doc/npm.md | 2 ++ package.json | 5 ++++- 7 files changed, 21 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 135258e00..afb42f6f6 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,8 @@ platform or architecture. **note:** Installing via `npm` requires certain dependencies for the native module builds. See [./doc/npm.md](./doc/npm.md) for installing these dependencies. +You also need at least node v12 installed. See [#1633](https://github.com/cdr/code-server/issues/1633). + ```bash npm install -g code-server code-server diff --git a/ci/build/npm-postinstall.sh b/ci/build/npm-postinstall.sh index 171ce8245..daca99d25 100755 --- a/ci/build/npm-postinstall.sh +++ b/ci/build/npm-postinstall.sh @@ -2,6 +2,16 @@ set -eu main() { + # Grabs the major version of node from $npm_config_user_agent which looks like + # yarn/1.21.1 npm/? node/v14.2.0 darwin x64 + major_node_version=$(echo "$npm_config_user_agent" | sed -n 's/.*node\/v\([^.]*\).*/\1/p') + if [ "$major_node_version" -lt 12 ]; then + echo "code-server currently requires at least node v12" + echo "We have detected that you are on node v$major_node_version" + echo "See https://github.com/cdr/code-server/issues/1633" + exit 1 + fi + case "${npm_config_user_agent-}" in npm*) # We are running under npm. if [ "${npm_config_unsafe_perm-}" != "true" ]; then diff --git a/ci/steps/publish-npm.sh b/ci/steps/publish-npm.sh index 10865a613..be6161bf5 100755 --- a/ci/steps/publish-npm.sh +++ b/ci/steps/publish-npm.sh @@ -11,7 +11,7 @@ main() { download_artifact npm-package ./release # https://github.com/actions/upload-artifact/issues/38 - chmod +x $(grep -rl '^#!/.\+' release) + chmod +x $(grep -rl '^#!/.*' release) yarn publish --non-interactive release } diff --git a/ci/steps/release-static.sh b/ci/steps/release-static.sh index cd2514e77..08a4a1fa9 100755 --- a/ci/steps/release-static.sh +++ b/ci/steps/release-static.sh @@ -5,7 +5,7 @@ main() { cd "$(dirname "$0")/../.." # https://github.com/actions/upload-artifact/issues/38 - chmod +x $(grep -rl '^#!/.\+' release) + chmod +x $(grep -rl '^#!/.*' release) yarn release:static yarn test:static-release diff --git a/doc/CONTRIBUTING.md b/doc/CONTRIBUTING.md index 2eeefc47a..95d47f331 100644 --- a/doc/CONTRIBUTING.md +++ b/doc/CONTRIBUTING.md @@ -9,7 +9,7 @@ Please refer to [VS Code's prerequisites](https://github.com/Microsoft/vscode/wi Differences: -- We are not constrained by node version +- We require at least node v12 but later versions should work - We use [fnpm](https://github.com/goreleaser/nfpm) to build .deb and .rpm packages ## Development Workflow diff --git a/doc/npm.md b/doc/npm.md index 84712f61b..08704c0ca 100644 --- a/doc/npm.md +++ b/doc/npm.md @@ -3,6 +3,8 @@ If you're installing the npm module you'll need certain dependencies to build the native modules used by VS Code. +You also need at least node v12 installed. See [#1633](https://github.com/cdr/code-server/issues/1633). + ## Ubuntu, Debian ```bash diff --git a/package.json b/package.json index 2b696baed..fbb114c93 100644 --- a/package.json +++ b/package.json @@ -92,5 +92,8 @@ "coder", "vscode-remote", "browser-ide" - ] + ], + "engines": { + "node": ">= 12" + } }