diff --git a/CHANGELOG.md b/CHANGELOG.md index eabeb400..16ebc21c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,52 @@ # Changelog +## 4.0.1 - 2026-09-01 + +### Highlights + +- Upgrade the stable EMP v4 build stack to Rspack `2.2.1`, Rsbuild `2.2.1`, Rslib `1.0.0-rc.2`, and Module Federation `2.9.0`. +- Add compatibility-oriented build presets and acceptance coverage for modern modules, Android 6, and Chrome 60 targets. +- Strengthen dependency maintenance with deterministic core-upgrade detection, lockfile security remediation, and pnpm `10.34.5` release contracts. +- Align all 17 core `@empjs/*` packages to `4.0.1` on npm's `latest` dist-tag while preserving CDN and legacy runtime packages as independent version lines. + +### Release Cover + +![EMP v4.0.1 release cover](docs/assets/emp-v4-4.0.1-release-hero.png) + +### What's Changed + +#### Build + +- Upgrade Rspack core/dev-server, Rsdoctor, Rstest, SWC, HTML integration, type checking, and the complete Module Federation 2 runtime/DTS closure. +- Remove the deprecated Rspack `cache.maxVersions` passthrough and keep persistent cache lifetime configuration on supported options. +- Migrate the Rslib v1 prerelease line to `1.0.0-rc.2` with Rsbuild `2.2.1` and native TypeScript 7 declaration generation. + +#### Compatibility + +- Add explicit compatibility build presets and preserve modern-module optimization coverage. +- Extend real application acceptance for legacy Android/Chrome targets, auto pages, Module Federation runtime behavior, and package output contracts. + +#### Maintenance and Security + +- Add a machine-readable core dependency upgrade policy with release age, peer/engine, prerelease, and migration-signal checks. +- Refresh vulnerable dependency chains without widening the unified release scope to CDN or legacy library packages. +- Keep CI, release checks, dry-run publishing, and trusted npm publishing aligned across Node.js 20, 22, and 24. + +### Verification + +- `corepack pnpm workflow:check` +- `corepack pnpm test:rules` +- `corepack pnpm release:check` +- `corepack pnpm ci:verify` +- `corepack pnpm empbuild` +- `corepack pnpm test:browser:all` +- `corepack pnpm release:publish:dry -- --skip-build --force-all --tag latest` +- `git diff --check` + +#### Full Changelog + +- Compare: `v4.0.0...v4.0.1`. + ## 4.0.0 - 2026-07-16 ### Highlights diff --git a/docs/assets/emp-v4-4.0.1-release-hero.png b/docs/assets/emp-v4-4.0.1-release-hero.png new file mode 100644 index 00000000..2308be7d Binary files /dev/null and b/docs/assets/emp-v4-4.0.1-release-hero.png differ diff --git a/package.json b/package.json index e929f6ae..977462af 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "emp-workspace", - "version": "4.0.0", + "version": "4.0.1", "description": "emp workspace", "main": "index.js", "type": "module", diff --git a/packages/adapter-react/package.json b/packages/adapter-react/package.json index 775f4e2d..8996b96b 100644 --- a/packages/adapter-react/package.json +++ b/packages/adapter-react/package.json @@ -1,6 +1,6 @@ { "name": "@empjs/adapter-react", - "version": "4.0.0", + "version": "4.0.1", "description": "emp react adapter", "license": "MIT", "type": "module", diff --git a/packages/biome-config/package.json b/packages/biome-config/package.json index bfdfc5e0..0f7024f0 100644 --- a/packages/biome-config/package.json +++ b/packages/biome-config/package.json @@ -1,6 +1,6 @@ { "name": "@empjs/biome-config", - "version": "4.0.0", + "version": "4.0.1", "main": "biome.jsonc", "type": "module", "bin": { diff --git a/packages/bridge-react/package.json b/packages/bridge-react/package.json index 779dced8..8575e68b 100644 --- a/packages/bridge-react/package.json +++ b/packages/bridge-react/package.json @@ -1,6 +1,6 @@ { "name": "@empjs/bridge-react", - "version": "4.0.0", + "version": "4.0.1", "description": "Emp Bridge React", "license": "MIT", "type": "module", diff --git a/packages/bridge-vue2/package.json b/packages/bridge-vue2/package.json index c3fb71be..33da3eae 100644 --- a/packages/bridge-vue2/package.json +++ b/packages/bridge-vue2/package.json @@ -1,6 +1,6 @@ { "name": "@empjs/bridge-vue2", - "version": "4.0.0", + "version": "4.0.1", "description": "Emp Bridge Vue v2", "license": "MIT", "type": "module", diff --git a/packages/bridge-vue3/package.json b/packages/bridge-vue3/package.json index 09def729..75aa711a 100644 --- a/packages/bridge-vue3/package.json +++ b/packages/bridge-vue3/package.json @@ -1,6 +1,6 @@ { "name": "@empjs/bridge-vue3", - "version": "4.0.0", + "version": "4.0.1", "description": "Emp Bridge Vue v3", "license": "MIT", "type": "module", diff --git a/packages/cli/package.json b/packages/cli/package.json index f81851af..83f083bd 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@empjs/cli", - "version": "4.0.0", + "version": "4.0.1", "description": "emp", "license": "MIT", "type": "module", diff --git a/packages/emp-chain/package.json b/packages/emp-chain/package.json index cbc1dc8b..c23d2ff8 100644 --- a/packages/emp-chain/package.json +++ b/packages/emp-chain/package.json @@ -1,6 +1,6 @@ { "name": "@empjs/chain", - "version": "4.0.0", + "version": "4.0.1", "description": "emp chain", "license": "MIT", "type": "module", diff --git a/packages/emp-polyfill/package.json b/packages/emp-polyfill/package.json index 26b2dcd2..37749187 100644 --- a/packages/emp-polyfill/package.json +++ b/packages/emp-polyfill/package.json @@ -1,6 +1,6 @@ { "name": "@empjs/polyfill", - "version": "4.0.0", + "version": "4.0.1", "description": "empShare runtime", "license": "MIT", "type": "module", diff --git a/packages/emp-share/package.json b/packages/emp-share/package.json index 1ed77918..728c84ec 100644 --- a/packages/emp-share/package.json +++ b/packages/emp-share/package.json @@ -1,6 +1,6 @@ { "name": "@empjs/share", - "version": "4.0.0", + "version": "4.0.1", "description": "emp share and runtime", "license": "MIT", "type": "module", diff --git a/packages/eslint-config-react/package.json b/packages/eslint-config-react/package.json index c114b2ac..59eb9b0c 100644 --- a/packages/eslint-config-react/package.json +++ b/packages/eslint-config-react/package.json @@ -1,6 +1,6 @@ { "name": "@empjs/eslint-config-react", - "version": "4.0.0", + "version": "4.0.1", "main": "index.js", "maintainers": [ "ckken@qq.com" diff --git a/packages/plugin-lightningcss/package.json b/packages/plugin-lightningcss/package.json index fd7e97be..010b59d1 100644 --- a/packages/plugin-lightningcss/package.json +++ b/packages/plugin-lightningcss/package.json @@ -1,6 +1,6 @@ { "name": "@empjs/plugin-lightningcss", - "version": "4.0.0", + "version": "4.0.1", "description": "emp v3 lightningcss", "type": "module", "files": [ diff --git a/packages/plugin-postcss/package.json b/packages/plugin-postcss/package.json index e840b394..341de0b9 100644 --- a/packages/plugin-postcss/package.json +++ b/packages/plugin-postcss/package.json @@ -1,6 +1,6 @@ { "name": "@empjs/plugin-postcss", - "version": "4.0.0", + "version": "4.0.1", "description": "emp postcss plugin", "license": "MIT", "type": "module", diff --git a/packages/plugin-react/package.json b/packages/plugin-react/package.json index 9564eb7d..e38ce40e 100644 --- a/packages/plugin-react/package.json +++ b/packages/plugin-react/package.json @@ -1,6 +1,6 @@ { "name": "@empjs/plugin-react", - "version": "4.0.0", + "version": "4.0.1", "description": "emp react plugin", "license": "MIT", "type": "module", diff --git a/packages/plugin-stylus/package.json b/packages/plugin-stylus/package.json index 0e0f5d76..1f65765e 100644 --- a/packages/plugin-stylus/package.json +++ b/packages/plugin-stylus/package.json @@ -1,6 +1,6 @@ { "name": "@empjs/plugin-stylus", - "version": "4.0.0", + "version": "4.0.1", "description": "emp stylus plugin", "license": "MIT", "type": "module", diff --git a/packages/plugin-tailwindcss/package.json b/packages/plugin-tailwindcss/package.json index 9567fc24..07325dcb 100644 --- a/packages/plugin-tailwindcss/package.json +++ b/packages/plugin-tailwindcss/package.json @@ -1,6 +1,6 @@ { "name": "@empjs/plugin-tailwindcss", - "version": "4.0.0", + "version": "4.0.1", "description": "base tailwind 4", "license": "MIT", "type": "module", diff --git a/packages/plugin-vue2/package.json b/packages/plugin-vue2/package.json index 2997a7bc..7b908689 100644 --- a/packages/plugin-vue2/package.json +++ b/packages/plugin-vue2/package.json @@ -1,6 +1,6 @@ { "name": "@empjs/plugin-vue2", - "version": "4.0.0", + "version": "4.0.1", "description": "emp vue2 plugin", "license": "MIT", "type": "module", diff --git a/packages/plugin-vue3/package.json b/packages/plugin-vue3/package.json index 2f9a8d28..36cd2120 100644 --- a/packages/plugin-vue3/package.json +++ b/packages/plugin-vue3/package.json @@ -1,6 +1,6 @@ { "name": "@empjs/plugin-vue3", - "version": "4.0.0", + "version": "4.0.1", "description": "emp vue3 plugin", "license": "MIT", "type": "module", diff --git a/test/release.rules.test.ts b/test/release.rules.test.ts index f3fc2f39..7c49794a 100644 --- a/test/release.rules.test.ts +++ b/test/release.rules.test.ts @@ -328,7 +328,7 @@ describe('release rules', () => { test('current repository internal release set stays explicitly bounded', async () => { const plan = await createReleasePlan(repoRoot) - expect(plan.rootPackage.version).toBe('4.0.0') + expect(plan.rootPackage.version).toBe('4.0.1') expect(validateReleasePlan(plan)).toEqual([]) expect(plan.internalPackages.map(pkg => pkg.name)).toEqual([ '@empjs/adapter-react',