Skip to content

Commit 89c9b54

Browse files
authored
feat: Increase required minimum versions to Postgres 15, PostGIS 3.3 (#9538)
BREAKING CHANGE: This releases increases the required minimum versions to Postgres `15`, PostGIS `3.3` and removes support for Postgres `13`, `14`, PostGIS `3.1`, `3.2`.
1 parent 6895768 commit 89c9b54

File tree

2 files changed

+23
-35
lines changed

2 files changed

+23
-35
lines changed

.github/workflows/ci.yml

+4-16
Original file line numberDiff line numberDiff line change
@@ -213,23 +213,11 @@ jobs:
213213
strategy:
214214
matrix:
215215
include:
216-
- name: PostgreSQL 13, PostGIS 3.1
217-
POSTGRES_IMAGE: postgis/postgis:13-3.1
216+
- name: PostgreSQL 15, PostGIS 3.3
217+
POSTGRES_IMAGE: postgis/postgis:15-3.3
218218
NODE_VERSION: 22.12.0
219-
- name: PostgreSQL 13, PostGIS 3.2
220-
POSTGRES_IMAGE: postgis/postgis:13-3.2
221-
NODE_VERSION: 22.12.0
222-
- name: PostgreSQL 13, PostGIS 3.3
223-
POSTGRES_IMAGE: postgis/postgis:13-3.3
224-
NODE_VERSION: 22.12.0
225-
- name: PostgreSQL 13, PostGIS 3.4
226-
POSTGRES_IMAGE: postgis/postgis:13-3.4
227-
NODE_VERSION: 22.12.0
228-
- name: PostgreSQL 13, PostGIS 3.5
229-
POSTGRES_IMAGE: postgis/postgis:13-3.5
230-
NODE_VERSION: 22.12.0
231-
- name: PostgreSQL 14, PostGIS 3.5
232-
POSTGRES_IMAGE: postgis/postgis:14-3.5
219+
- name: PostgreSQL 15, PostGIS 3.4
220+
POSTGRES_IMAGE: postgis/postgis:15-3.4
233221
NODE_VERSION: 22.12.0
234222
- name: PostgreSQL 15, PostGIS 3.5
235223
POSTGRES_IMAGE: postgis/postgis:15-3.5

README.md

+19-19
Original file line numberDiff line numberDiff line change
@@ -127,33 +127,33 @@ Before you start make sure you have installed:
127127

128128
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.
129129

130-
| Version | Minimum Version | End-of-Life | Compatible |
131-
|------------|-----------------|-------------|------------|
132-
| Node.js 18 | 18.20.4 | April 2025 | ✅ Yes |
133-
| Node.js 20 | 20.18.0 | April 2026 | ✅ Yes |
134-
| Node.js 22 | 22.12.0 | April 2027 | ✅ Yes |
130+
| Version | Minimum Version | End-of-Life | Parse Server Support |
131+
|------------|-----------------|-------------|----------------------|
132+
| Node.js 18 | 18.20.4 | April 2025 | <= 8.x (2025) |
133+
| Node.js 20 | 20.18.0 | April 2026 | <= 9.x (2026) |
134+
| Node.js 22 | 22.12.0 | April 2027 | <= 10.x (2027) |
135135

136136
#### MongoDB
137137

138138
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. MongoDB "rapid releases" are ignored as these are considered pre-releases of the next major version.
139139

140-
| Version | Minimum Version | End-of-Life | Compatible |
141-
|-----------|-----------------|-------------|------------|
142-
| MongoDB 6 | 6.0.19 | July 2025 | ✅ Yes |
143-
| MongoDB 7 | 7.0.16 | August 2026 | ✅ Yes |
144-
| MongoDB 8 | 8.0.4 | TDB | ✅ Yes |
140+
| Version | Minimum Version | End-of-Life | Parse Server Support |
141+
|-----------|-----------------|-------------|----------------------|
142+
| MongoDB 6 | 6.0.19 | July 2025 | <= 8.x (2025) |
143+
| MongoDB 7 | 7.0.16 | August 2026 | <= 9.x (2026) |
144+
| MongoDB 8 | 8.0.4 | TDB | <= 10.x (2027) |
145145

146146
#### PostgreSQL
147147

148148
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.
149149

150-
| Version | PostGIS Version | End-of-Life | Parse Server Support | Compatible |
151-
|-------------|-------------------------|---------------|----------------------|------------|
152-
| Postgres 13 | 3.1, 3.2, 3.3, 3.4, 3.5 | November 2025 | <= 6.x (2023) | ✅ Yes |
153-
| Postgres 14 | 3.5 | November 2026 | <= 7.x (2024) | ✅ Yes |
154-
| Postgres 15 | 3.5 | November 2027 | <= 8.x (2025) | ✅ Yes |
155-
| Postgres 16 | 3.5 | November 2028 | <= 9.x (2026) | ✅ Yes |
156-
| Postgres 17 | 3.5 | November 2029 | <= 9.x (2026) | ✅ Yes |
150+
| Version | PostGIS Version | End-of-Life | Parse Server Support |
151+
|-------------|-------------------------|---------------|----------------------|
152+
| Postgres 13 | 3.1, 3.2, 3.3, 3.4, 3.5 | November 2025 | <= 6.x (2023) |
153+
| Postgres 14 | 3.5 | November 2026 | <= 7.x (2024) |
154+
| Postgres 15 | 3.3, 3.4, 3.5 | November 2027 | <= 8.x (2025) |
155+
| Postgres 16 | 3.5 | November 2028 | <= 9.x (2026) |
156+
| Postgres 17 | 3.5 | November 2029 | <= 10.x (2027) |
157157

158158
### Locally
159159

@@ -483,7 +483,7 @@ The following paths are already used by Parse Server's built-in features and are
483483
| Parameter | Optional | Type | Default value | Example values | Environment variable | Description |
484484
|------------------------------|----------|-----------------|---------------|-----------------------|------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
485485
| `pages` | yes | `Object` | `undefined` | - | `PARSE_SERVER_PAGES` | The options for pages such as password reset and email verification. |
486-
| `pages.enableRouter` | yes | `Boolean` | `false` | - | `PARSE_SERVER_PAGES_ENABLE_ROUTER` | Is `true` if the pages router should be enabled; this is required for any of the pages options to take effect. |
486+
| `pages.enableRouter` | yes | `Boolean` | `false` | - | `PARSE_SERVER_PAGES_ENABLE_ROUTER` | Is `true` if the pages router should be enabled; this is required for any of the pages options to take effect. |
487487
| `pages.customRoutes` | yes | `Array` | `[]` | - | `PARSE_SERVER_PAGES_CUSTOM_ROUTES` | The custom routes. The routes are added in the order they are defined here, which has to be considered since requests traverse routes in an ordered manner. Custom routes are traversed after build-in routes such as password reset and email verification. |
488488
| `pages.customRoutes.method` | | `String` | - | `GET`, `POST` | - | The HTTP method of the custom route. |
489489
| `pages.customRoutes.path` | | `String` | - | `custom_page` | - | The path of the custom route. Note that the same path can used if the `method` is different, for example a path `custom_page` can have two routes, a `GET` and `POST` route, which will be invoked depending on the HTTP request method. |
@@ -777,7 +777,7 @@ The following parameter and placeholder keys are reserved because they are used
777777
| Parameter | Optional | Type | Default value | Example values | Environment variable | Description |
778778
|-------------------------------------------------|----------|---------------------------------------|----------------------------------------|------------------------------------------------------|-----------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
779779
| `pages` | yes | `Object` | `undefined` | - | `PARSE_SERVER_PAGES` | The options for pages such as password reset and email verification. |
780-
| `pages.enableRouter` | yes | `Boolean` | `false` | - | `PARSE_SERVER_PAGES_ENABLE_ROUTER` | Is `true` if the pages router should be enabled; this is required for any of the pages options to take effect. |
780+
| `pages.enableRouter` | yes | `Boolean` | `false` | - | `PARSE_SERVER_PAGES_ENABLE_ROUTER` | Is `true` if the pages router should be enabled; this is required for any of the pages options to take effect. |
781781
| `pages.enableLocalization` | yes | `Boolean` | `false` | - | `PARSE_SERVER_PAGES_ENABLE_LOCALIZATION` | Is true if pages should be localized; this has no effect on custom page redirects. |
782782
| `pages.localizationJsonPath` | yes | `String` | `undefined` | `./private/translations.json` | `PARSE_SERVER_PAGES_LOCALIZATION_JSON_PATH` | The path to the JSON file for localization; the translations will be used to fill template placeholders according to the locale. |
783783
| `pages.localizationFallbackLocale` | yes | `String` | `en` | `en`, `en-GB`, `default` | `PARSE_SERVER_PAGES_LOCALIZATION_FALLBACK_LOCALE` | The fallback locale for localization if no matching translation is provided for the given locale. This is only relevant when providing translation resources via JSON file. |

0 commit comments

Comments
 (0)