Skip to content

Commit ced4872

Browse files
authored
feat: Add support for Node 20, drop support for Node 14, 16 (#8907)
BREAKING CHANGE: Removes support for Node 14 and 16
1 parent 104990b commit ced4872

7 files changed

+55
-68
lines changed

.github/workflows/ci-automated-check-environment.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ jobs:
1313
runs-on: ubuntu-latest
1414
steps:
1515
- name: Checkout default branch
16-
uses: actions/checkout@v2
16+
uses: actions/checkout@v4
1717
- name: Setup Node
1818
uses: actions/setup-node@v2
1919
with:
2020
node-version: 14
2121
- name: Cache Node.js modules
22-
uses: actions/cache@v2
22+
uses: actions/cache@v4
2323
with:
2424
path: ~/.npm
2525
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
@@ -36,7 +36,7 @@ jobs:
3636
runs-on: ubuntu-latest
3737
steps:
3838
- name: Checkout default branch
39-
uses: actions/checkout@v2
39+
uses: actions/checkout@v4
4040
- name: Compose branch name for PR
4141
id: branch
4242
run: echo "::set-output name=name::ci-bump-environment"

.github/workflows/ci.yml

+36-47
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ on:
88
paths-ignore:
99
- '**/**.md'
1010
env:
11-
NODE_VERSION: 19.3.0
11+
NODE_VERSION: 20.11.1
1212
PARSE_SERVER_TEST_TIMEOUT: 20000
1313
jobs:
1414
check-code-analysis:
@@ -24,7 +24,7 @@ jobs:
2424
language: ['javascript']
2525
steps:
2626
- name: Checkout repository
27-
uses: actions/checkout@v3
27+
uses: actions/checkout@v4
2828
- name: Initialize CodeQL
2929
uses: github/codeql-action/init@v2
3030
with:
@@ -37,13 +37,13 @@ jobs:
3737
timeout-minutes: 15
3838
runs-on: ubuntu-latest
3939
steps:
40-
- uses: actions/checkout@v2
40+
- uses: actions/checkout@v4
4141
- name: Use Node.js ${{ matrix.NODE_VERSION }}
42-
uses: actions/setup-node@v2
42+
uses: actions/setup-node@v4
4343
with:
4444
node-version: ${{ matrix.node-version }}
4545
- name: Cache Node.js modules
46-
uses: actions/cache@v2
46+
uses: actions/cache@v4
4747
with:
4848
path: ~/.npm
4949
key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }}
@@ -58,13 +58,13 @@ jobs:
5858
timeout-minutes: 15
5959
runs-on: ubuntu-latest
6060
steps:
61-
- uses: actions/checkout@v2
61+
- uses: actions/checkout@v4
6262
- name: Use Node.js ${{ matrix.NODE_VERSION }}
63-
uses: actions/setup-node@v2
63+
uses: actions/setup-node@v4
6464
with:
6565
node-version: ${{ matrix.node-version }}
6666
- name: Cache Node.js modules
67-
uses: actions/cache@v2
67+
uses: actions/cache@v4
6868
with:
6969
path: ~/.npm
7070
key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }}
@@ -78,13 +78,13 @@ jobs:
7878
timeout-minutes: 5
7979
runs-on: ubuntu-latest
8080
steps:
81-
- uses: actions/checkout@v2
81+
- uses: actions/checkout@v4
8282
- name: Use Node.js ${{ matrix.NODE_VERSION }}
83-
uses: actions/setup-node@v2
83+
uses: actions/setup-node@v4
8484
with:
8585
node-version: ${{ matrix.node-version }}
8686
- name: Cache Node.js modules
87-
uses: actions/cache@v2
87+
uses: actions/cache@v4
8888
with:
8989
path: ~/.npm
9090
key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }}
@@ -99,13 +99,13 @@ jobs:
9999
timeout-minutes: 5
100100
runs-on: ubuntu-latest
101101
steps:
102-
- uses: actions/checkout@v2
102+
- uses: actions/checkout@v4
103103
- name: Use Node.js ${{ matrix.NODE_VERSION }}
104-
uses: actions/setup-node@v2
104+
uses: actions/setup-node@v4
105105
with:
106106
node-version: ${{ matrix.node-version }}
107107
- name: Cache Node.js modules
108-
uses: actions/cache@v2
108+
uses: actions/cache@v4
109109
with:
110110
path: ~/.npm
111111
key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }}
@@ -120,7 +120,7 @@ jobs:
120120
runs-on: ubuntu-latest
121121
steps:
122122
- name: Checkout repository
123-
uses: actions/checkout@v2
123+
uses: actions/checkout@v4
124124
- name: Set up QEMU
125125
id: qemu
126126
uses: docker/setup-qemu-action@v1
@@ -136,7 +136,7 @@ jobs:
136136
timeout-minutes: 5
137137
runs-on: ubuntu-latest
138138
steps:
139-
- uses: actions/checkout@v2
139+
- uses: actions/checkout@v4
140140
- name: Check NPM lock file version
141141
uses: mansona/npm-lockfile-version@v1
142142
with:
@@ -148,40 +148,32 @@ jobs:
148148
- name: MongoDB 4.2, ReplicaSet
149149
MONGODB_VERSION: 4.2.19
150150
MONGODB_TOPOLOGY: replset
151-
NODE_VERSION: 19.3.0
151+
NODE_VERSION: 20.11.1
152152
- name: MongoDB 4.4, ReplicaSet
153153
MONGODB_VERSION: 4.4.13
154154
MONGODB_TOPOLOGY: replset
155-
NODE_VERSION: 19.3.0
155+
NODE_VERSION: 20.11.1
156156
- name: MongoDB 5, ReplicaSet
157157
MONGODB_VERSION: 5.3.2
158158
MONGODB_TOPOLOGY: replset
159-
NODE_VERSION: 19.3.0
159+
NODE_VERSION: 20.11.1
160160
- name: MongoDB 6, ReplicaSet
161161
MONGODB_VERSION: 6.0.2
162162
MONGODB_TOPOLOGY: replset
163-
NODE_VERSION: 19.3.0
163+
NODE_VERSION: 20.11.1
164164
- name: MongoDB 7, ReplicaSet
165165
MONGODB_VERSION: 7.0.1
166166
MONGODB_TOPOLOGY: replset
167-
NODE_VERSION: 19.3.0
167+
NODE_VERSION: 20.11.1
168168
- name: Redis Cache
169169
PARSE_SERVER_TEST_CACHE: redis
170170
MONGODB_VERSION: 4.4.13
171171
MONGODB_TOPOLOGY: standalone
172-
NODE_VERSION: 19.3.0
173-
- name: Node 14
174-
MONGODB_VERSION: 4.4.13
175-
MONGODB_TOPOLOGY: standalone
176-
NODE_VERSION: 14.21.1
177-
- name: Node 16
178-
MONGODB_VERSION: 4.4.13
179-
MONGODB_TOPOLOGY: standalone
180-
NODE_VERSION: 16.18.1
172+
NODE_VERSION: 20.11.1
181173
- name: Node 18
182174
MONGODB_VERSION: 4.4.13
183175
MONGODB_TOPOLOGY: standalone
184-
NODE_VERSION: 18.12.1
176+
NODE_VERSION: 18.19.1
185177
fail-fast: false
186178
name: ${{ matrix.name }}
187179
timeout-minutes: 15
@@ -200,16 +192,13 @@ jobs:
200192
steps:
201193
- name: Fix usage of insecure GitHub protocol
202194
run: sudo git config --system url."https://github".insteadOf "git://github"
203-
- name: Fix git protocol for Node 14
204-
if: ${{ startsWith(matrix.NODE_VERSION, '14.') }}
205-
run: sudo git config --system url."https://github".insteadOf "ssh://git@github"
206-
- uses: actions/checkout@v2
195+
- uses: actions/checkout@v4
207196
- name: Use Node.js ${{ matrix.NODE_VERSION }}
208-
uses: actions/setup-node@v2
197+
uses: actions/setup-node@v4
209198
with:
210199
node-version: ${{ matrix.NODE_VERSION }}
211200
- name: Cache Node.js modules
212-
uses: actions/cache@v2
201+
uses: actions/cache@v4
213202
with:
214203
path: ~/.npm
215204
key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }}
@@ -228,25 +217,25 @@ jobs:
228217
include:
229218
- name: PostgreSQL 13, PostGIS 3.1
230219
POSTGRES_IMAGE: postgis/postgis:13-3.1
231-
NODE_VERSION: 19.3.0
220+
NODE_VERSION: 20.11.1
232221
- name: PostgreSQL 13, PostGIS 3.2
233222
POSTGRES_IMAGE: postgis/postgis:13-3.2
234-
NODE_VERSION: 19.3.0
223+
NODE_VERSION: 20.11.1
235224
- name: PostgreSQL 13, PostGIS 3.3
236225
POSTGRES_IMAGE: postgis/postgis:13-3.3
237-
NODE_VERSION: 19.3.0
226+
NODE_VERSION: 20.11.1
238227
- name: PostgreSQL 13, PostGIS 3.4
239228
POSTGRES_IMAGE: postgis/postgis:13-3.4
240-
NODE_VERSION: 19.3.0
229+
NODE_VERSION: 20.11.1
241230
- name: PostgreSQL 14, PostGIS 3.4
242231
POSTGRES_IMAGE: postgis/postgis:14-3.4
243-
NODE_VERSION: 19.3.0
232+
NODE_VERSION: 20.11.1
244233
- name: PostgreSQL 15, PostGIS 3.4
245234
POSTGRES_IMAGE: postgis/postgis:15-3.4
246-
NODE_VERSION: 19.3.0
235+
NODE_VERSION: 20.11.1
247236
- name: PostgreSQL 16, PostGIS 3.4
248237
POSTGRES_IMAGE: postgis/postgis:15-3.4
249-
NODE_VERSION: 19.3.0
238+
NODE_VERSION: 20.11.1
250239
fail-fast: false
251240
name: ${{ matrix.name }}
252241
timeout-minutes: 15
@@ -272,13 +261,13 @@ jobs:
272261
PARSE_SERVER_TEST_DATABASE_URI: postgres://postgres:postgres@localhost:5432/parse_server_postgres_adapter_test_database
273262
NODE_VERSION: ${{ matrix.NODE_VERSION }}
274263
steps:
275-
- uses: actions/checkout@v2
264+
- uses: actions/checkout@v4
276265
- name: Use Node.js ${{ matrix.NODE_VERSION }}
277-
uses: actions/setup-node@v2
266+
uses: actions/setup-node@v4
278267
with:
279268
node-version: ${{ matrix.NODE_VERSION }}
280269
- name: Cache Node.js modules
281-
uses: actions/cache@v2
270+
uses: actions/cache@v4
282271
with:
283272
path: ~/.npm
284273
key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }}

.github/workflows/release-automated.yml

+9-9
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ jobs:
1212
- name: Determine trigger branch name
1313
id: branch
1414
run: echo "::set-output name=trigger_branch::${GITHUB_REF#refs/*/}"
15-
- uses: actions/checkout@v2
15+
- uses: actions/checkout@v4
1616
with:
1717
persist-credentials: false
18-
- uses: actions/setup-node@v2
18+
- uses: actions/setup-node@v4
1919
with:
20-
node-version: 18.1.0
20+
node-version: 18.19.1
2121
registry-url: https://registry.npmjs.org/
2222
- name: Cache Node.js modules
23-
uses: actions/cache@v2
23+
uses: actions/cache@v4
2424
with:
2525
path: ~/.npm
2626
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
@@ -51,7 +51,7 @@ jobs:
5151
id: branch
5252
run: echo "::set-output name=branch_name::${GITHUB_REF#refs/*/}"
5353
- name: Checkout repository
54-
uses: actions/checkout@v2
54+
uses: actions/checkout@v4
5555
with:
5656
ref: ${{ needs.release.outputs.current_tag }}
5757
- name: Set up QEMU
@@ -89,13 +89,13 @@ jobs:
8989
runs-on: ubuntu-latest
9090
timeout-minutes: 15
9191
steps:
92-
- uses: actions/checkout@v2
92+
- uses: actions/checkout@v4
9393
- name: Use Node.js
94-
uses: actions/setup-node@v1
94+
uses: actions/setup-node@v4
9595
with:
96-
node-version: 18.1.0
96+
node-version: 18.19.1
9797
- name: Cache Node.js modules
98-
uses: actions/cache@v2
98+
uses: actions/cache@v4
9999
with:
100100
path: ~/.npm
101101
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}

.github/workflows/release-manual-docker.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
id: branch
2424
run: echo "::set-output name=branch_name::${GITHUB_REF#refs/*/}"
2525
- name: Checkout repository
26-
uses: actions/checkout@v2
26+
uses: actions/checkout@v4
2727
with:
2828
ref: ${{ github.event.inputs.ref }}
2929
- name: Set up QEMU

README.md

+3-5
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
[![Coverage](https://img.shields.io/codecov/c/github/parse-community/parse-server/alpha.svg)](https://codecov.io/github/parse-community/parse-server?branch=alpha)
1010
[![auto-release](https://img.shields.io/badge/%F0%9F%9A%80-auto--release-9e34eb.svg)](https://github.com/parse-community/parse-dashboard/releases)
1111

12-
[![Node Version](https://img.shields.io/badge/nodejs-14,_16,_18-green.svg?logo=node.js&style=flat)](https://nodejs.org)
12+
[![Node Version](https://img.shields.io/badge/nodejs-18,_20-green.svg?logo=node.js&style=flat)](https://nodejs.org)
1313
[![MongoDB Version](https://img.shields.io/badge/mongodb-4.0,_4.2,_4.4,_5,_6-green.svg?logo=mongodb&style=flat)](https://www.mongodb.com)
1414
[![Postgres Version](https://img.shields.io/badge/postgresql-13,_14,_15,_16-green.svg?logo=postgresql&style=flat)](https://www.postgresql.org)
1515

@@ -129,10 +129,8 @@ Parse Server is continuously tested with the most recent releases of Node.js to
129129

130130
| Version | Latest Version | End-of-Life | Compatible |
131131
|------------|----------------|-------------|------------|
132-
| Node.js 14 | 14.19.1 | April 2023 | ✅ Yes |
133-
| Node.js 16 | 16.14.2 | April 2024 | ✅ Yes |
134-
| Node.js 18 | 18.12.1 | April 2025 | ✅ Yes |
135-
| Node.js 19 | 19.3.0 | June 2023 | ✅ Yes |
132+
| Node.js 18 | 18.19.1 | April 2025 | ✅ Yes |
133+
| Node.js 20 | 20.11.1 | April 2026 | ✅ Yes |
136134

137135
#### MongoDB
138136

package-lock.json

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@
137137
"madge:circular": "node_modules/.bin/madge ./src --circular"
138138
},
139139
"engines": {
140-
"node": ">=14.21.0 <17 || >=18 <19"
140+
"node": ">=18.0.0 <21"
141141
},
142142
"bin": {
143143
"parse-server": "bin/parse-server"

0 commit comments

Comments
 (0)