Skip to content

test(mcs): cover require() in $initial group#9376

Merged
graphite-app[bot] merged 1 commit into
mainfrom
brushfire-palo-verde
May 12, 2026
Merged

test(mcs): cover require() in $initial group#9376
graphite-app[bot] merged 1 commit into
mainfrom
brushfire-palo-verde

Conversation

@hyf0

@hyf0 hyf0 commented May 12, 2026

Copy link
Copy Markdown
Member

Summary

  • Extends the tags_initial fixture so a module reached from a user entry only via require() (required.js) is asserted to land in the $initial-tagged chunk, alongside the statically imported shared.js.
  • The dynamic-only lazy-dep.js is still asserted to stay out.
  • Pins down the current behavior: link_stage/mod.rs filters Require out of meta.dependencies, but patch_module_dependencies re-adds those edges via referenced symbols, so the $initial BFS still visits require() targets. Without this test, a future cleanup of either side could silently drop require() targets from $initial chunks.

Test plan

  • cargo test -p rolldown --test integration -- --ignored tags_initial passes
  • Snapshot (artifacts.snap) reflects required.js placed inside initial-deps.js

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings May 12, 2026 14:25
@graphite-app

graphite-app Bot commented May 12, 2026

Copy link
Copy Markdown
Contributor

How to use the Graphite Merge Queue

Add the label graphite: merge-when-ready 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.

@netlify

netlify Bot commented May 12, 2026

Copy link
Copy Markdown

Deploy Preview for rolldown-rs canceled.

Name Link
🔨 Latest commit ffa8c43
🔍 Latest deploy log https://app.netlify.com/projects/rolldown-rs/deploys/6a033cec963d4000089a8b55

@hyf0 hyf0 changed the title test(rolldown): cover require() in $initial group test(mcs): cover require() in $initial group May 12, 2026
@hyf0 hyf0 requested a review from shulaoda May 12, 2026 14:28

hyf0 commented May 12, 2026

Copy link
Copy Markdown
Member Author

Merge activity

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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 extends the advanced_chunks/tags_initial integration fixture to ensure modules reached from a user entry via require() are still treated as part of the $initial execution chain and therefore placed into the $initial-tagged chunk.

Changes:

  • Add a new required.js module and require('./required.js') it from the ESM entry to exercise the require-edge behavior.
  • Update the test assertions to verify required.js is present in initial-deps.js and absent from the lazy chunk, and ignore the newly emitted rolldown-runtime.js asset in the file list.
  • Update the snapshot to reflect required.js being bundled into initial-deps.js (and the runtime helper chunk emission).

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

File Description
crates/rolldown/tests/rolldown/function/advanced_chunks/tags_initial/required.js Adds a module only reachable via require() for the fixture.
crates/rolldown/tests/rolldown/function/advanced_chunks/tags_initial/main.js Introduces a require() edge from the user entry to the new module.
crates/rolldown/tests/rolldown/function/advanced_chunks/tags_initial/_test.mjs Asserts $initial chunk includes require() targets and excludes them from the lazy chunk; filters out rolldown-runtime.js.
crates/rolldown/tests/rolldown/function/advanced_chunks/tags_initial/artifacts.snap Updates expected bundled outputs to include required.js in initial-deps.js and the emitted runtime chunk.

## Summary
- Extends the `tags_initial` fixture so a module reached from a user entry only via `require()` (`required.js`) is asserted to land in the `$initial`-tagged chunk, alongside the statically imported `shared.js`.
- The dynamic-only `lazy-dep.js` is still asserted to stay out.
- Pins down the current behavior: `link_stage/mod.rs` filters `Require` out of `meta.dependencies`, but `patch_module_dependencies` re-adds those edges via referenced symbols, so the `$initial` BFS still visits `require()` targets. Without this test, a future cleanup of either side could silently drop `require()` targets from `$initial` chunks.

## Test plan
- [x] `cargo test -p rolldown --test integration -- --ignored tags_initial` passes
- [x] Snapshot (`artifacts.snap`) reflects `required.js` placed inside `initial-deps.js`

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@graphite-app graphite-app Bot force-pushed the brushfire-palo-verde branch from 24a82dc to ffa8c43 Compare May 12, 2026 14:44
@graphite-app graphite-app Bot merged commit ffa8c43 into main May 12, 2026
32 checks passed
@graphite-app graphite-app Bot deleted the brushfire-palo-verde branch May 12, 2026 14:49
@rolldown-guard rolldown-guard Bot mentioned this pull request May 13, 2026
shulaoda added a commit that referenced this pull request May 13, 2026
## [1.0.1] - 2026-05-13

### 🚀 Features

- experimental/lazy-barrel: advice on oversized barrel modules (#9236) by @shulaoda
- rolldown: inline optional-chain enum access (#9379) by @Dunqing
- chunk-optimization: dedupe already-loaded dynamic deps (#9305) by @IWANABETHATGUY
- binding: call moduleParsed hook in ParallelJsPlugin (#9318) by @jaehafe

### 🐛 Bug Fixes

- transform: enable `enum_eval` for `transformSync` and vite TS transform (#9325) by @Dunqing
- error: remove severity prefix from diagnostic messages (#9262) by @Kyujenius
- deps: pin pnpm to 10.23.0 to work around catalog mismatch on Netlify (#9364) by @shulaoda
- ci: pin mimalloc-safe to 0.1.58 (#9361) by @shulaoda
- dev/lazy: fix exports of lazy requests in lazy chunks (#9249) by @h-a-n-a
- rolldown_plugin_vite_resolve: handle errors in `resolveSubpathImports` callback (#9355) by @sapphi-red
- rolldown_plugin_lazy_compilation: use loadExports for fetched proxy to preserve original export names (#9132) by @h-a-n-a
- common: include offending index in HybridIndexVec panic message (#9296) by @SAY-5

### 🚜 Refactor

- ecmascript: extract semantic_builder_for_transform helper (#9326) by @Dunqing
- test: extract reusable static-import-cycle helper (#9332) by @IWANABETHATGUY

### 📚 Documentation

- clarify scope of `topLevelVar` (#9380) by @IWANABETHATGUY
- meta/design: add ast-mutation design doc (#9338) by @hyf0
- feat: add ai policy in contribution guide (#9315) by @mdong1909

### ⚡ Performance

- binding: enable mimalloc v3 to reduce idle memory (#9349) by @shulaoda

### 🧪 Testing

- mcs: cover require() in `$initial` group (#9376) by @hyf0
- add regression for CJS facade chunk merge into entry (#9351) by @IWANABETHATGUY

### ⚙️ Miscellaneous Tasks

- switch prepare-release to manual dispatch with version input (#9383) by @shulaoda
- migrate `@rolldown/pluginutils` to `rolldown/plugins` (#9317) by @shulaoda
- deps: pin libmimalloc-sys2 to 0.1.54 (#9372) by @shulaoda
- replace `igorskyflyer/action-readfile` with `cat` (#9369) by @sapphi-red
- deps: update test262 submodule for tests (#9371) by @rolldown-guard[bot]
- use app token for test dep update PRs (#9368) by @sapphi-red
- replace some actions with gh commands (#9367) by @sapphi-red
- replace action-semantic-pull-request with inline regex (#9366) by @sapphi-red
- remove pull_request_target workflows (#9188) by @Boshen
- deps: upgrade oxc to 0.130.0 (#9360) by @shulaoda
- deps: update github actions (major) (#9348) by @renovate[bot]
- deps: update github actions (#9341) by @renovate[bot]
- deps: update rust crates (#9344) by @renovate[bot]
- deps: update crate-ci/typos action to v1.46.1 (#9357) by @renovate[bot]
- deps: update npm packages (#9343) by @renovate[bot]
- deps: update pnpm to v10.33.4 (#9347) by @renovate[bot]
- deps: update dependency rolldown-plugin-dts to ^0.25.0 (#9346) by @renovate[bot]
- .claude: add rolldown-repl encoder, rename decode skill (#9352) by @IWANABETHATGUY
- deps: update crate-ci/typos action to v1.46.0 (#9345) by @renovate[bot]
- deps: update napi to v3.8.6 (#9342) by @renovate[bot]
- deps: update dependency vite-plus to v0.1.20 (#9340) by @renovate[bot]
- enable rollup chunking-form test (#9335) by @IWANABETHATGUY
- typo: fix typo in watcher options comment (#9324) by @thescripted

### ❤️ New Contributors

* @Kyujenius made their first contribution in [#9262](#9262)
* @SAY-5 made their first contribution in [#9296](#9296)
* @thescripted made their first contribution in [#9324](#9324)

Co-authored-by: shulaoda <[email protected]>
IWANABETHATGUY pushed a commit that referenced this pull request May 18, 2026
## Summary
- Extends the `tags_initial` fixture so a module reached from a user entry only via `require()` (`required.js`) is asserted to land in the `$initial`-tagged chunk, alongside the statically imported `shared.js`.
- The dynamic-only `lazy-dep.js` is still asserted to stay out.
- Pins down the current behavior: `link_stage/mod.rs` filters `Require` out of `meta.dependencies`, but `patch_module_dependencies` re-adds those edges via referenced symbols, so the `$initial` BFS still visits `require()` targets. Without this test, a future cleanup of either side could silently drop `require()` targets from `$initial` chunks.

## Test plan
- [x] `cargo test -p rolldown --test integration -- --ignored tags_initial` passes
- [x] Snapshot (`artifacts.snap`) reflects `required.js` placed inside `initial-deps.js`

🤖 Generated with [Claude Code](https://claude.com/claude-code)
IWANABETHATGUY pushed a commit that referenced this pull request May 18, 2026
## [1.0.1] - 2026-05-13

### 🚀 Features

- experimental/lazy-barrel: advice on oversized barrel modules (#9236) by @shulaoda
- rolldown: inline optional-chain enum access (#9379) by @Dunqing
- chunk-optimization: dedupe already-loaded dynamic deps (#9305) by @IWANABETHATGUY
- binding: call moduleParsed hook in ParallelJsPlugin (#9318) by @jaehafe

### 🐛 Bug Fixes

- transform: enable `enum_eval` for `transformSync` and vite TS transform (#9325) by @Dunqing
- error: remove severity prefix from diagnostic messages (#9262) by @Kyujenius
- deps: pin pnpm to 10.23.0 to work around catalog mismatch on Netlify (#9364) by @shulaoda
- ci: pin mimalloc-safe to 0.1.58 (#9361) by @shulaoda
- dev/lazy: fix exports of lazy requests in lazy chunks (#9249) by @h-a-n-a
- rolldown_plugin_vite_resolve: handle errors in `resolveSubpathImports` callback (#9355) by @sapphi-red
- rolldown_plugin_lazy_compilation: use loadExports for fetched proxy to preserve original export names (#9132) by @h-a-n-a
- common: include offending index in HybridIndexVec panic message (#9296) by @SAY-5

### 🚜 Refactor

- ecmascript: extract semantic_builder_for_transform helper (#9326) by @Dunqing
- test: extract reusable static-import-cycle helper (#9332) by @IWANABETHATGUY

### 📚 Documentation

- clarify scope of `topLevelVar` (#9380) by @IWANABETHATGUY
- meta/design: add ast-mutation design doc (#9338) by @hyf0
- feat: add ai policy in contribution guide (#9315) by @mdong1909

### ⚡ Performance

- binding: enable mimalloc v3 to reduce idle memory (#9349) by @shulaoda

### 🧪 Testing

- mcs: cover require() in `$initial` group (#9376) by @hyf0
- add regression for CJS facade chunk merge into entry (#9351) by @IWANABETHATGUY

### ⚙️ Miscellaneous Tasks

- switch prepare-release to manual dispatch with version input (#9383) by @shulaoda
- migrate `@rolldown/pluginutils` to `rolldown/plugins` (#9317) by @shulaoda
- deps: pin libmimalloc-sys2 to 0.1.54 (#9372) by @shulaoda
- replace `igorskyflyer/action-readfile` with `cat` (#9369) by @sapphi-red
- deps: update test262 submodule for tests (#9371) by @rolldown-guard[bot]
- use app token for test dep update PRs (#9368) by @sapphi-red
- replace some actions with gh commands (#9367) by @sapphi-red
- replace action-semantic-pull-request with inline regex (#9366) by @sapphi-red
- remove pull_request_target workflows (#9188) by @Boshen
- deps: upgrade oxc to 0.130.0 (#9360) by @shulaoda
- deps: update github actions (major) (#9348) by @renovate[bot]
- deps: update github actions (#9341) by @renovate[bot]
- deps: update rust crates (#9344) by @renovate[bot]
- deps: update crate-ci/typos action to v1.46.1 (#9357) by @renovate[bot]
- deps: update npm packages (#9343) by @renovate[bot]
- deps: update pnpm to v10.33.4 (#9347) by @renovate[bot]
- deps: update dependency rolldown-plugin-dts to ^0.25.0 (#9346) by @renovate[bot]
- .claude: add rolldown-repl encoder, rename decode skill (#9352) by @IWANABETHATGUY
- deps: update crate-ci/typos action to v1.46.0 (#9345) by @renovate[bot]
- deps: update napi to v3.8.6 (#9342) by @renovate[bot]
- deps: update dependency vite-plus to v0.1.20 (#9340) by @renovate[bot]
- enable rollup chunking-form test (#9335) by @IWANABETHATGUY
- typo: fix typo in watcher options comment (#9324) by @thescripted

### ❤️ New Contributors

* @Kyujenius made their first contribution in [#9262](#9262)
* @SAY-5 made their first contribution in [#9296](#9296)
* @thescripted made their first contribution in [#9324](#9324)

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants