Repository navigation
fix(reporter): show build summaries and refresh dependencies - #323
Merged
Merged
Conversation
Show the existing Emulsify banner and compiled-file summary for one-shot Vite builds while retaining compact Storybook diagnostics and failed build verdicts. Raise 31 dependency minimums, including Glob 14, and regenerate the lockfile through npm. Keep parser 7.29.12 as requested and retain compiler and linter majors blocked by upstream requirements. Prepare Core 4.5.2.
Contributor
|
🎉 This PR is included in version 4.5.2 🎉 The release is available on: Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Patch release candidate for
@emulsify/core4.5.2, cut from the publishedv4.5.1tag onmain. Consumernpm run buildnow prints the same Emulsify banner and build summary thatnpm run developalready prints, and 31 dependency minimums are raised with a regenerated lockfile.fix(reporter): show build summaries and refresh dependencies(b2c10ca).maintriggerspublish.yml. It re-runsrelease:verifyon the merged SHA, then semantic-release publishes 4.5.2 to npmlatestwith provenance, tagsv4.5.2, and creates the GitHub release.fix.>=24.13.0(package.json#engines). Repository development and most CI jobs use 24.18.0 (.nvmrc), andrelease-readinessruns on both.User-facing changes
npm run build(any one-shotvite buildusing Core's Vite config) prints the Emulsify wordmark, the installed Core version, project facts, input roots, output file counts and sizes, and a completion line (✓ built in …). Vite's normal per-file production table is kept.EMULSIFY_VERBOSE=2ornpm run build --verbose) also applies to production builds and lists compiled files with sizes.✗ build failed after …) and still exits non-zero. This includes strict asset failures underEMULSIFY_STRICT_ASSETS=1.storybook buildkeeps its compact diagnostics (asset repairs and collected Sass deprecations) with no second banner, so a combined Vite and Storybook build prints one banner.npm run developoutput is unchanged.10.6.5, Vite^8.3.5, Sass^1.107.1, Jest^30.5.2, axe-core^4.14.0and glob^14.0.3, plus Puppeteer^25.16.0in dev. The full table is indocs/dependency-review-4.5.2.md.Compatibility and migration impact
npm install @emulsify/core@^4.5.2, ornpm install --save-dev @emulsify/core@^4.5.2where Core is a dev dependency).npm run build. Anything that parses that output will now see the banner and summary.globmoves from 13 to 14 (a major) independencies. Core uses onlyglobSyncandescape, and their signatures are unchanged. Glob 14 removes the unuseddebugoption and adds an opt-innormalizeoption. Its engine range (18 || 20 || >=22) admits Node 24.13.0.babel-preset-minify), ESLint 10 (plugin peer ranges) and Stylelint 18 (its Node 24 floor is above Core's 24.13.0, and plugin peers aren't ready). Standalone@babel/parserstays on 7.x by maintainer choice.Internal architecture and performance changes
developReporterPluginnow decides on the full report by "not a static Storybook build" (fullReport) instead of "watch mode". Watch mode still controls quiet logging, unminified output and source maps.closeBundle, so the summary prints after Vite's asset table. Watch builds still report fromwriteBundle.renderSummaryacceptswatchingandfailed. One-shot builds drop thewatching src/suffix, and strict asset failures mark the summary as failed.vite.config.jspasses the existingisStorybookBuildsignal, which Core's StorybookviteFinalsets, through the plugin environment.allowScriptsapprovals now match the locked versions:esbuild@0.28.2andpuppeteer@25.16.0. The obsoleteunrs-resolver@1.12.2approval is removed because 1.13.0 has no install script.Public API and package-export changes
binentries or the publishedfileslist.docs/isn't published.makePlugins(env), exported from@emulsify/core/vite/plugins, accepts an optionalenv.isStorybookBuild. The change is additive, and callers that omit the flag get theme-build reporting.Known limitations
viteFinalwon't passisStorybookBuild. Itsstorybook buildwould print the full theme banner and summary. The effect is cosmetic.npm auditdrops from 89 to 77 affected package records (1 low, 72 moderate, 2 high and 2 critical). The critical path is@emulsify/cli@2.4.1→simple-git@3.x, and npm reports no fix within the CLI's range. The other remaining findings are bundled inside npm 11 (via@semantic-release/npm) or held back by the ranges in Jest, Storybook and ESLint. Seedocs/dependency-review-4.5.2.md.glob@10.5.0,whatwg-encoding@3.1.1andeslint@9.39.5.globwithout declaring it, relying on npm hoisting Core's copy, will get glob 14.globisn't part of the documented consumer contract.Release evidence
CI (observed): CI run 41851120119 on head
b2c10capassed all 19 required contexts.release-readiness (24.13.0)andrelease-readiness (24.18.0): lint, 118 suites with 1,554 tests and 12 snapshots, and the repository Storybook build. The Storybook build log shows no theme banner.Packed package: npm pack dry run and the packed-package smoke test, including the installedemulsify-auditJSON mode.Fixture / …jobs, all 3Packed consumer / …jobs,React peer / 18andReact peer / 19.Analyze (javascript-typescript)passed.develop, soVerify release calculationwas skipped because it runs only for pull requests intomain. The CI-tested merge tree (e98f374) is identical to the tree that merging intomainproduces.Local review check (Linux x64, Node 24.18.0, npm 11.21.1,
npm ci --ignore-scripts), run on a--no-ffmerge ofb2c10caintomainat7365cc8:RELEASE_FROM=7365cc8 RELEASE_TO=HEAD RELEASE_SQUASH_MESSAGE="fix(reporter): show build summaries and refresh dependencies" npm run release:analyzeprintedsemantic-release predicts patch: v4.5.1 -> v4.5.2 from 2 commits. Squash title preserves the patch release.patch: v4.5.1 -> v4.5.2.npx jest --config ./config/jest.config.js --coverage=false config/vite/plugins/__tests__/reporter: 11 suites, 358 tests passed.Local author verification (recorded in
docs/releases/4.5.2.md):npm ci, lint, 118 suites with 1,556 tests and 12 snapshots, Storybook, all release and packed-consumer fixtures, and the pack and smoke checks. A 4.5.1 consumer upgraded to the packed candidate with a validnpm ls --all. Production output was byte-identical, and the Pa11y and Puppeteer checks passed.npm ci, lint, 118 suites with 1,554 tests and 12 snapshots, and a production build from the installed tarball.Not run: the authenticated
semantic-release --dry-run, which runs only inpublish.ymlafter merge, and the optional Twig PHP parity workflow, since there are no Twig runtime changes.Outstanding checks and decisions
mainby closing and reopening this PR or pushing a commit, soPacked packagerecords the release calculation with this title.mainrequires.config/release-analysis.cjssays further reporter additions should take a minor.publish.ymlsucceeds, npm shows 4.5.2 onlatestwith provenance, and thev4.5.2tag and GitHub release exist.mainback intodevelop.developis still at 4.5.0 and is an ancestor ofmain.Related issue(s)
There's no linked issue. During release preparation, a user reported that production builds leave out the Emulsify banner and the compiled-file summary shown during development. The dependency refresh was bundled into the same patch as routine maintenance. This follows #322 (4.5.1).
Review record
src/storybookor the custom-element APIs.Fixture / mixed-storybook,React peer / 18andReact peer / 19pass.config/vite/plugins/reporter/*andconfig/vite/vite.config.js. One-shot, failure, strict-mode and Storybook unit tests. 11 release fixturesglobSyncandescapesignatures are unchanged. The packedemulsify-auditJSON smoke test passesbinandfilesare unchanged.Packed packagedry run and smoke testPacked consumer / whisk-drupal,/ noneand/ wordpress-twig.React peer / 18and/ 19>=24.13.0.npm ciwithengine-strict=truepasses on 24.13.0 and 24.18.0.docs/dependency-review-4.5.2.mdtarget-size, and tests check both runtimes.docs/accessibility.mdupdateddocs/develop-reporter.md,docs/README.md,docs/releases/4.5.2.mdanddocs/dependency-review-4.5.2.mdrelease:analyzepredicts v4.5.1 → v4.5.2 for both merge strategiesmain, confirm the patch classification and check the publish after mergeChecklist
in the release-review checklist
completed
Notes
Keep the title conventional. CI rejects
mainpull requests whose title produces no release, and a squash merge under such a title would publish nothing.