From 8ba3f028b80e7f82937360b197d87cb615126b2b Mon Sep 17 00:00:00 2001 From: Manuel <5673677+mtrezza@users.noreply.github.com> Date: Fri, 9 Apr 2021 00:11:58 +0200 Subject: [PATCH] Bump CI environment, remove Postgres 10 support (#7323) * bumped MongoDB to 4.4.5 * bump Node to 14.16.1 * removed obsolete COVERAGE_OPTION * improved postges support note * bump more node * Remove MongoDB 3.6 support (EOL) (#7315) * removed mongodb 3.6 support * add changelog entry * updated CI check * bumped MongoDB to 4.4.5 * bump Node to 14.16.1 * removed obsolete COVERAGE_OPTION * improved postges support note * bump more node * updated package lock * Revert "bumped MongoDB to 4.4.5" This reverts commit ce9c8108c3deaec3bbe753faf5fdedbfec1e48c9. * skipping MongoDB 4.4.5 temporarily * fixed bug in CI check that did not consider ignored versions when checking for newer versions * removed Postgres 10 support * updated Postgres versions * renamed MongoDB CI tests * fixed Postgres compatibility table * fix Postgres badge --- .github/workflows/ci.yml | 37 ++++++++++++++++------------------ CHANGELOG.md | 2 +- README.md | 35 ++++++++++++++++---------------- resources/ci/CiVersionCheck.js | 7 +++++++ resources/ci/ciCheck.js | 10 +++++---- 5 files changed, 48 insertions(+), 43 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ed44d737..777a839a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,8 +7,7 @@ on: branches: - '**' env: - COVERAGE_OPTION: ./node_modules/.bin/nyc - NODE_VERSION: 14.16.0 + NODE_VERSION: 14.16.1 PARSE_SERVER_TEST_TIMEOUT: 20000 jobs: check-ci: @@ -76,42 +75,42 @@ jobs: strategy: matrix: include: - - name: Mongo 4.4, ReplicaSet, WiredTiger + - name: MongoDB 4.4, ReplicaSet, WiredTiger MONGODB_VERSION: 4.4.4 MONGODB_TOPOLOGY: replicaset MONGODB_STORAGE_ENGINE: wiredTiger - NODE_VERSION: 14.16.0 - - name: Mongo 4.2, ReplicaSet, WiredTiger + NODE_VERSION: 14.16.1 + - name: MongoDB 4.2, ReplicaSet, WiredTiger MONGODB_VERSION: 4.2.13 MONGODB_TOPOLOGY: replicaset MONGODB_STORAGE_ENGINE: wiredTiger - NODE_VERSION: 14.16.0 - - name: Mongo 4.0, ReplicaSet, WiredTiger + NODE_VERSION: 14.16.1 + - name: MongoDB 4.0, ReplicaSet, WiredTiger MONGODB_VERSION: 4.0.23 MONGODB_TOPOLOGY: replicaset MONGODB_STORAGE_ENGINE: wiredTiger - NODE_VERSION: 14.16.0 - - name: Mongo 4.0, Standalone, MMAPv1 + NODE_VERSION: 14.16.1 + - name: MongoDB 4.0, Standalone, MMAPv1 MONGODB_VERSION: 4.0.23 MONGODB_TOPOLOGY: standalone MONGODB_STORAGE_ENGINE: mmapv1 - NODE_VERSION: 14.16.0 + NODE_VERSION: 14.16.1 - name: Redis Cache PARSE_SERVER_TEST_CACHE: redis MONGODB_VERSION: 4.4.4 MONGODB_TOPOLOGY: standalone MONGODB_STORAGE_ENGINE: wiredTiger - NODE_VERSION: 14.16.0 + NODE_VERSION: 14.16.1 - name: Node 12 MONGODB_VERSION: 4.4.4 MONGODB_TOPOLOGY: standalone MONGODB_STORAGE_ENGINE: wiredTiger - NODE_VERSION: 12.22.0 + NODE_VERSION: 12.22.1 - name: Node 15 MONGODB_VERSION: 4.4.4 MONGODB_TOPOLOGY: standalone MONGODB_STORAGE_ENGINE: wiredTiger - NODE_VERSION: 15.13.0 + NODE_VERSION: 15.14.0 fail-fast: false name: ${{ matrix.name }} timeout-minutes: 15 @@ -151,15 +150,13 @@ jobs: strategy: matrix: include: - - name: Postgres 10, Postgis 3.1 - POSTGRES_IMAGE: postgis/postgis:10-3.1 - - name: Postgres 11, Postgis 3.1 + - name: PostgreSQL 11, PostGIS 3.0 + POSTGRES_IMAGE: postgis/postgis:11-3.0 + - name: PostgreSQL 11, PostGIS 3.1 POSTGRES_IMAGE: postgis/postgis:11-3.1 - - name: Postgres 12, Postgis 3.1 + - name: PostgreSQL 12, PostGIS 3.1 POSTGRES_IMAGE: postgis/postgis:12-3.1 - - name: Postgres 12, Postgis 3.0 - POSTGRES_IMAGE: postgis/postgis:12-3.0 - - name: Postgres 13, Postgis 3.1 + - name: PostgreSQL 13, PostGIS 3.1 POSTGRES_IMAGE: postgis/postgis:13-3.1 fail-fast: false name: ${{ matrix.name }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 40be5273..141bd94a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -92,12 +92,12 @@ ___ - Improved schema caching through database real-time hooks. Reduces DB queries, decreases Parse Query execution time and fixes a potential schema memory leak. If multiple Parse Server instances connect to the same DB (for example behind a load balancer), set the [Parse Server Option](https://parseplatform.org/parse-server/api/master/ParseServerOptions.html) `databaseOptions.enableSchemaHooks: true` to enable this feature and keep the schema in sync across all instances. Failing to do so will cause a schema change to not propagate to other instances and re-syncing will only happen when these instances restart. The options `enableSingleSchemaCache` and `schemaCacheTTL` have been removed. To use this feature with MongoDB, a replica set cluster with [change stream](https://docs.mongodb.com/manual/changeStreams/#availability) support is required. (Diamond Lewis, SebC) [#7214](https://github.com/parse-community/parse-server/issues/7214) - Added file upload restriction. File upload is now only allowed for authenticated users by default for improved security. To allow file upload also for Anonymous Users or Public, set the `fileUpload` parameter in the [Parse Server Options](https://parseplatform.org/parse-server/api/master/ParseServerOptions.html) (dblythy, Manuel Trezza) [#7071](https://github.com/parse-community/parse-server/pull/7071) - Removed [parse-server-simple-mailgun-adapter](https://github.com/parse-community/parse-server-simple-mailgun-adapter) dependency; to continue using the adapter it has to be explicitly installed (Manuel Trezza) [#7321](https://github.com/parse-community/parse-server/pull/7321) +- Remove support for MongoDB 3.6 which has reached its End-of-Life support date and PostgreSQL 10 (Manuel Trezza) [#7315](https://github.com/parse-community/parse-server/pull/7315) ### Notable Changes - Added Parse Server Security Check to report weak security settings (Manuel Trezza, dblythy) [#7247](https://github.com/parse-community/parse-server/issues/7247) - EXPERIMENTAL: Added new page router with placeholder rendering and localization of custom and feature pages such as password reset and email verification (Manuel Trezza) [#6891](https://github.com/parse-community/parse-server/issues/6891) - EXPERIMENTAL: Added custom routes to easily customize flows for password reset, email verification or build entirely new flows (Manuel Trezza) [#7231](https://github.com/parse-community/parse-server/issues/7231) - Remove support for Node 10 which has reached its End-of-Life support date (Manuel Trezza) [#7314](https://github.com/parse-community/parse-server/pull/7314) -- Remove support for MongoDB 3.6 which has reached its End-of-Life support date (Manuel Trezza) [#7315](https://github.com/parse-community/parse-server/pull/7315) ### Other Changes - Fix error when a not yet inserted job is updated (Antonio Davi Macedo Coelho de Castro) [#7196](https://github.com/parse-community/parse-server/pull/7196) - request.context for afterFind triggers (dblythy) [#7078](https://github.com/parse-community/parse-server/pull/7078) diff --git a/README.md b/README.md index 187cc77a..d52ea5c8 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Snyk badge Node.js 12,14,15 MongoDB 4.0,4.2,4.4 - PostgreSQL 10,11,12,13 + PostgreSQL 11,12,13

Our Sponsors

@@ -112,30 +112,29 @@ Before you start make sure you have installed: #### Node.js 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. -| Version | Latest Patch Version | End-of-Life Date | Compatibility | -|------------|----------------------|------------------|--------------------| -| Node.js 12 | 12.22.0 | April 2022 | ✅ Fully compatible | -| Node.js 14 | 14.16.0 | April 2023 | ✅ Fully compatible | -| Node.js 15 | 15.13.0 | June 2021 | ✅ Fully compatible | +| Version | Latest Version | End-of-Life Date | Compatibility | +|------------|----------------|------------------|--------------------| +| Node.js 12 | 12.22.1 | April 2022 | ✅ Fully compatible | +| Node.js 14 | 14.16.1 | April 2023 | ✅ Fully compatible | +| Node.js 15 | 15.14.0 | June 2021 | ✅ Fully compatible | #### 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. -| Version | Latest Patch Version | End-of-Life Date | Compatibility | -|-------------|----------------------|------------------|--------------------| -| MongoDB 4.0 | 4.0.23 | January 2022 | ✅ Fully compatible | -| MongoDB 4.2 | 4.2.13 | TBD | ✅ Fully compatible | -| MongoDB 4.4 | 4.4.4 | TBD | ✅ Fully compatible | +| Version | Latest Version | End-of-Life Date | Compatibility | +|-------------|----------------|------------------|--------------------| +| MongoDB 4.0 | 4.0.23 | January 2022 | ✅ Fully compatible | +| MongoDB 4.2 | 4.2.13 | TBD | ✅ Fully compatible | +| MongoDB 4.4 | 4.4.4 | TBD | ✅ Fully compatible | #### PostgreSQL -Parse Server is continuously tested with the most recent releases of PostgreSQL and PostGIS to ensure compatibility. We follow the [PostGIS docker tags](https://registry.hub.docker.com/r/postgis/postgis/tags?page=1&ordering=last_updated) 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 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. -| Version | PostGIS Version | End-of-Life Date | Compatibility | -|---------------|-----------------|------------------|--------------------| -| Postgres 10.x | 3.0.x, 3.1.x | November 2022 | ✅ Fully compatible | -| Postgres 11.x | 3.0.x, 3.1.x | November 2023 | ✅ Fully compatible | -| Postgres 12.x | 3.0.x, 3.1.x | November 2024 | ✅ Fully compatible | -| Postgres 13.x | 3.0.x, 3.1.x | November 2025 | ✅ Fully compatible | +| Version | PostGIS Version | End-of-Life Date | Parse Server Support End | Compatibility | +|-------------|-----------------|------------------|--------------------------|--------------------| +| Postgres 11 | 3.0, 3.1 | November 2023 | April 2022 | ✅ Fully compatible | +| Postgres 12 | 3.1 | November 2024 | April 2023 | ✅ Fully compatible | +| Postgres 13 | 3.1 | November 2025 | April 2024 | ✅ Fully compatible | ### Locally ```bash diff --git a/resources/ci/CiVersionCheck.js b/resources/ci/CiVersionCheck.js index 763d9073..098dee59 100644 --- a/resources/ci/CiVersionCheck.js +++ b/resources/ci/CiVersionCheck.js @@ -193,6 +193,13 @@ class CiVersionCheck { ? '^' : '~' const latest = semver.maxSatisfying(versions, `${operator}${version}`); + + // If the version should be ignored, skip it + if (this.ignoreReleasedVersions.length > 0 && semver.satisfies(latest, this.ignoreReleasedVersions.join(' || '))) { + return undefined; + } + + // Return the latest version if it is newer than any currently used version return semver.gt(latest, version) ? latest : undefined; } diff --git a/resources/ci/ciCheck.js b/resources/ci/ciCheck.js index ed94af7a..f0f6e8de 100644 --- a/resources/ci/ciCheck.js +++ b/resources/ci/ciCheck.js @@ -33,10 +33,12 @@ async function checkMongoDbVersions() { releasedVersions, latestComponent: CiVersionCheck.versionComponents.path, ignoreReleasedVersions: [ - '<4.0.0', // These versions have reached their MongoDB end-of-life support date - '~4.1.0', // This is a development release according to MongoDB support - '~4.3.0', // This is a development release according to MongoDB support - '~4.7.0', // This is a development release according to MongoDB support + '<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.4.5', // Temporarily disabled because not yet available for download via mongodb-runner ], }).check(); }