From 646de6c3daf10ee12bf646896378c1cbbad985f7 Mon Sep 17 00:00:00 2001 From: Maggie Nolan Date: Wed, 29 Jan 2020 14:55:57 -0800 Subject: [PATCH] chore!: Drop support for Node 8 --- .github/workflows/ci.yaml | 2 +- README.md | 21 +++++++++------------ system-test/Dockerfile.node8-alpine | 14 -------------- system-test/system_test.sh | 4 ++-- 4 files changed, 12 insertions(+), 29 deletions(-) delete mode 100644 system-test/Dockerfile.node8-alpine diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 904dd300..1599b420 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node: [8, 10, 12, 13] + node: [ 10, 12, 13] steps: - uses: actions/checkout@v1 - uses: actions/setup-node@v1 diff --git a/README.md b/README.md index f9f882ff..51bf6d5d 100644 --- a/README.md +++ b/README.md @@ -7,23 +7,20 @@ [pprof][pprof-url] support for Node.js. ## Prerequisites -1. Your application will need to be using Node.js 8.9.4 or greater, Node.js -10.4.1 or greater, or any version of Node 12. The profiler should not be -enabled when using earlier versions of Node 8 and 10 because the profiler is -not stable with those versions of Node.js. - * Versions of Node.js 8 prior to 8.9.4 are impacted by - [this](https://bugs.chromium.org/p/v8/issues/detail?id=6623) issue, which - causes a memory leak when time profiling is enabled. - * Versions of Node.js 10 prior to 10.4.1 are impacted by - [this](https://bugs.chromium.org/p/chromium/issues/detail?id=847863) issue, - which can cause garbage collection to take several minutes when heap - profiling is enabled. +1. Your application will need to be using Node.js 10.4.1 or greater, or any +version of Node 12. + +The profiler should not be enabled when using earlier versions of Node 10, +since versions of Node.js 10 prior to 10.4.1 are impacted by +[this](https://bugs.chromium.org/p/chromium/issues/detail?id=847863) issue, +which can cause garbage collection to take several minutes when heap profiling +is enabled. 2. The `pprof` module has a native component that is used to collect profiles with v8's CPU and Heap profilers. You may need to install additional dependencies to build this module. * For Linux: `pprof` has prebuilt binaries available for Linux and Alpine - Linux for Node 8, 10, 11 and 12. No additional dependencies are required. + Linux for Node 10, 11 and 12. No additional dependencies are required. * For other environments: when using `@google-cloud/profiler` on environments that `pprof` does not have prebuilt binaries for, the module [`node-gyp`](https://www.npmjs.com/package/node-gyp) will be used to diff --git a/system-test/Dockerfile.node8-alpine b/system-test/Dockerfile.node8-alpine deleted file mode 100644 index 4440cb43..00000000 --- a/system-test/Dockerfile.node8-alpine +++ /dev/null @@ -1,14 +0,0 @@ -FROM golang:1.14-alpine as builder -RUN apk add --no-cache git -WORKDIR /root/ -RUN go get github.com/google/pprof - - -FROM node:8-alpine - -ARG ADDITIONAL_PACKAGES - -RUN apk add --no-cache bash $ADDITIONAL_PACKAGES -WORKDIR /root/ -COPY --from=builder /go/bin/pprof /bin -RUN chmod a+x /bin/pprof diff --git a/system-test/system_test.sh b/system-test/system_test.sh index 973027cb..70057fe2 100755 --- a/system-test/system_test.sh +++ b/system-test/system_test.sh @@ -20,7 +20,7 @@ if [[ "$RUN_ONLY_V8_CANARY_TEST" == "true" ]]; then NVM_NODEJS_ORG_MIRROR="https://nodejs.org/download/v8-canary" NODE_VERSIONS=(node) else - NODE_VERSIONS=(8 10 11 12) + NODE_VERSIONS=(10 11 12) fi for i in ${NODE_VERSIONS[@]}; do @@ -35,7 +35,7 @@ for i in ${NODE_VERSIONS[@]}; do # Test support for accurate line numbers with node versions supporting this # feature. - if [ "$i" != "8" ] && [ "$i" != "10" ] && [ "$i" != "11" ]; then + if [ "$i" != "10" ] && [ "$i" != "11" ]; then docker run -v $PWD/..:/src -e BINARY_HOST="$BINARY_HOST" \ -e VERIFY_TIME_LINE_NUMBERS="true" node$i-linux \ /src/system-test/test.sh