The global StaticMetadata.variation_model now only includes 'full' masters (i.e. defining kerning) for both UFOs+DS and .glyphs input (previously this was the case only for the latter).
When we call resolve_variable_metric we make new sub-model when locations != global_model.locations(), or just reuse the global model when locations are equal -- which is currently basically always true for the common source formats (DS and glyphs) in the case of kerning, as the latter is meant to be "dense" and can only be specified for the "full" or globally-defined masters. However, we don't preclude the possibility that in the future other (or newer) source formats may define sparse kerning data, and our fontbe is ready for that.
I added a test file in #776, and verified locally that this patch fixes the issue #407, but I haven't find the time to make an actual unit test yet. If I don't make it in time, you should be able connect the dots...
This fixes 'incorrect feature deltas when sparse' https://github.com/googlefonts/fontc/issues/407
The global StaticMetadata.variation_model now only includes 'full' masters (i.e. defining kerning) for both UFOs+DS and .glyphs input (previously this was the case only for the latter).
When we call
resolve_variable_metric
we make new sub-model when locations != global_model.locations(), or just reuse the global model when locations are equal -- which is currently basically always true for the common source formats (DS and glyphs) in the case of kerning, as the latter is meant to be "dense" and can only be specified for the "full" or globally-defined masters. However, we don't preclude the possibility that in the future other (or newer) source formats may define sparse kerning data, and our fontbe is ready for that.I added a test file in #776, and verified locally that this patch fixes the issue #407, but
I haven't find the time to make an actual unit test yet. If I don't make it in time, you should be able connect the dots...EDIT: I have added a test case #817