Skip to content

Commit

Permalink
Merge master into release
Browse files Browse the repository at this point in the history
  • Loading branch information
google-oss-bot committed Jan 16, 2024
2 parents 05d06a8 + 991fa27 commit cd9ccb9
Show file tree
Hide file tree
Showing 166 changed files with 3,089 additions and 1,860 deletions.
5 changes: 5 additions & 0 deletions .changeset/cold-carpets-sing.md
@@ -0,0 +1,5 @@
---
"@firebase/firestore": patch
---

Fixed leak of grpc-js resources on terminate.
5 changes: 5 additions & 0 deletions .changeset/good-seals-promise.md
@@ -0,0 +1,5 @@
---
'@firebase/app': patch
---

Catch possible error in Safari browsers.
2 changes: 2 additions & 0 deletions .changeset/itchy-chicken-cry.md
@@ -0,0 +1,2 @@
---
---
2 changes: 2 additions & 0 deletions .changeset/long-rats-walk.md
@@ -0,0 +1,2 @@
---
---
2 changes: 2 additions & 0 deletions .changeset/quick-peas-guess.md
@@ -0,0 +1,2 @@
---
---
5 changes: 5 additions & 0 deletions .changeset/shaggy-garlics-leave.md
@@ -0,0 +1,5 @@
---
"@firebase/firestore": patch
---

Support special characters in query paths sent to `getCountFromServer(...)`, `getCount(...)` (lite API), and `getDocs(...)` (lite API).
6 changes: 6 additions & 0 deletions .changeset/witty-comics-rule.md
@@ -0,0 +1,6 @@
---
'firebase': patch
'@firebase/firestore': patch
---

Tweak the automatic index creation parameters to use more optimal values for the platform/browser detected at runtime.
6 changes: 6 additions & 0 deletions .changeset/yellow-houses-happen.md
@@ -0,0 +1,6 @@
---
'@firebase/firestore': patch
'firebase': patch
---

Update the `isEqual` function for arrayUnion, arrayRemove and increment.
8 changes: 4 additions & 4 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Expand Up @@ -34,10 +34,10 @@ packages/messaging-interop-types @zwu52 @firebase/jssdk-global-approvers
integration/messaging @zwu52 @firebase/jssdk-global-approvers

# Auth Code
packages/auth @lisajian @prameshj @renkelvin @sam-gc @firebase/jssdk-global-approvers
packages/auth-compat @lisajian @prameshj @renkelvin @sam-gc @firebase/jssdk-global-approvers
packages/auth-types @lisajian @prameshj @renkelvin @sam-gc @firebase/jssdk-global-approvers
packages/auth-interop-types @lisajian @prameshj @renkelvin @sam-gc @firebase/jssdk-global-approvers
packages/auth @lisajian @Xiaoshouzi-gh @renkelvin @sam-gc @firebase/jssdk-global-approvers
packages/auth-compat @lisajian @Xiaoshouzi-gh @renkelvin @sam-gc @firebase/jssdk-global-approvers
packages/auth-types @lisajian @Xiaoshouzi-gh @renkelvin @sam-gc @firebase/jssdk-global-approvers
packages/auth-interop-types @lisajian @Xiaoshouzi-gh @renkelvin @sam-gc @firebase/jssdk-global-approvers

# Testing Code
packages/rules-unit-testing @avolkovi @sam-gc @yuchenshi @firebase/jssdk-global-approvers
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/deploy-config.yml
Expand Up @@ -34,10 +34,10 @@ jobs:
with:
# This makes Actions fetch all Git history so run-changed script can diff properly.
fetch-depth: 0
- name: Set up node (16)
- name: Set up node (18)
uses: actions/setup-node@v3
with:
node-version: 16.x
node-version: 18.x
- name: Yarn install
run: yarn
- name: Deploy project config if needed
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/e2e-test.yml
Expand Up @@ -36,10 +36,10 @@ jobs:
steps:
- name: Checkout Repo
uses: actions/checkout@master
- name: Set up Node (16)
- name: Set up Node (18)
uses: actions/setup-node@master
with:
node-version: 16.x
node-version: 18.x
- name: install Chrome stable
run: |
sudo apt-get update
Expand All @@ -60,7 +60,7 @@ jobs:
pushd functions
npm install
popd
npx firebase-tools deploy --only functions:callTest --project jscore-sandbox-141b5 --token $FIREBASE_CLI_TOKEN
npx firebase-tools@13.0.2 deploy --only functions:callTest --project jscore-sandbox-141b5 --token $FIREBASE_CLI_TOKEN
working-directory: ./config
env:
FIREBASE_CLI_TOKEN: ${{ secrets.FIREBASE_CLI_TOKEN }}
Expand Down
11 changes: 11 additions & 0 deletions .github/workflows/test-all.yml
Expand Up @@ -25,6 +25,8 @@ env:
# the beahvior to use the new URLs.
CHROMEDRIVER_CDNURL: https://googlechromelabs.github.io/
CHROMEDRIVER_CDNBINARIESURL: https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/
CHROME_VALIDATED_VERSION: linux-120.0.6099.71
CHROME_VERSION_MISMATCH_MESSAGE: "The Chrome version doesn't match the previously validated version. Consider updating CHROME_VALIDATED_VERSION in the GitHub workflow if tests pass."
artifactRetentionDays: 14
# Bump Node memory limit
NODE_OPTIONS: "--max_old_space_size=4096"
Expand Down Expand Up @@ -115,6 +117,15 @@ jobs:
- name: install Chrome stable
run: |
npx @puppeteer/browsers install chrome@stable
chromeVersionString=$(ls chrome)
if [ "$CHROME_VALIDATED_VERSION" != "$chromeVersionString" ]; then
echo "::warning ::The Chrome version doesn't match the previously validated version. Consider updating CHROME_VALIDATED_VERSION in the GitHub workflow if tests pass."
echo "::warning ::Previously validated version: ${CHROME_VALIDATED_VERSION} vs. Installed version: $chromeVersionString"
echo "CHROME_VERSION_NOTES=$CHROME_VERSION_MISMATCH_MESSAGE" >> "$GITHUB_ENV"
fi
- name: Test Evn TEMP
run: |
echo $CHROME_VERSION_NOTES=$CHROME_VERSION_MISMATCH_MESSAGE
- name: Download build archive
uses: actions/download-artifact@v3
with:
Expand Down
18 changes: 16 additions & 2 deletions .github/workflows/test-changed-auth.yml
Expand Up @@ -14,7 +14,7 @@

name: Test Auth

on: pull_request
on: [push, pull_request]

env:
# make chromedriver detect installed Chrome version and download the corresponding driver
Expand All @@ -23,20 +23,34 @@ env:
# the beahvior to use the new URLs.
CHROMEDRIVER_CDNURL: https://googlechromelabs.github.io/
CHROMEDRIVER_CDNBINARIESURL: https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/
CHROME_VALIDATED_VERSION: linux-120.0.6099.71
# Bump Node memory limit
NODE_OPTIONS: "--max_old_space_size=4096"

jobs:
test-chrome:
name: Test Auth on Chrome and Node If Changed
runs-on: ubuntu-latest

steps:
# install Chrome first, so the correct version of webdriver can be installed by chromedriver
# when setting up the repo
#
# Note: we only need to check the chrome version change in one job as the warning annotation
# is appended to the entire workflow results, not just this job's results.
- name: install Chrome stable
env:
CHROME_VERSION_MISMATCH_MESSAGE: "The Chrome version doesn't match the previously validated version. Consider updating CHROME_VALIDATED_VERSION in the GitHub workflow if tests pass."
run: |
npx @puppeteer/browsers install chrome@stable
chromeVersionString=$(ls chrome)
if [ "$CHROME_VALIDATED_VERSION" != "$chromeVersionString" ]; then
echo "::warning ::The Chrome version doesn't match the previously validated version. Consider updating CHROME_VALIDATED_VERSION in the GitHub workflow if tests pass."
echo "::warning ::Previously validated version: ${CHROME_VALIDATED_VERSION} vs. Installed version: $chromeVersionString"
echo "CHROME_VERSION_NOTES=$CHROME_VERSION_MISMATCH_MESSAGE" >> "$GITHUB_ENV"
fi
- name: Test Evn TEMP
run: |
echo $CHROME_VERSION_NOTES=$CHROME_VERSION_MISMATCH_MESSAGE
- name: Checkout Repo
uses: actions/checkout@master
with:
Expand Down
38 changes: 37 additions & 1 deletion .github/workflows/test-changed-firestore.yml
Expand Up @@ -14,7 +14,9 @@

name: Test Firestore

on: pull_request
on:
workflow_dispatch:
pull_request:

env:
artifactRetentionDays: 14
Expand Down Expand Up @@ -131,6 +133,40 @@ jobs:
env:
EXPERIMENTAL_MODE: true

test-firestore-nightly-with-chrome:
name: Test Nightly Firestore with Chrome
strategy:
matrix:
test-name: ["test:browser:nightly"]
runs-on: ubuntu-latest
needs: build
if: ${{ github.event_name != 'pull_request' }}
steps:
- name: Set up Node (16)
uses: actions/setup-node@v3
with:
node-version: 16.x
- name: install Chrome stable
run: |
sudo apt-get update
sudo apt-get install google-chrome-stable
- name: Download build archive
uses: actions/download-artifact@v3
with:
name: build.tar.gz
- name: Unzip build artifact
run: tar xf build.tar.gz
- name: Test setup against nightly Firestore
env:
INTEG_TESTS_GOOGLE_SERVICES: ${{ secrets.FIRESTORE_SDK_NIGHTLY_PROJECT_JSON }}
run: |
echo $INTEG_TESTS_GOOGLE_SERVICES > config/project.json
- name: Run tests
run: cd packages/firestore && yarn run ${{ matrix.test-name }}
env:
EXPERIMENTAL_MODE: true


compat-test-firefox:
name: Test Firestore Compatible on Firefox
# Whatever version of Firefox comes with 22.04 is causing Firefox
Expand Down
40 changes: 8 additions & 32 deletions CONTRIBUTING.md
Expand Up @@ -221,49 +221,25 @@ formatting guidelines. In your local build environment, please run the code form
by executing the command `yarn format`. Once the code is formatted, commit the changes and push your
branch. The push should cause the CI to re-check your PR's changes.

### Generating Documentation HTML Files
# Generating Documentation HTML Files

If the Doc Change Check fails in your PR, it indicates that the documentation has not been generated
correctly for the changes. In your local build environment, please run `yarn docgen devsite` to
generate the documentation locally. Once the documentation has been generated, commit the changes
and push your branch. The push should cause the CI to re-check your PR's changes.

In order to generate the HTML documentation files locally, go to the root of this repo, and run:

```
yarn install
yarn docgen
```

This will generate both js and node (client) reference docs. To just generate js
docs, replace the last line with:
correctly for the changes. In your local build environment, please run the following commands in the
root directory to generate the documentation locally:

```
yarn docgen:js
yarn
yarn docgen devsite
```

To just generate node docs, replace the last line with:

```
yarn docgen:node
```

Files will be written to `scripts/docgen/html` - js docs will go into the `/js`
subdirectory and node docs into the `/node` subdirectory.
This will generate reference docs in `docs-devsite/`. Commit and push the generated
documentation changes to GitHub following the [PR submission guidelines](#submit). Your push
to the remote repository should force any failing documentation checks to execute again.

**NOTE:** These files are formatted to be inserted into Google's documentation site, which adds some
styling and navigation, so the raw files will be missing navigation elements and may not look
polished. However, it should be enough to preview the content.

This process will generate warnings for files that are generated but not listed in the `toc.yaml`,
or files that are in the `toc.yaml` but were not generated (which means something is missing in
`index.d.ts`). If this happens during the JS documentation generation, it probably means either the
`toc.yaml` or `index.d.ts` is incorrect. But in the Node process, some generated files not being
found in `toc.yaml` are to be expected, since Node documentation is a subset of the full JS
documentation.

Follow the [PR submission guidelines](#submit) above to submit any documentation changes.

[archive]: https://github.com/firebase/firebase-js-sdk/issues?utf8=%E2%9C%93&q=is%3Aissue
[file-an-issue]: https://github.com/firebase/firebase-js-sdk/issues/new
[firebase-google-group]: https://groups.google.com/forum/#!forum/firebase-talk
Expand Down
3 changes: 3 additions & 0 deletions config/firebase.json
Expand Up @@ -5,5 +5,8 @@
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"functions": {
"runtime": "nodejs18"
}
}

0 comments on commit cd9ccb9

Please sign in to comment.