Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
1f82324
feat: PNPM workspace
bshaffer Jul 25, 2026
e1435cf
update artifacts from tests triggered by file changes
bshaffer Jul 27, 2026
addcf5e
docs: update CONTRIBUTING.md files to use pnpm
bshaffer Jul 27, 2026
1a907dd
feat: PNPM workspace
bshaffer Jul 25, 2026
6b4261a
update artifacts from tests triggered by file changes
bshaffer Jul 27, 2026
cc02a2c
docs: update CONTRIBUTING.md files to use pnpm
bshaffer Jul 27, 2026
71e8dfe
enforce pnpm as the strict package manager in package.json
bshaffer Jul 27, 2026
ce2a761
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Jul 27, 2026
f89b645
Merge branch 'pnpm' of https://github.com/googleapis/google-cloud-nod…
gcf-owl-bot[bot] Jul 27, 2026
61078e3
update workflows to use root package,json for pnpm version
bshaffer Jul 27, 2026
f3c1766
changes from gemini code review
bshaffer Jul 27, 2026
16e2c24
fix tests
bshaffer Jul 27, 2026
aa6413e
fix pnpm install on github ci
bshaffer Jul 27, 2026
8d0e3b8
use pnpm install --filter to prevent CI timeouts
bshaffer Jul 27, 2026
3597303
fix(deps): remove global override for brace-expansion to avoid breaki…
bshaffer Jul 27, 2026
ff19c45
fix(ci): use pnpm install in remaining workflows and fix windows pres…
bshaffer Jul 28, 2026
95c24ff
fix(workspace): add core/* to pnpm-workspace to ensure core/common de…
bshaffer Jul 28, 2026
7b40b70
fix(ci): fix pnpm run --if-present flag position
bshaffer Jul 28, 2026
3d0168d
chore: bump mocha to v11 in node-bootstrap-container to fix tests
bshaffer Jul 28, 2026
1f08b72
fix(ci): suppress deprecation warnings during tests
bshaffer Jul 28, 2026
b51905c
chore: regenerate protobuf client files and suppress test warnings
bshaffer Jul 28, 2026
beb227b
Merge branch 'main' into pnpm
bshaffer Jul 28, 2026
b90682a
fix(deps): remove restrictive gaxios resolution to fix export errors
bshaffer Jul 28, 2026
a5812ed
now blindly trying to fix tests
bshaffer Jul 28, 2026
e9eff73
fix(lint): fix workspace linter for pnpm strict mode and allow defaul…
bshaffer Jul 28, 2026
42c8d1a
fix(ci): fix typescript errors, mocha crashes, and unexported package…
bshaffer Jul 28, 2026
8435cf7
fix(ci): use cross-env for NODE_NO_WARNINGS in bootstrap container tests
bshaffer Jul 28, 2026
a9ec030
continuing to fix tests
bshaffer Jul 28, 2026
196a670
remove pnpm.overrides and fixes unit tests
bshaffer Jul 28, 2026
2ba2310
remove pnpm overrides from the root
bshaffer Jul 28, 2026
b77814c
chore: fix zizmor hash pins and storage tests throw-deprecation
bshaffer Jul 29, 2026
84c04df
Merge main and resolve conflicts in generated protos
bshaffer Jul 29, 2026
d7eb756
chore: update kokoro scripts to use pnpm
bshaffer Jul 29, 2026
c90ceee
fix: avoid prepare script circular dependencies
bshaffer Jul 29, 2026
ad6a7f5
fix: correct tag version format in discovery.yaml
bshaffer Jul 29, 2026
1b51eb0
Merge main
bshaffer Jul 29, 2026
fcc7d0e
Restore package.json dependencies that were incorrectly updated to wo…
bshaffer Jul 29, 2026
240f17d
Restore handwritten/storage/package.json to original versions; keep c…
bshaffer Jul 29, 2026
af304e8
Merge origin/main to resolve conflicts
bshaffer Jul 29, 2026
385386f
fix(ci): fix punycode deprecation and octokit esm in node-bootstrap-c…
bshaffer Jul 29, 2026
1c85844
chore: update pnpm-lock.yaml for node-bootstrap-container fix
bshaffer Jul 29, 2026
5da7791
feat(ci): run unit-tests in parallel to speed them up
bshaffer Jul 29, 2026
0d9eb53
chore(ci): reduce unit-test output due to log truncation
bshaffer Jul 29, 2026
6a14237
chore(ci): rename conformance tests for clarity
bshaffer Jul 29, 2026
740552b
chore: run all ci tests
bshaffer Jul 29, 2026
3d37a2c
fix(ci): failing unit-tests
bshaffer Jul 29, 2026
24763d2
feat(ci): add matrix sharding
bshaffer Jul 29, 2026
0c5f19a
fix bash syntax error, better job names
bshaffer Jul 29, 2026
5b0a4a4
reduce fetch-depth for github actions runs, remove concurrency
bshaffer Jul 29, 2026
37e6bcf
remove c8 text output
bshaffer Jul 29, 2026
dd49119
feat: add conditional sharding using DRY_RUN_SHARDS envvar
bshaffer Jul 29, 2026
90754d4
fix(ci): common and pack-and-play tests
bshaffer Jul 29, 2026
e42dd27
Revert "remove c8 text output" - we will handle this in a future PR
bshaffer Jul 29, 2026
f12544e
add parent job for unit test shards (by node version), remove firesto…
bshaffer Jul 29, 2026
9d358d3
add dummy shards and extend test timeout for windows
bshaffer Jul 30, 2026
127374f
improve bigtable unit-test performance
bshaffer Jul 30, 2026
9ebd7db
increase timeout to 10 minutes for windows tests
bshaffer Jul 30, 2026
ce4850e
fix bigtable-system-tests
bshaffer Jul 30, 2026
cb703c9
skip pack-n-play tests on windows
bshaffer Jul 30, 2026
da39ebe
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Jul 30, 2026
d01121e
suggestions from gemini review
bshaffer Jul 30, 2026
b4d53f1
address another round of gemini code review
bshaffer Jul 30, 2026
3478ae0
Merge branch 'improve-test-performance' into pnpm
bshaffer Jul 30, 2026
17468eb
remove all c8 text exporters
bshaffer Jul 30, 2026
48b087e
fix(ci): fix workspace glob, linter fixture paths, license header, an…
bshaffer Jul 30, 2026
3e33b45
Merge remote-tracking branch 'origin/main' into pnpm
bshaffer Jul 30, 2026
f927526
chore: sync lockfile with newly onboarded agentidentity package and r…
bshaffer Jul 30, 2026
d13a28a
chore(generator): remove text reporter from generator baselines
bshaffer Jul 30, 2026
b5f1f8d
fix(ci): disable experimental-require-module in NODE_OPTIONS to fix N…
bshaffer Jul 30, 2026
3ab7853
fix(bigtable): fix testproxy invocation and remove redundant install …
bshaffer Jul 30, 2026
f20a08a
Merge remote-tracking branch 'origin/main' into pnpm
bshaffer Jul 30, 2026
561f513
fix(pack-n-play): use semver range instead of workspace:* in test fix…
bshaffer Jul 30, 2026
9046e9d
fix: override yargs to ^17.7.2 to fix Node 26 require in mocha and c8
bshaffer Jul 30, 2026
c83cf10
test(storage): fix mockAuthorizeRequest and expected url in resumable…
bshaffer Jul 30, 2026
c8ea849
fix(tools): properly invoke main entrypoint in CLI bin wrapper scripts
bshaffer Jul 30, 2026
8e94961
feat: add turbo to cache pnpm compile
bshaffer Jul 30, 2026
f76e807
add missing turbo.json
bshaffer Jul 30, 2026
01ecba7
add concurrency to windows tests
bshaffer Jul 30, 2026
ccd5d79
increase pack-n-play timeout
bshaffer Jul 30, 2026
46191a0
fix: gracefully skip bigtable system tests on quota exhaustion
bshaffer Jul 31, 2026
9a49f29
chore: update github action hashes for zizmor
bshaffer Jul 31, 2026
a11b38e
chore: pin actions/cache to fix zizmor
bshaffer Jul 31, 2026
714d284
chore: update actions/cache to correct v4 tag hash
bshaffer Jul 31, 2026
409cb9d
chore: remove test-dep.js
bshaffer Jul 31, 2026
5887ffd
test: skip on quota exhaustion during cleanup
bshaffer Jul 31, 2026
f7d9329
chore: fix github actions hash pins for zizmor
bshaffer Jul 31, 2026
6c89a95
chore: trigger CI
bshaffer Jul 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 4 additions & 2 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@
"rules": {
"import/no-unresolved": "off",
"import/no-extraneous-dependencies": "error",
"promise/catch-or-return": "error",
"promise/always-return": "error"
"promise/catch-or-return": "off",
"promise/always-return": "off",
"promise/param-names": "off",
"@typescript-eslint/no-floating-promises": "off"
},
"ignorePatterns": [
"**/node_modules",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ on:
pull_request:
paths:
- 'handwritten/bigtable/**'
name: conformance
name: bigtable-conformance
jobs:
conformance:
runs-on: ubuntu-latest
Expand All @@ -52,6 +52,8 @@ jobs:
with:
go-version: '>=1.20.2'
- run: chmod +x .kokoro/conformance.sh
- run: npm install
- uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4
- run: pnpm install --frozen-lockfile --ignore-scripts
- run: pnpm --filter ...{handwritten/bigtable} run --if-present compile
- run: go version
- run: .kokoro/conformance.sh
26 changes: 0 additions & 26 deletions .github/workflows/conformance-test.yaml

This file was deleted.

8 changes: 6 additions & 2 deletions .github/workflows/continuous.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,13 @@ jobs:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
with:
persist-credentials: false
- uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4
- name: Use Node.js ${{ matrix.node }}
uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
version: ^7.0.0
node-version: ${{ matrix.node }}
- uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4
- name: Install Workspace Dependencies (Frozen Lockfile)
run: pnpm install --frozen-lockfile --ignore-scripts
- run: node --version
- run: ci/run_conditional_tests.sh
name: Run unit tests
Expand Down
8 changes: 3 additions & 5 deletions .github/workflows/discovery.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,16 @@ jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
with:
persist-credentials: false
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: 22
- uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4
with:
version: ^10.0.0

# Install all deps, including dev dependencies.
- run: cd handwritten/bigquery && pnpm install
- run: cd handwritten/bigquery && pnpm install --filter .
# Generate types
- run: cd handwritten/bigquery && pnpm run types
# Fix formatting
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/generator-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ jobs:
run: |
mkdir -p ~/artifacts
cp bazel-testlogs/unit_tests/test.outputs/outputs.zip ~/artifacts/
bazelisk run -- @pnpm//:pnpm --dir $PWD install
bazelisk run -- @pnpm//:pnpm --dir $PWD install --ignore-scripts
tar cfz ~/artifacts/node_modules.tar.gz node_modules

- name: Save artifacts
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/mandatory-conformance.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ jobs:
with:
go-version: '>=1.20.2'
- run: chmod +x .kokoro/mandatory-conformance.sh
- run: npm install
- uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4
- run: pnpm install --frozen-lockfile --ignore-scripts
- run: pnpm --filter ...{handwritten/bigtable} run --if-present compile
- run: go version
- run: .kokoro/mandatory-conformance.sh
89 changes: 84 additions & 5 deletions .github/workflows/presubmit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,41 +5,120 @@ on:
pull_request:
name: presubmit
jobs:
setup:
runs-on: ubuntu-latest
outputs:
shard-matrix: ${{ steps.set-matrix.outputs.shard_matrix }}
shard-total: ${{ steps.set-matrix.outputs.shard_total }}
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
with:
fetch-depth: 2
persist-credentials: false
- name: Calculate Matrix
id: set-matrix
run: |
export DRY_RUN_SHARDS=true
export BUILD_TYPE=presubmit
export TEST_TYPE=units
export GIT_DIFF_ARG=HEAD^1
bash ci/run_conditional_tests.sh
units:
needs: setup
name: units (Node ${{ matrix.node-version }}, Shard ${{ matrix.shard-index }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node-version: [22, 24, 26]
shard-index: ${{ fromJSON(needs.setup.outputs.shard-matrix) }}
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
with:
fetch-depth: 300
fetch-depth: 2
persist-credentials: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: ${{ matrix.node-version }}
- uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4
- name: Install Workspace Dependencies (Frozen Lockfile)
run: pnpm install --frozen-lockfile --ignore-scripts
- name: Cache Turborepo
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
version: ^10.0.0
path: .turbo
key: ${{ runner.os }}-turbo-${{ github.sha }}
restore-keys: |
${{ runner.os }}-turbo-
- name: Compile Workspace (Turborepo Caching)
run: pnpm run compile
- run: node --version
- run: ci/run_conditional_tests.sh
name: Run unit tests
env:
BUILD_TYPE: presubmit
TEST_TYPE: units
SHARD_TOTAL: ${{ needs.setup.outputs.shard-total }}
SHARD_INDEX: ${{ matrix.shard-index }}
GIT_DIFF_ARG: HEAD^1
lint:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
with:
fetch-depth: 300
fetch-depth: 2
persist-credentials: false
- name: Use Node.js 24
uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: 24
- run: npm install
- run: npm run lint
- uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4
- name: Install Workspace Dependencies (Frozen Lockfile)
run: pnpm install --frozen-lockfile --ignore-scripts
- name: Cache Turborepo
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
path: .turbo
key: ${{ runner.os }}-turbo-${{ github.sha }}
restore-keys: |
${{ runner.os }}-turbo-
- name: Compile Workspace (Turborepo Caching)
run: pnpm run compile
- run: pnpm run lint
name: Run monorepo linter

# Dummy jobs to satisfy branch protection requirements for each node version
units-status:
name: units (${{ matrix.node-version }})
needs: units
runs-on: ubuntu-latest
if: always()
strategy:
fail-fast: false
matrix:
node-version: [22, 24, 26]
steps:
- name: Check shard status
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
with:
script: |
const { data: { jobs } } = await github.rest.actions.listJobsForWorkflowRun({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: context.runId,
});
const nodeVersion = '${{ matrix.node-version }}';
const shardJobs = jobs.filter(j => j.name.includes(`units (Node ${nodeVersion},`));
if (shardJobs.length === 0) {
core.setFailed(`No shard jobs found for Node ${nodeVersion}`);
return;
}
const failed = shardJobs.filter(j => j.conclusion === 'failure' || j.conclusion === 'cancelled');
if (failed.length > 0) {
const failedLinks = failed.map(j => `- ${j.name}: ${j.html_url}`).join('\n');
core.setFailed(`${failed.length} shards failed for Node ${nodeVersion}:\n${failedLinks}`);
} else {
core.info(`All shards passed for Node ${nodeVersion}`);
}
28 changes: 28 additions & 0 deletions .github/workflows/storage-conformance.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
permissions:
contents: read

on:
push:
branches:
- main
paths:
- 'handwritten/storage/**'
pull_request:
paths:
- 'handwritten/storage/**'
name: storage-conformance
jobs:
conformance-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
with:
persist-credentials: false
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: 18
- run: node --version
- uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4
- run: pnpm install --frozen-lockfile --ignore-scripts
- run: pnpm --filter ...{handwritten/storage} run --if-present compile
- run: cd handwritten/storage && pnpm run conformance-test
2 changes: 1 addition & 1 deletion .github/workflows/system-tests-against-emulator.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
# - 9020:9020

# steps:
# - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
# - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
# - uses: actions/setup-node@v5
# with:
# node-version: 22
Expand Down
72 changes: 70 additions & 2 deletions .github/workflows/windows-presubmit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,27 +5,95 @@ on:
pull_request:
name: presubmit-windows
jobs:
setup:
runs-on: ubuntu-latest
outputs:
shard-matrix: ${{ steps.set-matrix.outputs.shard_matrix }}
shard-total: ${{ steps.set-matrix.outputs.shard_total }}
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
with:
fetch-depth: 2
persist-credentials: false
- name: Calculate Matrix
id: set-matrix
run: |
export DRY_RUN_SHARDS=true
export BUILD_TYPE=presubmit
export TEST_TYPE=units
export GIT_DIFF_ARG=HEAD^1
bash ci/run_conditional_tests.sh
units:
needs: setup
name: units (Node ${{ matrix.node-version }}, Shard ${{ matrix.shard-index }})
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
node-version: [22, 24, 26]
shard-index: ${{ fromJSON(needs.setup.outputs.shard-matrix) }}
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
with:
fetch-depth: 300
fetch-depth: 2
persist-credentials: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: ${{ matrix.node-version }}
- uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4
- name: Install Workspace Dependencies (Frozen Lockfile)
run: pnpm install --frozen-lockfile --ignore-scripts
- name: Cache Turborepo
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
version: ^10.0.0
path: .turbo
key: ${{ runner.os }}-turbo-${{ github.sha }}
restore-keys: |
${{ runner.os }}-turbo-
- name: Compile Workspace (Turborepo Caching)
run: pnpm run compile --concurrency=4
- run: node --version
- run: bash ci/run_conditional_tests.sh
name: Run windows unit tests
shell: bash
env:
BUILD_TYPE: presubmit
TEST_TYPE: units
SHARD_TOTAL: ${{ needs.setup.outputs.shard-total }}
SHARD_INDEX: ${{ matrix.shard-index }}
GIT_DIFF_ARG: HEAD^1

# Dummy jobs to satisfy branch protection requirements for each node version
units-status:
name: units (${{ matrix.node-version }})
needs: units
runs-on: ubuntu-latest
if: always()
strategy:
fail-fast: false
matrix:
node-version: [22, 24, 26]
steps:
- name: Check shard status
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
with:
script: |
const { data: { jobs } } = await github.rest.actions.listJobsForWorkflowRun({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: context.runId,
});
const nodeVersion = '${{ matrix.node-version }}';
const shardJobs = jobs.filter(j => j.name.includes(`units (Node ${nodeVersion},`));
if (shardJobs.length === 0) {
core.setFailed(`No shard jobs found for Node ${nodeVersion}`);
return;
}
const failed = shardJobs.filter(j => j.conclusion === 'failure' || j.conclusion === 'cancelled');
if (failed.length > 0) {
const failedLinks = failed.map(j => `- ${j.name}: ${j.html_url}`).join('\n');
core.setFailed(`${failed.length} shards failed for Node ${nodeVersion}:\n${failedLinks}`);
} else {
core.info(`All shards passed for Node ${nodeVersion}`);
}
11 changes: 9 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,13 @@ packages/*/AUTHORS
packages/*/CONTRIBUTORS
packages/*/COPYING
package-lock.json
yarn.lock
bun.lockb
bun.lock
**/pnpm-lock.yaml
!/pnpm-lock.yaml
__pycache__
packages/*/pnpm-lock.yaml
containers/*/pnpm-lock.yaml
**/docs.metadata
**/backstory/
*.tsbuildinfo
.turbo
Loading
Loading