Skip to content

Commit 05bc57b

Browse files
authored
Coverage/targeted lanes 2026 03 05 (#64)
This pull request introduces several improvements across the monorepo, focusing on streamlining build and clean scripts, updating dependencies, enhancing test coverage for the `web` package, and adding a new nightly CI workflow for browser WebSocket tests. Below are the most important changes grouped by theme: **Build & Clean Script Improvements:** * Replaced all uses of the `rimraf` package in `clean` and `build` scripts across packages and examples with a custom Bun-based script (`bun ../../scripts/rm.mts`). This change standardizes cleanup operations and removes the dependency on `rimraf`. [[1]](diffhunk://#diff-7f28249b616177f02f586810e41d551814bea8d1ae91932e1a42a5af9732093eL8-R10) [[2]](diffhunk://#diff-40c4411fc12563ccd002c2e07a131524733ac942e41e6ceff46fdc9ffe40c541L9-R9) [[3]](diffhunk://#diff-e4423795aadc1c3ee172a311f30a02be8cd60a76343bcc0f172cad4497a1988eL10-R10) [[4]](diffhunk://#diff-698303de1d190e77f726d281603ff8830050a20151b378c806f0cdcade291574L8-R8) [[5]](diffhunk://#diff-c0972199570bbcd0cc5a5d086db08b657e5c346a190e809a472700a6aeddc3dbL8-R8) [[6]](diffhunk://#diff-fadd8a4d61e2c65b39593eaa87214fa4c750703a0fbea7eae2c11f82afee0ed5L9-R9) [[7]](diffhunk://#diff-e340aad2a8cb0b25138428c31acdfcd60e7ab41544a462b8cce893c3caf5bdb1L12-R12) [[8]](diffhunk://#diff-8a7df93e7a673ac214eb42e41a9fc716c7124f15075536bd175dc53c17d7f6f3L8-R8) [[9]](diffhunk://#diff-31a85c0b4c5526a896f02b675a49f1f942ec15fa815f6326edc4f74248aa0048L20-R22) [[10]](diffhunk://#diff-87dc2037f7a8264c52ac826911ac21a5952b4d5c0a0fe69d22084b4dc9eca35bL21-R24) [[11]](diffhunk://#diff-50d7c39a9430d37971aa76858165ab4f7921c4cc4340b28e9b673ce6982e63cfL50-L59) [[12]](diffhunk://#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519L60-R64) * Updated the root `clean` and `build` scripts in `package.json` to use the Bun-based script and added a `clean:ts` script for TypeScript build cache cleanup. ([package.jsonL60-R64](diffhunk://#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519L60-R64), F65c6b61L5R5) **Test Coverage & CI Enhancements:** * Added new scripts and thresholds for test coverage and coverage gating for the `web` package, and included a new `coverage:lane:web` script for streamlined lane-based coverage checks. [[1]](diffhunk://#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519L27-R35) [[2]](diffhunk://#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519R45-R52) * Added `web` to the list of filtered build targets in the CI workflow trigger to ensure web builds are included in CI runs. * Introduced a new GitHub Actions workflow (`ws-browser-nightly.yaml`) to run nightly browser-based WebSocket tests, including log and screenshot artifact uploads for debugging. **Dependency Updates:** * Updated various dependencies to their latest versions in example projects, including Angular, Electron, Expo, Tauri, Svelte, Tanstack Router, and others for improved stability and compatibility. [[1]](diffhunk://#diff-e451e510111128fdbfb50191f29b394ae59a658935d1423762bd60e2e31d15aeL12-R20) [[2]](diffhunk://#diff-40c4411fc12563ccd002c2e07a131524733ac942e41e6ceff46fdc9ffe40c541L23-R23) [[3]](diffhunk://#diff-e4423795aadc1c3ee172a311f30a02be8cd60a76343bcc0f172cad4497a1988eL29-R41) [[4]](diffhunk://#diff-fadd8a4d61e2c65b39593eaa87214fa4c750703a0fbea7eae2c11f82afee0ed5L19-R19) [[5]](diffhunk://#diff-0b95502e40ec3ba03166111649b16aaadf4228073c4c1a5891379336b7e5a77aL13-R13) [[6]](diffhunk://#diff-e340aad2a8cb0b25138428c31acdfcd60e7ab41544a462b8cce893c3caf5bdb1L21-R21) * Updated devDependencies and overrides in the root `package.json`, including removing `rimraf` and `webpack`, and adding new overrides for `svgo` and `tar`. **TypeScript Configuration Improvements:** * Enhanced the TypeScript configuration in `apps/relay/tsconfig.json` to explicitly include Node.js types and type roots, improving type safety and compatibility. These changes collectively improve developer experience, consistency, and reliability across the monorepo.
2 parents 2fff107 + 2a07ee0 commit 05bc57b

55 files changed

Lines changed: 3102 additions & 476 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/ci.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ on:
1818
- tanstack
1919
- react-native
2020
- expo
21+
- web
2122

2223
permissions:
2324
contents: read
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: WebSocket Browser Nightly
2+
3+
on:
4+
schedule:
5+
- cron: "17 3 * * *"
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: read
10+
11+
concurrency:
12+
group: ws-browser-nightly-${{ github.ref }}
13+
cancel-in-progress: false
14+
15+
env:
16+
FORCE_COLOR: 3
17+
EVOLU_BROWSER_WS_TESTS: "1"
18+
VITE_EVOLU_BROWSER_WS_TESTS: "1"
19+
20+
jobs:
21+
ws-browser:
22+
runs-on: ubuntu-latest
23+
steps:
24+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
25+
26+
- name: Setup Node.js
27+
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
28+
with:
29+
node-version: 24
30+
31+
- name: Setup Bun
32+
uses: oven-sh/setup-bun@4bc047ad259df6fc24a6c9b0f9a0cb08cf17fbe5 # v2.0.1
33+
with:
34+
bun-version: "1.3.10"
35+
36+
- name: Install dependencies
37+
run: bun install
38+
39+
- name: Install Playwright browsers
40+
run: bun x playwright install --with-deps
41+
42+
- name: Run browser WebSocket tests
43+
run: |
44+
set -o pipefail
45+
bunx vitest run --project browser packages/common/test/WebSocket.test.ts --reporter=verbose 2>&1 | tee ws-browser-nightly.log
46+
47+
- name: Upload browser WebSocket logs
48+
if: always()
49+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
50+
with:
51+
name: ws-browser-nightly-log
52+
path: ws-browser-nightly.log
53+
54+
- name: Upload browser WebSocket screenshots
55+
if: failure()
56+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
57+
with:
58+
name: ws-browser-nightly-screenshots
59+
path: packages/common/test/__screenshots__
60+
if-no-files-found: ignore

apps/relay/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
"type": "module",
66
"scripts": {
77
"dev": "bun --watch src/index.ts",
8-
"build": "rimraf dist && tsc",
8+
"build": "bun ../../scripts/rm.mts dist && tsc --build tsconfig.json",
99
"start": "node dist/src/index.js",
10-
"clean": "rimraf .turbo node_modules dist data/evolu-relay.db"
10+
"clean": "bun ../../scripts/rm.mts .turbo node_modules dist data/evolu-relay.db"
1111
},
1212
"files": [
1313
"dist",

apps/relay/tsconfig.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
{
22
"extends": "../../packages/tsconfig/universal-esm.json",
33
"compilerOptions": {
4-
"outDir": "dist"
4+
"outDir": "dist",
5+
"types": ["node"],
6+
"typeRoots": ["./node_modules/@types", "../../node_modules/@types"]
57
},
68
"include": ["src"],
79
"exclude": ["node_modules"]

bun.lock

Lines changed: 170 additions & 196 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/angular-vite-pwa/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@
99
"generate-pwa-assets": "pwa-assets-generator"
1010
},
1111
"dependencies": {
12-
"@angular/core": "^21.1.5",
13-
"@angular/platform-browser": "^21.1.5",
12+
"@angular/core": "^21.2.1",
13+
"@angular/platform-browser": "^21.2.1",
1414
"@evolu/common": "workspace:*",
1515
"@evolu/web": "workspace:*"
1616
},
1717
"devDependencies": {
1818
"@analogjs/vite-plugin-angular": "^2.3.1",
19-
"@angular/build": "^21.1.5",
20-
"@angular/compiler-cli": "^21.1.5",
19+
"@angular/build": "^21.2.1",
20+
"@angular/compiler-cli": "^21.2.1",
2121
"@tailwindcss/vite": "^4.2.1",
2222
"@vite-pwa/assets-generator": "^1.0.2",
2323
"tailwindcss": "^4.2.1",

examples/react-electron/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"scripts": {
77
"dev": "bunx vite",
88
"_build": "tsc && bunx vite build && bunx electron-builder",
9-
"clean": "rimraf node_modules .turbo dist-electron",
9+
"clean": "bun ../../scripts/rm.mts node_modules .turbo dist-electron",
1010
"preview": "vite preview"
1111
},
1212
"dependencies": {
@@ -20,7 +20,7 @@
2020
"@types/react": "~19.2.14",
2121
"@types/react-dom": "~19.2.3",
2222
"@vitejs/plugin-react": "^5.1.4",
23-
"electron": "40.6.1",
23+
"electron": "40.7.0",
2424
"electron-builder": "^26.8.1",
2525
"typescript": "^5.9.3",
2626
"vite": "^7.3.1",

examples/react-expo/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"_dev": "expo start --web",
88
"android": "expo run:android --no-build-cache",
99
"android:go": "expo start --android",
10-
"clean": "rimraf .expo android ios node_modules",
10+
"clean": "bun ../../scripts/rm.mts .expo android ios node_modules",
1111
"ios": "expo run:ios",
1212
"ios:go": "expo start --ios",
1313
"lint": "expo lint",
@@ -26,19 +26,19 @@
2626
"@expo/vector-icons": "^15.1.1",
2727
"abort-signal-polyfill": "^1.0.0",
2828
"babel-plugin-module-resolver": "^5.0.2",
29-
"expo": "^55.0.4",
29+
"expo": "^55.0.5",
3030
"expo-constants": "^55.0.7",
3131
"expo-font": "^55.0.4",
3232
"expo-linking": "^55.0.7",
33-
"expo-router": "^55.0.3",
33+
"expo-router": "^55.0.4",
3434
"expo-secure-store": "~55.0.8",
3535
"expo-splash-screen": "~55.0.10",
3636
"expo-sqlite": "~55.0.10",
3737
"react": "19.2.4",
3838
"react-dom": "19.2.4",
3939
"react-native": "0.84.1",
4040
"react-native-nitro-modules": "0.34.1",
41-
"react-native-quick-crypto": "^1.0.14",
41+
"react-native-quick-crypto": "^1.0.16",
4242
"react-native-safe-area-context": "^5.6.2",
4343
"react-native-screens": "^4.24.0",
4444
"react-native-svg": "15.15.3",

examples/react-nextjs/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"scripts": {
66
"_start": "next start",
77
"build": "next build --webpack",
8-
"clean": "rimraf .turbo .next node_modules",
8+
"clean": "bun ../../scripts/rm.mts .turbo .next node_modules",
99
"dev": "next dev --webpack"
1010
},
1111
"dependencies": {

examples/react-vite-pwa/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"type": "module",
66
"scripts": {
77
"build": "tsc && vite build",
8-
"clean": "rimraf node_modules dist .vite .turbo dev-dist",
8+
"clean": "bun ../../scripts/rm.mts node_modules dist .vite .turbo dev-dist",
99
"dev": "vite",
1010
"generate-pwa-assets": "pwa-assets-generator",
1111
"preview": "vite preview"

0 commit comments

Comments
 (0)