Skip to content

Commit 4c5e498

Browse files
nperez0111claude
andcommitted
ci(fresh-install): widen prod-dep update to examples and playground
Without this, pnpm update --prod only bumped the publishable @blocknote/* packages, leaving examples/* and playground pinned to older versions. For peer-dep'd libs like @tiptap/core + @tiptap/pm that produced two virtual- store copies keyed on different peer versions, which TypeScript treated as unrelated types — breaking example-editor:build with TS2322. Extending the filter keeps every app that consumes @blocknote/* in lockstep with the published packages. docs/shared/tests/fumadocs stay excluded. Also add this branch to the push triggers so the PR exercises the workflow. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 40ddec4 commit 4c5e498

1 file changed

Lines changed: 20 additions & 18 deletions

File tree

.github/workflows/fresh-install-tests.yml

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ on:
1414
push:
1515
branches:
1616
- package-upgrades
17+
- feat/fresh-install-debug
1718
schedule:
1819
- cron: "0 2 * * *" # Daily at 02:00 UTC
1920
workflow_dispatch: # Allow manual runs
@@ -47,25 +48,26 @@ jobs:
4748
run: pnpm install
4849

4950
- id: update_prod_deps
50-
name: Update prod deps of published packages
51-
# Resolves production dependencies of every published (non-private)
52-
# workspace package to the latest version within their declared semver
53-
# ranges. This simulates what a user gets when running
54-
# `npm install @blocknote/react` in a fresh project.
51+
name: Update prod deps of packages, examples, and playground
52+
# Resolves production dependencies to the latest versions within declared
53+
# semver ranges for:
54+
# - packages/* – the published @blocknote/* packages
55+
# - examples/*/* – the individual example apps
56+
# - playground – the example-editor app that bundles the examples
57+
# Examples and playground are included so shared peer-dep'd libs
58+
# (e.g. @tiptap/core + @tiptap/pm) resolve to the same version across
59+
# publishable packages and the apps consuming them; otherwise pnpm ends
60+
# up with two virtual-store copies keyed on different peer versions and
61+
# TypeScript treats their exports as unrelated types.
62+
# docs/, shared/, tests/, fumadocs/ are deliberately excluded — they're
63+
# not part of the "fresh npm install @blocknote/react" user experience
64+
# this workflow simulates.
5565
# DevDependencies are left at their lockfile versions.
56-
run: |
57-
FILTERS=$(node -e "
58-
const fs = require('fs');
59-
const path = require('path');
60-
fs.readdirSync('packages').forEach(dir => {
61-
try {
62-
const pkg = JSON.parse(fs.readFileSync(path.join('packages', dir, 'package.json'), 'utf8'));
63-
if (!pkg.private && pkg.name) process.stdout.write('--filter ' + pkg.name + ' ');
64-
} catch {}
65-
});
66-
")
67-
echo "Updating prod deps for: $FILTERS"
68-
eval pnpm update --prod $FILTERS
66+
run: >-
67+
pnpm update --prod
68+
--filter "./packages/*"
69+
--filter "./examples/*/*"
70+
--filter "./playground"
6971
7072
- id: build_packages
7173
name: Build packages

0 commit comments

Comments
 (0)