Skip to content

Commit e4f3854

Browse files
authored
Merge branch 'alpha' into increase-coverage
2 parents 4699892 + 653d257 commit e4f3854

17 files changed

+269
-119
lines changed

.github/workflows/ci.yml

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,21 @@ jobs:
7272
- run: npm run madge:circular
7373
check-docker:
7474
name: Docker Build
75-
timeout-minutes: 5
75+
timeout-minutes: 15
7676
runs-on: ubuntu-18.04
7777
steps:
78-
- uses: actions/checkout@v2
78+
- name: Checkout repository
79+
uses: actions/checkout@v2
80+
- name: Set up QEMU
81+
id: qemu
82+
uses: docker/setup-qemu-action@v1
83+
- name: Set up Docker Buildx
84+
uses: docker/setup-buildx-action@v1
7985
- name: Build docker image
8086
uses: docker/build-push-action@v2
87+
with:
88+
context: .
89+
platforms: linux/amd64
8190
check-lock-file-version:
8291
name: NPM Lock File Version
8392
timeout-minutes: 5
@@ -184,6 +193,9 @@ jobs:
184193
- name: PostgreSQL 13, PostGIS 3.1
185194
POSTGRES_IMAGE: postgis/postgis:13-3.1
186195
NODE_VERSION: 14.18.1
196+
- name: PostgreSQL 14, PostGIS 3.1
197+
POSTGRES_IMAGE: postgis/postgis:14-3.1
198+
NODE_VERSION: 14.18.1
187199
fail-fast: false
188200
name: ${{ matrix.name }}
189201
timeout-minutes: 15
@@ -223,7 +235,9 @@ jobs:
223235
${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-
224236
- name: Install dependencies
225237
run: npm ci
226-
- run: bash scripts/before_script_postgres.sh
238+
- run: |
239+
bash scripts/before_script_postgres_conf.sh
240+
bash scripts/before_script_postgres.sh
227241
- run: npm run coverage
228242
env:
229243
CI: true

.github/workflows/release-automated.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ jobs:
7878
uses: docker/build-push-action@v2
7979
with:
8080
context: .
81-
platforms: linux/amd64
81+
platforms: linux/amd64, linux/arm/v6, linux/arm/v7, linux/arm64/v8
8282
push: ${{ github.event_name != 'pull_request' }}
8383
tags: ${{ steps.meta.outputs.tags }}
8484
labels: ${{ steps.meta.outputs.labels }}

CONTRIBUTING.md

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
- [Pull Request](#pull-request)
2323
- [Breaking Change](#breaking-change)
2424
- [Merging](#merging)
25+
- [Versioning](#versioning)
2526
- [Code of Conduct](#code-of-conduct)
2627

2728
## Contributing
@@ -145,21 +146,23 @@ If your pull request introduces a change that may affect the storage or retrieva
145146

146147
- `it_only_mongodb_version('>=4.4')` // will test with any version of Postgres but only with version >=4.4 of MongoDB; accepts semver notation to specify a version range
147148
- `it_exclude_mongodb_version('<4.4')` // will test with any version of Postgres and MongoDB, excluding version <4.4 of MongoDB; accepts semver notation to specify a version range
149+
- `it_only_postgres_version('>=13')` // will test with any version of Mongo but only with version >=13 of Postgres; accepts semver notation to specify a version range
150+
- `it_exclude_postgres_version('<13')` // will test with any version of Postgres and MongoDB, excluding version <13 of Postgres; accepts semver notation to specify a version range
148151

149152
#### Postgres with Docker
150153

151154
[PostGIS images (select one with v2.2 or higher) on docker dashboard](https://hub.docker.com/r/postgis/postgis) is based off of the official [postgres](https://registry.hub.docker.com/_/postgres/) image and will work out-of-the-box (as long as you create a user with the necessary extensions for each of your Parse databases; see below). To launch the compatible Postgres instance, copy and paste the following line into your shell:
152155

153156
```
154-
docker run -d --name parse-postgres -p 5432:5432 -e POSTGRES_PASSWORD=password --rm postgis/postgis:11-3.0-alpine && sleep 20 && docker exec -it parse-postgres psql -U postgres -c 'CREATE DATABASE parse_server_postgres_adapter_test_database;' && docker exec -it parse-postgres psql -U postgres -c 'CREATE EXTENSION pgcrypto; CREATE EXTENSION postgis;' -d parse_server_postgres_adapter_test_database && docker exec -it parse-postgres psql -U postgres -c 'CREATE EXTENSION postgis_topology;' -d parse_server_postgres_adapter_test_database
157+
docker run -d --name parse-postgres -p 5432:5432 -e POSTGRES_PASSWORD=password --rm postgis/postgis:13-3.1-alpine && sleep 20 && docker exec -it parse-postgres psql -U postgres -c 'CREATE DATABASE parse_server_postgres_adapter_test_database;' && docker exec -it parse-postgres psql -U postgres -c 'CREATE EXTENSION pgcrypto; CREATE EXTENSION postgis;' -d parse_server_postgres_adapter_test_database && docker exec -it parse-postgres psql -U postgres -c 'CREATE EXTENSION postgis_topology;' -d parse_server_postgres_adapter_test_database
155158
```
156159
To stop the Postgres instance:
157160

158161
```
159162
docker stop parse-postgres
160163
```
161164

162-
You can also use the [postgis/postgis:11-2.5-alpine](https://hub.docker.com/r/postgis/postgis) image in a Dockerfile and copy this [script](https://github.com/parse-community/parse-server/blob/master/scripts/before_script_postgres.sh) to the image by adding the following lines:
165+
You can also use the [postgis/postgis:13-3.1-alpine](https://hub.docker.com/r/postgis/postgis) image in a Dockerfile and copy this [script](https://github.com/parse-community/parse-server/blob/master/scripts/before_script_postgres.sh) to the image by adding the following lines:
163166

164167
```
165168
#Install additional scripts. These are run in abc order during initial start
@@ -344,6 +347,27 @@ The following guide is for anyone who merges a contributor pull request into the
344347
- A contributor pull request must be merged into the working branch using `Squash and Merge`, to create a single commit message that describes the change.
345348
- A release branch or the default branch must be merged into another release branch using `Merge Commit`, to preserve each individual commit message that describes its respective change.
346349
350+
## Versioning
351+
352+
> The following versioning system is applied since Parse Server 5.0.0 and does not necessarily apply to previous releases.
353+
354+
Parse Server follows [semantic versioning](https://semver.org) with a flavor of [calendric versioning](https://calver.org). Semantic versioning makes Parse Server easy to upgrade because breaking changes only occur in major releases. Calendric versioning gives an additional sense of how old a Parse Server release is and allows for Long-Term Support of previous major releases.
355+
356+
Example version: `5.0.0-alpha.1`
357+
358+
Syntax: `[major]`**.**`[minor]`**.**`[patch]`**-**`[pre-release-label]`**.**`[pre-release-increment]`
359+
360+
- The `major` version increments with the first release of every year and may include changes that are *not backwards compatible*.
361+
- The `minor` version increments during the year and may include new features or improvements of existing features that are backwards compatible.
362+
- The `patch` version increments during the year and may include bug fixes that are backwards compatible.
363+
- The `pre-release-label` is optional for pre-release versions such as:
364+
- `-alpha` (likely to contain bugs, likely to change in features until release)
365+
- `-beta` (likely to contain bugs, no change in features until release)
366+
- The `[pre-release-increment]` is a number that increments with every new version of a pre-release
367+
368+
Exceptions:
369+
- The `major` version may increment during the year in the unlikely event that a breaking change is so urgent that it cannot wait for the next yearly release. An example would be a vulnerability fix that leads to an unavoidable breaking change. However, security requirements depend on the application and not every vulnerability may affect every deployment, depending on the features used. Therefore we usually prefer to deprecate insecure functionality and introduce the breaking change following our [deprecation policy](#deprecation-policy).
370+
347371
## Code of Conduct
348372
349373
This project adheres to the [Contributor Covenant Code of Conduct](https://github.com/parse-community/parse-server/blob/master/CODE_OF_CONDUCT.md). By participating, you are expected to honor this code.

Dockerfile

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,30 @@
1+
############################################################
12
# Build stage
3+
############################################################
24
FROM node:lts-alpine as build
35

46
RUN apk update; \
57
apk add git;
68
WORKDIR /tmp
9+
10+
# Copy package.json first to benefit from layer caching
711
COPY package*.json ./
812

9-
# Copy local dependencies for CI tests
10-
COPY spec/dependencies spec/dependencies
13+
# Copy src to have config files for install
14+
COPY . .
1115

16+
# Clean npm cache; added to fix an issue with the install process
1217
RUN npm cache clean --force
18+
19+
# Install all dependencies
1320
RUN npm ci
14-
COPY . .
21+
22+
# Run build steps
1523
RUN npm run build
1624

25+
############################################################
1726
# Release stage
27+
############################################################
1828
FROM node:lts-alpine as release
1929

2030
RUN apk update; \
@@ -26,6 +36,7 @@ WORKDIR /parse-server
2636

2737
COPY package*.json ./
2838

39+
# Clean npm cache; added to fix an issue with the install process
2940
RUN npm cache clean --force
3041
RUN npm ci --production --ignore-scripts
3142

README.md

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
---
44

5-
[![Build Status](https://github.com/parse-community/parse-server/workflows/ci/badge.svg?branch=master)](https://github.com/parse-community/parse-server/actions?query=workflow%3Aci+branch%3Amaster)
5+
[![Build Status](https://github.com/parse-community/parse-server/workflows/ci/badge.svg?branch=alpha)](https://github.com/parse-community/parse-server/actions?query=workflow%3Aci+branch%3Aalpha)
66
[![Snyk Badge](https://snyk.io/test/github/parse-community/parse-server/badge.svg)](https://snyk.io/test/github/parse-community/parse-server)
7-
[![Coverage](https://img.shields.io/codecov/c/github/parse-community/parse-server/master.svg)](https://codecov.io/github/parse-community/parse-server?branch=master)
7+
[![Coverage](https://img.shields.io/codecov/c/github/parse-community/parse-server/alpha.svg)](https://codecov.io/github/parse-community/parse-server?branch=alpha)
88

99
[![Node Version](https://img.shields.io/badge/nodejs-12,_14,_15-green.svg?logo=node.js&style=flat)](https://nodejs.org)
1010
[![MongoDB Version](https://img.shields.io/badge/mongodb-4.0,_4.2,_4.4,_5.0-green.svg?logo=mongodb&style=flat)](https://www.mongodb.com)
11-
[![Postgres Version](https://img.shields.io/badge/postgresql-11,_12,_13-green.svg?logo=postgresql&style=flat)](https://www.postgresql.org)
11+
[![Postgres Version](https://img.shields.io/badge/postgresql-11,_12,_13,_14-green.svg?logo=postgresql&style=flat)](https://www.postgresql.org)
1212
[![auto-release](https://img.shields.io/badge/%F0%9F%9A%80-auto--release-9e34eb.svg)](https://github.com/parse-community/parse-dashboard/releases)
1313

1414
[![npm latest version](https://img.shields.io/npm/v/parse-server/latest.svg)](https://www.npmjs.com/package/parse-server)
@@ -108,30 +108,32 @@ Before you start make sure you have installed:
108108
#### Node.js
109109
Parse Server is continuously tested with the most recent releases of Node.js to ensure compatibility. We follow the [Node.js Long Term Support plan](https://github.com/nodejs/Release) and only test against versions that are officially supported and have not reached their end-of-life date.
110110

111-
| Version | Latest Version | End-of-Life Date | Compatibility |
112-
|------------|----------------|------------------|--------------------|
113-
| Node.js 12 | 12.22.7 | April 2022 | ✅ Fully compatible |
114-
| Node.js 14 | 14.18.1 | April 2023 | ✅ Fully compatible |
115-
| Node.js 15 | 15.14.0 | June 2021 | ✅ Fully compatible |
111+
| Version | Latest Version | End-of-Life | Compatible |
112+
|------------|----------------|-------------|---------------|
113+
| Node.js 12 | 12.22.7 | April 2022 | ✅ Yes |
114+
| Node.js 14 | 14.18.1 | April 2023 | ✅ Yes |
115+
| Node.js 15 | 15.14.0 | June 2021 | ✅ Yes |
116+
| Node.js 16 | 16.x.x | April 2024 | ❌ Not tested |
116117

117118
#### MongoDB
118119
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.
119120

120-
| Version | Latest Version | End-of-Life Date | Compatibility |
121-
|-------------|----------------|------------------|--------------------|
122-
| MongoDB 4.0 | 4.0.27 | April 2022 | ✅ Fully compatible |
123-
| MongoDB 4.2 | 4.2.17 | TBD | ✅ Fully compatible |
124-
| MongoDB 4.4 | 4.4.10 | TBD | ✅ Fully compatible |
125-
| MongoDB 5.0 | 5.0.3 | January 2024 | ✅ Fully compatible |
121+
| Version | Latest Version | End-of-Life | Compatible |
122+
|-------------|----------------|--------------|------------|
123+
| MongoDB 4.0 | 4.0.27 | April 2022 | ✅ Yes |
124+
| MongoDB 4.2 | 4.2.17 | TBD | ✅ Yes |
125+
| MongoDB 4.4 | 4.4.10 | TBD | ✅ Yes |
126+
| MongoDB 5.0 | 5.0.3 | January 2024 | ✅ Yes |
126127

127128
#### PostgreSQL
128129
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.
129130

130-
| Version | PostGIS Version | End-of-Life Date | Parse Server Support End | Compatibility |
131-
|-------------|-----------------|------------------|--------------------------|--------------------|
132-
| Postgres 11 | 3.0, 3.1 | November 2023 | April 2022 | ✅ Fully compatible |
133-
| Postgres 12 | 3.1 | November 2024 | April 2023 | ✅ Fully compatible |
134-
| Postgres 13 | 3.1 | November 2025 | April 2024 | ✅ Fully compatible |
131+
| Version | PostGIS Version | End-of-Life | Parse Server Support End | Compatible |
132+
|-------------|-----------------|---------------|--------------------------|------------|
133+
| Postgres 11 | 3.0, 3.1 | November 2023 | April 2022 | ✅ Yes |
134+
| Postgres 12 | 3.1 | November 2024 | April 2023 | ✅ Yes |
135+
| Postgres 13 | 3.1 | November 2025 | April 2024 | ✅ Yes |
136+
| Postgres 14 | 3.1 | November 2026 | April 2025 | ✅ Yes |
135137

136138
### Locally
137139
```bash

changelogs/CHANGELOG_alpha.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
# [5.0.0-alpha.4](https://github.com/parse-community/parse-server/compare/5.0.0-alpha.3...5.0.0-alpha.4) (2021-10-31)
2+
3+
4+
### Features
5+
6+
* add support for Postgres 14 ([#7644](https://github.com/parse-community/parse-server/issues/7644)) ([090350a](https://github.com/parse-community/parse-server/commit/090350a7a0fac945394ca1cb24b290316ef06aa7))
7+
8+
# [5.0.0-alpha.3](https://github.com/parse-community/parse-server/compare/5.0.0-alpha.2...5.0.0-alpha.3) (2021-10-29)
9+
10+
11+
### Bug Fixes
12+
13+
* combined `and` query with relational query condition returns incorrect results ([#7593](https://github.com/parse-community/parse-server/issues/7593)) ([174886e](https://github.com/parse-community/parse-server/commit/174886e385e091c6bbd4a84891ef95f80b50d05c))
14+
115
# [5.0.0-alpha.2](https://github.com/parse-community/parse-server/compare/5.0.0-alpha.1...5.0.0-alpha.2) (2021-10-27)
216

317

0 commit comments

Comments
 (0)