diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4442174502..4f0d9359ef 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,7 +5,7 @@ on: pull_request: branches: [ release, alpha, beta ] env: - NODE_VERSION: 16.14.2 + NODE_VERSION: 18.1.0 PARSE_SERVER_TEST_TIMEOUT: 20000 jobs: check-code-analysis: @@ -121,47 +121,37 @@ jobs: strategy: matrix: include: - - name: MongoDB 5.2, ReplicaSet, WiredTiger - MONGODB_VERSION: 5.2.1 - MONGODB_TOPOLOGY: replicaset - MONGODB_STORAGE_ENGINE: wiredTiger - NODE_VERSION: 14.19.1 - - name: MongoDB 5.1, ReplicaSet, WiredTiger - MONGODB_VERSION: 5.1.1 + - name: MongoDB 4.0, Standalone, MMAPv1 + MONGODB_VERSION: 4.0.28 + MONGODB_TOPOLOGY: standalone + MONGODB_STORAGE_ENGINE: mmapv1 + NODE_VERSION: 18.1.0 + - name: MongoDB 4.0, ReplicaSet, WiredTiger + MONGODB_VERSION: 4.0.28 MONGODB_TOPOLOGY: replicaset MONGODB_STORAGE_ENGINE: wiredTiger - NODE_VERSION: 14.19.1 - - name: MongoDB 5.0, ReplicaSet, WiredTiger - MONGODB_VERSION: 5.0.6 + NODE_VERSION: 18.1.0 + - name: MongoDB 4.2, ReplicaSet, WiredTiger + MONGODB_VERSION: 4.2.19 MONGODB_TOPOLOGY: replicaset MONGODB_STORAGE_ENGINE: wiredTiger - NODE_VERSION: 16.14.2 + NODE_VERSION: 18.1.0 - name: MongoDB 4.4, ReplicaSet, WiredTiger MONGODB_VERSION: 4.4.13 MONGODB_TOPOLOGY: replicaset MONGODB_STORAGE_ENGINE: wiredTiger - NODE_VERSION: 16.14.2 - - name: MongoDB 4.2, ReplicaSet, WiredTiger - MONGODB_VERSION: 4.2.19 - MONGODB_TOPOLOGY: replicaset - MONGODB_STORAGE_ENGINE: wiredTiger - NODE_VERSION: 16.14.2 - - name: MongoDB 4.0, ReplicaSet, WiredTiger - MONGODB_VERSION: 4.0.28 + NODE_VERSION: 18.1.0 + - name: MongoDB 5.3, ReplicaSet, WiredTiger + MONGODB_VERSION: 5.3.2 MONGODB_TOPOLOGY: replicaset MONGODB_STORAGE_ENGINE: wiredTiger - NODE_VERSION: 16.14.2 - - name: MongoDB 4.0, Standalone, MMAPv1 - MONGODB_VERSION: 4.0.28 - MONGODB_TOPOLOGY: standalone - MONGODB_STORAGE_ENGINE: mmapv1 - NODE_VERSION: 16.14.2 + NODE_VERSION: 18.1.0 - name: Redis Cache PARSE_SERVER_TEST_CACHE: redis MONGODB_VERSION: 4.4.13 MONGODB_TOPOLOGY: standalone MONGODB_STORAGE_ENGINE: wiredTiger - NODE_VERSION: 16.14.2 + NODE_VERSION: 18.1.0 - name: Node 12 MONGODB_VERSION: 4.4.13 MONGODB_TOPOLOGY: standalone @@ -172,16 +162,16 @@ jobs: MONGODB_TOPOLOGY: standalone MONGODB_STORAGE_ENGINE: wiredTiger NODE_VERSION: 14.19.1 - - name: Node 17 + - name: Node 16 MONGODB_VERSION: 4.4.13 MONGODB_TOPOLOGY: standalone MONGODB_STORAGE_ENGINE: wiredTiger - NODE_VERSION: 17.9.0 - - name: Node 18 + NODE_VERSION: 16.14.2 + - name: Node 17 MONGODB_VERSION: 4.4.13 MONGODB_TOPOLOGY: standalone MONGODB_STORAGE_ENGINE: wiredTiger - NODE_VERSION: 18.1.0 + NODE_VERSION: 17.9.0 fail-fast: false name: ${{ matrix.name }} timeout-minutes: 15 @@ -225,25 +215,25 @@ jobs: include: - name: PostgreSQL 11, PostGIS 3.0 POSTGRES_IMAGE: postgis/postgis:11-3.0 - NODE_VERSION: 16.14.2 + NODE_VERSION: 18.1.0 - name: PostgreSQL 11, PostGIS 3.1 POSTGRES_IMAGE: postgis/postgis:11-3.1 - NODE_VERSION: 16.14.2 + NODE_VERSION: 18.1.0 - name: PostgreSQL 11, PostGIS 3.2 POSTGRES_IMAGE: postgis/postgis:11-3.2 - NODE_VERSION: 16.14.2 + NODE_VERSION: 18.1.0 - name: PostgreSQL 11, PostGIS 3.3 POSTGRES_IMAGE: postgis/postgis:11-3.3 - NODE_VERSION: 16.14.2 + NODE_VERSION: 18.1.0 - name: PostgreSQL 12, PostGIS 3.3 POSTGRES_IMAGE: postgis/postgis:12-3.3 - NODE_VERSION: 16.14.2 + NODE_VERSION: 18.1.0 - name: PostgreSQL 13, PostGIS 3.3 POSTGRES_IMAGE: postgis/postgis:13-3.3 - NODE_VERSION: 16.14.2 + NODE_VERSION: 18.1.0 - name: PostgreSQL 14, PostGIS 3.3 POSTGRES_IMAGE: postgis/postgis:14-3.3 - NODE_VERSION: 16.14.2 + NODE_VERSION: 18.1.0 fail-fast: false name: ${{ matrix.name }} timeout-minutes: 15 diff --git a/README.md b/README.md index e5be7b1dc0..07b37f925b 100644 --- a/README.md +++ b/README.md @@ -134,27 +134,26 @@ Parse Server is continuously tested with the most recent releases of Node.js to #### MongoDB -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. +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. -| Version | Latest Version | End-of-Life | Compatible | -|-------------|----------------|-------------|------------| -| MongoDB 4.0 | 4.0.28 | April 2022 | ✅ Yes | -| MongoDB 4.2 | 4.2.19 | TBD | ✅ Yes | -| MongoDB 4.4 | 4.4.13 | TBD | ✅ Yes | -| MongoDB 5.0 | 5.0.6 | TBD | ✅ Yes | -| MongoDB 5.1 | 5.1.1 | TBD | ✅ Yes | -| MongoDB 5.2 | 5.2.1 | TBD | ✅ Yes | +| Version | Latest Version | End-of-Life | Compatible | +|-------------|----------------|---------------|--------------| +| MongoDB 4.0 | 4.0.28 | April 2022 | ✅ Yes | +| MongoDB 4.2 | 4.2.19 | April 2023 | ✅ Yes | +| MongoDB 4.4 | 4.4.13 | February 2024 | ✅ Yes | +| MongoDB 5.3 | 5.3.2 | October 2024 | ✅ Yes | +| MongoDB 6.0 | - | July 2025 | ❌ Not tested | #### PostgreSQL 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. -| Version | PostGIS Version | End-of-Life | Parse Server Support | Compatible | -|-------------|-----------------|---------------|----------------------|------------| +| Version | PostGIS Version | End-of-Life | Parse Server Support | Compatible | +|-------------|--------------------|---------------|----------------------|------------| | Postgres 11 | 3.0, 3.1, 3.2, 3.3 | November 2023 | <= 5.x (2022) | ✅ Yes | -| Postgres 12 | 3.3 | November 2024 | <= 5.x (2022) | ✅ Yes | -| Postgres 13 | 3.3 | November 2025 | <= 6.x (2023) | ✅ Yes | -| Postgres 14 | 3.3 | November 2026 | <= 7.x (2024) | ✅ Yes | +| Postgres 12 | 3.3 | November 2024 | <= 5.x (2022) | ✅ Yes | +| Postgres 13 | 3.3 | November 2025 | <= 6.x (2023) | ✅ Yes | +| Postgres 14 | 3.3 | November 2026 | <= 7.x (2024) | ✅ Yes | ### Locally diff --git a/ci/ciCheck.js b/ci/ciCheck.js index 52518c42cc..daa95f6fe0 100644 --- a/ci/ciCheck.js +++ b/ci/ciCheck.js @@ -30,14 +30,12 @@ async function checkMongoDbVersions() { ciEnvironmentsKeyPath: 'jobs.check-mongo.strategy.matrix.include', ciVersionKey: 'MONGODB_VERSION', releasedVersions, - latestComponent: CiVersionCheck.versionComponents.path, + latestComponent: CiVersionCheck.versionComponents.minor, ignoreReleasedVersions: [ '<4.0.0', // Versions reached their MongoDB end-of-life support date '~4.1.0', // Development release according to MongoDB support '~4.3.0', // Development release according to MongoDB support '~4.7.0', // Development release according to MongoDB support - - '4.0.26', // Temporarily disabled because not yet available for download via mongodb-runner ], }).check(); } diff --git a/package.json b/package.json index cf6ebd0ac6..2d6685274e 100644 --- a/package.json +++ b/package.json @@ -118,15 +118,13 @@ "test:mongodb:4.0.28": "npm run test:mongodb --dbversion=4.0.28", "test:mongodb:4.2.19": "npm run test:mongodb --dbversion=4.2.19", "test:mongodb:4.4.13": "npm run test:mongodb --dbversion=4.4.13", - "test:mongodb:5.0.6": "npm run test:mongodb --dbversion=5.0.6", - "test:mongodb:5.1.1": "npm run test:mongodb --dbversion=5.1.1", - "test:mongodb:5.2.1": "npm run test:mongodb --dbversion=5.2.1", + "test:mongodb:5.3.2": "npm run test:mongodb --dbversion=5.3.2", "posttest:mongodb": "mongodb-runner stop", - "pretest": "cross-env MONGODB_VERSION=${MONGODB_VERSION:=5.2.1} MONGODB_TOPOLOGY=${MONGODB_TOPOLOGY:=standalone} MONGODB_STORAGE_ENGINE=${MONGODB_STORAGE_ENGINE:=wiredTiger} mongodb-runner start", - "testonly": "cross-env MONGODB_VERSION=${MONGODB_VERSION:=5.2.1} MONGODB_TOPOLOGY=${MONGODB_TOPOLOGY:=standalone} MONGODB_STORAGE_ENGINE=${MONGODB_STORAGE_ENGINE:=wiredTiger} TESTING=1 jasmine", + "pretest": "cross-env MONGODB_VERSION=${MONGODB_VERSION:=5.3.2} MONGODB_TOPOLOGY=${MONGODB_TOPOLOGY:=standalone} MONGODB_STORAGE_ENGINE=${MONGODB_STORAGE_ENGINE:=wiredTiger} mongodb-runner start", + "testonly": "cross-env MONGODB_VERSION=${MONGODB_VERSION:=5.3.2} MONGODB_TOPOLOGY=${MONGODB_TOPOLOGY:=standalone} MONGODB_STORAGE_ENGINE=${MONGODB_STORAGE_ENGINE:=wiredTiger} TESTING=1 jasmine", "test": "npm run testonly", - "posttest": "cross-env MONGODB_VERSION=${MONGODB_VERSION:=5.2.1} MONGODB_TOPOLOGY=${MONGODB_TOPOLOGY:=standalone} MONGODB_STORAGE_ENGINE=${MONGODB_STORAGE_ENGINE:=wiredTiger} mongodb-runner stop", - "coverage": "cross-env MONGODB_VERSION=${MONGODB_VERSION:=5.2.1} MONGODB_TOPOLOGY=${MONGODB_TOPOLOGY:=standalone} MONGODB_STORAGE_ENGINE=${MONGODB_STORAGE_ENGINE:=wiredTiger} TESTING=1 nyc jasmine", + "posttest": "cross-env MONGODB_VERSION=${MONGODB_VERSION:=5.3.2} MONGODB_TOPOLOGY=${MONGODB_TOPOLOGY:=standalone} MONGODB_STORAGE_ENGINE=${MONGODB_STORAGE_ENGINE:=wiredTiger} mongodb-runner stop", + "coverage": "cross-env MONGODB_VERSION=${MONGODB_VERSION:=5.3.2} MONGODB_TOPOLOGY=${MONGODB_TOPOLOGY:=standalone} MONGODB_STORAGE_ENGINE=${MONGODB_STORAGE_ENGINE:=wiredTiger} TESTING=1 nyc jasmine", "start": "node ./bin/parse-server", "prettier": "prettier --write {src,spec}/{**/*,*}.js", "prepare": "npm run build",