Skip to content

Replace ImageMagick with Chrome - #4

Merged
jbj merged 2 commits into
mainfrom
jbj/remove-imagemagick
Nov 9, 2026
Merged

jbj merged 2 commits into
mainfrom
jbj/remove-imagemagick

Conversation

@jbj

@jbj jbj commented Nov 9, 2026 •

Copy link
Copy Markdown
Owner

N/A

What changed

  • Render screenshot contact sheets with Chrome/Chromium through the existing DevTools harness, preserving ordering, labels, sizing, and output path.
  • Remove ImageMagick detection and setup from screenshot scripts, CI workflows, and local setup guidance.

Why

ImageMagick duplicated image-processing functionality that Chrome already provides for screenshot generation, adding a separate system dependency across local environments and CI.

Checklist

  • npm run verify passes
  • Any design invariant this changes is documented in its Markdown file and called out above
  • The screenshots below come from this branch

Screenshots

The contact sheet and individual screenshots are in the web-screenshots artifact from the successful CI run. Download the artifact and open contact-sheet.png to view the generated sheet.

Render screenshot contact sheets with the existing Chrome DevTools harness and remove ImageMagick setup from scripts, CI, and docs.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings November 9, 2026 16:12

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The caller does not await the now-async buildSheet(), so its assertion always passes on the Promise and rendering failures bypass main()’s error handler.

1 open issue
What changed in this PR

This PR replaces ImageMagick contact-sheet generation with Chrome/Chromium through the existing DevTools harness, removing a separate system dependency from the screenshot workflow.

Changes:

  • Render contact sheets in the browser with sorted images, filename labels, and four-column layout.
  • Remove ImageMagick discovery, preflight checks, and CI installation steps.
  • Update screenshot tests and local setup documentation.
File Description
tests/​shot-sheet.test.mjs Update command fixtures and test generated sheet markup.
tests/​platform-tools.test.mjs Remove ImageMagick discovery tests.
scripts/​tools.mjs Delete ImageMagick discovery and execution helpers.
scripts/​shot.mjs Remove the ImageMagick preflight requirement.
scripts/​shot-sheet.mjs Compose and capture contact sheets using Chrome.
README.md Remove ImageMagick from verification prerequisites.
docs/​code.md Simplify local setup to require only a browser.
.github/​workflows/​windows-verify.yml Remove ImageMagick installation on Windows.
.github/​workflows/​copilot-setup-steps.yml Remove ImageMagick setup and version checks.
.github/​workflows/​ci.yml Remove ImageMagick and associated font installation.

Review effort: Balanced

Comment thread scripts/shot-sheet.mjs Resolved
Wait for the asynchronous sheet builder before asserting its result so screenshot failures reach the main error handler.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings November 9, 2026 16:18
@jbj
jbj merged commit b2be197 into main Nov 9, 2026
3 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues were identified for the switch from ImageMagick to Chrome-based contact sheet generation.

No open issues 🎉

1 resolved since last review

Review effort: Balanced

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.

2 participants