Skip to content

chore: replace svgexport with @resvg/resvg-js for icon PNGs#93

Merged
JChrist merged 1 commit into
mainfrom
ci/replace-svgexport-with-resvg
Jun 22, 2026
Merged

chore: replace svgexport with @resvg/resvg-js for icon PNGs#93
JChrist merged 1 commit into
mainfrom
ci/replace-svgexport-with-resvg

Conversation

@JChrist

@JChrist JChrist commented Jun 22, 2026

Copy link
Copy Markdown
Owner

Why

npm run svg (icon SVG→PNG generation) was broken: svgexport@0.4.2 is unmaintained and pins puppeteer 3.x, whose bundled Chromium no longer launches — and which can't drive a modern Chrome either (verified: Protocol error: Target closed against Chrome 149). This is why svg was dropped from CI earlier.

Change

  • Replace svgexport with @resvg/resvg-js — a browserless SVG renderer (prebuilt native binaries, no Chromium, no compilation). New assets/render-icons.js renders every assets/*.svg to a 64×64 PNG.
  • Regenerate the 9 icon PNGs with resvg (visually identical flat icons; verified actor + status_success render correctly).
  • Re-add the step to check-dist (npm run svg && npm run package) so icon PNGs regenerate and auto-commit via the deploy key when an SVG changes — same hands-off flow as dist/.
  • Removes puppeteer from the dependency tree entirely (0 references in the lockfile).

Verified

  • Output is 64×64 and byte-deterministic across repeated runs and a fresh npm ci (so CI reproduces the committed PNGs — no auto-commit churn).
  • lint, format:check, and jest all pass; dist/ is unaffected.

svgexport@0.4.2 is unmaintained and pins puppeteer 3.x, whose bundled
Chromium no longer launches and which cannot drive modern Chrome, so the
icon generation failed in CI. Replace it with @resvg/resvg-js, a
browserless SVG renderer, driven by assets/render-icons.js. Regenerate
the 9 icon PNGs and run the step in check-dist so they stay in sync and
auto-commit alongside dist/. Removes puppeteer from the dependency tree.
@JChrist JChrist merged commit c8a656e into main Jun 22, 2026
6 checks passed
@JChrist JChrist deleted the ci/replace-svgexport-with-resvg branch June 22, 2026 13:39
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.

1 participant