Skip to content

Commit 39880fe

Browse files
authored
build: Release (#3028)
2 parents cc74316 + 0d3cde6 commit 39880fe

20 files changed

Lines changed: 7499 additions & 7918 deletions

.github/pull_request_template.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,9 @@
22

33
- Report security issues [confidentially](https://github.com/parse-community/Parse-SDK-JS/security/policy).
44
- Any contribution is under this [license](https://github.com/parse-community/Parse-SDK-JS/blob/alpha/LICENSE).
5-
- Link this pull request to an [issue](https://github.com/parse-community/Parse-SDK-JS/issues?q=is%3Aissue).
65

76
## Issue
8-
<!-- Add the link to the issue that this PR closes. -->
9-
10-
Closes: FILL_THIS_OUT
7+
<!-- Describe or link the issue that this PR closes. -->
118

129
## Approach
1310
<!-- Describe the changes in this PR. -->

.github/workflows/ci.yml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,12 @@ jobs:
1313
steps:
1414
- uses: actions/checkout@v4
1515
- name: Check NPM lock file version
16-
uses: mansona/npm-lockfile-version@v1
17-
with:
18-
version: 2
16+
run: |
17+
version=$(node -e "console.log(require('./package-lock.json').lockfileVersion)")
18+
if [ "$version" != "2" ]; then
19+
echo "::error::Expected lockfileVersion 2, got $version"
20+
exit 1
21+
fi
1922
check-types:
2023
name: Check Types
2124
timeout-minutes: 10
@@ -80,7 +83,7 @@ jobs:
8083
- name: Node 20
8184
NODE_VERSION: 20.19.0
8285
- name: Node 22
83-
NODE_VERSION: 22.12.0
86+
NODE_VERSION: 22.13.0
8487
- name: Node 24
8588
NODE_VERSION: 24.1.0
8689
fail-fast: false

.github/workflows/release-automated.yml

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,13 @@ jobs:
3535
if: needs.release.outputs.current_tag != '' && github.ref == 'refs/heads/release'
3636
runs-on: ubuntu-latest
3737
timeout-minutes: 15
38+
permissions:
39+
contents: read
40+
pages: write
41+
id-token: write
42+
environment:
43+
name: github-pages
44+
url: ${{ steps.deployment.outputs.page_url }}
3845
steps:
3946
- uses: actions/checkout@v4
4047
with:
@@ -50,8 +57,12 @@ jobs:
5057
npm run release_docs
5158
env:
5259
SOURCE_TAG: ${{ needs.release.outputs.current_tag }}
53-
- name: Deploy
54-
uses: peaceiris/actions-gh-pages@v3.7.3
60+
- name: Setup Pages
61+
uses: actions/configure-pages@v5
62+
- name: Upload artifact
63+
uses: actions/upload-pages-artifact@v4
5564
with:
56-
github_token: ${{ secrets.GITHUB_TOKEN }}
57-
publish_dir: ./docs
65+
path: ./docs
66+
- name: Deploy to GitHub Pages
67+
id: deployment
68+
uses: actions/deploy-pages@v4

.github/workflows/release-manual-docs.yml

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,18 @@ on:
55
tag:
66
default: ''
77
description: 'Version tag:'
8+
permissions:
9+
contents: read
10+
pages: write
11+
id-token: write
812
jobs:
913
docs-publish:
1014
if: github.event.inputs.tag != ''
1115
runs-on: ubuntu-latest
1216
timeout-minutes: 15
17+
environment:
18+
name: github-pages
19+
url: ${{ steps.deployment.outputs.page_url }}
1320
steps:
1421
- uses: actions/checkout@v4
1522
with:
@@ -25,8 +32,12 @@ jobs:
2532
npm run release_docs
2633
env:
2734
SOURCE_TAG: ${{ github.event.inputs.tag }}
28-
- name: Deploy
29-
uses: peaceiris/actions-gh-pages@v3.7.3
35+
- name: Setup Pages
36+
uses: actions/configure-pages@v5
37+
- name: Upload artifact
38+
uses: actions/upload-pages-artifact@v4
3039
with:
31-
github_token: ${{ secrets.GITHUB_TOKEN }}
32-
publish_dir: ./docs
40+
path: ./docs
41+
- name: Deploy to GitHub Pages
42+
id: deployment
43+
uses: actions/deploy-pages@v4

.github/workflows/release-prepare-monthly.yml

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,19 +28,35 @@ jobs:
2828
git commit -am 'empty commit to trigger CI' --allow-empty
2929
git push --set-upstream origin ${{ env.BRANCH_NAME }}
3030
- name: Create PR
31-
uses: k3rnels-actions/pr-update@v2
31+
uses: actions/github-script@v7
3232
with:
33-
token: ${{ secrets.RELEASE_GITHUB_TOKEN }}
34-
pr_title: "build: Release"
35-
pr_source: ${{ env.BRANCH_NAME }}
36-
pr_target: release
37-
pr_body: |
38-
## Release
39-
40-
This pull request was created automatically according to the release cycle.
41-
42-
> [!WARNING]
43-
> Only use `Merge Commit` to merge this pull request. Do not use `Rebase and Merge` or `Squash and Merge`.
33+
github-token: ${{ secrets.RELEASE_GITHUB_TOKEN }}
34+
script: |
35+
const { data: pulls } = await github.rest.pulls.list({
36+
owner: context.repo.owner,
37+
repo: context.repo.repo,
38+
head: `${context.repo.owner}:${process.env.BRANCH_NAME}`,
39+
base: 'release',
40+
state: 'open'
41+
});
42+
if (pulls.length > 0) {
43+
await github.rest.pulls.update({
44+
owner: context.repo.owner,
45+
repo: context.repo.repo,
46+
pull_number: pulls[0].number,
47+
title: 'build: Release',
48+
body: '## Release\n\nThis pull request was created automatically according to the release cycle.\n\n> [!WARNING]\n> Only use `Merge Commit` to merge this pull request. Do not use `Rebase and Merge` or `Squash and Merge`.'
49+
});
50+
} else {
51+
await github.rest.pulls.create({
52+
owner: context.repo.owner,
53+
repo: context.repo.repo,
54+
title: 'build: Release',
55+
head: process.env.BRANCH_NAME,
56+
base: 'release',
57+
body: '## Release\n\nThis pull request was created automatically according to the release cycle.\n\n> [!WARNING]\n> Only use `Merge Commit` to merge this pull request. Do not use `Rebase and Merge` or `Squash and Merge`.'
58+
});
59+
}
4460
# auto-merge-pr:
4561
# needs: create-release-pr
4662
# runs-on: ubuntu-latest

changelogs/CHANGELOG_alpha.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
# [8.6.0-alpha.1](https://github.com/parse-community/Parse-SDK-JS/compare/8.5.1-alpha.1...8.6.0-alpha.1) (2026-04-17)
2+
3+
4+
### Features
5+
6+
* Add `rawValues` and `rawFieldNames` options to aggregate queries ([#3021](https://github.com/parse-community/Parse-SDK-JS/issues/3021)) ([17ceef1](https://github.com/parse-community/Parse-SDK-JS/commit/17ceef1d15af9d3c38a7404488d95439a261c8b1))
7+
8+
## [8.5.1-alpha.1](https://github.com/parse-community/Parse-SDK-JS/compare/8.5.0...8.5.1-alpha.1) (2026-03-14)
9+
10+
11+
### Bug Fixes
12+
13+
* Security upgrade undici ([#2947](https://github.com/parse-community/Parse-SDK-JS/issues/2947)) ([025c404](https://github.com/parse-community/Parse-SDK-JS/commit/025c404149815111b201856b2c95c830b0529993))
14+
115
# [8.5.0-alpha.1](https://github.com/parse-community/Parse-SDK-JS/compare/8.4.0...8.5.0-alpha.1) (2026-03-04)
216

317

eslint.config.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ module.exports = tseslint.config({
2626
"no-var": "error",
2727
"no-console": 0,
2828
"require-atomic-updates": "off",
29+
"no-useless-assignment": "off",
30+
"no-unassigned-vars": "off",
31+
"preserve-caught-error": "off",
2932
"prefer-spread": "off",
3033
"prefer-rest-params": "off",
3134
"@typescript-eslint/ban-ts-comment": "off",

integration/test/ParseUserTest.js

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -996,7 +996,7 @@ describe('Parse User', () => {
996996
getAuthData() {
997997
return {
998998
authData: {
999-
id: 1234,
999+
id: '1234',
10001000
},
10011001
};
10021002
},
@@ -1047,14 +1047,10 @@ describe('Parse User', () => {
10471047
});
10481048

10491049
it('can link with twitter', async () => {
1050-
const twitterAdapter = require('../../node_modules/parse-server/lib/Adapters/Auth/twitter').default;
1051-
spyOn(twitterAdapter, 'beforeFind').and.callFake(() => {
1052-
return Promise.resolve();
1053-
});
1050+
const TwitterAdapter = require('../../node_modules/parse-server/lib/Adapters/Auth/twitter').default.constructor;
1051+
spyOn(TwitterAdapter.prototype, 'beforeFind').and.callFake(() => Promise.resolve());
10541052

1055-
const server = await reconfigureServer();
1056-
const twitter = server.config.auth.twitter;
1057-
const spy = spyOn(twitter, 'validateAuthData').and.callThrough();
1053+
await reconfigureServer();
10581054

10591055
Parse.User.enableUnsafeCurrentUser();
10601056
const user = new Parse.User();
@@ -1068,18 +1064,13 @@ describe('Parse User', () => {
10681064

10691065
await user._unlinkFrom('twitter');
10701066
expect(user._isLinked('twitter')).toBe(false);
1071-
expect(spy).toHaveBeenCalled();
10721067
});
10731068

10741069
it('can link with twitter and facebook', async () => {
1075-
const twitterAdapter = require('../../node_modules/parse-server/lib/Adapters/Auth/twitter').default;
1076-
spyOn(twitterAdapter, 'beforeFind').and.callFake(() => {
1077-
return Promise.resolve();
1078-
});
1070+
const TwitterAdapter = require('../../node_modules/parse-server/lib/Adapters/Auth/twitter').default.constructor;
1071+
spyOn(TwitterAdapter.prototype, 'beforeFind').and.callFake(() => Promise.resolve());
10791072

1080-
const server = await reconfigureServer();
1081-
const twitter = server.config.auth.twitter;
1082-
const spy = spyOn(twitter, 'validateAuthData').and.callThrough();
1073+
await reconfigureServer();
10831074

10841075
Parse.User.enableUnsafeCurrentUser();
10851076
Parse.FacebookUtils.init();
@@ -1096,7 +1087,6 @@ describe('Parse User', () => {
10961087

10971088
expect(user.get('authData').twitter.id).toBe(twitterAuthData.id);
10981089
expect(user.get('authData').facebook.id).toBe('test');
1099-
expect(spy).toHaveBeenCalled();
11001090
});
11011091

11021092
it('can verify user password via static method', async () => {

integration/test/helper.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ const defaultConfiguration = {
5858
option2: 'world',
5959
},
6060
facebook: {
61-
appIds: 'test',
61+
appIds: ['test'],
6262
},
6363
twitter: {
6464
consumer_key: twitterAuthData.consumer_key,

0 commit comments

Comments
 (0)