Changed paths:
M Lib/fontTools/ttLib/ttCollection.py
Log Message:
-----------
Pin a single head.modified timestamp across TTCollection.save
Saving a TTC with recalcTimestamp=True restamps each font's head from
timestampNow() (1-second granularity); if the clock ticks between two fonts'
head.compile() calls their heads diverge, no longer dedup, and the saved size
shifts by a whole head table (+56 bytes) -- the flaky TTC v2 roundtrip test
failures. Stamp one timestamp across the collection so the heads stay shareable.
Changed paths:
M Lib/fontTools/ttLib/ttCollection.py
Log Message:
-----------
Pin a single head.modified timestamp across TTCollection.save
Saving a TTC with recalcTimestamp=True restamps each font's head from
timestampNow() (1-second granularity); if the clock ticks between two fonts'
head.compile() calls their heads diverge, no longer dedup, and the saved size
shifts by a whole head table (+56 bytes) -- the flaky TTC v2 roundtrip test
failures. Stamp one timestamp across the collection so the heads stay shareable.
Log Message:
-----------
Add regression test for deterministic TTCollection.save
Forces timestampNow() to tick on every call and checks the two fonts' head
tables still share one 'modified' (so a clock tick adds no extra head table).