[fonttools/fonttools] 66771c: [varLib.interpolatable] Fix swapped m0/m1 nodeType...

0 views
Skip to first unread message

Behdad Esfahbod

unread,
Feb 27, 2026, 11:51:09 AM (12 days ago) Feb 27
to fontto...@googlegroups.com
Branch: refs/heads/interpolatable-bugfixes
Home: https://github.com/fonttools/fonttools
Commit: 66771c3cc50a5fdd5b210c8d4184509b26ebd069
https://github.com/fonttools/fonttools/commit/66771c3cc50a5fdd5b210c8d4184509b26ebd069
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatable.py

Log Message:
-----------
[varLib.interpolatable] Fix swapped m0/m1 nodeTypes assignment

The variables m0 and m1 were assigned to the wrong glyphs (m0=glyph1,
m1=glyph0), causing PATH_COUNT, NODE_COUNT, and NODE_INCOMPATIBILITY
error reports to swap the values relative to their master names.

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: db7335e0191616a9d9edd796501c843f7f6a2126
https://github.com/fonttools/fonttools/commit/db7335e0191616a9d9edd796501c843f7f6a2126
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatable.py

Log Message:
-----------
[varLib.interpolatable] Fix duplicate kink-detector condition to check next points

The second off-curve check was an exact duplicate of the first (both
checked pt0_prev/pt1_prev). The second should check pt0_next/pt1_next.

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: 7d035b3b9b7e7cabb1992634600a675e7f380416
https://github.com/fonttools/fonttools/commit/7d035b3b9b7e7cabb1992634600a675e7f380416
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatable.py

Log Message:
-----------
[varLib.interpolatable] Fix typo: countor_idx -> contour_idx

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: d4a5ff999d4637d4034fc9c5f75ddffedf6c394b
https://github.com/fonttools/fonttools/commit/d4a5ff999d4637d4034fc9c5f75ddffedf6c394b
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatable.py

Log Message:
-----------
[varLib.interpolatable] Fix enumerate bug in CFF2 vsindex parsing

Using `for op in enumerate(cs.program)` made op a tuple (index, value),
so the string comparisons `op == "blend"` and `op == "vsindex"` never
matched.

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: fb620976f83145ed3cd0ad968e3271c5ac1f0b11
https://github.com/fonttools/fonttools/commit/fb620976f83145ed3cd0ad968e3271c5ac1f0b11
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatable.py

Log Message:
-----------
[varLib.interpolatable] Add comment that OVERWEIGHT check is disabled

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: cf5c821780be2957584076a109552c269e8d1abf
https://github.com/fonttools/fonttools/commit/cf5c821780be2957584076a109552c269e8d1abf
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatable.py

Log Message:
-----------
[varLib.interpolatable] Fix octal format specifier for node number

Node number was printed in octal (%o) instead of decimal (%d).

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: 6cb4730eb36f8e55bc88fbcb9665a649cbda4c3c
https://github.com/fonttools/fonttools/commit/6cb4730eb36f8e55bc88fbcb9665a649cbda4c3c
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatable.py

Log Message:
-----------
[varLib.interpolatable] Fix always-true glyph existence check

Glyph objects are never None (they use a doesnt_exist flag instead),
so `glyph is not None` was always true, defeating the early-skip logic.

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Compare: https://github.com/fonttools/fonttools/compare/66771c3cc50a%5E...6cb4730eb36f

To unsubscribe from these emails, change your notification settings at https://github.com/fonttools/fonttools/settings/notifications

Behdad Esfahbod

unread,
Mar 4, 2026, 12:24:23 PM (7 days ago) Mar 4
to fontto...@googlegroups.com
Branch: refs/heads/main
Commit: f0b60fa7ead0c5f7af8852514e134053814951ac
https://github.com/fonttools/fonttools/commit/f0b60fa7ead0c5f7af8852514e134053814951ac
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatablePlot.py

Log Message:
-----------
[varLib.interpolatablePlot] Fix scale calculation copy-paste bug

In the glyph_width branch, the else case incorrectly constrained scale
using panel_height/glyph_height instead of panel_width/glyph_width.

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: a8df6a6fb4d6494d74ab77e07b9338ebbad79341
https://github.com/fonttools/fonttools/commit/a8df6a6fb4d6494d74ab77e07b9338ebbad79341
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatablePlot.py

Log Message:
-----------
[varLib.interpolatablePlot] Remove unused import wraps

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: dc8b3e55d6646b4ef1fcbe9562436623694ee6ad
https://github.com/fonttools/fonttools/commit/dc8b3e55d6646b4ef1fcbe9562436623694ee6ad
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatablePlot.py

Log Message:
-----------
[varLib.interpolatablePlot] Remove unused variable height in add_title_page

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: b24b8ab61573810398794c009418fe612d7894ac
https://github.com/fonttools/fonttools/commit/b24b8ab61573810398794c009418fe612d7894ac
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatablePlot.py

Log Message:
-----------
[varLib.interpolatablePlot] Fix variable shadowing in add_summary

Loop variable 'problems' shadowed the function parameter. Rename to
'glyph_problems'.

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: 92803d1403f70f8619f2a00784429fdbe6c90b2c
https://github.com/fonttools/fonttools/commit/92803d1403f70f8619f2a00784429fdbe6c90b2c
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatablePlot.py

Log Message:
-----------
[varLib.interpolatablePlot] Use InterpolatableProblem.NOTHING constant

Replace hardcoded "nothing" string with the proper constant.

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: 3294f9be757e8a4ae8d1594ef868bac51be22f03
https://github.com/fonttools/fonttools/commit/3294f9be757e8a4ae8d1594ef868bac51be22f03
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatablePlot.py

Log Message:
-----------
[varLib.interpolatablePlot] Fix unclosed file handle in SHA1 computation

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: f996d1df49d0a0cf3998904b454a8aa762d26723
https://github.com/fonttools/fonttools/commit/f996d1df49d0a0cf3998904b454a8aa762d26723
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatablePlot.py

Log Message:
-----------
[varLib.interpolatablePlot] Remove redundant explicit import

PerContourOrComponentPen and SimpleRecordingPointPen are already
imported via 'from .interpolatableHelpers import *'.

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: 9cc7440be7250d4a2972476da9883a49ece57ebe
https://github.com/fonttools/fonttools/commit/9cc7440be7250d4a2972476da9883a49ece57ebe
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatableTestStartingPoint.py

Log Message:
-----------
[varLib.interpolatableTestStartingPoint] Comment out unused meanX/meanY

These variables are assigned but never used (the translate call that
would use them is already commented out).

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: c1266b73f52d469a01af97f59e45c55ea710cfd4
https://github.com/fonttools/fonttools/commit/c1266b73f52d469a01af97f59e45c55ea710cfd4
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatableTestStartingPoint.py

Log Message:
-----------
[varLib.interpolatableTestStartingPoint] Guard against negative lambda2 before sqrt

Due to floating-point imprecision, the minor eigenvalue (lambda2) can
become slightly negative. Clamp to 0 to avoid ValueError from sqrt(),
matching the equivalent guard in interpolatableHelpers.transform_from_stats.

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: 61f393353b88183414efe216f4f4290ce3eece6a
https://github.com/fonttools/fonttools/commit/61f393353b88183414efe216f4f4290ce3eece6a
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatableTestContourOrder.py

Log Message:
-----------
[varLib.interpolatableTestContourOrder] Fix grammar: "a identity" -> "an identity"

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: e2e0f40948f9957ec713af9e4878f9a351165b9a
https://github.com/fonttools/fonttools/commit/e2e0f40948f9957ec713af9e4878f9a351165b9a
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatableTestContourOrder.py

Log Message:
-----------
[varLib.interpolatableTestContourOrder] Fix variable name: matching_control_reversed -> matching_green_reversed

The result of matching green vectors (not control vectors) was being
stored into matching_control_reversed, overwriting the earlier value.

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: c0f4ef733e5f490ccc7800b1cbf7452dea3ebe25
https://github.com/fonttools/fonttools/commit/c0f4ef733e5f490ccc7800b1cbf7452dea3ebe25
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatableTestContourOrder.py

Log Message:
-----------
[varLib.interpolatableTestContourOrder] Fix comment and avoid division by zero

Fix "worst" -> "best" in comment, and rewrite cost ratio comparison as
cross-multiplication to avoid potential division by zero.

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: e3dd2d214374f6933928502f7fab0ae030be6e70
https://github.com/fonttools/fonttools/commit/e3dd2d214374f6933928502f7fab0ae030be6e70
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatableTestContourOrder.py

Log Message:
-----------
[varLib.interpolatableTestContourOrder] Remove redundant inner 'if not done' check

The inner check was nested inside an identical outer check and could
never be false at that point.

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: ee46e6f814cf152323d34f7c267f74760d3da60a
https://github.com/fonttools/fonttools/commit/ee46e6f814cf152323d34f7c267f74760d3da60a
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatableTestContourOrder.py

Log Message:
-----------
[varLib.interpolatableTestContourOrder] Fix indentation after removing redundant guard

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: 490f2e38448040b7a79c6e053911dab66cc45aa0
https://github.com/fonttools/fonttools/commit/490f2e38448040b7a79c6e053911dab66cc45aa0
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatableHelpers.py

Log Message:
-----------
[varLib.interpolatableHelpers] Remove unused import Enum

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: 8edf5b368abf75c48619a9a9ed5e2946ecaddf62
https://github.com/fonttools/fonttools/commit/8edf5b368abf75c48619a9a9ed5e2946ecaddf62
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatableHelpers.py

Log Message:
-----------
[varLib.interpolatableHelpers] Fix misleading sort_problems docstring

The function only sorts by severity, not by glyph name or problem message.

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: 21656d0b1244abb3ff66027fe59fa75629c2152b
https://github.com/fonttools/fonttools/commit/21656d0b1244abb3ff66027fe59fa75629c2152b
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatableHelpers.py

Log Message:
-----------
[varLib.interpolatableHelpers] Use module logger instead of root logger

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: 5950752057ce96628e87e60715c2629ba1881a42
https://github.com/fonttools/fonttools/commit/5950752057ce96628e87e60715c2629ba1881a42
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatableHelpers.py

Log Message:
-----------
[varLib.interpolatableHelpers] Remove unused identity_matching variable

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: 71cb3002dd31be467bdea14dec1efdbeeefb0a15
https://github.com/fonttools/fonttools/commit/71cb3002dd31be467bdea14dec1efdbeeefb0a15
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatableHelpers.py

Log Message:
-----------
[varLib.interpolatableHelpers] Remove unused self._glyphset in PerContourPen

BasePen.__init__ already stores the glyphset as self.glyphSet.

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: 83c53094e2af9619fcd19a19f4188ac182b91496
https://github.com/fonttools/fonttools/commit/83c53094e2af9619fcd19a19f4188ac182b91496
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatableHelpers.py

Log Message:
-----------
[varLib.interpolatableHelpers] Remove unused transform_from_stats function

This function was never called anywhere. It also had a latent
ZeroDivisionError bug in the inverse branch when lambda2 <= 0.

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: 03d4bced75d2e61a6e02a4d7d46530e6226d6ee0
https://github.com/fonttools/fonttools/commit/03d4bced75d2e61a6e02a4d7d46530e6226d6ee0
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-02-27 (Fri, 27 Feb 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatableTestStartingPoint.py

Log Message:
-----------
[varLib.interpolatableTestStartingPoint] Blacken

Co-Authored-By: Claude Opus 4.6 (1M context) <nor...@anthropic.com>


Commit: 5da76d73514e0b405292ba9809b60d45977632a2
https://github.com/fonttools/fonttools/commit/5da76d73514e0b405292ba9809b60d45977632a2
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-03-04 (Wed, 04 Mar 2026)

Changed paths:
M Lib/fontTools/varLib/interpolatable.py
M Lib/fontTools/varLib/interpolatableHelpers.py
M Lib/fontTools/varLib/interpolatablePlot.py
M Lib/fontTools/varLib/interpolatableTestContourOrder.py
M Lib/fontTools/varLib/interpolatableTestStartingPoint.py

Log Message:
-----------
Merge pull request #4046 from fonttools/interpolatable-bugfixes

[`varLib.interpolatable`] bugfixes


Compare: https://github.com/fonttools/fonttools/compare/686b8fce1fbd...5da76d73514e
Reply all
Reply to author
Forward
0 new messages