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 beta #2092

Merged
merged 16 commits into from
Mar 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
21 changes: 4 additions & 17 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,33 +40,20 @@ jobs:
strategy:
matrix:
include:
- name: Node 14
NODE_VERSION: 14.21.1
- name: Node 16
NODE_VERSION: 16.18.1
- name: Node 18
NODE_VERSION: 18.12.1
- name: Node 19
NODE_VERSION: 19.3.0
NODE_VERSION: 18.19.0
- name: Node 20
NODE_VERSION: 20.10.0
fail-fast: false
steps:
- name: Fix usage of insecure GitHub protocol
run: sudo git config --system url."https://github".insteadOf "git://github"
- name: Fix git protocol for Node 14
if: ${{ startsWith(matrix.NODE_VERSION, '14.') }}
run: sudo git config --system url."https://github".insteadOf "ssh://git@github"
- uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.NODE_VERSION }}
- name: Cache Node.js modules
uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-
cache: npm
- run: npm ci
- run: npm run lint
- run: npm test -- --maxWorkers=4
Expand Down
22 changes: 5 additions & 17 deletions .github/workflows/release-automated.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,9 @@ jobs:
persist-credentials: false
- uses: actions/setup-node@v2
with:
node-version: 18
node-version: 20
registry-url: https://registry.npmjs.org/
- name: Cache Node.js modules
uses: actions/cache@v2
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
cache: npm
- run: npm ci
- run: npx semantic-release
env:
Expand All @@ -35,7 +29,7 @@ jobs:
- name: Determine tag on current commit
id: tag
run: echo "::set-output name=current_tag::$(git describe --tags --abbrev=0 --exact-match || echo '')"

docs-publish:
needs: release
if: needs.release.outputs.current_tag != '' && github.ref == 'refs/heads/release'
Expand All @@ -48,14 +42,8 @@ jobs:
- name: Use Node.js
uses: actions/setup-node@v1
with:
node-version: 16
- name: Cache Node.js modules
uses: actions/cache@v2
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
node-version: 18
cache: npm
- name: Generate Docs
run: |
npm ci
Expand Down
14 changes: 4 additions & 10 deletions .github/workflows/release-manual-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
inputs:
tag:
default: ''
description: 'Version tag:'
description: 'Version tag:'
jobs:
docs-publish:
if: github.event.inputs.tag != ''
Expand All @@ -15,16 +15,10 @@ jobs:
with:
ref: ${{ github.event.inputs.tag }}
- name: Use Node.js
uses: actions/setup-node@v1
uses: actions/setup-node@v2
with:
node-version: 16
- name: Cache Node.js modules
uses: actions/cache@v2
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
node-version: 18
cache: npm
- name: Generate Docs
run: |
npm ci
Expand Down
105 changes: 0 additions & 105 deletions 2.0.0.md

This file was deleted.

27 changes: 13 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
[![Snyk Badge](https://snyk.io/test/github/parse-community/Parse-SDK-JS/badge.svg)](https://snyk.io/test/github/parse-community/Parse-SDK-JS)
[![Coverage](http://codecov.io/github/parse-community/Parse-SDK-JS/coverage.svg?branch=alpha)](http://codecov.io/github/parse-community/Parse-SDK-JS?branch=alpha)

[![Node Version](https://img.shields.io/badge/nodejs-14,_16,_18-green.svg?logo=node.js&style=flat)](https://nodejs.org/)
[![Node Version](https://img.shields.io/badge/nodejs-18,_20-green.svg?logo=node.js&style=flat)](https://nodejs.org/)
[![auto-release](https://img.shields.io/badge/%F0%9F%9A%80-auto--release-9e34eb.svg)](https://github.com/parse-community/parse-dashboard/releases)

[![npm latest version](https://img.shields.io/npm/v/parse/latest.svg)](https://www.npmjs.com/package/parse)
Expand All @@ -29,8 +29,8 @@ A library that gives you access to the powerful Parse Server backend from your J
- [Getting Started](#getting-started)
- [Using Parse on Different Platforms](#using-parse-on-different-platforms)
- [Compatibility](#compatibility)
- [Parse Server](#parse-server)
- [Node.js](#nodejs)
- [Upgrading to Parse SDK 2.0.0](#upgrading-to-parse-sdk-200)
- [3rd Party Authentications](#3rd-party-authentications)
- [Experimenting](#experimenting)
- [Contributing](#contributing)
Expand Down Expand Up @@ -91,23 +91,23 @@ Types are updated manually after every release. If a definition doesn't exist, p

## Compatibility

### Parse Server

Parse JS SDK is compatible with the following versions of Parse Server.

| Parse JS SDK | Parse Server |
|--------------|--------------|
| 4.x.x | <= 6.x.x |
| 5.x.x | >= 7.x.x |

### Node.js

Parse JS SDK 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 Version | End-of-Life | Compatible |
|------------|----------------|-------------|------------|
| Node.js 14 | 14.19.1 | April 2023 | ✅ Yes |
| Node.js 16 | 16.19.0 | September 2023 | ✅ Yes |
| Node.js 18 | 18.12.1 | April 2025 | ✅ Yes |
| Node.js 19 | 19.3.0 | June 2023 | ✅ Yes |


## Upgrading to Parse SDK 2.0.0

With Parse SDK 2.0.0, gone are the backbone style callbacks and Parse.Promises.

We have curated a [migration guide][migration] that should help you migrate your code.
| Node.js 18 | 18.19.0 | April 2025 | ✅ Yes |
| Node.js 20 | 20.10.0 | April 2026 | ✅ Yes |

## 3rd Party Authentications

Expand All @@ -132,6 +132,5 @@ We really want Parse to be yours, to see it grow and thrive in the open source c
[contributing]: https://github.com/parse-community/Parse-SDK-JS/blob/master/CONTRIBUTING.md
[custom-auth-module]: https://docs.parseplatform.org/js/guide/#custom-authentication-module
[link-with]: https://docs.parseplatform.org/js/guide/#linking-users
[migration]: https://github.com/parse-community/Parse-SDK-JS/blob/master/2.0.0.md
[open-collective-link]: https://opencollective.com/parse-server
[types-parse]: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/parse
49 changes: 49 additions & 0 deletions changelogs/CHANGELOG_alpha.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,52 @@
# [5.0.0-alpha.3](https://github.com/parse-community/Parse-SDK-JS/compare/5.0.0-alpha.2...5.0.0-alpha.3) (2024-03-11)


### Features

* Add comment to MongoDB query via `Parse.Query.comment` ([#2088](https://github.com/parse-community/Parse-SDK-JS/issues/2088)) ([a970913](https://github.com/parse-community/Parse-SDK-JS/commit/a9709136983b3c90ca88a8721b9cc54593c245cc))

# [5.0.0-alpha.2](https://github.com/parse-community/Parse-SDK-JS/compare/5.0.0-alpha.1...5.0.0-alpha.2) (2024-03-10)


### Features

* Add compatibility with Parse Server 7 ([#2089](https://github.com/parse-community/Parse-SDK-JS/issues/2089)) ([86600bc](https://github.com/parse-community/Parse-SDK-JS/commit/86600bc5abc4ca705b7e252b3714579b2e4c1598))


### BREAKING CHANGES

* Parse JS SDK 5 requires Parse Server 7 and is incompatible with Parse Server 6. ([86600bc](86600bc))

# [5.0.0-alpha.1](https://github.com/parse-community/Parse-SDK-JS/compare/4.3.1-alpha.2...5.0.0-alpha.1) (2024-03-09)


### Features

* Add support for Node 20, remove support for Node 14 and 16 ([#2063](https://github.com/parse-community/Parse-SDK-JS/issues/2063)) ([74eb4d5](https://github.com/parse-community/Parse-SDK-JS/commit/74eb4d5f7d255f0f4e5d69758067f2a7d3caf014))


### BREAKING CHANGES

* Removes support for Node 14 and 16. ([74eb4d5](74eb4d5))

## [4.3.1-alpha.2](https://github.com/parse-community/Parse-SDK-JS/compare/4.3.1-alpha.1...4.3.1-alpha.2) (2024-02-15)


### Bug Fixes

* Calling `Parse.Object.relation.add` multiple times adds only the first object ([#2078](https://github.com/parse-community/Parse-SDK-JS/issues/2078)) ([0f98117](https://github.com/parse-community/Parse-SDK-JS/commit/0f981175c8f5155a631a0fcf9837ef5b285b2f55))

## [4.3.1-alpha.1](https://github.com/parse-community/Parse-SDK-JS/compare/4.3.0...4.3.1-alpha.1) (2023-11-18)


### Bug Fixes

* Connection failure in `Parse.Object.saveEventually` and `Parse.Object.destroyEventually` not handled on custom `Parse.Error.CONNECTION_FAILURE` message ([#2032](https://github.com/parse-community/Parse-SDK-JS/issues/2032)) ([4da3ebc](https://github.com/parse-community/Parse-SDK-JS/commit/4da3ebcc28b903a499c07bb194baae738de21d6f))
* Docs fail with `Cannot find module 'taffydb'` ([#2036](https://github.com/parse-community/Parse-SDK-JS/issues/2036)) ([dc91d0f](https://github.com/parse-community/Parse-SDK-JS/commit/dc91d0fc4f69639ba762f5af841477e8836c6927))
* Error in web context when `window.indexedDB` API is available but protected ([#2039](https://github.com/parse-community/Parse-SDK-JS/issues/2039)) ([360981f](https://github.com/parse-community/Parse-SDK-JS/commit/360981f8a529f3e10243413c8114373271bb6f43))
* Security upgrade browserify-sign from 4.2.1 to 4.2.2 ([#2043](https://github.com/parse-community/Parse-SDK-JS/issues/2043)) ([fd50b9d](https://github.com/parse-community/Parse-SDK-JS/commit/fd50b9dbc9feb8b51eedfcdddce37ea1882ac438))
* Security upgrade crypto-js from 4.1.1 to 4.2.0 ([#2042](https://github.com/parse-community/Parse-SDK-JS/issues/2042)) ([681fbdf](https://github.com/parse-community/Parse-SDK-JS/commit/681fbdfcdd2e6d351e00400eccf41fe732b053ba))

# [4.3.0-alpha.6](https://github.com/parse-community/Parse-SDK-JS/compare/4.3.0-alpha.5...4.3.0-alpha.6) (2023-10-28)


Expand Down
15 changes: 15 additions & 0 deletions integration/test/ParseQueryTest.js
Original file line number Diff line number Diff line change
Expand Up @@ -2401,4 +2401,19 @@ describe('Parse Query', () => {
expect(results[1].get('arrayField')).toEqual([{ subfield: 1 }]);
expect(results[2].get('arrayField')).toEqual(null);
});

it('can query and send a comment', async () => {
const obj1 = new TestObject({ number: 1 });
const obj2 = new TestObject({ number: 2 });
const obj3 = new TestObject({ number: 3 });
await Parse.Object.saveAll([obj1, obj2, obj3]);

const query = new Parse.Query(TestObject);
const comment = 'Hello Parse';
query.comment(comment);
query.explain();
const explain = await query.find();
assert.equal(explain.command.comment, comment);
});

});
20 changes: 20 additions & 0 deletions integration/test/ParseRelationTest.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,26 @@ describe('Parse Relation', () => {
});
});

it('can do consecutive adds (#2056)', async () => {
const ChildObject = Parse.Object.extend('ChildObject');
const childObjects = [];
for (let i = 0; i < 2; i++) {
childObjects.push(new ChildObject({ x: i }));
}
const parent = new Parse.Object('ParentObject');
await parent.save();
await Parse.Object.saveAll(childObjects);
for (const child of childObjects) {
parent.relation('child').add(child);
}
await parent.save();
const results = await parent.relation('child').query().find();
assert.equal(results.length, 2);
const expectedIds = new Set(childObjects.map(r => r.id));
const foundIds = new Set(results.map(r => r.id));
assert.deepEqual(expectedIds, foundIds);
});

it('can query relation without schema', done => {
const ChildObject = Parse.Object.extend('ChildObject');
const childObjects = [];
Expand Down
1 change: 1 addition & 0 deletions integration/test/helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ const defaultConfiguration = {
},
revokeSessionOnPasswordReset: false,
allowCustomObjectId: false,
allowClientClassCreation: true,
};

const openConnections = {};
Expand Down
Loading
Loading