Skip to content

Commit 5976ec2

Browse files
committed
build(deps): bump all package and workflow dependencies
1 parent 7808e11 commit 5976ec2

45 files changed

Lines changed: 6478 additions & 4990 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/e2e.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,12 @@ jobs:
4141
- name: Setup pnpm
4242
uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
4343
with:
44-
version: 10.34.4
44+
version: 11.9.0
4545

4646
- name: Setup node
4747
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
4848
with:
49-
node-version: 22.13.0
49+
node-version: 24.18.0
5050
cache: pnpm
5151
cache-dependency-path: pnpm-lock.yaml
5252

.github/workflows/lint.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ jobs:
2121
- name: Setup Node.js
2222
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
2323
with:
24-
node-version: '22.13.0'
24+
node-version: '24.18.0'
2525

2626
- name: Setup pnpm
2727
uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
2828
with:
29-
version: 10.34.4
29+
version: 11.9.0
3030

3131
- name: Install addlicense
3232
run: |

.github/workflows/test.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ jobs:
1919
- name: Setup node
2020
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
2121
with:
22-
node-version: 22.13.0
22+
node-version: 24.18.0
2323
check-latest: true
2424

2525
- name: Setup pnpm
2626
uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
2727
with:
28-
version: 10.34.4
28+
version: 11.9.0
2929

3030
- name: Install addlicense
3131
run: |
@@ -39,7 +39,7 @@ jobs:
3939
run: pnpm run build
4040

4141
- name: Install Firebase CLI
42-
run: npm i -g firebase-tools@14.15.2
42+
run: npm i -g firebase-tools@15.22.4
4343

4444
- name: Enable webframeworks experiment
4545
run: firebase experiments:enable webframeworks

AGENTS.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,6 @@ For architecture or testing work, also read:
99
* [developer-docs/decisions.md](developer-docs/decisions.md)`AD-<number>` decision log
1010
* [developer-docs/work-queues/playwright-e2e-smoke.md](developer-docs/work-queues/playwright-e2e-smoke.md) — active Playwright backlog
1111

12+
**Before commit or push** on dependency, CI, workflow, or e2e/example changes: complete [developer-docs/playbooks/change-authoring-verification.md](developer-docs/playbooks/change-authoring-verification.md) ([AD-10](developer-docs/decisions.md#ad-10-change-authoring-requires-ci-parity-verification-before-commit)). Dependency bumps: also [dependency-update-verification.md](developer-docs/playbooks/dependency-update-verification.md).
13+
1214
Human onboarding (commands, emulator): [LOCAL_DEVELOPMENT.md](LOCAL_DEVELOPMENT.md) owns that content; do not duplicate here.

LOCAL_DEVELOPMENT.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ This guide walks you through running FirebaseUI Web locally so you can test feat
66

77
Make sure you have these installed:
88

9-
- [Node.js](https://nodejs.org/) v18+ (CI uses v22matching this avoids surprises)
9+
- [Node.js](https://nodejs.org/) v18+ locally; **CI uses v24**use Node 24 for pre-push verification to match CI ([change-authoring-verification.md](developer-docs/playbooks/change-authoring-verification.md))
1010
- [pnpm](https://pnpm.io/) — if you have Node.js 18+, [corepack](https://nodejs.org/api/corepack.html) can install pnpm on demand when you run it
1111
- [Firebase CLI](https://firebase.google.com/docs/cli):
1212
```bash

cloudbuild.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ options:
77
logging: CLOUD_LOGGING_ONLY
88

99
steps:
10-
- name: "node:22"
10+
- name: "node:24"
1111
entrypoint: "bash"
1212
args:
1313
- "-c"
@@ -19,7 +19,7 @@ steps:
1919
# 3. Publish to NPM
2020
# This step authenticates using the secret token and handles both
2121
# single-package and monorepo (workspaces) structures.
22-
- name: "node:22"
22+
- name: "node:24"
2323
entrypoint: "bash"
2424
args:
2525
- "-c"

developer-docs/architecture/testing-strategy.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,6 @@ timestamp: 2026-07-03T00:00:00Z
2929
* Production build artifacts not exercised by e2e — deferred, [AD-8](../decisions.md#ad-8-production-artifact-e2e-deferred-future-phase).
3030
* `pnpm audit` not gated in CI.
3131

32-
# Post-dependency-update gate (target)
32+
# Post-dependency-update gate
3333

34-
See [playbooks/dependency-update-verification.md](../playbooks/dependency-update-verification.md).
34+
Required before commit: [playbooks/change-authoring-verification.md](../playbooks/change-authoring-verification.md) ([AD-10](../decisions.md#ad-10-change-authoring-requires-ci-parity-verification-before-commit)). Dependency-specific steps: [playbooks/dependency-update-verification.md](../playbooks/dependency-update-verification.md).

developer-docs/decisions.md

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ type: Decision Log
33
title: Architecture decisions
44
description: Sequential decision log for firebaseui-web. Entries use AD-number identifiers.
55
tags: [adr, architecture]
6-
timestamp: 2026-07-01T00:00:00Z
6+
timestamp: 2026-07-03T00:00:00Z
77
---
88

99
Decisions follow the shape in [ADR format (mattpocock)](https://github.com/mattpocock/skills/blob/main/skills/engineering/domain-modeling/ADR-FORMAT.md) (read that spec only during documentation maintenance runs).
@@ -57,3 +57,42 @@ Browser smoke runs in its **own workflow**, not folded into the unit `test.yaml`
5757
## AD-8: Production-artifact e2e deferred (future phase)
5858

5959
MVP validates **dev-server runtime only**. Validating built/deployed artifacts — Next.js SSG `output: "export"`, Angular production build, `next start` SSR, and `firebase.json` hosting rewrites — is a recognized gap: dev mode auto-connects the emulator via `import.meta.env.MODE` / `process.env.NODE_ENV` / `isDevMode()`, so production builds would need explicit emulator wiring. This is tracked as a **future design phase and is intentionally NOT in the MVP work queue** ([work-queues/playwright-e2e-smoke.md](work-queues/playwright-e2e-smoke.md)).
60+
61+
---
62+
63+
## AD-9: Firebase JS SDK version policy (v11 resolved, v12 for consumers)
64+
65+
The monorepo **resolves** `firebase` **11.x** in the pnpm catalog (`^11.10.0` today). That is **not a regression** from a stable v12 baseline: catalog `^12.2.1` existed only briefly during the Sep 2025 catalog migration and was reverted; main has used catalog **11.x since Sep 2025** ([commit a275905a](https://github.com/firebase/firebaseui-web/commit/a275905a7598cb9d9e1be2250befc840334e8ab2) — peer range widened to `^11 || ^12` while keeping catalog 11 for AngularFire).
66+
67+
**Why catalog 11:** `@angular/fire@20.0.1` depends on `firebase ^11.8.0` and `rxfire ^6.1.0` (rxfire peers firebase through **^11**). `@firebase-oss/ui-angular` imports both `@angular/fire/auth` and `firebase/auth` directly; forcing catalog **12** duplicates SDK types at compile time (e.g. `RecaptchaVerifier`, `TotpSecret`) — same class of failure as [angular/angularfire#3666](https://github.com/angular/angularfire/issues/3666).
68+
69+
**Consumer policy:** package **peer** catalog stays **`firebase: ^11 || ^12`** — apps embedding `@firebase-oss/ui-*` may install firebase 12; published packages must remain compatible with both majors where types overlap.
70+
71+
**Angular paths (explicit pin):** `packages/angular` and `examples/angular` keep a **non-catalog** devDependency pin (e.g. `"firebase": "^11.10.0"`) aligned with `@angular/fire`, not the workspace catalog entry.
72+
73+
**Optional internal split (prove v12 sooner):** bump catalog `firebase` to **12.x** for core/react/shadcn and non-angular examples (`"firebase": "catalog:"`); leave angular packages on explicit **11.x** pins so pnpm can install both majors. Validate with `pnpm build`, `pnpm test`, and `pnpm test:e2e` (especially `@firebase-oss/ui-angular` and the angular example). Do **not** use a workspace-wide `pnpm.overrides` forcing firebase 12 — that breaks AngularFire immediately.
74+
75+
**Upstream to track (harmonize on v12 later):**
76+
77+
| Track | Link |
78+
|-------|------|
79+
| Firebase 12 on AngularFire v20 | [angular/angularfire#3666](https://github.com/angular/angularfire/issues/3666) |
80+
| AngularFire v21 (Angular 21 + firebase 12) | [21.0.0-rc.0 release](https://github.com/angular/angularfire/releases/tag/21.0.0-rc.0), [angular/angularfire#3689](https://github.com/angular/angularfire/issues/3689) |
81+
| rxfire firebase 12 (blocks AngularFire 21) | [FirebaseExtended/rxfire#123](https://github.com/FirebaseExtended/rxfire/pull/123) |
82+
| Firebase JS SDK releases | [firebase-js-sdk releases](https://github.com/firebase/firebase-js-sdk/releases), [Firebase JS release notes](https://firebase.google.com/support/release-notes/js) |
83+
84+
**Unlock:** when **AngularFire 21 stable** (and rxfire firebase 12) ships, bump `@angular/fire`, angular pins, and catalog together in one verified change.
85+
86+
Owner for catalog/peer fields: [pnpm-workspace.yaml](../pnpm-workspace.yaml). Verification steps: [playbooks/change-authoring-verification.md](playbooks/change-authoring-verification.md), [playbooks/dependency-update-verification.md](playbooks/dependency-update-verification.md).
87+
88+
---
89+
90+
## AD-10: Change authoring requires CI-parity verification before commit
91+
92+
Authors (human or agent) **must not commit or push** changes that touch dependencies, CI workflows, or example/test harnesses until [change-authoring-verification.md](playbooks/change-authoring-verification.md) **Required sequence** completes locally with exit code 0.
93+
94+
**Why:** CI runs `pnpm test:e2e` and builds `custom-auth-server` on demand; root `pnpm build` does not. Skipping e2e or custom-auth-server build allowed firebase-admin 14 and jsdom/`localStorage` test drift to land while local `pnpm test` + `pnpm build` passed on a different Node version.
95+
96+
**Includes:** run on the **same Node major as CI** ([LOCAL_DEVELOPMENT.md](../LOCAL_DEVELOPMENT.md)). Use the playbook one-shot script for dependency PRs.
97+
98+
**Does not replace** code review or CI; it is the minimum pre-commit bar for change classes above.

developer-docs/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ OKF knowledge bundle for firebaseui-web: architecture, decisions, playbooks, and
2525

2626
# Playbooks
2727

28+
- [playbooks/change-authoring-verification.md](playbooks/change-authoring-verification.md)**required before commit/push** on deps, CI, or e2e changes ([AD-10](decisions.md#ad-10-change-authoring-requires-ci-parity-verification-before-commit))
2829
- [playbooks/dependency-update-verification.md](playbooks/dependency-update-verification.md) — verify monorepo after dependency bumps
2930

3031
# Work queues
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
---
2+
type: Playbook
3+
title: Change authoring verification
4+
description: Mandatory local verification before commit or push when a change can affect CI outcomes.
5+
tags: [ci, testing, agents, dependencies]
6+
timestamp: 2026-07-03T00:00:00Z
7+
---
8+
9+
# When to use
10+
11+
Before **commit or push** on any change that touches:
12+
13+
* `pnpm-workspace.yaml`, lockfile, or `package.json` files (including examples)
14+
* `.github/workflows/**`, `cloudbuild.yaml`, or Node/pnpm/CI tool versions
15+
* test harness, e2e, or example apps consumed by CI
16+
17+
Normative gate: [AD-10](../decisions.md#ad-10-change-authoring-requires-ci-parity-verification-before-commit). Agents: [AGENTS.md](../../AGENTS.md) points here.
18+
19+
# Runtime
20+
21+
Use the **same Node major as CI** (see [LOCAL_DEVELOPMENT.md](../../LOCAL_DEVELOPMENT.md)). Local Node 26+ can pass tests that fail on CI Node 24 (e.g. jsdom `localStorage` behavior).
22+
23+
# CI parity matrix
24+
25+
| CI job | Workflow | Local command | Notes |
26+
|--------|----------|---------------|-------|
27+
| Lint and Format Check | `lint.yaml` | `pnpm lint:check` && `pnpm format:check` | |
28+
| Test | `test.yaml` | `pnpm build` then `pnpm test` | CI starts Auth emulator; skipped integration tests do not need it |
29+
| E2E | `e2e.yaml` | `pnpm test:e2e` | Auth emulator via Playwright `globalSetup`; serial, ~minutes |
30+
31+
# Gaps `pnpm build` does not cover
32+
33+
Root `pnpm build` **does not** compile `examples/custom-auth-server`. E2E builds it on demand — a deps bump can break e2e while `pnpm build` passes.
34+
35+
**Required extra step** when `examples/custom-auth-server` or its deps change:
36+
37+
```bash
38+
pnpm --filter custom-auth-server run build
39+
```
40+
41+
Or rely on full `pnpm test:e2e` (includes that build).
42+
43+
# Required sequence (all must exit 0)
44+
45+
Run in order; do not commit until complete:
46+
47+
1. `pnpm install`
48+
2. `pnpm build`
49+
3. `pnpm --filter custom-auth-server run build` — if custom-auth-server or firebase-admin/admin deps touched; always safe for deps PRs
50+
4. `pnpm test`
51+
5. `pnpm lint:check` && `pnpm format:check`
52+
6. `pnpm test:e2e`
53+
54+
Dependency-only bumps: also follow [dependency-update-verification.md](dependency-update-verification.md) (audit, AD-9).
55+
56+
# One-shot script (deps / CI-affecting PRs)
57+
58+
```bash
59+
pnpm install && \
60+
pnpm build && \
61+
pnpm --filter custom-auth-server run build && \
62+
pnpm test && \
63+
pnpm lint:check && \
64+
pnpm format:check && \
65+
pnpm test:e2e
66+
```
67+
68+
# Owners
69+
70+
| Topic | Document |
71+
|-------|----------|
72+
| Test layers | [architecture/testing-strategy.md](../architecture/testing-strategy.md) |
73+
| Dependency bumps | [dependency-update-verification.md](dependency-update-verification.md) |
74+
| E2E scope | [decisions.md](../decisions.md) AD-3, AD-4, AD-6 |
75+
| Local emulator | [LOCAL_DEVELOPMENT.md](../../LOCAL_DEVELOPMENT.md) |

0 commit comments

Comments
 (0)