diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ed44d737e2..777a839a70 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 40be52734a..67cebb83f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -86,18 +86,20 @@ Jump directly to a version: ___ + ## Unreleased (Master Branch) [Full Changelog](https://github.com/parse-community/parse-server/compare/4.5.0...master) ### Breaking Changes - 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 date and PostgreSQL 10 (Manuel Trezza) [#7315](https://github.com/parse-community/parse-server/pull/7315) +- Remove support for Node 10 which has reached its End-of-Life date (Manuel Trezza) [#7314](https://github.com/parse-community/parse-server/pull/7314) ### 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) +- Added Deprecation Policy to govern the introduction of braking changes in a phased pattern that is more predictable for developers (Manuel Trezza) [#7199](https://github.com/parse-community/parse-server/pull/7199) ### 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/CONTRIBUTING.md b/CONTRIBUTING.md index c2254e4cc9..a761f91955 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,6 +11,8 @@ - [Please Do's](#please-dos) - [Test against Postgres](#test-against-postgres) - [Postgres with Docker](#postgres-with-docker) +- [Breaking Changes](#breaking-changes) + - [Deprecation Policy](#deprecation-policy) - [Feature Considerations](#feature-considerations) - [Security Checks](#security-checks) - [Add Security Check](#add-security-check) @@ -58,7 +60,7 @@ Most importantly, with every contribution you improve your skills so that future ### Recommended Tools -* [vscode](https://code.visualstudio.com), the popular IDE. +* [Visual Studio Code](https://code.visualstudio.com), the popular IDE. * [Jasmine Test Explorer](https://marketplace.visualstudio.com/items?itemName=hbenl.vscode-jasmine-test-adapter), a very practical test exploration plugin which let you run, debug and see the test results inline. ### Setting up your local machine @@ -164,6 +166,31 @@ RUN chmod +x /docker-entrypoint-initdb.d/setup-dbs.sh Note that the script above will ONLY be executed during initialization of the container with no data in the database, see the official [Postgres image](https://hub.docker.com/_/postgres) for details. If you want to use the script to run again be sure there is no data in the /var/lib/postgresql/data of the container. +## Breaking Changes + +Breaking changes should be avoided whenever possible. For a breaking change to be accepted, the benefits of the change have to clearly outweigh the costs of developers having to adapt their deployments. If a breaking change is only cosmetic it will likely be rejected and preferred to become obsolete organically during the course of further development, unless it is required as part of a larger change. Breaking changes should follow the [Deprecation Policy](#deprecation-policy). + +Please consider that Parse Server is just one component in a stack that requires attention. A breaking change requires resources and effort to adapt an environment. An unnecessarily high frequency of breaking changes can have detrimental side effects such as: +- "upgrade fatigue" where developers run old versions of Parse Server because they cannot always attend to every update that contains a breaking change +- less secure Parse Server deployments that run on old versions which is contrary to the security evangelism Parse Server intends to facilitate for developers +- less feedback and slower identification of bugs and an overall slow-down of Parse Server development because new versions with breaking changes also include new features we want to get feedback on + +### Deprecation Policy + +If you change or remove an existing feature that would lead to a breaking change, use the following deprecation pattern: + - Make the new feature or change optional, if necessary with a new Parse Server option parameter. + - Use a default value that falls back to existing behavior. + - Add a deprecation definition in `Deprecator/Deprecations.js` that will output a deprecation warning log message on Parse Server launch, for example: + > DeprecationWarning: The Parse Server option 'example' will be removed in a future release. + +Deprecations become breaking changes after notifying developers through deprecation warnings for at least one entire previous major release. For example: + - `4.5.0` is the current version + - `4.6.0` adds a new optional feature and a deprecation warning for the existing feature + - `5.0.0` marks the beginning of logging the deprecation warning for one entire major release + - `6.0.0` makes the breaking change by removing the deprecation warning and making the new feature replace the existing feature + +Developer feedback during the deprecation period may further postpone the introduction of a breaking change. + ## Feature Considerations ### Security Checks diff --git a/README.md b/README.md index 187cc77a47..d52ea5c869 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. - -| 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 | +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 | 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/package-lock.json b/package-lock.json index d064d27a43..fab2525abf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -167,9 +167,9 @@ } }, "@babel/compat-data": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.12.tgz", - "integrity": "sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.15.tgz", + "integrity": "sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA==", "dev": true }, "@babel/core": { @@ -477,15 +477,15 @@ } }, "@babel/parser": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", - "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz", + "integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==", "dev": true }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz", - "integrity": "sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz", + "integrity": "sha512-VapibkWzFeoa6ubXy/NgV5U2U4MVnUlvnx6wo1XhlsaTrLYWE0UFpDQsVrmn22q5CzeloqJ8gEMHSKxuee6ZdA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.13.0", @@ -934,9 +934,9 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz", - "integrity": "sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz", + "integrity": "sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ==", "dev": true, "requires": { "regenerator-transform": "^0.14.2" @@ -1138,17 +1138,17 @@ } }, "@babel/traverse": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.13.tgz", - "integrity": "sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.15.tgz", + "integrity": "sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", "@babel/generator": "^7.13.9", "@babel/helper-function-name": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.13", - "@babel/types": "^7.13.13", + "@babel/parser": "^7.13.15", + "@babel/types": "^7.13.14", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -3468,9 +3468,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001207", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001207.tgz", - "integrity": "sha512-UPQZdmAsyp2qfCTiMU/zqGSWOYaY9F9LL61V8f+8MrubsaDGpaHD9HRV/EWZGULZn0Hxu48SKzI5DgFwTvHuYw==", + "version": "1.0.30001208", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001208.tgz", + "integrity": "sha512-OE5UE4+nBOro8Dyvv0lfx+SRtfVIOM9uhKqFmJeUbGriqhhStgp1A0OyBpgy3OUF8AhYCT+PVwPC1gMl2ZcQMA==", "dev": true }, "caseless": { @@ -5013,9 +5013,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { - "version": "1.3.710", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.710.tgz", - "integrity": "sha512-b3r0E2o4yc7mNmBeJviejF1rEx49PUBi+2NPa7jHEX3arkAXnVgLhR0YmV8oi6/Qf3HH2a8xzQmCjHNH0IpXWQ==", + "version": "1.3.711", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.711.tgz", + "integrity": "sha512-XbklBVCDiUeho0PZQCjC25Ha6uBwqqJeyDhPLwLwfWRAo4x+FZFsmu1pPPkXT+B4MQMQoQULfyaMltDopfeiHQ==", "dev": true }, "elegant-spinner": { @@ -7024,14 +7024,6 @@ "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - } } }, "imurmurhash": { @@ -9168,14 +9160,14 @@ "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" }, "mongodb": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.3.tgz", - "integrity": "sha512-rOZuR0QkodZiM+UbQE5kDsJykBqWi0CL4Ec2i1nrGrUI3KO11r6Fbxskqmq3JK2NH7aW4dcccBuUujAP0ERl5w==", + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.6.tgz", + "integrity": "sha512-WlirMiuV1UPbej5JeCMqE93JRfZ/ZzqE7nJTwP85XzjAF4rRSeq2bGCb1cjfoHLOF06+HxADaPGqT0g3SbVT1w==", "requires": { "bl": "^2.2.1", "bson": "^1.1.4", "denque": "^1.4.1", - "require_optional": "^1.0.1", + "optional-require": "^1.0.2", "safe-buffer": "^5.1.2", "saslprep": "^1.0.0" } @@ -9869,6 +9861,11 @@ "@wry/trie": "^0.3.0" } }, + "optional-require": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.0.2.tgz", + "integrity": "sha512-HZubVd6IfHsbnpdNF/ICaSAzBUEW1TievpkjY3tB4Jnk8L7+pJ3conPzUt3Mn/6OZx9uzTDOHYPGA8/AxYHBOg==" + }, "optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", @@ -10890,9 +10887,9 @@ "optional": true }, "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", "dev": true, "optional": true }, @@ -10963,15 +10960,23 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", + "dev": true, "requires": { "resolve-from": "^2.0.0", "semver": "^5.1.0" }, "dependencies": { + "resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", + "dev": true + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true } } }, @@ -11017,9 +11022,10 @@ "dev": true }, "resolve-from": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true }, "resolve-url": { "version": "0.2.1", @@ -12653,14 +12659,14 @@ } }, "winston-daily-rotate-file": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.5.0.tgz", - "integrity": "sha512-/HqeWiU48dzGqcrABRlxYWVMdL6l3uKCtFSJyrqK+E2rLnSFNsgYpvwx15EgTitBLNzH69lQd/+z2ASryV2aqw==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.5.1.tgz", + "integrity": "sha512-Uv1KeBneTKFZ9R3J6SmI61vOoPEofxS+GZGEwYRPc7QFE1fpEz648eGWxLnOeo8CBrANwsd+GfK5DCd4Ab1xAQ==", "requires": { "file-stream-rotator": "^0.5.7", "object-hash": "^2.0.1", "triple-beam": "^1.3.0", - "winston-transport": "^4.2.0" + "winston-transport": "^4.4.0" } }, "winston-transport": { diff --git a/package.json b/package.json index a86b146558..473ca03793 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "lodash": "4.17.21", "lru-cache": "5.1.1", "mime": "2.5.2", - "mongodb": "3.6.3", + "mongodb": "3.6.6", "mustache": "4.1.0", "parse": "3.1.0", "pg-monitor": "1.4.1", @@ -58,7 +58,7 @@ "tv4": "1.3.0", "uuid": "8.3.2", "winston": "3.3.3", - "winston-daily-rotate-file": "4.5.0", + "winston-daily-rotate-file": "4.5.1", "ws": "7.4.4" }, "devDependencies": { diff --git a/resources/ci/CiVersionCheck.js b/resources/ci/CiVersionCheck.js index 763d907355..098dee59d3 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 ed94af7a9b..f0f6e8ded1 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(); }