Skip to content

Migrate from esbuild to rolldown - #85476

Open
jsnajdr wants to merge 2 commits into
trunkfrom
try/wp-build-rolldown
Open

jsnajdr wants to merge 2 commits into
trunkfrom
try/wp-build-rolldown

Conversation

@jsnajdr

@jsnajdr jsnajdr commented Oct 23, 2026

Copy link
Copy Markdown
Member

Claude-generated migration from esbuild to Rolldown. Didn't look at the changes yet. Let's see what CI checks say.

@jsnajdr jsnajdr self-assigned this Oct 23, 2026
@jsnajdr jsnajdr added the [Type] Build Tooling Issues or PRs related to build tooling label Oct 23, 2026
@github-actions github-actions Bot added the [Package] wp-build /packages/wp-build label Oct 23, 2026
@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

🤖 PR meta 🤖

Preview in WordPress Playground

🎉 Props

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: jsnajdr <jsnajdr@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.


Props Bot commands

You can trigger Props Bot actions by commenting on this PR:

  • @propsbot add <username> to give props to a GitHub user. Requires write access.
  • @propsbot remove <username> to leave a user out of the props. Requires write access.
  • @propsbot refresh to refresh this list. Adding the props-bot label works too.

Updated as activity occurs, without notifying anyone named here. Add the props-bot label to refresh.

📦 Bundle size

Size Change: -677 kB (-7.47%) ✅

Total Size: 8.39 MB

📦 View Changed
Filename Size Change
build/modules/a11y/index.min.js 354 B -3 B (-0.84%)
build/modules/abilities/index.min.js 41.2 kB -3.55 kB (-7.93%) ✅
build/modules/block-editor/utils/fit-text-frontend.min.js 615 B -7 B (-1.13%)
build/modules/block-library/accordion/view.min.js 577 B -27 B (-4.47%)
build/modules/block-library/file/view.min.js 349 B +3 B (+0.87%)
build/modules/block-library/image/view.min.js 3.4 kB -78 B (-2.25%)
build/modules/block-library/navigation/view.min.js 1.16 kB +3 B (+0.26%)
build/modules/block-library/playlist/view.min.js 18.1 kB -345 B (-1.87%)
build/modules/block-library/query/view.min.js 519 B +1 B (+0.19%)
build/modules/block-library/search/view.min.js 501 B +3 B (+0.6%)
build/modules/block-library/tabs/view.min.js 857 B -7 B (-0.81%)
build/modules/boot/index.min.js 48.4 kB -9.43 kB (-16.3%) 👏
build/modules/connectors/index.min.js 2.22 kB -271 B (-10.87%) 👏
build/modules/core-abilities/index.min.js 946 B +39 B (+4.3%)
build/modules/core-actions/page.min.js 1.48 kB -351 B (-19.2%) 👏
build/modules/core-actions/post_type_supports.min.js 5.25 kB -960 B (-15.47%) 👏
build/modules/core-actions/wp_block.min.js 6.2 kB -151 B (-2.38%)
build/modules/core-actions/wp_template_part.min.js 929 B -300 B (-24.41%) 🎉
build/modules/core-fields/attachment.min.js 39 kB -6.35 kB (-14.01%) 👏
build/modules/core-fields/page.min.js 6.03 kB -294 B (-4.65%) ✅
build/modules/core-fields/post_type_supports.min.js 65.9 kB -15.9 kB (-19.44%) 👏
build/modules/core-fields/root_site.min.js 493 B -257 B (-34.27%) 🎉
build/modules/core-fields/wp_block.min.js 34.5 kB -5.7 kB (-14.15%) 👏
build/modules/core-fields/wp_template_part.min.js 34 kB -6.19 kB (-15.38%) 👏
build/modules/core-fields/wp_template.min.js 7.26 kB -342 B (-4.5%)
build/modules/dashboard-init/index.min.js 10.9 kB -558 B (-4.85%) ✅
build/modules/edit-site-init/index.min.js 1.3 kB -396 B (-23.29%) 🎉
build/modules/interactivity-router/full-page.min.js 454 B +3 B (+0.67%)
build/modules/interactivity-router/index.min.js 12.3 kB -52 B (-0.42%)
build/modules/interactivity/index.min.js 15.1 kB -665 B (-4.22%)
build/modules/latex-to-mathml/index.min.js 56.8 kB -61 B (-0.11%)
build/modules/latex-to-mathml/loader.min.js 129 B -2 B (-1.53%)
build/modules/lazy-editor/index.min.js 14.4 kB -889 B (-5.83%) ✅
build/modules/route/index.min.js 23.7 kB -1.51 kB (-5.98%) ✅
build/modules/video-conversion/loader.min.js 134 B -1 B (-0.74%)
build/modules/video-conversion/worker.min.js 85.9 kB +1.83 kB (+2.17%)
build/modules/vips/loader.min.js 126 B -1 B (-0.79%)
build/modules/vips/worker.min.js 3.79 MB +36 kB (+0.96%)
build/modules/widget-primitives/index.min.js 2.02 kB -311 B (-13.32%) 👏
build/modules/workflow/index.min.js 37.1 kB -52.1 kB (-58.38%) 🏆
build/scripts/a11y/index.min.js 966 B -235 B (-19.57%) 🎉
build/scripts/annotations/index.min.js 2.16 kB -474 B (-18%) 👏
build/scripts/api-fetch/index.min.js 2.92 kB -640 B (-18%) 👏
build/scripts/autop/index.min.js 1.95 kB -375 B (-16.14%) 👏
build/scripts/base-styles/index.min.js 120 B -157 B (-56.68%) 🏆
build/scripts/blob/index.min.js 449 B -318 B (-41.46%) 🎉
build/scripts/block-directory/index.min.js 41.9 kB -13.6 kB (-24.51%) 🎉
build/scripts/block-editor/index.min.js 516 kB -89.9 kB (-14.83%) 👏
build/scripts/block-library/index.min.js 390 kB -59.3 kB (-13.21%) 👏
build/scripts/block-serialization-default-parser/index.min.js 982 B -330 B (-25.15%) 🎉
build/scripts/block-serialization-spec-parser/index.min.js 3.01 kB -240 B (-7.38%) ✅
build/scripts/blocks/index.min.js 44.9 kB -1.58 kB (-3.4%)
build/scripts/commands/index.min.js 20.2 kB -1.8 kB (-8.18%) ✅
build/scripts/components/index.min.js 302 kB -69.8 kB (-18.76%) 👏
build/scripts/compose/index.min.js 10.6 kB -1.1 kB (-9.4%) ✅
build/scripts/core-commands/index.min.js 3.27 kB -787 B (-19.4%) 👏
build/scripts/core-data/index.min.js 76.7 kB -2.69 kB (-3.38%)
build/scripts/customize-widgets/index.min.js 21.4 kB -39.1 kB (-64.65%) 🏆
build/scripts/data-controls/index.min.js 695 B -240 B (-25.67%) 🎉
build/scripts/data/index.min.js 9.4 kB -850 B (-8.29%) ✅
build/scripts/date/index.min.js 23.4 kB -398 B (-1.67%)
build/scripts/deprecated/index.min.js 369 B -510 B (-58.02%) 🏆
build/scripts/dom-ready/index.min.js 218 B -384 B (-63.79%) 🏆
build/scripts/dom/index.min.js 5.18 kB -258 B (-4.74%) ✅
build/scripts/edit-post/index.min.js 45.2 kB -7.69 kB (-14.55%) 👏
build/scripts/edit-site/index.min.js 357 kB -67.1 kB (-15.83%) 👏
build/scripts/edit-widgets/index.min.js 27.9 kB -39.6 kB (-58.69%) 🏆
build/scripts/editor/index.min.js 522 kB -98.3 kB (-15.84%) 👏
build/scripts/element/index.min.js 5.13 kB -248 B (-4.61%) ✅
build/scripts/escape-html/index.min.js 400 B -328 B (-45.05%) 🎉
build/scripts/format-library/index.min.js 71.6 kB -18.5 kB (-20.57%) 🎉
build/scripts/hooks/index.min.js 1.59 kB -380 B (-19.31%) 👏
build/scripts/html-entities/index.min.js 314 B -321 B (-50.55%) 🏆
build/scripts/i18n/index.min.js 2.15 kB -455 B (-17.45%) 👏
build/scripts/is-shallow-equal/index.min.js 401 B -308 B (-43.44%) 🎉
build/scripts/keyboard-shortcuts/index.min.js 1.35 kB -443 B (-24.72%) 🎉
build/scripts/keycodes/index.min.js 1.35 kB -473 B (-25.99%) 🎉
build/scripts/list-reusable-blocks/index.min.js 4.21 kB -262 B (-5.86%) ✅
build/scripts/media-utils/index.min.js 214 kB -51.2 kB (-19.31%) 👏
build/scripts/notices/index.min.js 43.4 kB -9.42 kB (-17.82%) 👏
build/scripts/nux/index.min.js 867 B -141 B (-13.99%) 👏
build/scripts/patterns/index.min.js 12.8 kB -1.63 kB (-11.27%) 👏
build/scripts/plugins/index.min.js 2.63 kB -679 B (-20.5%) 🎉
build/scripts/preferences-persistence/index.min.js 2.16 kB -231 B (-9.67%) 👏
build/scripts/preferences/index.min.js 2.97 kB -476 B (-13.82%) 👏
build/scripts/primitives/index.min.js 706 B -446 B (-38.72%) 🎉
build/scripts/priority-queue/index.min.js 1.36 kB -391 B (-22.27%) 🎉
build/scripts/private-apis/index.min.js 967 B -309 B (-24.22%) 🎉
build/scripts/react-i18n/index.min.js 514 B -451 B (-46.74%) 🎉
build/scripts/redux-routine/index.min.js 2.62 kB -868 B (-24.87%) 🎉
build/scripts/reusable-blocks/index.min.js 847 B -159 B (-15.81%) 👏
build/scripts/rich-text/index.min.js 14.5 kB -1.07 kB (-6.88%) ✅
build/scripts/router/index.min.js 5.49 kB -625 B (-10.22%) 👏
build/scripts/server-side-render/index.min.js 1.83 kB -403 B (-18.08%) 👏
build/scripts/shortcode/index.min.js 1.33 kB -388 B (-22.56%) 🎉
build/scripts/style-engine/index.min.js 2.25 kB -532 B (-19.14%) 👏
build/scripts/theme/index.min.js 26.8 kB -1.32 kB (-4.71%) ✅
build/scripts/token-list/index.min.js 488 B -377 B (-43.58%) 🎉
build/scripts/undo-manager/index.min.js 614 B -441 B (-41.8%) 🎉
build/scripts/upload-media/index.min.js 15.9 kB -1.18 kB (-6.92%) ✅
build/scripts/url/index.min.js 3.54 kB -262 B (-6.88%) ✅
build/scripts/viewport/index.min.js 910 B -450 B (-33.09%) 🎉
build/scripts/warning/index.min.js 218 B -362 B (-62.41%) 🏆
build/scripts/widgets/index.min.js 58.3 kB -14.3 kB (-19.71%) 🎉
build/scripts/wordcount/index.min.js 860 B -324 B (-27.36%) 🎉

b51e406 Run

⚡ Performance

Show the results

Client side metrics exclude the server response time.

front-end-block-theme

Metric 214a211 trunk % Change
timeToFirstByte 54.3 ms +9.48% -2.03% 56 ms +9.46% -5.89% -3.04%
largestContentfulPaint 92 ms +8.7% -4.35% 96 ms +4.17% -6.25% -4.17%
lcpMinusTtfb 35.45 ms +18.9% -2.82% 39.4 ms +11.55% -13.71% -10.03%
wpBeforeTemplate 29.13 ms +16.07% -2.06% 30.36 ms +10.44% -6.55% -4.05%
wpTemplate 21.41 ms +4.02% -2.94% 21.69 ms +6.13% -4.56% -1.29%
wpTotal 50.58 ms +10.14% -2.43% 52.25 ms +9.55% -6.07% -3.2%
wpMemoryUsage 7.68 MB +0% -0% 7.65 MB +0% -0% 0.43%
wpDbQueries 16 +0% -0% 16 +0% -0% 0%

front-end-classic-theme

Metric 214a211 trunk % Change
timeToFirstByte 46.5 ms +10.65% -1.29% 43.2 ms +7.06% -2.78% 7.64%
largestContentfulPaint 104 ms +7.69% -3.85% 92 ms +2.17% -0% 13.04%
lcpMinusTtfb 54.75 ms +4.75% -1.19% 48.25 ms +3.11% -3.42% 13.47%
wpBeforeTemplate 26.71 ms +9.55% -0.56% 26.88 ms +3.79% -1.93% -0.63%
wpTemplate 16.52 ms +6.3% -1.03% 12.98 ms +8.01% -3.08% 27.27%
wpTotal 43.47 ms +10.17% -1.36% 40.33 ms +6.35% -3.1% 7.79%
wpMemoryUsage 6.37 MB +0% -0% 6.22 MB +0% -0% 2.34%
wpDbQueries 13 +0% -0% 9 +0% -0% 44.44%

media-processing

Metric 214a211 trunk % Change
mediaProcessingJpeg 401.67 ms +2.25% -1.61% 410.58 ms +1.64% -0.98% -2.17%
mediaProcessingAvif 6097.73 ms +0.19% -0.22% 6115.04 ms +0.17% -0.16% -0.28%
mediaProcessingJpegToAvif 4214.39 ms +0.12% -0.19% 4235.43 ms +0.23% -0.04% -0.5%

media-upload

Metric 214a211 trunk % Change
jpegUploadProcessing 1463.99 ms +0.73% -3.15% 1450.97 ms +1.3% -1.63% 0.9%
pngUploadProcessing 216.56 ms +12.41% -15.33% 207.58 ms +10.48% -9.83% 4.33%
largeJpegUploadProcessing 1424.55 ms +0.34% -0.81% 1439.2 ms +2.07% -0.44% -1.02%
multipleImageUploadProcessing 1514.73 ms +0.65% -0.57% 2077.14 ms +1.3% -21.07% -27.08%

post-editor

Metric 214a211 trunk % Change
serverResponse 326.22 ms +7.23% -7.45% 326.4 ms +8.53% -6.8% -0.06%
firstPaint 255.97 ms +48.54% -23.02% 409.61 ms +4.22% -47.81% -37.51%
domContentLoaded 634.59 ms +1.36% -1% 972.47 ms +4.03% -1.84% -34.74%
loaded 635.57 ms +1.33% -1% 973.5 ms +4.03% -1.81% -34.71%
firstContentfulPaint 383.24 ms +3.63% -1.38% 429.55 ms +4.35% -3.1% -10.78%
firstBlock 2199.64 ms +4.3% -0.54% 2747.66 ms +3.68% -1.01% -19.94%
type 15.97 ms +2.69% -4.95% 17.96 ms +6.63% -3.29% -11.08%
typeWithoutInspector 16.12 ms +2.79% -5.58% 17.63 ms +4.37% -3.23% -8.56%
typeWithTopToolbar 21.14 ms +2.55% -5.2% 20.48 ms +4.93% -2% 3.22%
typeContainer 6.79 ms +5.15% -3.24% 7.1 ms +4.23% -7.18% -4.37%
focus 98.83 ms +1.23% -8.96% 94.53 ms +6.16% -2% 4.55%
firstFocus 188.71 ms +0% -0% 181.63 ms +0% -0% 3.9%
selectAll 407.05 ms +11.56% -2.22% 447.62 ms +4.84% -0.41% -9.06%
listViewOpen 64.93 ms +8.53% -7.25% 60.02 ms +7.45% -4.52% 8.18%
inserterOpen 39.34 ms +7.17% -8.9% 38.14 ms +3.3% -7.76% 3.15%
inserterHover 9.61 ms +11.86% -2.91% 10.63 ms +7.24% -9.69% -9.6%
inserterSearch 7.26 ms +2.89% -10.74% 7.56 ms +8.33% -7.28% -3.97%
loadPatterns 526.83 ms +1.12% -3.01% 514.49 ms +6.61% -3.45% 2.4%
wpTotal 317.98 ms +7.12% -7.88% 317.62 ms +8.82% -6.91% 0.11%
wpMemoryUsage 14.71 MB +0% -0% 14.68 MB +0% -0% 0.24%
wpDbQueries 55 +0% -0% 55 +0% -1.82% 0%

site-editor

Metric 214a211 trunk % Change
serverResponse 239.22 ms +0.79% -7.73% 249.02 ms +2.76% -6.82% -3.94%
firstPaint 189.37 ms +12.63% -5.01% 196.65 ms +79.18% -18.67% -3.7%
domContentLoaded 496.77 ms +2.96% -2.84% 761.74 ms +2% -1.4% -34.78%
loaded 497.43 ms +2.94% -2.85% 762.51 ms +2% -1.39% -34.76%
firstContentfulPaint 298.68 ms +4.77% -2.39% 341.68 ms +4.28% -4.83% -12.58%
firstBlock 2249.62 ms +0.37% -0.7% 2668.63 ms +2.94% -0.75% -15.7%
type 12.04 ms +2.74% -0.58% 13.66 ms +5.42% -1.1% -11.86%
navigate 80.83 ms +7.55% -2.67% 83.06 ms +23.02% -4.58% -2.68%
loadPatterns 709.43 ms +7.89% -13.47% 1033.75 ms +6.57% -18.74% -31.37%
loadPages 987 ms +2.79% -3.57% 948.19 ms +3.26% -0.91% 4.09%
wpTotal 233.36 ms +0.77% -8% 243.06 ms +2.83% -6.97% -3.99%
wpMemoryUsage 12.73 MB +0% -0% 12.70 MB +0% -0% 0.24%
wpDbQueries 45 +0% -2.22% 45 +0% -2.22% 0%

From b4e282b, not the current head. Run

@jsnajdr
jsnajdr force-pushed the try/wp-build-rolldown branch from 3defc32 to 5197b47 Compare October 24, 2026 10:11
@jsnajdr
jsnajdr force-pushed the try/wp-build-rolldown branch from 5197b47 to b4e282b Compare October 24, 2026 18:57

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[Package] wp-build /packages/wp-build [Type] Build Tooling Issues or PRs related to build tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant