googlefonts / googlefonts/glyphsLib

Smart component incompatibility

Open
#907 3 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.