Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build: Release #9628

Merged
merged 65 commits into from
Mar 4, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
4e151cd
feat: Increase required minimum Node versions to `18.20.4`, `20.18.0`…
mtrezza Jan 11, 2025
93b2bb7
chore(release): 8.0.0-alpha.1 [skip ci]
semantic-release-bot Jan 11, 2025
ff7f671
fix: Push adapter not loading on some versions of Node 22 (#9524)
dblythy Jan 11, 2025
fbf78f0
chore(release): 8.0.0-alpha.2 [skip ci]
semantic-release-bot Jan 11, 2025
871e508
feat: Increase required minimum MongoDB versions to `6.0.19`, `7.0.16…
mtrezza Jan 12, 2025
85b71da
chore(release): 8.0.0-alpha.3 [skip ci]
semantic-release-bot Jan 12, 2025
7f66629
feat: Deprecate `PublicAPIRouter` in favor of `PagesRouter` (#9526)
dblythy Jan 12, 2025
7534eb7
chore(release): 8.0.0-alpha.4 [skip ci]
semantic-release-bot Jan 12, 2025
5c5ad69
feat: Change default value of Parse Server option `encodeParseObjectI…
dblythy Jan 12, 2025
6895768
chore(release): 8.0.0-alpha.5 [skip ci]
semantic-release-bot Jan 12, 2025
89c9b54
feat: Increase required minimum versions to Postgres `15`, PostGIS `3…
mtrezza Jan 12, 2025
3f0f29b
chore(release): 8.0.0-alpha.6 [skip ci]
semantic-release-bot Jan 12, 2025
bb1daaf
refactor: Bump mime from 4.0.4 to 4.0.6 (#9502)
dependabot[bot] Jan 12, 2025
a0efad8
refactor: Bump otpauth from 9.3.5 to 9.3.6 (#9493)
dependabot[bot] Jan 12, 2025
1b61cab
refactor: Bump @semantic-release/release-notes-generator from 14.0.1 …
dependabot[bot] Jan 13, 2025
28b3ede
refactor: Bump semantic-release from 24.2.0 to 24.2.1 (#9539)
dependabot[bot] Jan 13, 2025
ad0a7bc
refactor: Bump @graphql-tools/schema from 10.0.13 to 10.0.16 (#9542)
dependabot[bot] Jan 14, 2025
970528d
refactor: Bump @semantic-release/commit-analyzer from 13.0.0 to 13.0.…
dependabot[bot] Jan 14, 2025
cdf5115
refactor: Bump @apollo/server from 4.11.2 to 4.11.3 (#9549)
dependabot[bot] Jan 16, 2025
59340ce
refactor: Bump lint-staged from 15.2.11 to 15.3.0 (#9548)
dependabot[bot] Jan 16, 2025
7194ccc
refactor: Bump @graphql-tools/merge from 9.0.14 to 9.0.17 (#9552)
dependabot[bot] Jan 16, 2025
34636be
test: Add test for saving file without extension (#9535)
dblythy Jan 16, 2025
1b8ecba
refactor: Bump yaml from 2.6.1 to 2.7.0 (#9559)
dependabot[bot] Jan 17, 2025
0644f42
refactor: Bump @apollo/client from 3.12.3 to 3.12.6 (#9561)
dependabot[bot] Jan 20, 2025
0a23023
refactor: Bump @babel/plugin-transform-flow-strip-types from 7.25.9 t…
dependabot[bot] Jan 20, 2025
42f785e
refactor: Bump lint-staged from 15.3.0 to 15.4.1 (#9563)
dependabot[bot] Jan 21, 2025
6181652
refactor: Bump uuid from 11.0.3 to 11.0.5 (#9568)
dependabot[bot] Jan 23, 2025
5ca0aa3
refactor: Bump @apollo/client from 3.12.6 to 3.12.7 (#9569)
dependabot[bot] Jan 24, 2025
3b20a6f
refactor: Bump @babel/core from 7.26.0 to 7.26.7 (#9572)
dependabot[bot] Jan 27, 2025
91618fe
feat: Add support for MongoDB `databaseOptions` keys `minPoolSize`, `…
pocketcolin Jan 28, 2025
e6bf004
chore(release): 8.0.0-alpha.7 [skip ci]
semantic-release-bot Jan 28, 2025
ea5ee68
refactor: Bump @apollo/client from 3.12.7 to 3.12.8 (#9575)
dependabot[bot] Jan 28, 2025
a68f71b
refactor: Upgrade to commander 13.0.0 (#9574)
dblythy Jan 29, 2025
d1f6d3a
refactor: Bump lint-staged from 15.4.1 to 15.4.3 (#9576)
dependabot[bot] Jan 29, 2025
5966068
feat: Add support for MongoDB `databaseOptions` keys `autoSelectFamil…
pocketcolin Jan 30, 2025
a97d418
chore(release): 8.0.0-alpha.8 [skip ci]
semantic-release-bot Jan 30, 2025
59e46d0
feat: Add TypeScript support (#9550)
dblythy Jan 30, 2025
239e692
chore(release): 8.0.0-alpha.9 [skip ci]
semantic-release-bot Jan 30, 2025
889dbb5
refactor: Upgrade to eslint 9.19.0 (#9580)
dblythy Feb 1, 2025
8f85ae2
fix: Security upgrade node from 20.17.0-alpine3.20 to 20.18.2-alpine3…
parseplatformorg Feb 1, 2025
d4d805c
chore(release): 8.0.0-alpha.10 [skip ci]
semantic-release-bot Feb 1, 2025
d09762c
refactor: Bump @babel/eslint-parser from 7.25.9 to 7.26.5 (#9585)
dependabot[bot] Feb 3, 2025
3f4a34e
refactor: Bump express-rate-limit from 7.4.1 to 7.5.0 (#9587)
dependabot[bot] Feb 4, 2025
0133417
refactor: Upgrade @parse/push-adapter from 6.8.0 to 6.9.1 (#9586)
parseplatformorg Feb 4, 2025
9f1232e
refactor: Bump mongodb from 6.12.0 to 6.13.0 (#9594)
dependabot[bot] Feb 5, 2025
80c7181
refactor: Bump @parse/push-adapter from 6.9.1 to 6.10.0 (#9596)
dependabot[bot] Feb 6, 2025
be7d6e8
refactor: Bump semver from 7.6.3 to 7.7.1 (#9598)
dependabot[bot] Feb 7, 2025
d0b2db6
ci: Remove dtslint (#9599)
dblythy Feb 9, 2025
27bc74a
refactor: Bump @graphql-tools/merge from 9.0.17 to 9.0.18 (#9602)
dependabot[bot] Feb 10, 2025
4153737
refactor: Bump eslint from 9.19.0 to 9.20.0 (#9601)
dependabot[bot] Feb 11, 2025
6f1d161
feat: Add dynamic master key by setting Parse Server option `masterKe…
dblythy Feb 12, 2025
d89d8a4
chore(release): 8.0.0-alpha.11 [skip ci]
semantic-release-bot Feb 12, 2025
0a5a0ae
refactor: Bump @graphql-tools/merge from 9.0.18 to 9.0.19 (#9603)
dependabot[bot] Feb 12, 2025
455c2b3
refactor: Bump globals from 15.14.0 to 15.15.0 (#9611)
dependabot[bot] Feb 13, 2025
ef68fb1
refactor: Bump @babel/core from 7.26.7 to 7.26.8 (#9612)
dependabot[bot] Feb 14, 2025
bbc6bd4
fix: LiveQueryServer crashes using cacheAdapter on disconnect from Re…
Chilldev Feb 24, 2025
6a6bc2a
chore(release): 8.0.0-alpha.12 [skip ci]
semantic-release-bot Feb 24, 2025
d21dd97
fix: Remove username from email verification and password reset proce…
dblythy Mar 2, 2025
275fe37
chore(release): 8.0.0-alpha.13 [skip ci]
semantic-release-bot Mar 2, 2025
bf9db75
feat: Upgrade to Parse JS SDK 6.0.0 (#9624)
dblythy Mar 2, 2025
cc8dad8
chore(release): 8.0.0-alpha.14 [skip ci]
semantic-release-bot Mar 2, 2025
e0480df
feat: Upgrade to express 5.0.1 (#9530)
pocketcolin Mar 3, 2025
9c2d993
chore(release): 8.0.0-alpha.15 [skip ci]
semantic-release-bot Mar 3, 2025
d4eab0e
ci: Remove beta branch (#9626)
mtrezza Mar 4, 2025
34867b7
Merge branch 'release' into build/release
mtrezza Mar 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
{
"plugins": [
"@babel/plugin-transform-flow-strip-types",
"@babel/plugin-proposal-object-rest-spread"
"@babel/plugin-transform-flow-strip-types"
],
"presets": [
"@babel/preset-typescript",
["@babel/preset-env", {
"targets": {
"node": "14",
"node": "18"
},
"exclude": ["proposal-dynamic-import"]
}]
Expand Down
3 changes: 0 additions & 3 deletions .eslintignore

This file was deleted.

35 changes: 0 additions & 35 deletions .eslintrc.json

This file was deleted.

75 changes: 30 additions & 45 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
paths-ignore:
- '**/**.md'
env:
NODE_VERSION: 22.4.1
NODE_VERSION: 22.12.0
PARSE_SERVER_TEST_TIMEOUT: 20000
permissions:
actions: write
Expand Down Expand Up @@ -138,45 +138,42 @@ jobs:
uses: mansona/npm-lockfile-version@v1
with:
version: 2
check-types:
name: Check Types
timeout-minutes: 5
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: npm ci
- name: Build types
run: npm run build:types
check-mongo:
strategy:
matrix:
include:
- name: MongoDB 4.2, ReplicaSet
MONGODB_VERSION: 4.2.25
MONGODB_TOPOLOGY: replset
NODE_VERSION: 22.4.1
- name: MongoDB 4.4, ReplicaSet
MONGODB_VERSION: 4.4.29
MONGODB_TOPOLOGY: replset
NODE_VERSION: 22.4.1
- name: MongoDB 5, ReplicaSet
MONGODB_VERSION: 5.0.26
MONGODB_TOPOLOGY: replset
NODE_VERSION: 22.4.1
- name: MongoDB 6, ReplicaSet
MONGODB_VERSION: 6.0.14
MONGODB_VERSION: 6.0.19
MONGODB_TOPOLOGY: replset
NODE_VERSION: 22.4.1
NODE_VERSION: 22.12.0
- name: MongoDB 7, ReplicaSet
MONGODB_VERSION: 7.0.8
MONGODB_VERSION: 7.0.16
MONGODB_TOPOLOGY: replset
NODE_VERSION: 22.4.1
NODE_VERSION: 22.12.0
- name: MongoDB 8, ReplicaSet
MONGODB_VERSION: 8.0.0
MONGODB_VERSION: 8.0.4
MONGODB_TOPOLOGY: replset
NODE_VERSION: 22.4.1
NODE_VERSION: 22.12.0
- name: Redis Cache
PARSE_SERVER_TEST_CACHE: redis
MONGODB_VERSION: 8.0.0
MONGODB_VERSION: 8.0.4
MONGODB_TOPOLOGY: standalone
NODE_VERSION: 22.4.1
NODE_VERSION: 22.12.0
- name: Node 20
MONGODB_VERSION: 8.0.0
MONGODB_VERSION: 8.0.4
MONGODB_TOPOLOGY: standalone
NODE_VERSION: 20.15.1
NODE_VERSION: 20.18.0
- name: Node 18
MONGODB_VERSION: 8.0.0
MONGODB_VERSION: 8.0.4
MONGODB_TOPOLOGY: standalone
NODE_VERSION: 18.20.4
fail-fast: false
Expand Down Expand Up @@ -225,33 +222,21 @@ jobs:
strategy:
matrix:
include:
- name: PostgreSQL 13, PostGIS 3.1
POSTGRES_IMAGE: postgis/postgis:13-3.1
NODE_VERSION: 22.4.1
- name: PostgreSQL 13, PostGIS 3.2
POSTGRES_IMAGE: postgis/postgis:13-3.2
NODE_VERSION: 22.4.1
- name: PostgreSQL 13, PostGIS 3.3
POSTGRES_IMAGE: postgis/postgis:13-3.3
NODE_VERSION: 22.4.1
- name: PostgreSQL 13, PostGIS 3.4
POSTGRES_IMAGE: postgis/postgis:13-3.4
NODE_VERSION: 22.4.1
- name: PostgreSQL 13, PostGIS 3.5
POSTGRES_IMAGE: postgis/postgis:13-3.5
NODE_VERSION: 22.4.1
- name: PostgreSQL 14, PostGIS 3.5
POSTGRES_IMAGE: postgis/postgis:14-3.5
NODE_VERSION: 22.4.1
- name: PostgreSQL 15, PostGIS 3.3
POSTGRES_IMAGE: postgis/postgis:15-3.3
NODE_VERSION: 22.12.0
- name: PostgreSQL 15, PostGIS 3.4
POSTGRES_IMAGE: postgis/postgis:15-3.4
NODE_VERSION: 22.12.0
- name: PostgreSQL 15, PostGIS 3.5
POSTGRES_IMAGE: postgis/postgis:15-3.5
NODE_VERSION: 22.4.1
NODE_VERSION: 22.12.0
- name: PostgreSQL 16, PostGIS 3.5
POSTGRES_IMAGE: postgis/postgis:16-3.5
NODE_VERSION: 22.4.1
NODE_VERSION: 22.12.0
- name: PostgreSQL 17, PostGIS 3.5
POSTGRES_IMAGE: postgis/postgis:17-3.5
NODE_VERSION: 22.4.1
NODE_VERSION: 22.12.0
fail-fast: false
name: ${{ matrix.name }}
timeout-minutes: 20
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-automated.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ jobs:
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 18.20.0
node-version: 18.20.4
- name: Cache Node.js modules
uses: actions/cache@v4
with:
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ node_modules

# Babel.js
lib/
# types/* once we have full typescript support, we can generate types from the typescript files
!types/tsconfig.json

# cache folder
.cache
Expand Down
19 changes: 11 additions & 8 deletions .releaserc.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,12 @@ async function config() {

// Get branch
const branch = ref?.split('/')?.pop()?.split('-')[0] || '(current branch could not be determined)';
// eslint-disable-next-line no-console
console.log(`Running on branch: ${branch}`);

// Set changelog file
const changelogFile = `./changelogs/CHANGELOG_${branch}.md`;
// eslint-disable-next-line no-console
console.log(`Changelog file output to: ${changelogFile}`);

// Load template file contents
Expand All @@ -43,10 +45,10 @@ async function config() {
branches: [
'release',
{ name: 'alpha', prerelease: true },
{ name: 'beta', prerelease: true },
// { name: 'beta', prerelease: true },
'next-major',
// Long-Term-Support branch of previous major version
'release-6.x.x',
// Long-Term-Support branch
'release-8.x.x',
],
dryRun: false,
debug: true,
Expand All @@ -60,13 +62,13 @@ async function config() {
{ scope: 'no-release', release: false },
],
parserOpts: {
noteKeywords: [ 'BREAKING CHANGE', 'BREAKING CHANGES', 'BREAKING' ],
noteKeywords: ['BREAKING CHANGE'],
},
}],
['@semantic-release/release-notes-generator', {
preset: 'angular',
parserOpts: {
noteKeywords: ['BREAKING CHANGE', 'BREAKING CHANGES', 'BREAKING']
noteKeywords: ['BREAKING CHANGE']
},
writerOpts: {
commitsSort: ['subject', 'scope'],
Expand Down Expand Up @@ -95,8 +97,9 @@ async function config() {
"@saithodev/semantic-release-backmerge",
{
"backmergeBranches": [
{ from: "beta", to: "alpha" },
{ from: "release", to: "beta" },
// { from: 'beta', to: 'alpha' },
// { from: 'release', to: 'beta' },
{ from: 'release', to: 'alpha' },
]
}
],
Expand All @@ -108,7 +111,7 @@ async function config() {

async function loadTemplates() {
for (const template of Object.keys(templates)) {

// For ES6 modules use:
// const fileUrl = import.meta.url;
// const __dirname = dirname(fileURLToPath(fileUrl));
Expand Down
27 changes: 27 additions & 0 deletions 8.0.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Parse Server 8 Migration Guide <!-- omit in toc -->

This document only highlights specific changes that require a longer explanation. For a full list of changes in Parse Server 8 please refer to the [changelog](https://github.com/parse-community/parse-server/blob/alpha/CHANGELOG.md).

---

- [Email Verification](#email-verification)

---

## Email Verification

In order to remove sensitive information (PII) from technical logs, the `Parse.User.username` field has been removed from the email verification process. This means the username will no longer be used and the already existing verification token, that is internal to Parse Server and associated with the user, will be used instead. This makes use of the fact that an expired verification token is not deleted from the database by Parse Server, despite being expired, and can therefore be used to identify a user.

This change affects how verification emails with expired tokens are handled. When opening a verification link that contains an expired token, the page that the user is redirected to will no longer provide the `username` as a URL query parameter. Instead, the URL query parameter `token` will be provided.

The request to re-send a verification email changed to sending a `POST` request to the endpoint `/resend_verification_email` with `token` in the body, instead of `username`. If you have customized the HTML pages for email verification either for the `PagesRouter` in `/public/` or the deprecated `PublicAPIRouter` in `/public_html/`, you need to adapt the form request in your custom pages. See the example pages in these aforementioned directories for how the forms must be set up.

> [!WARNING]
> An expired verification token is not automatically deleted from the database by Parse Server even though it has expired. If you have implemented a custom clean-up logic that removes expired tokens, this will break the form request to re-send a verification email as the expired token won't be found and cannot be associated with any user. In that case you'll have to implement your custom process to re-send a verification email.

> [!IMPORTANT]
> Parse Server does not keep a history of verification tokens but only stores the most recently generated verification token in the database. Every time Parse Server generates a new verification token, the currently stored token is replaced. If a user opens a link with an expired token, and that token has already been replaced in the database, Parse Server cannot associate the expired token with any user. In this case, another way has to be offered to the user to re-send a verification email. To mitigate this issue, set the Parse Server option `emailVerifyTokenReuseIfValid: true` and set `emailVerifyTokenValidityDuration` to a longer duration, which ensures that the currently stored verification token is not replaced too soon.

Related pull requests:

- https://github.com/parse-community/parse-server/pull/8488
13 changes: 0 additions & 13 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,6 @@ Details:
- Purpose: official release
- Suitable environment: production

## ⚠️ [Beta Releases][log_beta]

> ### “Please try out, we’d love your feedback!”

These are releases that are pretty stable, but may have still some bugs to be fixed before official release.

Details:
- Stability: *pretty stable*
- NPM channel: `@beta`
- Branch: [beta][branch_beta]
- Purpose: feature maturation
- Suitable environment: development

## 🔥 [Alpha Releases][log_alpha]

> ### “If you are curious to see what's next!”
Expand Down
3 changes: 2 additions & 1 deletion DEPRECATIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ The following is a list of deprecations, according to the [Deprecation Policy](h
| DEPPS7 | Remove file trigger syntax `Parse.Cloud.beforeSaveFile((request) => {})` | [#7966](https://github.com/parse-community/parse-server/pull/7966) | 5.3.0 (2022) | 7.0.0 (2024) | removed | - |
| DEPPS8 | Login with expired 3rd party authentication token defaults to `false` | [#7079](https://github.com/parse-community/parse-server/pull/7079) | 5.3.0 (2022) | 7.0.0 (2024) | removed | - |
| DEPPS9 | Rename LiveQuery `fields` option to `keys` | [#8389](https://github.com/parse-community/parse-server/issues/8389) | 6.0.0 (2023) | 7.0.0 (2024) | removed | - |
| DEPPS10 | Config option `encodeParseObjectInCloudFunction` defaults to `true` | [#8634](https://github.com/parse-community/parse-server/issues/8634) | 6.2.0 (2023) | 8.0.0 (2025) | deprecated | - |
| DEPPS10 | Encode `Parse.Object` in Cloud Function and remove option `encodeParseObjectInCloudFunction` | [#8634](https://github.com/parse-community/parse-server/issues/8634) | 6.2.0 (2023) | 9.0.0 (2026) | deprecated | - |
| DEPPS11 | Replace `PublicAPIRouter` with `PagesRouter` | [#7625](https://github.com/parse-community/parse-server/issues/7625) | 8.0.0 (2025) | 9.0.0 (2026) | deprecated | - |

[i_deprecation]: ## "The version and date of the deprecation."
[i_removal]: ## "The version and date of the planned removal."
Expand Down
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
############################################################
# Build stage
############################################################
FROM node:20.17.0-alpine3.20 AS build
FROM node:20.18.2-alpine3.20 AS build

RUN apk --no-cache add \
build-base \
Expand All @@ -28,7 +28,7 @@ RUN npm ci --omit=dev --ignore-scripts \
############################################################
# Release stage
############################################################
FROM node:20.17.0-alpine3.20 AS release
FROM node:20.18.2-alpine3.20 AS release

VOLUME /parse-server/cloud /parse-server/config

Expand Down
Loading
Loading