Skip to content

[of-the-day] Golden images drift on all eight harness sizes #371

Description

@ChuckBuilds

Plugin

  • Plugin id: of-the-day
  • Plugin version: 1.4.1 (drift also present before that)

Describe the bug

scripts/check_plugin.py --plugin of-the-day fails on all eight harness sizes with golden drift. This is present on a clean main — I confirmed by stashing unrelated changes and re-running, getting identical figures.

[FAIL]   64x32  of_the_day golden drift: 148px (max Δ=200)
[FAIL]  128x32  of_the_day golden drift: 315px (max Δ=200)
[FAIL]   64x64  of_the_day golden drift: 454px (max Δ=200)
[FAIL]   96x48  of_the_day golden drift: 309px (max Δ=200)
[FAIL]  128x64  of_the_day golden drift: 315px (max Δ=200)
[FAIL]  256x32  of_the_day golden drift: 315px (max Δ=200)
[FAIL]  128x96  of_the_day golden drift: 315px (max Δ=200)
[FAIL] 256x128  of_the_day golden drift: 7062px → 315px (max Δ=200)

Where the difference is

Confined to the body text line; the title is pixel-identical. The body renders wider than the golden:

golden bbox: (11, 8, 117, 28)
fresh  bbox: (2, 8, 125, 28)
diff   bbox: (2, 21, 125, 28)     <- body row only

Same word, same definition — the glyph metrics differ. The body uses 4x6-font.ttf at size 6 with the auto-fit path, which is more metric-sensitive than the title's PressStart2P.

Why I have not simply regenerated the goldens

Two possibilities, and they want different fixes:

  1. The goldens are stale and should be refreshed.
  2. Something changed the body font metrics, and the goldens are correctly catching it.

There is also a third: font rasterisation can differ by Pillow version. I am on Pillow 11.3.0, and #364 already showed one case where my environment's image handling differed from yours in a way none of my checks caught. Regenerating goldens from this machine would bake these metrics in and could break them on yours.

Suggested next step

Run check_plugin.py --plugin of-the-day on a known-good environment. If it passes there, this is a Pillow-version difference and the goldens are fine. If it fails there too, they are stale and worth refreshing from that environment.

Found while writing the README in #368.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions