Add reproducible, qualified PDF renderer comparison - #37
Merged
Merged
Conversation
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.
Developers evaluating Fullbleed need shared inputs and retained output checks before comparing renderer speed. Add an optional Linux harness for Fullbleed 2.5.6, WeasyPrint 70.0, and Playwright 1.63.0/Chromium, with the same three static HTML/CSS fixtures and explicit Inter font.
The harness separates fresh-process, warm-render, and sampled process-tree memory measurements; preserves every PDF and raw sample; validates content, record order, page geometry, embedded fonts, and text bounds with independent readers; and exercises deliberate rejection controls. A dedicated CI smoke run checks output qualification without enforcing latency thresholds. Comparison dependencies remain outside the engine package.
Validation: local qualification passed all nine renderer/fixture combinations (90 PDFs), and every representative page was visually inspected. The 100-row ledger has three pages in Fullbleed/WeasyPrint and four in Chromium; that difference is retained. Initial Inter contextual-hyphen extraction failures and a WSL PATH-related import delay are documented, with fixes applied equally across adapters before the measured run. The complete measured run qualified all 414 PDFs (315 timed samples plus warm-ups and memory passes), all four negative controls for every renderer passed, and all 22 representative page images exactly match the inspected qualification images. The dedicated Ubuntu comparison CI is green. The docs companion will publish both the measured archive and initial setup diagnostics, including the cases where Chromium was faster and WeasyPrint files were smaller.