googlefonts / googlefonts/glyphsLib
Smart component incompatibility
- Dominant language
- Python
- Stars
- 201
- Forks
- 56
- Avg merge
- 17m
- Merged PRs (30d)
- 1
Description
#887 turns out to have been a bad change; I'm getting files which built successfully before no longer building.
The idea was that if a smart component did not vary, it should be treated as a dumb component. The problem is that there are cases where a smart component can vary (have more than one smart-component-master defined) in some font masters, but only have one smart-component-master defined in other font masters. In this situation, the varying ones will get decomposed and the non-varying ones will not get decomposed, and the font will no longer compile because the number of paths/components will be different across masters.
One again this is complicated by the Original Sin, which is that we convert master-wise into individual UFOs and so do all our conversions through the lens of a single font master, while a proper test for whether the component varies or not needs to look across font masters.
Contributor guide
Research direction
Start by reading issue #887 and tracing the master-wise conversion path described in this report. Investigate how smart-component variation is determined across font masters; done means fonts with differing smart-component-master counts compile with matching paths or components across all masters.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100