Skip to content

[pull] next from umijs:next#38

Merged
pull[bot] merged 1 commit into
code:nextfrom
umijs:next
Jul 18, 2026
Merged

[pull] next from umijs:next#38
pull[bot] merged 1 commit into
code:nextfrom
umijs:next

Conversation

@pull

@pull pull Bot commented Jul 18, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

* build: migrate workspace to pnpm 11

Signed-off-by: kuitos <kuitos.lau@gmail.com>

* chore(scripts): remove stale shared bench script and use pnpm in loader bench

* feat(benchmark): add unified pnpm bench entry with aggregated console report

* build: migrate toolchain to vite and typescript 7

* build: optimize lodash imports during library builds

* test(shared): replace wall-clock assertions with deterministic checks

Absolute duration thresholds in the link-performance tests flaked on slow
CI runners after the vitest 4 / happy-dom 20 upgrade, and a mid-test
failure left a pending mock fetch that polluted the next test's cache
stats. Assert observable behavior instead: fetch counts, synchronous blob
application, and pre-resolution state.

* fix(bundler-plugin): serve format-matched declarations to node16 consumers

The exports map listed a single ESM types condition first, so nodenext
CJS consumers resolved the module-scoped dist/esm declarations and failed
with TS2834 (tsc also emits extensionless relative specifiers, which
node16/nodenext rejects inside a type:module scope). Nest types per
import/require branch and rewrite relative specifiers in the ESM
declarations with explicit extensions after build.

* fix(sandbox): keep Intl in the browser globals whitelist

globals@17 reclassified Intl from the browser list into es2015, which
dropped bare Intl references out of the membrane routing base (ESM
sandbox) and rebind whitelist, and injected `const Intl` into the
classic evaluate preamble where it collides with `var Intl` polyfills.
Pin the classification in the generator so regenerations preserve
qiankun's established isolation behavior.

* fix(benchmark): reject runner-reserved flags and harden report rendering

Forwarding --suite/--mode/--baseline-dir through bench-all silently
overrode the per-suite arguments it injects, producing a report whose
section titles no longer matched what actually ran (a mistyped
--suite=core would run every section against the core suite). The
report renderer also dereferenced run.metadata unguarded, so a schema
drift in result.json could throw away the whole aggregated report after
hours of benching.

* ci: align legacy workflows with the pnpm 11 setup

github-pages, publish-latest and publish-1.x still installed pnpm via
corepack after setup-node had already requested the pnpm cache, which
fails before pnpm exists. Install pnpm through pnpm/action-setup@v6
(driven by the packageManager field) ahead of setup-node, matching the
migrated workflows.

* fix(ui-bindings): declare qiankun peer dependency for the react binding

@qiankunjs/react consumes qiankun through @qiankunjs/ui-shared at
runtime but never constrained the host's qiankun version; declare the
same peer range as the vue binding.

* fix(examples): serve purehtml verbatim via vite preview

vite dev injects the @vite/client module into the served HTML, so the
'no build step' example was executing the HMR runtime inside the
sandbox. vite preview serves build.outDir statically with no injection;
point outDir at the example root so the entry ships byte-identical.

* chore: harden build scripts and align engine constraints

- check-lodash-imports: skip missing dist formats with a clear
  build-first error instead of a raw ENOENT, and make the zero-import
  failure name the actual fix (drop the stale lodash dependency)
- copy-declarations: log the copied-file count so an empty sweep from a
  dist directory is visible in build logs
- engines: exclude Node 23, which eslint 10 and vitest 4 do not support
- clean: rimraf 6 no longer globs without --glob, so nested workspace
  node_modules were never removed
- create-qiankun e2e helper: spawning pnpm.cmd directly throws EINVAL
  since the CVE-2024-27980 fix; go through the shell on Windows

* build(qiankun): inject version at compile time

* chore(qiankun): keep version source ignored

* ci(benchmark): add basic performance gate

---------

Signed-off-by: kuitos <kuitos.lau@gmail.com>
@pull pull Bot locked and limited conversation to collaborators Jul 18, 2026
@pull pull Bot added the ⤵️ pull label Jul 18, 2026
@pull
pull Bot merged commit 803bafb into code:next Jul 18, 2026
@pull
pull Bot temporarily deployed to changeset-release July 18, 2026 12:43 Inactive
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant