Skip to content

Commit 3de8494

Browse files
authored
feat: Add support for MongoDB 7 (#8761)
BREAKING CHANGE: `Parse.Query` no longer supports the BSON type `code`; although this feature was never officially documented, its removal is announced as a breaking change to protect deployments where it might be in use.
1 parent d3087ed commit 3de8494

17 files changed

+647
-2347
lines changed

.github/workflows/ci.yml

+62-58
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: ci
22
on:
33
push:
4-
branches: [ release, alpha, beta, next-major, 'release-[0-9]+.x.x' ]
4+
branches: [release, alpha, beta, next-major, 'release-[0-9]+.x.x']
55
pull_request:
66
branches:
77
- '**'
@@ -21,17 +21,17 @@ jobs:
2121
strategy:
2222
fail-fast: false
2323
matrix:
24-
language: [ 'javascript' ]
24+
language: ['javascript']
2525
steps:
26-
- name: Checkout repository
27-
uses: actions/checkout@v3
28-
- name: Initialize CodeQL
29-
uses: github/codeql-action/init@v2
30-
with:
31-
languages: ${{ matrix.language }}
32-
source-root: src
33-
- name: Perform CodeQL Analysis
34-
uses: github/codeql-action/analyze@v2
26+
- name: Checkout repository
27+
uses: actions/checkout@v3
28+
- name: Initialize CodeQL
29+
uses: github/codeql-action/init@v2
30+
with:
31+
languages: ${{ matrix.language }}
32+
source-root: src
33+
- name: Perform CodeQL Analysis
34+
uses: github/codeql-action/analyze@v2
3535
check-ci:
3636
name: Node Engine Check
3737
timeout-minutes: 15
@@ -54,30 +54,30 @@ jobs:
5454
- name: CI Node Engine Check
5555
run: npm run ci:checkNodeEngine
5656
check-lint:
57-
name: Lint
58-
timeout-minutes: 15
59-
runs-on: ubuntu-latest
60-
steps:
61-
- uses: actions/checkout@v2
62-
- name: Use Node.js ${{ matrix.NODE_VERSION }}
63-
uses: actions/setup-node@v2
64-
with:
65-
node-version: ${{ matrix.node-version }}
66-
- name: Cache Node.js modules
67-
uses: actions/cache@v2
68-
with:
69-
path: ~/.npm
70-
key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }}
71-
restore-keys: |
72-
${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-
73-
- name: Install dependencies
74-
run: npm ci
75-
- run: npm run lint
57+
name: Lint
58+
timeout-minutes: 15
59+
runs-on: ubuntu-latest
60+
steps:
61+
- uses: actions/checkout@v2
62+
- name: Use Node.js ${{ matrix.NODE_VERSION }}
63+
uses: actions/setup-node@v2
64+
with:
65+
node-version: ${{ matrix.node-version }}
66+
- name: Cache Node.js modules
67+
uses: actions/cache@v2
68+
with:
69+
path: ~/.npm
70+
key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }}
71+
restore-keys: |
72+
${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-
73+
- name: Install dependencies
74+
run: npm ci
75+
- run: npm run lint
7676
check-definitions:
77-
name: Check Definitions
78-
timeout-minutes: 5
79-
runs-on: ubuntu-latest
80-
steps:
77+
name: Check Definitions
78+
timeout-minutes: 5
79+
runs-on: ubuntu-latest
80+
steps:
8181
- uses: actions/checkout@v2
8282
- name: Use Node.js ${{ matrix.NODE_VERSION }}
8383
uses: actions/setup-node@v2
@@ -95,25 +95,25 @@ jobs:
9595
- name: CI Definitions Check
9696
run: npm run ci:definitionsCheck
9797
check-circular:
98-
name: Circular Dependencies
99-
timeout-minutes: 5
100-
runs-on: ubuntu-latest
101-
steps:
102-
- uses: actions/checkout@v2
103-
- name: Use Node.js ${{ matrix.NODE_VERSION }}
104-
uses: actions/setup-node@v2
105-
with:
106-
node-version: ${{ matrix.node-version }}
107-
- name: Cache Node.js modules
108-
uses: actions/cache@v2
109-
with:
110-
path: ~/.npm
111-
key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }}
112-
restore-keys: |
113-
${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-
114-
- name: Install dependencies
115-
run: npm ci
116-
- run: npm run madge:circular
98+
name: Circular Dependencies
99+
timeout-minutes: 5
100+
runs-on: ubuntu-latest
101+
steps:
102+
- uses: actions/checkout@v2
103+
- name: Use Node.js ${{ matrix.NODE_VERSION }}
104+
uses: actions/setup-node@v2
105+
with:
106+
node-version: ${{ matrix.node-version }}
107+
- name: Cache Node.js modules
108+
uses: actions/cache@v2
109+
with:
110+
path: ~/.npm
111+
key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }}
112+
restore-keys: |
113+
${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-
114+
- name: Install dependencies
115+
run: npm ci
116+
- run: npm run madge:circular
117117
check-docker:
118118
name: Docker Build
119119
timeout-minutes: 15
@@ -147,19 +147,23 @@ jobs:
147147
include:
148148
- name: MongoDB 4.2, ReplicaSet
149149
MONGODB_VERSION: 4.2.19
150-
MONGODB_TOPOLOGY: replicaset
150+
MONGODB_TOPOLOGY: replset
151151
NODE_VERSION: 19.3.0
152152
- name: MongoDB 4.4, ReplicaSet
153153
MONGODB_VERSION: 4.4.13
154-
MONGODB_TOPOLOGY: replicaset
154+
MONGODB_TOPOLOGY: replset
155155
NODE_VERSION: 19.3.0
156156
- name: MongoDB 5, ReplicaSet
157157
MONGODB_VERSION: 5.3.2
158-
MONGODB_TOPOLOGY: replicaset
158+
MONGODB_TOPOLOGY: replset
159159
NODE_VERSION: 19.3.0
160160
- name: MongoDB 6, ReplicaSet
161161
MONGODB_VERSION: 6.0.2
162-
MONGODB_TOPOLOGY: replicaset
162+
MONGODB_TOPOLOGY: replset
163+
NODE_VERSION: 19.3.0
164+
- name: MongoDB 7, ReplicaSet
165+
MONGODB_VERSION: 7.0.1
166+
MONGODB_TOPOLOGY: replset
163167
NODE_VERSION: 19.3.0
164168
- name: Redis Cache
165169
PARSE_SERVER_TEST_CACHE: redis
@@ -186,7 +190,7 @@ jobs:
186190
redis:
187191
image: redis
188192
ports:
189-
- 6379:6379
193+
- 6379:6379
190194
env:
191195
MONGODB_VERSION: ${{ matrix.MONGODB_VERSION }}
192196
MONGODB_TOPOLOGY: ${{ matrix.MONGODB_TOPOLOGY }}

README.md

+7-6
Original file line numberDiff line numberDiff line change
@@ -139,12 +139,13 @@ Parse Server is continuously tested with the most recent releases of Node.js to
139139
Parse Server is continuously tested with the most recent releases of MongoDB to ensure compatibility. We follow the [MongoDB support schedule](https://www.mongodb.com/support-policy) and [MongoDB lifecycle schedule](https://www.mongodb.com/support-policy/lifecycles) and only test against versions that are officially supported and have not reached their end-of-life date. We consider the end-of-life date of a MongoDB "rapid release" to be the same as its major version release.
140140

141141
| Version | Latest Version | End-of-Life | Compatible |
142-
|-------------|----------------|---------------|------------|
143-
| MongoDB 4.0 | 4.0.28 | April 2022 | ✅ Yes |
144-
| MongoDB 4.2 | 4.2.19 | April 2023 | ✅ Yes |
145-
| MongoDB 4.4 | 4.4.13 | February 2024 | ✅ Yes |
146-
| MongoDB 5 | 5.3.2 | October 2024 | ✅ Yes |
147-
| MongoDB 6 | 6.0.2 | July 2025 | ✅ Yes |
142+
| ----------- | -------------- | ------------- | ---------- |
143+
| MongoDB 4.0 | 4.0.28 | April 2022 | ✅ Yes |
144+
| MongoDB 4.2 | 4.2.19 | April 2023 | ✅ Yes |
145+
| MongoDB 4.4 | 4.4.13 | February 2024 | ✅ Yes |
146+
| MongoDB 5 | 5.3.2 | October 2024 | ✅ Yes |
147+
| MongoDB 6 | 6.0.2 | July 2025 | ✅ Yes |
148+
| MongoDB 7 | 7.0.1 | TDB | ✅ Yes |
148149

149150
#### PostgreSQL
150151

0 commit comments

Comments
 (0)