Skip to content

Commit 3980ef1

Browse files
committed
Merge branch 'alpha' into moumouls/fixGraphIQL
# Conflicts: # package.json
2 parents 75fa0f4 + 2b00c5b commit 3980ef1

35 files changed

+1101
-282
lines changed

.github/workflows/ci.yml

+62-46
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,34 @@
11
name: ci
22
on:
33
push:
4-
branches: [ release, alpha, beta, next-major ]
4+
branches: [ release, alpha, beta ]
55
pull_request:
6-
branches:
7-
- '**'
6+
branches: [ release, alpha, beta ]
87
env:
9-
NODE_VERSION: 16.14.2
8+
NODE_VERSION: 18.1.0
109
PARSE_SERVER_TEST_TIMEOUT: 20000
1110
jobs:
11+
check-code-analysis:
12+
name: Code Analysis
13+
runs-on: ubuntu-latest
14+
permissions:
15+
actions: read
16+
contents: read
17+
security-events: write
18+
strategy:
19+
fail-fast: false
20+
matrix:
21+
language: [ 'javascript' ]
22+
steps:
23+
- name: Checkout repository
24+
uses: actions/checkout@v3
25+
- name: Initialize CodeQL
26+
uses: github/codeql-action/init@v2
27+
with:
28+
languages: ${{ matrix.language }}
29+
source-root: src
30+
- name: Perform CodeQL Analysis
31+
uses: github/codeql-action/analyze@v2
1232
check-ci:
1333
name: Node Engine Check
1434
timeout-minutes: 15
@@ -101,47 +121,37 @@ jobs:
101121
strategy:
102122
matrix:
103123
include:
104-
- name: MongoDB 5.2, ReplicaSet, WiredTiger
105-
MONGODB_VERSION: 5.2.1
106-
MONGODB_TOPOLOGY: replicaset
107-
MONGODB_STORAGE_ENGINE: wiredTiger
108-
NODE_VERSION: 14.19.1
109-
- name: MongoDB 5.1, ReplicaSet, WiredTiger
110-
MONGODB_VERSION: 5.1.1
124+
- name: MongoDB 4.0, Standalone, MMAPv1
125+
MONGODB_VERSION: 4.0.28
126+
MONGODB_TOPOLOGY: standalone
127+
MONGODB_STORAGE_ENGINE: mmapv1
128+
NODE_VERSION: 18.1.0
129+
- name: MongoDB 4.0, ReplicaSet, WiredTiger
130+
MONGODB_VERSION: 4.0.28
111131
MONGODB_TOPOLOGY: replicaset
112132
MONGODB_STORAGE_ENGINE: wiredTiger
113-
NODE_VERSION: 14.19.1
114-
- name: MongoDB 5.0, ReplicaSet, WiredTiger
115-
MONGODB_VERSION: 5.0.6
133+
NODE_VERSION: 18.1.0
134+
- name: MongoDB 4.2, ReplicaSet, WiredTiger
135+
MONGODB_VERSION: 4.2.19
116136
MONGODB_TOPOLOGY: replicaset
117137
MONGODB_STORAGE_ENGINE: wiredTiger
118-
NODE_VERSION: 16.14.2
138+
NODE_VERSION: 18.1.0
119139
- name: MongoDB 4.4, ReplicaSet, WiredTiger
120140
MONGODB_VERSION: 4.4.13
121141
MONGODB_TOPOLOGY: replicaset
122142
MONGODB_STORAGE_ENGINE: wiredTiger
123-
NODE_VERSION: 16.14.2
124-
- name: MongoDB 4.2, ReplicaSet, WiredTiger
125-
MONGODB_VERSION: 4.2.19
126-
MONGODB_TOPOLOGY: replicaset
127-
MONGODB_STORAGE_ENGINE: wiredTiger
128-
NODE_VERSION: 16.14.2
129-
- name: MongoDB 4.0, ReplicaSet, WiredTiger
130-
MONGODB_VERSION: 4.0.28
143+
NODE_VERSION: 18.1.0
144+
- name: MongoDB 5.3, ReplicaSet, WiredTiger
145+
MONGODB_VERSION: 5.3.2
131146
MONGODB_TOPOLOGY: replicaset
132147
MONGODB_STORAGE_ENGINE: wiredTiger
133-
NODE_VERSION: 16.14.2
134-
- name: MongoDB 4.0, Standalone, MMAPv1
135-
MONGODB_VERSION: 4.0.28
136-
MONGODB_TOPOLOGY: standalone
137-
MONGODB_STORAGE_ENGINE: mmapv1
138-
NODE_VERSION: 16.14.2
148+
NODE_VERSION: 18.1.0
139149
- name: Redis Cache
140150
PARSE_SERVER_TEST_CACHE: redis
141151
MONGODB_VERSION: 4.4.13
142152
MONGODB_TOPOLOGY: standalone
143153
MONGODB_STORAGE_ENGINE: wiredTiger
144-
NODE_VERSION: 16.14.2
154+
NODE_VERSION: 18.1.0
145155
- name: Node 12
146156
MONGODB_VERSION: 4.4.13
147157
MONGODB_TOPOLOGY: standalone
@@ -152,16 +162,16 @@ jobs:
152162
MONGODB_TOPOLOGY: standalone
153163
MONGODB_STORAGE_ENGINE: wiredTiger
154164
NODE_VERSION: 14.19.1
155-
- name: Node 17
165+
- name: Node 16
156166
MONGODB_VERSION: 4.4.13
157167
MONGODB_TOPOLOGY: standalone
158168
MONGODB_STORAGE_ENGINE: wiredTiger
159-
NODE_VERSION: 17.9.0
160-
- name: Node 18
169+
NODE_VERSION: 16.14.2
170+
- name: Node 17
161171
MONGODB_VERSION: 4.4.13
162172
MONGODB_TOPOLOGY: standalone
163173
MONGODB_STORAGE_ENGINE: wiredTiger
164-
NODE_VERSION: 18.1.0
174+
NODE_VERSION: 17.9.0
165175
fail-fast: false
166176
name: ${{ matrix.name }}
167177
timeout-minutes: 15
@@ -205,22 +215,28 @@ jobs:
205215
include:
206216
- name: PostgreSQL 11, PostGIS 3.0
207217
POSTGRES_IMAGE: postgis/postgis:11-3.0
208-
NODE_VERSION: 16.14.2
218+
NODE_VERSION: 18.1.0
209219
- name: PostgreSQL 11, PostGIS 3.1
210220
POSTGRES_IMAGE: postgis/postgis:11-3.1
211-
NODE_VERSION: 16.14.2
221+
NODE_VERSION: 18.1.0
212222
- name: PostgreSQL 11, PostGIS 3.2
213223
POSTGRES_IMAGE: postgis/postgis:11-3.2
214-
NODE_VERSION: 16.14.2
215-
- name: PostgreSQL 12, PostGIS 3.2
216-
POSTGRES_IMAGE: postgis/postgis:12-3.2
217-
NODE_VERSION: 16.14.2
218-
- name: PostgreSQL 13, PostGIS 3.2
219-
POSTGRES_IMAGE: postgis/postgis:13-3.2
220-
NODE_VERSION: 16.14.2
221-
- name: PostgreSQL 14, PostGIS 3.2
222-
POSTGRES_IMAGE: postgis/postgis:14-3.2
223-
NODE_VERSION: 16.14.2
224+
NODE_VERSION: 18.1.0
225+
- name: PostgreSQL 11, PostGIS 3.3
226+
POSTGRES_IMAGE: postgis/postgis:11-3.3
227+
NODE_VERSION: 18.1.0
228+
- name: PostgreSQL 12, PostGIS 3.3
229+
POSTGRES_IMAGE: postgis/postgis:12-3.3
230+
NODE_VERSION: 18.1.0
231+
- name: PostgreSQL 13, PostGIS 3.3
232+
POSTGRES_IMAGE: postgis/postgis:13-3.3
233+
NODE_VERSION: 18.1.0
234+
- name: PostgreSQL 14, PostGIS 3.3
235+
POSTGRES_IMAGE: postgis/postgis:14-3.3
236+
NODE_VERSION: 18.1.0
237+
- name: PostgreSQL 15, PostGIS 3.3
238+
POSTGRES_IMAGE: postgis/postgis:15-3.3
239+
NODE_VERSION: 18.1.0
224240
fail-fast: false
225241
name: ${{ matrix.name }}
226242
timeout-minutes: 15

CONTRIBUTING.md

+47-1
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,14 @@
22

33
## Table of Contents <!-- omit in toc -->
44
- [Contributing](#contributing)
5+
- [Issue vs. Pull Request](#issue-vs-pull-request)
56
- [Templates](#templates)
67
- [Why Contributing?](#why-contributing)
8+
- [Contribution FAQs](#contribution-faqs)
9+
- [Reviewer Role](#reviewer-role)
10+
- [Review Feedback](#review-feedback)
11+
- [Merge Readiness](#merge-readiness)
12+
- [Review Validity](#review-validity)
713
- [Environment Setup](#environment-setup)
814
- [Recommended Tools](#recommended-tools)
915
- [Setting up your local machine](#setting-up-your-local-machine)
@@ -87,6 +93,46 @@ Consider the benefits you get:
8793

8894
Most importantly, with every contribution you improve your skills so that future contributions take even less time and you get all the benefits above for free — easy choice, right?
8995

96+
## Contribution FAQs
97+
98+
### Reviewer Role
99+
100+
> *Instead of writing review comments back-and-forth, why doesn't the reviewer just write the code themselves?*
101+
102+
A reviewer is already helping you to make a code contribution through their review. A reviewer *may* even help you to write code by actually writing it for you, but is not obliged to do so.
103+
104+
GitHub allows reviewers to suggest and write code changes as part of the review feedback. These code suggestions are likely to contain mistakes due to the lack of code syntax checks when writing code directly on GitHub. You should therefore always review these suggestions before accepting them, ideally in an IDE. If you merge a code suggestion and the CI then fails, take another look at the code change before asking the reviewer for help.
105+
106+
### Review Feedback
107+
108+
> *It takes too much effort to incorporate the review feedback, why why can't you just merge my pull request?*
109+
110+
If you are a new contributor, it's naturally a learning experience for you and therefore takes longer. We welcome contributors of any experience levels and gladly support you in getting familiar with the code base and our quality standards and contribution requirements. In return we expect you to be open to and appreciative of the reviewers' feedback.
111+
112+
In a large pull request, it can be a significant effort to bring it over the finish line. Luckily this is a collaborative environment and others are free to jump in to contribute to the pull request to share the effort. You can either give others access to your fork or they can open their own pull request based on your previous work.
113+
114+
If you are out of resources stay calm, explain your personal constraints (expertise or time) and ask for help. Wasting time by complaining about the amount of review comments will neither use your own time in a meaningful way, nor the time of others who read your complaint.
115+
116+
This is a collaborative enviroment in which everyone works on a common goal - to get a pull request ready for merging. Reviewers are working *with* you to get your pull request ready, *not against you*.
117+
118+
**❗️ Always be mindful that the reviewers' efforts are an integral part of code contribution. Their review is as important as your written code and their review time is a valuable as your coding time.**
119+
120+
### Merge Readiness
121+
122+
> *The feature already works, why do you request more changes instead of just merging my pull request?*
123+
124+
A feature may work for your own use case or in your own environment, but that doesn't necessarily mean that it's ready for merging. Aside from code quality and code style requirements, reviewers also review based on strategic and architectural considerations. It's often easy to just get a feature to work, but it needs to be also maintained in the future, robust therefore well tested and validated, intuitive for other developers to use, well documented, and not cause a forseeable breaking change in the near future.
125+
126+
### Review Validity
127+
128+
> *The reviewer has never worked on the issue and was never part of any previous discussion, why would I care about their opinion?*
129+
130+
It's contrary to an open, collaborative environment to expect others to be involved in an issue or discussion since its beginning. Such a mindset would close out any new views, which are important for a differentiated discussion.
131+
132+
> *The reviewer doesn't have any expertise in that matter, why would I care about their opinion?*
133+
134+
Your arguments must focus on the issue, not on your assumption of someone else's personal experience. We will take immediate and appropriate action in case of personal attacks, regardless of your previous contributions. Personal attacks are not permissible. If you became a victim of personal attacks, you can privately [report](https://docs.github.com/en/communities/maintaining-your-safety-on-github/reporting-abuse-or-spam) the GitHub comment to the Parse Platform PMC.
135+
90136
## Environment Setup
91137

92138
### Recommended Tools
@@ -453,7 +499,7 @@ The following changes are done in the `alpha` branch, before publishing the last
453499
3. Pull all remote branches into local branches.
454500
4. Create a new temporary branch `backmerge` on branch `release`.
455501
5. Create PR to merge `backmerge` into `beta`:
456-
- PR title: `<pr-name> [skip release]` where `<pr-name>` is the PR title of step 1.
502+
- PR title: `refactor: <commit-summary>` where `<commit-summary>` is the commit summary of step 1. The commit type needs to be `refactor`, otherwise the commit will show in the changelog of the `release` branch, once the `beta` branch is merged into release; this would a duplicate entry because the same changelog entry has already been generated when the PR was merged into the `release` branch in step 1.
457503
- PR description: (leave empty)
458504
6. Resolve any conflicts:
459505
- During back-merging, usually all changes are preserved; current changes come from the hotfix in the `release` branch, the incoming changes come from the `beta` branch usually being ahead of the `release` branch. This makes back-merging so complex and bug-prone and is the main reason why it should be avoided if possible.

README.md

+21-23
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
[![Node Version](https://img.shields.io/badge/nodejs-12,_14,_16,_17,_18-green.svg?logo=node.js&style=flat)](https://nodejs.org)
1111
[![MongoDB Version](https://img.shields.io/badge/mongodb-4.0,_4.2,_4.4,_5.0,_5.1,_5.2-green.svg?logo=mongodb&style=flat)](https://www.mongodb.com)
12-
[![Postgres Version](https://img.shields.io/badge/postgresql-11,_12,_13,_14-green.svg?logo=postgresql&style=flat)](https://www.postgresql.org)
12+
[![Postgres Version](https://img.shields.io/badge/postgresql-11,_12,_13,_14,_15-green.svg?logo=postgresql&style=flat)](https://www.postgresql.org)
1313

1414
[![npm latest version](https://img.shields.io/npm/v/parse-server/latest.svg)](https://www.npmjs.com/package/parse-server)
1515
[![npm beta version](https://img.shields.io/npm/v/parse-server/beta.svg)](https://www.npmjs.com/package/parse-server)
@@ -32,10 +32,6 @@ The full documentation for Parse Server is available in the [wiki](https://githu
3232

3333
A big *thank you* 🙏 to our [sponsors](#sponsors) and [backers](#backers) who support the development of Parse Platform!
3434

35-
### Diamond Sponsors
36-
37-
[![Diamond Sponsors](https://opencollective.com/parse-server/tiers/diamond-sponsor.svg?avatarHeight=70&button=false)](https://opencollective.com/parse-server/contribute/diamond-sponsor-10560)
38-
3935
#### Bronze Sponsors
4036

4137
[![Bronze Sponsors](https://opencollective.com/parse-server/tiers/bronze-sponsor.svg?avatarHeight=36&button=false)](https://opencollective.com/parse-server/contribute/bronze-sponsor-10559)
@@ -138,27 +134,27 @@ Parse Server is continuously tested with the most recent releases of Node.js to
138134

139135
#### MongoDB
140136

141-
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 only test against versions that are officially supported and have not reached their end-of-life date.
137+
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.
142138

143-
| Version | Latest Version | End-of-Life | Compatible |
144-
|-------------|----------------|-------------|------------|
145-
| MongoDB 4.0 | 4.0.28 | April 2022 | ✅ Yes |
146-
| MongoDB 4.2 | 4.2.19 | TBD | ✅ Yes |
147-
| MongoDB 4.4 | 4.4.13 | TBD | ✅ Yes |
148-
| MongoDB 5.0 | 5.0.6 | TBD | ✅ Yes |
149-
| MongoDB 5.1 | 5.1.1 | TBD | ✅ Yes |
150-
| MongoDB 5.2 | 5.2.1 | TBD | ✅ Yes |
139+
| Version | Latest Version | End-of-Life | Compatible |
140+
|-------------|----------------|---------------|--------------|
141+
| MongoDB 4.0 | 4.0.28 | April 2022 | ✅ Yes |
142+
| MongoDB 4.2 | 4.2.19 | April 2023 | ✅ Yes |
143+
| MongoDB 4.4 | 4.4.13 | February 2024 | ✅ Yes |
144+
| MongoDB 5.3 | 5.3.2 | October 2024 | ✅ Yes |
145+
| MongoDB 6.0 | - | July 2025 | ❌ Not tested |
151146

152147
#### PostgreSQL
153148

154-
Parse Server is continuously tested with the most recent releases of PostgreSQL and PostGIS to ensure compatibility, using [PostGIS docker images](https://registry.hub.docker.com/r/postgis/postgis/tags?page=1&ordering=last_updated). We follow the [PostgreSQL support schedule](https://www.postgresql.org/support/versioning) and [PostGIS support schedule](https://www.postgis.net/eol_policy/) and only test against versions that are officially supported and have not reached their end-of-life date. Due to the extensive PostgreSQL support duration of 5 years, Parse Server drops support if a version is older than 3.5 years and a newer version has been available for at least 2.5 years.
149+
Parse Server is continuously tested with the most recent releases of PostgreSQL and PostGIS to ensure compatibility, using [PostGIS docker images](https://registry.hub.docker.com/r/postgis/postgis/tags?page=1&ordering=last_updated). We follow the [PostgreSQL support schedule](https://www.postgresql.org/support/versioning) and [PostGIS support schedule](https://www.postgis.net/eol_policy/) and only test against versions that are officially supported and have not reached their end-of-life date. Due to the extensive PostgreSQL support duration of 5 years, Parse Server drops support about 2 years before the official end-of-life date.
155150

156-
| Version | PostGIS Version | End-of-Life | Parse Server Support End | Compatible |
157-
|-------------|-----------------|---------------|--------------------------|------------|
158-
| Postgres 11 | 3.0, 3.1, 3.2 | November 2023 | April 2022 | ✅ Yes |
159-
| Postgres 12 | 3.2 | November 2024 | April 2023 | ✅ Yes |
160-
| Postgres 13 | 3.2 | November 2025 | April 2024 | ✅ Yes |
161-
| Postgres 14 | 3.2 | November 2026 | April 2025 | ✅ Yes |
151+
| Version | PostGIS Version | End-of-Life | Parse Server Support | Compatible |
152+
|-------------|--------------------|---------------|----------------------|------------|
153+
| Postgres 11 | 3.0, 3.1, 3.2, 3.3 | November 2023 | <= 5.x (2022) | ✅ Yes |
154+
| Postgres 12 | 3.3 | November 2024 | <= 5.x (2022) | ✅ Yes |
155+
| Postgres 13 | 3.3 | November 2025 | <= 6.x (2023) | ✅ Yes |
156+
| Postgres 14 | 3.3 | November 2026 | <= 7.x (2024) | ✅ Yes |
157+
| Postgres 15 | 3.3 | November 2027 | <= 8.x (2025) | ✅ Yes |
162158

163159
### Locally
164160

@@ -359,8 +355,10 @@ const server = ParseServer({
359355
});
360356
```
361357

358+
Offical email adapters maintained by Parse Platform:
359+
- [parse-server-api-mail-adapter](https://github.com/parse-community/parse-server-api-mail-adapter) (localization, templates, universally supports any email provider)
360+
362361
Email adapters contributed by the community:
363-
- [parse-server-api-mail-adapter](https://www.npmjs.com/package/parse-server-api-mail-adapter) (localization, templates, universally supports any email provider)
364362
- [parse-smtp-template](https://www.npmjs.com/package/parse-smtp-template) (localization, templates)
365363
- [parse-server-postmark-adapter](https://www.npmjs.com/package/parse-server-postmark-adapter)
366364
- [parse-server-sendgrid-adapter](https://www.npmjs.com/package/parse-server-sendgrid-adapter)
@@ -1184,4 +1182,4 @@ As of April 5, 2017, Parse, LLC has transferred this code to the parse-community
11841182
[open-collective-link]: https://opencollective.com/parse-server
11851183
[log_release]: https://github.com/parse-community/parse-server/blob/release/changelogs/CHANGELOG_release.md
11861184
[log_beta]: https://github.com/parse-community/parse-server/blob/beta/changelogs/CHANGELOG_beta.md
1187-
[log_alpha]: https://github.com/parse-community/parse-server/blob/alpha/changelogs/CHANGELOG_alpha.md
1185+
[log_alpha]: https://github.com/parse-community/parse-server/blob/alpha/changelogs/CHANGELOG_alpha.md

0 commit comments

Comments
 (0)