Skip to content

test: add more moduleSideEffects precedence tests#9689

Merged
graphite-app[bot] merged 1 commit into
mainfrom
06-09-test_add_more_modulesideeffects_precedence_tests
Jun 9, 2026
Merged

test: add more moduleSideEffects precedence tests#9689
graphite-app[bot] merged 1 commit into
mainfrom
06-09-test_add_more_modulesideeffects_precedence_tests

Conversation

@sapphi-red

@sapphi-red sapphi-red commented Jun 9, 2026

Copy link
Copy Markdown
Member

Adds more moduleSideEffects precedence tests to cover the documented precedence.

sapphi-red commented Jun 9, 2026

Copy link
Copy Markdown
Member Author

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.

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

@sapphi-red sapphi-red force-pushed the 06-09-test_add_more_modulesideeffects_precedence_tests branch from ebadbf7 to 1372481 Compare June 9, 2026 09:53
@sapphi-red sapphi-red force-pushed the 06-09-fix_explicit_modulesideeffects_from_a_hook_must_take_priority_over_the_package.json_sideeffects_ branch from 598b05b to fe25f5e Compare June 9, 2026 10:03
@sapphi-red sapphi-red force-pushed the 06-09-test_add_more_modulesideeffects_precedence_tests branch from 1372481 to aa3a75b Compare June 9, 2026 10:03
@sapphi-red sapphi-red marked this pull request as ready for review June 9, 2026 10:11
@sapphi-red sapphi-red requested a review from Copilot June 9, 2026 10:11

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

Adds additional fixture-based tests under tree-shake/module-side-effects-precedence/ to validate Rolldown’s documented moduleSideEffects precedence ordering across plugin hooks, treeshake.moduleSideEffects, and package.json#sideEffects.

Changes:

  • Adds new fixture cases covering: transform > load, load > resolveId, resolveId > treeshake.moduleSideEffects, and treeshake.moduleSideEffects > package.json#sideEffects.
  • Introduces workspace-managed fixture packages where package.json#sideEffects needs to be exercised, and updates pnpm workspace/lock entries accordingly.

Reviewed changes

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

Show a summary per file
File Description
pnpm-workspace.yaml Registers the new fixture package directories in the pnpm workspace.
pnpm-lock.yaml Updates importer entries/links for the moved/added workspace fixture packages.
packages/rolldown/tests/fixtures/tree-shake/module-side-effects-precedence/transform-over-load/main.js Entry importing a virtual module to exercise hook precedence.
packages/rolldown/tests/fixtures/tree-shake/module-side-effects-precedence/transform-over-load/_config.ts Asserts transform’s moduleSideEffects overrides load.
packages/rolldown/tests/fixtures/tree-shake/module-side-effects-precedence/resolve-id-over-option/main.js Entry importing a virtual module to exercise precedence.
packages/rolldown/tests/fixtures/tree-shake/module-side-effects-precedence/resolve-id-over-option/_config.ts Asserts resolveId’s moduleSideEffects overrides treeshake.moduleSideEffects: false.
packages/rolldown/tests/fixtures/tree-shake/module-side-effects-precedence/option-over-package-json/package.json Fixture package with sideEffects: false to validate option precedence.
packages/rolldown/tests/fixtures/tree-shake/module-side-effects-precedence/option-over-package-json/main.js Imports dep.js for side-effect retention assertion.
packages/rolldown/tests/fixtures/tree-shake/module-side-effects-precedence/option-over-package-json/dep.js Side-effectful module used as the retention signal.
packages/rolldown/tests/fixtures/tree-shake/module-side-effects-precedence/option-over-package-json/_config.ts Asserts treeshake.moduleSideEffects function overrides package.json#sideEffects.
packages/rolldown/tests/fixtures/tree-shake/module-side-effects-precedence/load-over-resolve-id/main.js Entry importing a virtual module to exercise hook precedence.
packages/rolldown/tests/fixtures/tree-shake/module-side-effects-precedence/load-over-resolve-id/_config.ts Asserts load’s moduleSideEffects overrides resolveId.
packages/rolldown/tests/fixtures/tree-shake/module-side-effects-precedence/hook-side-effects-overrides-package-json/package.json Fixture package with sideEffects: false for hook-vs-package-json validation.
packages/rolldown/tests/fixtures/tree-shake/module-side-effects-precedence/hook-side-effects-overrides-package-json/main.js Entry importing a virtual module to verify side-effect preservation.
packages/rolldown/tests/fixtures/tree-shake/module-side-effects-precedence/hook-side-effects-overrides-package-json/_config.ts Asserts explicit hook-provided moduleSideEffects overrides package.json#sideEffects.
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

@sapphi-red sapphi-red requested review from IWANABETHATGUY and hyf0 June 9, 2026 10:16

hyf0 commented Jun 9, 2026

Copy link
Copy Markdown
Member

Merge activity

Adds more `moduleSideEffects` precedence tests to cover the documented precedence.
@graphite-app graphite-app Bot force-pushed the 06-09-fix_explicit_modulesideeffects_from_a_hook_must_take_priority_over_the_package.json_sideeffects_ branch from fe25f5e to 3b0b5ad Compare June 9, 2026 13:55
@graphite-app graphite-app Bot force-pushed the 06-09-test_add_more_modulesideeffects_precedence_tests branch from aa3a75b to 492951f Compare June 9, 2026 13:56
Base automatically changed from 06-09-fix_explicit_modulesideeffects_from_a_hook_must_take_priority_over_the_package.json_sideeffects_ to main June 9, 2026 14:02
@graphite-app graphite-app Bot merged commit 492951f into main Jun 9, 2026
30 checks passed
@graphite-app graphite-app Bot deleted the 06-09-test_add_more_modulesideeffects_precedence_tests branch June 9, 2026 14:03
@shulaoda shulaoda mentioned this pull request Jun 11, 2026
@rolldown-guard rolldown-guard Bot mentioned this pull request Jun 11, 2026
shulaoda pushed a commit that referenced this pull request Jun 11, 2026
## [1.1.1] - 2026-06-11

### 🚀 Features

- ecmascript_utils: introduce AstFactory for AST construction (#9682) by @hyf0
- drop no-op init calls for empty wrapped-ESM modules (#9678) by @IWANABETHATGUY

### 🐛 Bug Fixes

- resolver: honor package.json#type for .jsx/.tsx extensions (#9690) (#9699) by @IWANABETHATGUY
- hmr: report the full-reload reason for the invalidate-loop case (#9708) by @hyf0
- explicit `moduleSideEffects` from a hook must take priority over the `package.json#sideEffects` (#9688) by @sapphi-red
- keep the `rolldown-runtime` name for the standalone runtime chunk (#9685) by @shulaoda
- lazy-barrel: request all exports for entry barrels on first encounter (#9672) by @shulaoda
- finalizer: skip init_*() for tree-shaken wrapped ESM owners (#9669) by @IWANABETHATGUY
- order `chunk.imports` by execution order (#9654) by @chuganzy
- vite-resolve: preserve slash separators for Sass partial exports (#9546) by @cjc0013
- cross-chunk CJS wrapper shadowed by author-local binding (#9648) by @IWANABETHATGUY

### 🚜 Refactor

- precompute wrapped-ESM init metadata in generate stage (#9712) by @IWANABETHATGUY
- ecmascript_utils: fold construction ext traits onto AstFactory and delete AstSnippet (#9702) by @hyf0
- finalizer: finish ScopeHoistingFinalizer migration to AstFactory (#9701) by @hyf0
- finalizer: migrate module_finalizers/mod.rs to AstFactory (#9700) by @hyf0
- hmr: migrate hmr finalizer to AstFactory (#9695) by @hyf0
- plugin: migrate vite_build_import_analysis to AstFactory (#9693) by @hyf0
- scanner: migrate tweak_ast_for_scanning to AstFactory (#9683) by @hyf0
- always split runtime module first (#9419) by @IWANABETHATGUY

### 📚 Documentation

- tsconfig: correct auto-discovery resolution to match TypeScript (#9714) by @shulaoda
- design: plan to unify all internal AST construction (#9673) by @hyf0
- tsconfig: align reference resolution docs with TypeScript behavior (#9641) by @shulaoda

### ⚡ Performance

- avoid per-module join Strings in scope-hoisting concatenation (#9645) by @Boshen
- avoid intermediate Strings in the ESM export clause (#9644) by @Boshen
- reuse a scratch buffer for facade namespace names in the scanner (#9642) by @Boshen
- reuse the import-matching tracker stack across named imports (#9643) by @Boshen
- avoid cloning the per-chunk export-items map in render_chunk_exports (#9639) by @Boshen
- avoid CompactStr allocation in sorted-exports membership check (#9640) by @Boshen

### 🧪 Testing

- add more `moduleSideEffects` precedence tests (#9689) by @sapphi-red
- 9651: drop shimMissingExports from regression fixture (#9674) by @IWANABETHATGUY

### ⚙️ Miscellaneous Tasks

- update react repo links (#9711) by @iiio2
- remove outdated pnpm configurations (#9666) by @btea
- deps: update github actions to v2.81.5 (#9665) by @renovate[bot]
- testing: migrate test harness off deprecated inlineDynamicImports (#9710) by @IWANABETHATGUY
- hmr: delete commented-out dead code left from old register-module codegen (#9707) by @hyf0
- deps: update napi-rs toolchain (#9706) by @shulaoda
- deps: update rollup submodule for tests to v4.61.1 (#9676) by @rolldown-guard[bot]
- deps: update test262 submodule for tests (#9677) by @rolldown-guard[bot]
- deps: update oxc to 0.135.0 (#9670) by @Boshen
- pass ALGOLIA_APP_ID and ALGOLIA_API_KEY to void deploy (#9667) by @Boshen
- deps: update github actions (#9662) by @renovate[bot]
- deps: update rust crates (#9663) by @renovate[bot]
- deps: update rolldown-plugin-dts to v0.25.2 (#9661) by @renovate[bot]
- deps: update typos to v1.47.2 (#9660) by @renovate[bot]
- deps: update docs dependencies (#9657) by @bddjr
- deps: update typos to v1.47.1 (#9655) by @renovate[bot]
- deploy website in its own workflow, only on docs output change (#9650) by @Boshen
- publish to pkg.pr.new add pm and `commentWithDev` option (#9638) by @btea

### ❤️ New Contributors

* @chuganzy made their first contribution in [#9654](#9654)
* @cjc0013 made their first contribution in [#9546](#9546)
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