fix(deps): bump Rsbuild v1.6.7#1905
Conversation
🦋 Changeset detectedLatest commit: 641c7df The changes in this PR will be included in the next version bump. This PR includes changesets to release 3 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
📝 WalkthroughWalkthroughThe pull request updates workspace versions, dependencies, and test assertions across the monorepo. It includes a changeset documenting a minor rspeedy release with Rsbuild v1.6.7 and Rspack v1.6.4 updates, version bumps in workspace configuration and package dependencies, test assertion style changes in rspeedy core tests, and sourcemap test refactoring with type and post-processing logic adjustments. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes
Possibly related PRs
Suggested labels
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ 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 |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
CodSpeed Performance ReportMerging #1905 will improve performances by 5.09%Comparing Summary
Benchmarks breakdown
Footnotes
|
Web Explorer#6245 Bundle Size — 366.97KiB (0%).641c7df(current) vs 30b9d54 main#6240(baseline) Bundle metrics
Bundle size by type
|
| Current #6245 |
Baseline #6240 |
|
|---|---|---|
240.8KiB |
240.8KiB |
|
93.8KiB |
93.8KiB |
|
32.37KiB |
32.37KiB |
Bundle analysis report Branch colinaaa:colin/1029/rsbuild-1.6 Project dashboard
Generated by RelativeCI Documentation Report issue
React Example#6179 Bundle Size — 234.35KiB (0%).00448e2(current) vs 0f2da6b main#6177(baseline) Bundle metrics
|
| Current #6179 |
Baseline #6177 |
|
|---|---|---|
0B |
0B |
|
0B |
0B |
|
0% |
0% |
|
0 |
0 |
|
4 |
4 |
|
164 |
164 |
|
66 |
66 |
|
46.71% |
46.71% |
|
2 |
2 |
|
0 |
0 |
Bundle size by type no changes
| Current #6179 |
Baseline #6177 |
|
|---|---|---|
145.76KiB |
145.76KiB |
|
88.59KiB |
88.59KiB |
Bundle analysis report Branch colinaaa:colin/1029/rsbuild-1.6 Project dashboard
Generated by RelativeCI Documentation Report issue
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
packages/rspeedy/plugin-react/test/sourcemap.test.ts (1)
12-13: Source map normalization viaNullableMappedPositionandbasenamelooks goodTyping
functionName2SourceasRecord<string, NullableMappedPosition>and normalizingsourceto its basename gives you stable, well-typed expectations while preserving line/column/name information; the updated snapshot reflects that correctly.If you’d like to avoid mutating the
NullableMappedPositionobject returned bySourceMapConsumer, you can make this a bit clearer by assigning to a new object:- functionNames.forEach((name) => { + functionNames.forEach((name) => { const backgroundSourceLines = backgroundSource.split('\n') let line = -1, column = -1 backgroundSourceLines.forEach((lineContent, index) => { if (lineContent.includes(name)) { line = index + 1 column = lineContent.indexOf(name) + 1 } }) - functionName2Source[name] = consumer - .originalPositionFor({ - line, - column, - }) - if (functionName2Source[name].source) { - functionName2Source[name].source = path.basename( - functionName2Source[name].source, - ) - } + const originalPosition = consumer.originalPositionFor({ + line, + column, + }) + functionName2Source[name] = { + ...originalPosition, + source: originalPosition.source + ? path.basename(originalPosition.source) + : originalPosition.source, + } })This keeps the same behavior while making the normalization step more explicit and side‑effect free on the consumer’s return value.
Also applies to: 121-122, 136-141, 148-161
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (2)
packages/rspeedy/core/test/plugins/__snapshots__/output.plugin.test.ts.snapis excluded by!**/*.snappnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (6)
.changeset/gold-pots-hide.md(1 hunks)package.json(1 hunks)packages/rspeedy/core/test/config/rsbuild.test.ts(2 hunks)packages/rspeedy/plugin-react/test/sourcemap.test.ts(3 hunks)packages/testing-library/testing-environment/etc/testing-environment.api.md(0 hunks)pnpm-workspace.yaml(1 hunks)
💤 Files with no reviewable changes (1)
- packages/testing-library/testing-environment/etc/testing-environment.api.md
🧰 Additional context used
📓 Path-based instructions (1)
.changeset/*.md
📄 CodeRabbit inference engine (AGENTS.md)
For contributions, generate and commit a Changeset describing your changes
Files:
.changeset/gold-pots-hide.md
🧠 Learnings (15)
📓 Common learnings
Learnt from: colinaaa
Repo: lynx-family/lynx-stack PR: 1454
File: pnpm-workspace.yaml:46-46
Timestamp: 2025-08-07T04:00:59.645Z
Learning: In the lynx-family/lynx-stack repository, the webpack patch (patches/webpack5.101.0.patch) was created to fix issues with webpack5.99.9 but only takes effect on webpack5.100.0 and later versions. The patchedDependencies entry should use "webpack@^5.100.0" to ensure the patch applies to the correct version range.
📚 Learning: 2025-09-12T06:56:08.046Z
Learnt from: colinaaa
Repo: lynx-family/lynx-stack PR: 1731
File: .vscode/extensions.json:5-5
Timestamp: 2025-09-12T06:56:08.046Z
Learning: The TypeScript Native Preview VS Code extension has the marketplace identifier "TypeScriptTeam.native-preview" (case-insensitive, so "typescriptteam.native-preview" in JSON files is correct). It's published by TypeScriptTeam, not Microsoft.
Applied to files:
package.json
📚 Learning: 2025-11-06T01:19:23.670Z
Learnt from: colinaaa
Repo: lynx-family/lynx-stack PR: 1917
File: packages/mcp-servers/devtool-mcp-server/tsconfig.json:8-8
Timestamp: 2025-11-06T01:19:23.670Z
Learning: The lynx-js/devtool-mcp-server package in lynx-family/lynx-stack targets Node.js >=18.19 (specified in its package.json engines), which is different from the root project's requirement of Node.js ^22 || ^24. The package uses "lib": ["ES2024.Promise"] in its tsconfig.json because it manually includes polyfills for Promise.withResolvers while maintaining compatibility with Node.js v18.
Applied to files:
package.json
📚 Learning: 2025-08-20T04:56:36.011Z
Learnt from: colinaaa
Repo: lynx-family/lynx-stack PR: 1566
File: package.json:53-53
Timestamp: 2025-08-20T04:56:36.011Z
Learning: In lynx-stack, Node.js v24 is the preferred/default version for development (established in PR #1557), but Node.js v22 compatibility is maintained specifically for external CI systems like rspack-ecosystem-ci. The engines.node specification uses "^22 || ^24" to support both versions while keeping v24 as the primary target.
Applied to files:
package.json
📚 Learning: 2025-08-13T11:36:12.075Z
Learnt from: colinaaa
Repo: lynx-family/lynx-stack PR: 1523
File: vitest.config.ts:52-72
Timestamp: 2025-08-13T11:36:12.075Z
Learning: The lynx-stack project requires Node.js >=22 as specified in package.json engines, so Node.js compatibility fallbacks for features introduced before v22 are unnecessary.
Applied to files:
package.json
📚 Learning: 2025-09-12T09:43:04.847Z
Learnt from: gaoachao
Repo: lynx-family/lynx-stack PR: 1736
File: .changeset/spotty-experts-smoke.md:1-3
Timestamp: 2025-09-12T09:43:04.847Z
Learning: In the lynx-family/lynx-stack repository, empty changeset files (containing only `---\n\n---`) are used for internal changes that modify src/** files but don't require meaningful release notes, such as private package changes or testing-only modifications. This satisfies CI requirements without generating user-facing release notes.
Applied to files:
.changeset/gold-pots-hide.md
📚 Learning: 2025-07-22T09:23:07.797Z
Learnt from: colinaaa
Repo: lynx-family/lynx-stack PR: 1330
File: .changeset/olive-animals-attend.md:1-3
Timestamp: 2025-07-22T09:23:07.797Z
Learning: In the lynx-family/lynx-stack repository, changesets are only required for meaningful changes to end-users such as bugfixes and features. Internal/development changes like chores, refactoring, or removing debug info do not need changeset entries.
Applied to files:
.changeset/gold-pots-hide.md
📚 Learning: 2025-07-22T09:26:16.722Z
Learnt from: colinaaa
Repo: lynx-family/lynx-stack PR: 1330
File: .changeset/olive-animals-attend.md:1-3
Timestamp: 2025-07-22T09:26:16.722Z
Learning: In the lynx-family/lynx-stack repository, CI checks require changesets when files matching the pattern "src/**" are modified (as configured in .changeset/config.json). For internal changes that don't need meaningful changesets, an empty changeset file is used to satisfy the CI requirement while not generating any release notes.
Applied to files:
.changeset/gold-pots-hide.md
📚 Learning: 2025-09-12T09:43:04.847Z
Learnt from: gaoachao
Repo: lynx-family/lynx-stack PR: 1736
File: .changeset/spotty-experts-smoke.md:1-3
Timestamp: 2025-09-12T09:43:04.847Z
Learning: In the lynx-family/lynx-stack repository, private packages (marked with "private": true in package.json) like lynx-js/react-transform don't require meaningful changeset entries even when their public APIs change, since they are not published externally and only affect internal development.
Applied to files:
.changeset/gold-pots-hide.md
📚 Learning: 2025-08-27T08:10:09.932Z
Learnt from: colinaaa
Repo: lynx-family/lynx-stack PR: 1612
File: packages/rspeedy/create-rspeedy/template-react-vitest-rltl-ts/src/tsconfig.json:3-13
Timestamp: 2025-08-27T08:10:09.932Z
Learning: In the lynx-family/lynx-stack repository, Rspeedy templates use `lynx-js/rspeedy/client` types via `rspeedy-env.d.ts` instead of `vite/client` types. Rspeedy provides its own client-side environment type definitions and doesn't require direct Vite type references.
Applied to files:
.changeset/gold-pots-hide.md
📚 Learning: 2025-08-14T12:54:51.143Z
Learnt from: upupming
Repo: lynx-family/lynx-stack PR: 1370
File: .changeset/brave-melons-add.md:1-7
Timestamp: 2025-08-14T12:54:51.143Z
Learning: In the lynx-family/lynx-stack repository, packages use 0.x.x versioning where minor version bumps indicate breaking changes (not major bumps), following pre-1.0 semantic versioning conventions.
Applied to files:
.changeset/gold-pots-hide.md
📚 Learning: 2025-11-04T10:15:14.965Z
Learnt from: upupming
Repo: lynx-family/lynx-stack PR: 1899
File: packages/react/runtime/__test__/snapshotPatch.test.jsx:725-749
Timestamp: 2025-11-04T10:15:14.965Z
Learning: In packages/react/runtime/src/snapshot.ts, the snapshotCreatorMap type signature uses `Record<string, (uniqId: string) => string>` (returning string) rather than void for backward compatibility. Old lazy bundles still use the pattern `const snapshot_xxx = createSnapshot(...)` directly, which requires createSnapshot to return a value. The snapshotCreatorMap creators that wrap createSnapshot calls must maintain the same return type to support these legacy bundles.
Applied to files:
packages/rspeedy/plugin-react/test/sourcemap.test.ts
📚 Learning: 2025-10-29T10:28:27.519Z
Learnt from: upupming
Repo: lynx-family/lynx-stack PR: 1899
File: packages/react/transform/crates/swc_plugin_snapshot/tests/__swc_snapshots__/lib.rs/should_static_extract_dynamic_inline_style.js:20-24
Timestamp: 2025-10-29T10:28:27.519Z
Learning: Files inside packages/react/transform/crates/swc_plugin_snapshot/tests/__swc_snapshots__/ are auto-generated test snapshot files and should not be manually updated. Any issues with the generated code should be addressed in the code generator/transform logic, not in the snapshots themselves.
Applied to files:
packages/rspeedy/plugin-react/test/sourcemap.test.ts
📚 Learning: 2025-08-06T13:28:57.182Z
Learnt from: colinaaa
Repo: lynx-family/lynx-stack PR: 1453
File: vitest.config.ts:49-61
Timestamp: 2025-08-06T13:28:57.182Z
Learning: In the lynx-family/lynx-stack repository, the file `packages/rspeedy/create-rspeedy/template-react-vitest-rltl-js/vitest.config.js` is a template file for scaffolding new Rspeedy projects, not a test configuration that should be included in the main vitest projects array.
Applied to files:
packages/rspeedy/plugin-react/test/sourcemap.test.tspackages/rspeedy/core/test/config/rsbuild.test.ts
📚 Learning: 2025-09-23T08:54:39.966Z
Learnt from: upupming
Repo: lynx-family/lynx-stack PR: 1670
File: packages/webpack/css-extract-webpack-plugin/test/hotCases/hot/hot-update-json/dual-thread/__snapshot__/index.css:6-8
Timestamp: 2025-09-23T08:54:39.966Z
Learning: In the lynx-stack CSS extract webpack plugin tests, many test fixture CSS files intentionally use invalid CSS syntax like `color: 'red';` with quoted values. The snapshots correctly reflect this invalid CSS from the source fixtures. To fix CSS validation issues, the source fixture files should be updated first, then snapshots regenerated, rather than manually editing snapshots.
Applied to files:
packages/rspeedy/plugin-react/test/sourcemap.test.ts
🔇 Additional comments (4)
package.json (1)
39-39: Dev dependency bump for@typescript/native-preview—validate compatibilityThe snapshot bump for
@typescript/native-previewlooks fine and fits the dev tooling role alongside the pinnedtypescript@^5.9.3, with engines already targeting Node^22 || ^24.Please confirm this new dev build behaves correctly with your existing editor/tooling setup and doesn’t introduce regressions relative to the previous snapshot.
.changeset/gold-pots-hide.md (1)
1-5: Changeset matches the Rsbuild/Rspack bump; minor level seems reasonableThis changeset correctly targets
@lynx-js/rspeedyand documents the Rsbuild1.6.7/ Rspack1.6.4upgrade. For a0.xpackage where minor bumps can represent breaking changes, usingminorfor a toolchain upgrade is consistent with your versioning policy, as long as you consider potential user impact.Please just confirm that a
minorbump (rather thanpatch) is the intended signal for consumers here.Based on learnings.
packages/rspeedy/core/test/config/rsbuild.test.ts (1)
343-348: DistPath expectations updated to object shape—verified correctLines 343–348 and 414–415 properly use
toHaveProperty('root', ...)to match the object-shapeddistPathpassed into config, staying resilient to additional properties. Verification confirms no other tests incorrectly assumedistPathis a bare string.pnpm-workspace.yaml (1)
39-39: Catalog bump verified; no stray pins foundVerification confirms the
@rsbuild/corecatalog update to1.6.7is clean. All workspace packages properly reference the catalog via"catalog:rsbuild", and no hard-pinned versions exist outsidepnpm-workspace.yamlthat would cause version skew.
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @lynx-js/rspeedy@0.12.0 ### Minor Changes - Bump Rsbuild v1.6.7 with Rspack v1.6.4. ([#1905](#1905)) ### Patch Changes - Updated dependencies \[]: - @lynx-js/web-rsbuild-server-middleware@0.18.4 ## @lynx-js/devtool-mcp-server@0.4.1 ### Patch Changes - Export `registerTool` and `defineTool`. ([#1931](#1931)) - Fix failed to connect to client. ([#1931](#1931)) ## @lynx-js/react@0.114.5 ### Patch Changes - Reduce `__SetInlineStyles` element API call when attrs in spread not changed ([#1919](#1919)) ## @lynx-js/web-constants@0.18.4 ### Patch Changes - Updated dependencies \[]: - @lynx-js/web-worker-rpc@0.18.4 ## @lynx-js/web-core@0.18.4 ### Patch Changes - feat: builtinTagTransformMap add `'x-input-ng': 'x-input'` ([#1932](#1932)) - Updated dependencies \[]: - @lynx-js/web-constants@0.18.4 - @lynx-js/web-mainthread-apis@0.18.4 - @lynx-js/web-worker-rpc@0.18.4 - @lynx-js/web-worker-runtime@0.18.4 ## @lynx-js/web-core-server@0.18.4 ### Patch Changes - feat: builtinTagTransformMap add `'x-input-ng': 'x-input'` ([#1932](#1932)) - chore: minor bundle output change ([#1946](#1946)) the timing of loading wasm chunk has been changed ## @lynx-js/web-elements@0.8.11 ### Patch Changes - fix: when estimated-main-axis-size-px is not set, should use the height of list ([#1930](#1930)) - Updated dependencies \[]: - @lynx-js/web-elements-template@0.8.11 ## @lynx-js/web-explorer@0.0.13 ### Patch Changes - feat: builtinTagTransformMap add `'x-input-ng': 'x-input'` ([#1932](#1932)) ## @lynx-js/web-mainthread-apis@0.18.4 ### Patch Changes - Updated dependencies \[]: - @lynx-js/web-constants@0.18.4 ## @lynx-js/web-worker-runtime@0.18.4 ### Patch Changes - Updated dependencies \[]: - @lynx-js/web-constants@0.18.4 - @lynx-js/web-mainthread-apis@0.18.4 - @lynx-js/web-worker-rpc@0.18.4 ## create-rspeedy@0.12.0 ## upgrade-rspeedy@0.12.0 ## @lynx-js/web-elements-template@0.8.11 ## @lynx-js/web-rsbuild-server-middleware@0.18.4 ## @lynx-js/web-worker-rpc@0.18.4 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Summary by CodeRabbit
Chores
Tests
Checklist