feat: upgrade nx to 22.6.4 and liveblocks to 3.17.0#2627
feat: upgrade nx to 22.6.4 and liveblocks to 3.17.0#2627nperez0111 wants to merge 17 commits intomainfrom
Conversation
Upgrade nx and @nx/js from 22.5.4 to 22.6.4. Upgrade all liveblocks packages from the 3.7.1-tiptap3 pre-release to stable 3.17.0, which officially supports tiptap v3 and resolves peer dependency mismatches. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughUpdated Liveblocks dependency specifiers from pinned pre-release versions to caret ranges; bumped many dev tooling versions (vite, vitest, Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
@blocknote/ariakit
@blocknote/code-block
@blocknote/core
@blocknote/mantine
@blocknote/react
@blocknote/server-util
@blocknote/shadcn
@blocknote/xl-ai
@blocknote/xl-docx-exporter
@blocknote/xl-email-exporter
@blocknote/xl-multi-column
@blocknote/xl-odt-exporter
@blocknote/xl-pdf-exporter
commit: |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@playground/package.json`:
- Line 32: Replace the incorrect dependency entry "@liveblocks/core" with the
public SDK package "@liveblocks/client" in the playground package manifest (keep
the version specifier, e.g. "^3.17.0"); this ensures consistency with examples
that import "@liveblocks/client" and avoids referencing the internal
"@liveblocks/core" package. After changing the dependency string, run your
package manager to update the lockfile and node_modules so the new dependency is
installed.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 9d1dbc27-314f-4f3d-8de6-d4945cbeb13e
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (6)
docs/package.jsonexamples/07-collaboration/02-liveblocks/.bnexample.jsonexamples/07-collaboration/02-liveblocks/package.jsonpackage.jsonplayground/package.jsonplayground/src/examples.gen.tsx
- vite: ^5.4.20/^6.4.0 → ^8.0.3 - vitest: ^2.1.9 → ^4.1.2 - @vitest/runner: ^2.1.9 → ^4.1.2 - @vitejs/plugin-react: ^4.7.0 → ^6.0.1 - vite-plugin-externalize-deps: ^0.8.0 → ^0.10.0 - vite-plugin-inspect: 11.1.0 → 12.0.0-beta.1 - Replace process.env.NODE_ENV with import.meta.env.DEV in shiki.ts (vite 8 no longer bundles @types/node) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@packages/core/src/blocks/Code/shiki.ts`:
- Line 22: The conditional that references import.meta.env.DEV (the line
containing import.meta.env.DEV and the hasWarned check) will blow up in
CJS/Node; replace it with a defensive environment check that first guards
existence (using typeof import !== 'undefined' and checking import.meta and
import.meta.env) and falls back to process.env.NODE_ENV === 'development' so
both ESM and CJS/Node are safe, keeping the hasWarned logic intact; also add a
minimal ambient declaration (.d.ts) for process.env (e.g., declare const
process: { env?: { NODE_ENV?: string } } | undefined) to satisfy TypeScript.
In `@packages/xl-ai-server/package.json`:
- Around line 63-64: The dev dependencies in package.json are inconsistent:
"vite" is bumped to ^8.0.3 but "vite-node" remains ^2.1.9 which is incompatible;
update the manifest so vite-node is upgraded to a v6-compatible version (match
vite@8 / vitest@4 requirements) and ensure the "scripts.dev" entry that invokes
vite-node continues to work; specifically change the vite-node dependency to a
v6.x release compatible with Vite 8 and run/install to verify local dev starts
successfully.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: ebd3c74b-3b4f-4ec6-a0cd-708b757b4106
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (19)
nx.jsonpackage.jsonpackages/ariakit/package.jsonpackages/code-block/package.jsonpackages/core/package.jsonpackages/core/src/blocks/Code/shiki.tspackages/mantine/package.jsonpackages/react/package.jsonpackages/server-util/package.jsonpackages/shadcn/package.jsonpackages/xl-ai-server/package.jsonpackages/xl-ai/package.jsonpackages/xl-docx-exporter/package.jsonpackages/xl-email-exporter/package.jsonpackages/xl-multi-column/package.jsonpackages/xl-odt-exporter/package.jsonpackages/xl-pdf-exporter/package.jsonplayground/package.jsontests/package.json
✅ Files skipped from review due to trivial changes (14)
- nx.json
- packages/xl-multi-column/package.json
- packages/server-util/package.json
- packages/core/package.json
- packages/xl-odt-exporter/package.json
- packages/mantine/package.json
- tests/package.json
- packages/code-block/package.json
- packages/xl-email-exporter/package.json
- packages/xl-docx-exporter/package.json
- packages/react/package.json
- packages/ariakit/package.json
- packages/shadcn/package.json
- package.json
🚧 Files skipped from review as they are similar to previous changes (1)
- playground/package.json
….json files The vite v8 upgrade missed updating these 86 example files, causing pnpm install --frozen-lockfile to fail in CI due to lockfile mismatch. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add cssFileName: "style" to lib configs so CSS output keeps the
expected name (vite 8 changed default from style.css to {entry}.css)
- Add resolve aliases for CSS @import of @blocknote/* packages during
build (vite 8's postcss-import no longer resolves bare specifiers)
- Set oxc jsx throwIfNamespace: false for xl-odt-exporter (vite 8 uses
oxc which rejects JSX namespace tags by default)
- Rename TaskContext to TestContext in xl-ai (vitest v4 rename)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The performance tests create 10k-block editors which can exceed the default 5s vitest timeout on CI runners. Increased to 30s. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The jest/valid-describe-callback rule doesn't allow an options object as the second argument to describe(). Move timeout to each it() instead. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Update vite (^5.4.20 → ^8.0.3) and @vitejs/plugin-react (^4.7.0 →
^6.0.1) in 86 example package.json files
- Add cssFileName: "style" to lib configs so CSS output keeps the
expected name (vite 8 changed default from style.css to {entry}.css)
- Add resolve aliases for CSS @import of @blocknote/* packages during
build (vite 8's postcss-import no longer resolves bare specifiers)
- Set oxc jsx throwIfNamespace: false for xl-odt-exporter (vite 8 uses
oxc which rejects JSX namespace tags by default)
- Rename TaskContext to TestContext in xl-ai (vitest v4 rename)
- Update MSW snapshot file hashes for xl-ai tests (request body hashes
changed with dependency upgrades)
- Add global process type declaration for shiki.ts NODE_ENV check
- Reduce performance test iterations to prevent CI timeout flakiness
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The interop: "compat" output option was removed in Rollup 4 (used by Vite 8) since compat is now the default behavior. Removing it eliminates the "Invalid output options" warning during builds. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…bility
Rolldown (used by Vite 8) preserves CJS require() calls for non-externalized
dependencies. The external function used exact matching with .includes(source),
which missed subpath imports like "use-sync-external-store/shim/with-selector".
This caused require("react") to fail at runtime in the browser with
"Calling require in an environment that doesn't expose the require function".
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Switch playground @liveblocks/core to @liveblocks/client to match other manifests, and upgrade vite-node to ^6.0.0 for vite 8 compatibility. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ProseMirror's DOMObserver timeout fires after jsdom teardown, causing "document is not defined" ReferenceError. Adding editor.unmount() at the end of each test ensures proper cleanup. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Exclude .next/cache from build:site outputs to reduce cache bloat - Remove unused dist output from build:site (docs uses .next) - Exclude non-build files (sqlite.db, .env*, coverage) from build:site inputs - Fix test/e2e dependsOn to use build deps instead of cascading test/e2e deps Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ition When Nx runs builds in parallel and restores core/react from remote cache, multiple tsc --build processes simultaneously try to rebuild the same project references, causing race conditions where one process reads partially-written declaration files. Since Nx already handles dependency ordering via ^build, the project reference traversal in tsc --build is redundant. Affected packages: xl-pdf-exporter, xl-docx-exporter, xl-odt-exporter, xl-ai Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Summary
Upgrade nx/@nx/js from 22.5.4 to 22.6.4 and all Liveblocks packages from the
3.7.1-tiptap3pre-release to stable3.17.0, resolving tiptap v2/v3 peer dependency mismatches.Rationale
The monorepo was using a Liveblocks pre-release (
3.7.1-tiptap3) that still declared tiptap v2 peer dependencies, causing unmet peer dependency warnings during install. Liveblocks 3.17.0 now officially supports tiptap v3, eliminating these warnings. The nx upgrade brings the build tooling to the latest patch release.Changes
nxand@nx/jsfrom 22.5.4 → 22.6.4@liveblocks/*packages from3.7.1-tiptap3→^3.17.0in:playground/package.jsondocs/package.jsonexamples/07-collaboration/02-liveblocks/package.jsonexamples/07-collaboration/02-liveblocks/.bnexample.jsonplayground/src/examples.gen.tsx(auto-generated)pnpm-lock.yamlImpact
Resolves tiptap v2/v3 peer dependency warnings related to
@tiptap/extension-collaboration,@tiptap/extension-collaboration-cursor, and@liveblocks/react-tiptap. No breaking API changes expected — Liveblocks 3.17.0 is the stable release of the tiptap3 pre-release already in use.Testing
pnpm installcompletes with no tiptap-related peer dependency warningsnx run-many -t build --projects=@blocknote/corebuilds successfullyChecklist
Summary by CodeRabbit