Skip to content

Comments

test: generate relative path like name in advanced chunks#7267

Merged
graphite-app[bot] merged 1 commit intomainfrom
12-01-fix_6424
Dec 1, 2025
Merged

test: generate relative path like name in advanced chunks#7267
graphite-app[bot] merged 1 commit intomainfrom
12-01-fix_6424

Conversation

@IWANABETHATGUY
Copy link
Member

@IWANABETHATGUY IWANABETHATGUY commented Nov 30, 2025

related to #6424

Copy link
Member Author


How to use the Graphite Merge Queue

Add the label graphite: merge to this PR to add it to the merge queue.

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@netlify
Copy link

netlify bot commented Nov 30, 2025

Deploy Preview for rolldown-rs canceled.

Name Link
🔨 Latest commit 1f6518e
🔍 Latest deploy log https://app.netlify.com/projects/rolldown-rs/deploys/692c6e72f102ad00088ff623

@netlify
Copy link

netlify bot commented Nov 30, 2025

Deploy Preview for rolldown-rs failed.

Name Link
🔨 Latest commit 36bdcc4
🔍 Latest deploy log https://app.netlify.com/projects/rolldown-rs/deploys/692d9c0408ae0a00088c68c1

@IWANABETHATGUY IWANABETHATGUY force-pushed the 12-01-fix_6424 branch 2 times, most recently from 5f711bf to 601b74f Compare November 30, 2025 16:23
@IWANABETHATGUY IWANABETHATGUY marked this pull request as ready for review November 30, 2025 16:24
Copilot AI review requested due to automatic review settings November 30, 2025 16:24
@IWANABETHATGUY IWANABETHATGUY changed the title fix: 6424 feat: support custom chunk names in advanced chunks Nov 30, 2025
@IWANABETHATGUY IWANABETHATGUY changed the title feat: support custom chunk names in advanced chunks fix: generate relative path like name in advanced chunks Nov 30, 2025
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes issue #6424 by adding support for using custom chunk names (including path separators) in advanced chunk groups. The implementation adds a manual_chunk_alias field to the Chunk struct to preserve the user-provided name and uses it during chunk name generation.

Key changes:

  • Added manual_chunk_alias field to track custom chunk names from advanced chunk groups
  • Updated chunk name generation logic to use the alias when available for common chunks
  • Added comprehensive test case demonstrating relative path names in chunk outputs

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
crates/rolldown_common/src/chunk/mod.rs Added manual_chunk_alias field to Chunk struct and updated constructor signature with #[expect(clippy::too_many_arguments)]
crates/rolldown/src/stages/generate_stage/mod.rs Added logic to use manual_chunk_alias for chunk name generation when present, with #[expect(clippy::too_many_lines)] annotation
crates/rolldown/src/stages/generate_stage/code_splitting.rs Updated all Chunk::new call sites to pass None for the new manual_chunk_alias parameter
crates/rolldown/src/stages/generate_stage/advanced_chunks.rs Updated Chunk::new calls, passing the group name as manual_chunk_alias for user-defined chunks
packages/rolldown/tests/fixtures/function/advanced-chunks/relative-path-name/_config.ts Added test configuration verifying chunk name with path separators works correctly
packages/rolldown/tests/fixtures/function/advanced-chunks/relative-path-name/entry.js Entry point file for the test case
packages/rolldown/tests/fixtures/function/advanced-chunks/relative-path-name/src/folder/a.js Test fixture file in nested directory
packages/rolldown/tests/fixtures/function/advanced-chunks/relative-path-name/src/b.js Test fixture file in src directory
Comments suppressed due to low confidence (1)

packages/rolldown/tests/fixtures/function/advanced-chunks/relative-path-name/_config.ts:16

  • The value assigned to r here is unused.
              r = r.replace(/\\/g, '/');

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@pkg-pr-new
Copy link

pkg-pr-new bot commented Nov 30, 2025

Open in StackBlitz

@rolldown/browser

npm i https://pkg.pr.new/@rolldown/browser@7267

@rolldown/debug

npm i https://pkg.pr.new/@rolldown/debug@7267

@rolldown/pluginutils

npm i https://pkg.pr.new/@rolldown/pluginutils@7267

rolldown

npm i https://pkg.pr.new/rolldown@7267

@rolldown/binding-android-arm64

npm i https://pkg.pr.new/@rolldown/binding-android-arm64@7267

@rolldown/binding-darwin-arm64

npm i https://pkg.pr.new/@rolldown/binding-darwin-arm64@7267

@rolldown/binding-darwin-x64

npm i https://pkg.pr.new/@rolldown/binding-darwin-x64@7267

@rolldown/binding-freebsd-x64

npm i https://pkg.pr.new/@rolldown/binding-freebsd-x64@7267

@rolldown/binding-linux-arm-gnueabihf

npm i https://pkg.pr.new/@rolldown/binding-linux-arm-gnueabihf@7267

@rolldown/binding-linux-arm64-gnu

npm i https://pkg.pr.new/@rolldown/binding-linux-arm64-gnu@7267

@rolldown/binding-linux-arm64-musl

npm i https://pkg.pr.new/@rolldown/binding-linux-arm64-musl@7267

@rolldown/binding-linux-x64-gnu

npm i https://pkg.pr.new/@rolldown/binding-linux-x64-gnu@7267

@rolldown/binding-linux-x64-musl

npm i https://pkg.pr.new/@rolldown/binding-linux-x64-musl@7267

@rolldown/binding-openharmony-arm64

npm i https://pkg.pr.new/@rolldown/binding-openharmony-arm64@7267

@rolldown/binding-wasm32-wasi

npm i https://pkg.pr.new/@rolldown/binding-wasm32-wasi@7267

@rolldown/binding-win32-arm64-msvc

npm i https://pkg.pr.new/@rolldown/binding-win32-arm64-msvc@7267

@rolldown/binding-win32-x64-msvc

npm i https://pkg.pr.new/@rolldown/binding-win32-x64-msvc@7267

commit: 601b74f

@github-actions
Copy link
Contributor

github-actions bot commented Nov 30, 2025

Benchmarks Rust

group                                                        pr                                     target
-----                                                        --                                     ------
bundle/bundle@multi-duplicated-top-level-symbol              1.00     65.2±2.00ms        ? ?/sec    1.00     65.3±2.09ms        ? ?/sec
bundle/bundle@multi-duplicated-top-level-symbol-sourcemap    1.00     70.3±2.04ms        ? ?/sec    1.05     73.6±2.36ms        ? ?/sec
bundle/bundle@rome_ts                                        1.00    109.2±3.50ms        ? ?/sec    1.00    109.7±2.74ms        ? ?/sec
bundle/bundle@rome_ts-sourcemap                              1.00    120.1±1.81ms        ? ?/sec    1.02    122.7±1.93ms        ? ?/sec
bundle/bundle@threejs                                        1.00     39.0±2.35ms        ? ?/sec    1.00     38.9±0.92ms        ? ?/sec
bundle/bundle@threejs-sourcemap                              1.00     42.4±0.72ms        ? ?/sec    1.03     43.5±0.97ms        ? ?/sec
bundle/bundle@threejs10x                                     1.00    399.2±8.51ms        ? ?/sec    1.00    400.0±7.29ms        ? ?/sec
bundle/bundle@threejs10x-sourcemap                           1.01    464.1±8.75ms        ? ?/sec    1.00    458.7±7.99ms        ? ?/sec
scan/scan@rome_ts                                            1.01     85.6±1.92ms        ? ?/sec    1.00     84.8±1.85ms        ? ?/sec
scan/scan@threejs                                            1.00     29.0±0.75ms        ? ?/sec    1.00     29.0±1.97ms        ? ?/sec
scan/scan@threejs10x                                         1.02    301.2±5.38ms        ? ?/sec    1.00    295.5±5.63ms        ? ?/sec

@hyf0 hyf0 assigned hyf0 and unassigned IWANABETHATGUY Nov 30, 2025
Copilot AI review requested due to automatic review settings December 1, 2025 07:08
@IWANABETHATGUY IWANABETHATGUY changed the title fix: generate relative path like name in advanced chunks test: generate relative path like name in advanced chunks Dec 1, 2025
@IWANABETHATGUY
Copy link
Member Author

I found the extra implementation is redundant.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

packages/rolldown/tests/fixtures/function/advanced-chunks/relative-path-name/_config.ts:16

  • The value assigned to r here is unused.
              r = r.replace(/\\/g, '/');

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@graphite-app
Copy link
Contributor

graphite-app bot commented Dec 1, 2025

Merge activity

@graphite-app graphite-app bot merged commit 36bdcc4 into main Dec 1, 2025
21 of 25 checks passed
@graphite-app graphite-app bot deleted the 12-01-fix_6424 branch December 1, 2025 14:01
This was referenced Dec 3, 2025
shulaoda added a commit that referenced this pull request Dec 3, 2025
## [1.0.0-beta.53] - 2025-12-03

💥 Breaking Changes
- Drop `i686-pc-windows-msvc` target support

🚀 Chunk Merging Optimization
- Rolldown now automatically merges shared chunks when entries import each other (when `preserveEntrySignature` is not `strict`)
```shell
Before:
entry.js   → imports → shared.js (common chunk)
entry2.js  → imports → shared.js
Output: 3 chunks (entry.js, entry2.js, shared.js)

After:
entry.js   → contains shared code
entry2.js  → imports → entry.js
Output: 2 chunks (entry.js, entry2.js)
```

### 💥 BREAKING CHANGES

- drop `i686-pc-windows-msvc` target support (#7230) by @sapphi-red

### 🚀 Features

- rolldown_plugin_vite_manifest: pass normalized options to `isLegacy` callback (#7321) by @shulaoda
- plugin/vite-resolve: add `disableCache` option (#6763) by @sapphi-red
- rolldown: export `createTokioRuntime` for tsdown (#7264) by @shulaoda
- rolldown_plugin_vite_html: sync `moduleSideEffects` for already loaded modules (#7254) by @shulaoda
- rolldown_plugin_vite_html: load module scripts with side effects to prevent tree-shaking (#7244) by @shulaoda
- rolldown_plugin_vite_css_post: implement `cssScopeTo` for scoped CSS tree-shaking (#7240) by @shulaoda

### 🐛 Bug Fixes

- export default class decl __name runtime insertion (#7316) by @IWANABETHATGUY
- chunk side effects calculation (#7273) by @IWANABETHATGUY
- node: `output.generateCode.preset: 'es2015'` should set `output.generateCode.symbols: true` by default (#7314) by @sapphi-red
- skip name helper for classes with static name property (#7312) by @IWANABETHATGUY
- preserve chunk imports relationship after chunk merging (#7303) by @shulaoda
- dev: make `register_modules` async (#7289) by @hyf0
- preserve computed property in object destructuring (#7288) by @IWANABETHATGUY
- support dynamic imports with shared dependencies (#7261) by @IWANABETHATGUY
- call `defer_sync_scan_data` in non-incremental build mode (#7255) by @shulaoda
- optimize chunk merging for shared entry points (#7194) by @IWANABETHATGUY
- add indentation for UMD format output (#7263) by @IWANABETHATGUY
- rolldown_plugin_vite_css_post: pass options to `isLegacy` callback for proper legacy detection (#7260) by @shulaoda
- rolldown_plugin_vite_css_post: also detect `?inline=true` query for inlined CSS (#7245) by @shulaoda
- rolldown_plugin_vite_css_post: distinguish empty CSS from no CSS (#7241) by @shulaoda
- add Windows support for t-run command (#7242) by @IWANABETHATGUY
- cjs: prevent duplicate require declarations for external modules with preserveModules (#7234) by @logaretm
- rolldown_plugin_vite_resolve: resolve from root for virtual modules (#7236) by @sapphi-red
- include entry level external modules in chunk exports (#7218) by @IWANABETHATGUY

### 🚜 Refactor

- dev: make `removeClient` async (#7313) by @hyf0
- move chunk merging code out of code_splitting.rs (#7285) by @IWANABETHATGUY
- extract common function util for chunk merging (#7271) by @IWANABETHATGUY
- use iterative method to merge chunks (#7256) by @IWANABETHATGUY
- use concat_string! instead of string replace for generating chunk level exports (#7247) by @IWANABETHATGUY

### 📚 Documentation

- add warning to experimental.resolveNewUrlToAsset about JS/TS files (#7300) by @Copilot
- add sequential hook execution difference in plugin-api.md (#7308) by @Copilot
- add migration example from onwarn to onLog (#7299) by @Copilot
- add migration example for manualChunks to advancedChunks (#7298) by @Copilot
- deps: bump vitepress to fix build (#7307) by @sapphi-red
- examples & text for experimental.resolveNewUrlToAsset (#7259) by @TheAlexLichter

### ⚡ Performance

- rolldown_plugin_vite_css_post: lazily load `cssScopeTo` from JS module options (#7253) by @shulaoda
- rolldown_plugin_vite_css_post: avoid unnecessary string clones in `resolve_asset_urls_in_css` (#7250) by @shulaoda

### 🧪 Testing

- generate relative path like name in advanced chunks (#7267) by @IWANABETHATGUY
- add test case for preserveEntrySignatures with re-exports (#7279) by @IWANABETHATGUY
- add test262 integration tests (#7196) by @sapphi-red

### ⚙️ Miscellaneous Tasks

- deps: update dependency rolldown-plugin-dts to v0.18.1 (#7304) by @renovate[bot]
- enable tracing feature for napi (#7322) by @sapphi-red
- deps: update napi (#7320) by @renovate[bot]
- deps: update oxc (#7318) by @renovate[bot]
- deps: update napi (#7317) by @renovate[bot]
- deps: update oxc to v0.100.0 (#7301) by @renovate[bot]
- deps: downgrade pnpm to 10.23.0 to fix Netlify build (#7306) by @shulaoda
- add `trustPolicyExclude` for chokidar and semver (#7302) by @sapphi-red
- update pnpm lockfile (#7291) by @IWANABETHATGUY
- deps: update npm packages (#7272) by @renovate[bot]
- deps: update rust crates (#7270) by @renovate[bot]
- deps: update oxc (#7262) by @renovate[bot]
- deps: update github-actions (#7269) by @renovate[bot]
- deps: update dependency dprint-typescript to v0.95.13 (#7268) by @renovate[bot]
- deps: update `html5gum` to 0.8.1 (#7265) by @shulaoda
- rolldown: remove unused `getModuleOptions` from `PluginContext` (#7266) by @shulaoda
- remove unnecessary justfile ignore (#7243) by @IWANABETHATGUY
- deps: update oxc apps (#7238) by @renovate[bot]
- add `nul` to workaround https://github.com/anthropics/claude-c… (#7237) by @IWANABETHATGUY
- deps: update dependency valibot to v1.2.0 [security] (#7231) by @renovate[bot]
- deps: update crate-ci/typos action to v1.40.0 (#7232) by @renovate[bot]

### ❤️ New Contributors

* @logaretm made their first contribution in [#7234](#7234)

Co-authored-by: shulaoda <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants